The draft
The builder always edits the draft. The draft is never a numbered version, and it keeps that identity forever; publishing does not create a fresh draft afterward. There is one draft, and you keep editing it. In APIs, the draft is addressed by the stringdraft. (Internally it is stored as the integer 0 so ordering and indexes stay simple, but that sentinel is never exposed as a product version.)
Publishing
Publishing copies the reachable draft into the next positive integer (1, 2, and so on). Only the part of the draft reachable from the entrypoint is copied, so an orphaned node you have not wired in does not ship. Published rows are immutable: you never edit a version, you publish a new one.
Each publish takes a short label (required) and an optional description, and returns the new version number.
1
Open the agent
In the dashboard, open the agent you want to ship.
2
Publish
Use Publish, give the version a short label, and confirm. You can also publish over the API or the
publish_agent MCP tool.3
Point traffic at it
The new version is immediately loadable by the engine. Send it chat traffic, or map a phone number to it.
How a version pins traffic
Each node versions independently, but the entrypoint version pins the whole reachable graph. A publishedagent_swap names its target as (target_key, target_version), so a handoff always lands on the exact node version it was published against.
That means later draft edits, and even later publishes, cannot change a graph that is already serving traffic. Once callers are on version 1, version 1 cannot move under them.
Selecting a version
APIs, MCP tools, and engine turns accept eitherdraft or a published positive integer.
- The public invoke endpoint requires a published positive integer, not
draft. - A phone number either follows the newest published version or pins an explicit entrypoint version.
- The dashboard Conversation talks to your published agent; the builder additionally lets you chat the draft to test unpublished changes.
Restore
Restore copies a published revision back over the draft, one node or the whole reachable graph. It edits the draft like any other change; it does not rewrite history. The next publish bumps to a new positive integer as usual.Agent-level forking and branch merges are intentionally not offered yet. The one draft plus immutable numbered versions is the whole model for now.
No deploy step
Publishing is the entire shipping operation. Agents do not deploy to per-agent compute. The shared engine loads(agent, version) from the database on each turn, so a freshly published version is live the moment it is written. See Chat and Voice.