Skip to content

AI Agents

An AI agent handles tasks that go beyond answering questions: it plans steps, uses the connected systems and asks for approval where it matters. We build agents for clearly defined tasks and introduce them in stages.

Many processes run through several systems. A request is read, details are looked up in the ERP and CRM, a decision is prepared, data is entered and a reply is written. Fixed automation hits its limits when the inputs look different every time.

We build AI agents for clearly bounded tasks. The agent works with only the permissions it needs, every step is logged, and where a mistake would be expensive, a person decides.

Most of the time a fixed workflow is enough

An AI agent pursues a goal and decides for itself which steps it takes. A language model plans, calls tools (a database query, an email, a posting in the ERP), evaluates the result and decides on the next step until the task is done. A chatbot, by contrast, only answers questions. Typical tasks for an agent are handling a customer request, including contract, order history, reply draft and ticket; researching a proposal from several sources; or reconciling master data between systems and suggesting corrections.

Even so, not every automation needs an agent, and we start with the simplest approach that solves the task. A fixed workflow always runs the same steps, is faster and cheaper, and is easier to test. It is enough when the steps can be written down as rules in advance, the inputs are structured and the result has to be the same every time. An agent is worth it only when the order depends on the content, the inputs are free text and there are many exceptions. A mix is often best: a fixed process as the frame, an AI step at the hard part, such as classifying or summarizing, and an agent only where freedom of decision is really needed.

Tools, MCP and other agents

An agent can only do what it has tools for. A tool is usually a function with a name, a description and parameters, with an API behind it, such as “look up order” or “create ticket”. The model uses the description to decide when to call which one. The more tools it can choose from, the more often it picks the wrong one.

The Model Context Protocol (MCP) is an open standard for this connection. Anthropic introduced it and handed it over to the Linux Foundation’s Agentic AI Foundation at the end of 2025. An MCP server provides tools and data, and any MCP-capable application can use them. The specification itself points out that tools can execute arbitrary code and that their descriptions should only be trusted if the server is. We therefore connect only vetted servers, keep read and write tools apart, and route write access through dedicated functions with validation.

The Agent2Agent protocol (A2A) is meant for agents from different teams or vendors. Google introduced it in 2025, it is now maintained by the Linux Foundation, and a stable version is available. Agents describe their capabilities in an Agent Card and accept tasks from other agents. So MCP connects an agent to tools, and A2A connects agents to each other. You need multiple agents less often than it sounds, because each additional one brings cost and sources of error. One agent with well-scoped tools is often enough.

For the platform, what matters is the existing cloud, identity management, data location and the team’s skills. Managed platforms from the large cloud providers take over some of the work, such as separate identities for agents, tracing and protection filters. Frameworks for custom code, such as LangGraph, give more control over the flow. The offerings change quickly, so we do not tie ourselves to one vendor.

What an agent must not decide alone

An agent acts in systems. It therefore needs rules that do not depend on the language model. We sort actions by risk: reading runs automatically, reversible changes run with spot checks. Payments, messages to customers and deletions are approved by a person who sees the draft, the reasoning and the sources.

The agent gets its own identity instead of a shared account and only the permissions its task requires. If it acts on behalf of a person, that person’s permissions are the upper limit. Input, tool calls, results and approvals are logged, which helps with troubleshooting and audits. A maximum number of steps, a time limit and a cost limit, plus an abort on uncertainty with handover to a person, keep an agent from wandering off.

Prompt injection, testing and cost

The biggest risk is prompt injection. Text in emails, documents or web pages can contain instructions that the agent takes for a task. It gets especially delicate when the agent may read internal data, process external content and act at the same time. This cannot be ruled out completely. We therefore treat inputs as untrusted, separate permissions and require approval for actions with external effect. Protection filters on the platforms help but do not replace these measures.

Testing happens before launch, on real cases including edge cases, with a definition of a good result agreed in advance. We check not only the answer but also whether the agent chose the right tools in a sensible order. Because language models do not answer the same way every time, the tests run again after every change to instructions, model or tools.

A task usually involves several model and tool calls, and the context grows with every step. We therefore measure cost per completed task and the share of cases a person has to rework, and compare both with today’s effort. Which obligations arise from the EU AI Act depends on the purpose; more on that in the topic of the same name.

Introducing it in stages

At first the agent only makes suggestions, and a person carries them out. In the second stage it carries out steps itself after approval. Only for low-risk cases does it work on its own, with spot checks. The stage changes only when the measured results support it.

Most projects never get that far. “Support sales” is not a process; an agent needs a narrowly defined task with a result that can be checked. If nobody can describe the process, no agent can run it reliably. An agent with an administrator account makes every mistake and every prompt injection more expensive. And a demo with three examples is convincing, while operation with real inputs often is not.

What you get

  • Tasks that span several systems

    The agent looks things up across systems, prepares the decision and enters the result in the target system.

  • Copes with exceptions

    Varying inputs and special cases, where fixed rules break down, are what an agent is for.

  • Approval for payments and customer mail

    Critical steps are released by a person who sees the draft, the reasoning and the sources.

  • Every step on record

    Input, tool calls, results and approvals are logged and can be reviewed later.

Platforms & tools

We are not tied to any vendor and work with what is already running in the company. The list is a selection.

  • Microsoft Copilot Studio
  • Microsoft Foundry Agent Service
  • Microsoft Agent Framework
  • Gemini Enterprise
  • Gemini Enterprise Agent Platform
  • Amazon Bedrock AgentCore
  • LangGraph
  • OpenAI Agents SDK
  • Claude Agent SDK

How we work

  1. Narrow down the process

    We pick one clearly bounded process, check whether a fixed workflow would do, and define what the agent may and may not do.

  2. Connect tools with tight permissions

    Through APIs or MCP servers the agent reaches only the systems its task needs, and it gets its own identity.

  3. Set limits and test

    Approval points, limits on steps and cost, then tests on a collection of real cases including edge cases.

  4. From suggestions to autonomy

    At first, people check every suggestion. More independence comes only when the measured results support it.

Frequently asked questions

What is the difference between an AI agent and a chatbot?
A chatbot answers questions. An AI agent pursues a goal, plans several steps and uses tools such as databases, email or ERP systems to complete the task. It acts in systems and does not just return text.
Do we actually need an agent for our automation?
Often not. If the steps can be written down as rules in advance and the inputs are structured, a fixed workflow is faster, cheaper and easier to test. An agent pays off when the route to the result depends on the content of the input, for example with free text and many exceptions. A mix is often the best choice: a fixed process with an AI step at the hard part.
What is the Model Context Protocol (MCP)?
MCP is an open standard through which applications make tools and data available to AI models. An MCP server, once built, can be used by any MCP-capable agent or assistant. The protocol now sits with the Linux Foundation. It remains important to connect only vetted servers and to require approval for actions with external effect.
What is the Agent2Agent protocol?
Agent2Agent (A2A) is an open standard that lets agents from different vendors or teams hand tasks to each other. It is also maintained by the Linux Foundation and complements MCP: MCP connects an agent to tools, A2A connects agents to each other. For many companies a single, well-scoped agent is enough at first.
Can agents make mistakes?
Yes, like any language model. That is why we limit permissions, set limits on steps and cost, log every step and have people approve critical actions. Before launch we test the agent on real cases, and in operation we keep measuring the results.
What does an agent cost per task?
A task usually consists of several model calls and tool calls, so it costs more than a single chat answer. Actual amounts depend on the model, the length of the context and the number of steps. We measure cost per completed task already during testing and set limits on steps and consumption.
Does an AI agent fall under the EU AI Act?
That depends on the purpose. An agent that schedules appointments is classified differently from one that helps decide on job applications or loans. The classification should be settled before launch, with legal advice if in doubt. The basics are covered in the topic on the EU AI Act.