Agents — the thing you build

Shipped

View as Markdown

An agent is the unit you build and then talk to. It binds one of your providers and a model it serves to a system prompt, a handful of sampling controls, and the tools it is allowed to call. You make as many as you like, and each can sit on a different backend.

Why it matters

The provider decides where the compute happens; the agent decides how the model behaves — its standing instructions, how adventurous its sampling is, whether it reasons before answering, and what it can reach through tools. Two agents on the same provider and model can behave nothing alike, because everything that shapes a turn lives on the agent.

What you configure

The agent form, where a provider, model, prompt, and tools become an agent

How it works

Open Agents, create one, and fill in as much as you need — at minimum a name, a provider, and a model. The prompt and the sampling controls are optional and fall back to sensible defaults. Because the sampling and reasoning controls are gated on the selected model's declared capabilities, the form only surfaces the knobs that model actually honours. Attach tools last; from then on the model decides when to call them during a conversation.

Inheriting from your defaults

Most of what shapes a turn has an app-wide value you set once on the Global settings page — Titles & summaries, Conversation loop and Context compaction, reached from Settings → Workspaces — and every agent inherits it until it decides to differ. Where an agent can override one, the form shows the value in force — the inherited number sits in the box, in italics behind a small ⤷ marker, with Inherited from the global settings beneath it. Type over it to set the agent's own value, and the line becomes Set here · would inherit 200 from the global settings with a Reset beside it that hands the field back — so you can see what letting go of an override restores before you do it. A workspace can carry its own overrides too, sitting between the global settings and the agent, so a whole workspace of agents can share a tuning without repeating it on each one.

The order, most general to most specific, is: the global settings, then the workspace, then the agent. Each layer only fills in what the layer above left unset. A conversation then keeps the agent's settings as they stood when it started, so tuning an agent later doesn't rewrite the conversations you already had. One thing never cascades: the provider and model. There is no fallback model — every agent binds its own, on purpose, so a turn always runs on a backend you chose rather than one inherited by accident.

Good to know

If you later swap or remove the provider, an agent keeps the model id it was built with rather than silently dropping it — it just flags that the id is no longer in the provider's list. Re-pick a model from the new provider to clear the warning. The conversation page and the editor also warn when the chosen model can't read a conversation's images or call its selected tools, so a capability mismatch is visible rather than a silent drop.

To start a new agent from an existing one, use Copy on the agent's page: it opens the create form pre-filled with a duplicate (its name suffixed "(copy)"), so you can adjust the name — which isn't checked for uniqueness until you save — before anything is written.