AI agents
Agents you can put in production.
Build tool-using agents on EU-resident models with full function-calling. The Firewall protects personal data in arguments and results, threads keep conversation state, and Observability traces the cost and latency of each step.
tools · inspected · traced
Every step is scanned, and every step is a span in the trace.
An agent multiplies everything that can go wrong.
Every tool call is a new way to inject instructions, leak personal data, or run up cost in a loop you did not intend. A demo agent ignores all of it. A production agent needs each step inspected, personal data protected, state kept, and a trace of where the time and credits went, or you are shipping a liability that talks back.
What you get
Tool-using, and checked at every step.
The difference between an agent demo and an agent in production is what happens on the steps nobody watched.
Full function-calling
Define tools, let the model call them, and steer with tool_choice, the same surface you already build against, now on EU-resident models.
Protected at every hop
The firewall pseudonymizes personal data in arguments and results before anything leaves, and the router keeps each step on a model you approved.
Stateful and observable
Threads keep conversation state server-side without resending it, and every step is traced, so you can see which tool or model spent the time and the credits.
What it looks like
The tool result full of customer data.
Your agent reads a support ticket. The ticket carries a name, an email address and a card number. The firewall replaces them before the model reads the result, and puts them back in the answer.
- 01EverythingTool output passes the firewall tooAnything a tool returns is treated like a prompt. The web page, the ticket body, the PDF a customer uploaded: all of it, every turn.
- 02TokenizedThe model works on placeholdersThe model reasons over a token and calls its tools with it. The real values go back into the response, so the agent still answers the customer by name.
- 03TracedThe trace shows the whole stepObservability records which tool ran, what it cost and where the time went, so a slow or failing agent is something you can actually debug.
send_email was called with a token, not an address.
Which service does what
The agent loop, end to end.
Each part of a production agent maps onto a service behind the same endpoint, and each one is metered on its own.
- Inference APIFunction-calling and structured output on EU-resident models.
- MCP ServerMemory and tools for agents, over the Model Context Protocol.
- RecallFacts and documents keep agent state grounded.
- ObservabilityA span per step, so you see cost and latency.
- FirewallProtects personal data in arguments and results.
- Model RouterRoutes per step with a fail-closed egress guard.
FAQ
Questions people ask about agents.
- Is tool output checked, or only the prompt?
- Both. Anything a tool returns is scanned like a prompt, every turn: the web page, the ticket body, the PDF a customer uploaded.
- What happens when an injection is caught?
- The turn stops with a typed 422 your code can branch on. The tool the model was being steered towards is never reached.
- Do we have to resend the conversation each step?
- No. Threads keep conversation state server-side, so you are not paying to resend the same context on every turn.
- How do we find out where an agent spent its time?
- Observability records a span per step with its latency and cost, so a slow or expensive loop is visible rather than inferred.
- Is personal data in tool arguments protected?
- Yes. The firewall pseudonymizes personal data in arguments and results before anything leaves the platform.
Start here
Put an agent in production.
Create a key, define your tools, and run an agent that is inspected, protected and traced at every step.