Agents with tools that are already a real backend.

An agent is a model that calls your interfaces as tools, in a loop, until it has an answer. In Air Pipe that is one action — with memory, a bounded loop, and an answer whose shape the provider enforces. The tools it calls are the same routes your apps call, with the same auth, the same validation and the same traces.

One action, not a framework

The agent action takes a model endpoint, a list of tools and an input. tools: names interfaces in the same config, so there is no adapter layer, no tool registry to maintain and no separate service to deploy alongside the API. The loop runs inside the request that started it.

Any provider that speaks the OpenAI shape

Which is, in practice, all of them. The url is yours to point: OpenAI, Gemini's compatible endpoint, Anthropic, OpenRouter, Groq, DeepSeek, Mistral, Azure, or a model you host yourself with Ollama. Changing provider is changing a URL and a model name, not rewriting the agent.

It remembers, and it can borrow tools

An agent forgets between requests unless you tell it not to. memory: takes a key that scopes the conversation — one per user, per session, per ticket — and a window that bounds how many turns are replayed, so a long-running thread cannot grow without limit. Separately, mcp: draws tools from a remote MCP server in addition to your own interfaces: they are discovered at run time, so the model is offered whatever that server publishes today rather than whatever it published when you wrote the config.

A shape the model cannot break

A model asked for JSON in a prompt will usually return JSON. schema: removes the "usually": the schema is sent to the provider, which enforces it, so content holds a parsed object rather than a string. There is nothing to validate afterwards and nothing to retry. If an endpoint ignores the field, the action fails and names the likely cause rather than passing prose on to whatever runs next.

The part most agent stacks leave to you

An agent that can act needs auth in front of it, a schedule or a webhook to start it, a database behind it, a human in the loop for the risky step, and traces when it does something surprising. Those are not add-ons here — they are the same config the agent lives in, and every tool call produces an OpenTelemetry span and Prometheus metrics without instrumentation code.

Frequently asked questions