agent_ followed by a hex string. That id is produced by publishing, so this is the one step that happens in the dashboard rather than over the API.
Create it
Open Agent in the dashboard and create a new one. The builder has four things that matter and several you can ignore on a first pass.required
Shown to you, and returned on the thread object. Not shown to your users unless you choose to.
required
The agent’s instructions. This is where most of the behaviour lives — who it is, what it may do, how it should refuse. Write it like you would a brief for a new hire.
required
Fast, Standard, or Frontier. Start on Standard. Class controls cost and capability; see Rate limits and credits.optional
The capabilities the agent may use. You can leave this empty and still have a working agent — see below.
You do not need patches yet
Four primitives are injected into every agent automatically:
So an agent with an empty Patches list can already hold a conversation, ask clarifying questions, and hand off. That is enough for the Quick start, and enough to test your instructions before you wire anything to your backend.
Add patches when you want the agent to do something — see Patches.
Permissions
Each wired patch carries a permission, and this is the guardrail worth understanding early:
Set Always ask on anything that moves money, sends a message, or changes a record you care about. It is the difference between an agent that drafts and an agent that acts unsupervised.
Try it before you publish
Open Playground. It runs the agent with a persona standing in for a subject, so you can iterate on the system prompt without touching your integration. Every run there produces a trace, same as production, and Playground memory is kept apart from live — experimenting will not teach your production agent anything. It is also where you prove your backend works before writing any client code. See The Playground.Publish
Publishing mints theagent_… id. Copy it — that is what your code passes as agent.
An agent id names one exact version. There is no “latest” resolution: pinning
agent_4f3c… means your integration keeps running that version until you change the id. Publishing a new version mints a new id, and you opt in by updating it.Connections
If any wired patch calls your backend, the agent also needs a connection — the host we call and how we authenticate. You can pin one on the agent, or pass one per request. An agent built only from primitives and workbench products needs no connection at all.Next
Quick start
Use the id you just copied.
Patches
Give the agent something to do.