Development and Live
Your run uses the workflow definition and record store selected by its environment. An agent’s Test mode uses its saved draft and development workflows. Live uses its published version and published workflow releases. Files follow separate rules. Either environment can perform real actions and incur usage.
For example, testing Support helper with support-policy.md and ticket T-104 uses development records in Support desk. A connected notification action can still send a real message during that Test conversation.
Which definition and records run?
Section titled “Which definition and records run?”| Run | Definition | Workflow records |
|---|---|---|
| Owner Test conversation | Current saved agent draft; current development workflows | Development. |
| Live conversation | Published agent; latest published workflow releases | Live. |
| Ordinary incoming trigger event | Enabled published trigger and live flow in an active workflow | Live. |
| Incoming event with development permission | Enabled development trigger and development flow | Development. |
| Replay targeting development | Enabled development trigger and flow; incoming-event permission is unnecessary | Development. |
| Replay targeting live | Published live trigger and flow | Live. |
| Flow test targeting development / live | The explicitly selected development version / live release | The matching store. |
| Isolated node test | Development node; upstream nodes do not execute | Development. |
A workflow test does not automatically load agent files. Agent actions explicitly select their target. Without a published agent, creating conversations or writing Runtime files from a live run fails with “Publish the agent, then run again.”
Before dispatch, triggers capture events without requiring publication or development event permission. A captured payload proves delivery, not execution. If both environments are enabled and development permission remains On, one incoming event can create two billable runs. See Start with Triggers for the separate controls.
Which files are available?
Section titled “Which files are available?”Agent files have three spaces:
| File space | Owner Test reads | Live reads |
|---|---|---|
| Reference | Current draft reference files | Files frozen into the published agent version. |
| Runtime | Current live files, with development files taking precedence at matching paths | Current live files. |
| Conversation | Files and attachments for that Test conversation | Files and attachments for that Live conversation. |
In Test, a development runtime file replaces only its matching path. Other live files remain visible.
Workflow actions that create or update agent files write Runtime, not Reference. Development runs write development runtime files. Live runs write live runtime files.
Writes to conversation files must match the target conversation’s mode. Development writes to Test conversations. Live writes to Live conversations. A development workflow can send a real message to a Live conversation. A live run cannot message a Test conversation.
What does publishing copy?
Section titled “What does publishing copy?”Agent publication freezes the draft’s name, instructions, tools, and reference-file contents into a new published version. It moves existing Live conversations to that version and expires their unexecuted approvals. It then attempts to stop their Live sessions. If cleanup fails, publication still stands. The conversation’s model is separate runtime data and is not part of this snapshot.
Workflow publication copies the saved definition and synchronizes schemas into live collections. Development records stay in development. Existing live rows retain stored values. Schema changes alter which fields and values are visible. Use Import and Copy Records when records also need to move.
Runtime and conversation files stay outside the reference-file snapshot. Publishing an agent also does not publish its development workflows.
What can change Live without publishing the agent?
Section titled “What can change Live without publishing the agent?”- Publishing an attached workflow changes the release its Live tool follows. Controller AI attempts to record an update notice without changing conversation recency. After their current turn, it refreshes sessions. If you see
agent_session_refresh_failed, the release is already Live. Verify in a fresh Live conversation instead of republishing. Republishing creates another release. - Rebinding a direct integration action changes the connected account used by Live calls. A missing or unusable connection blocks the action. Detaching a direct action also blocks its Live calls. Publish afterward to remove it from the published tool list.
- Until agent publication includes the change, requiring confirmation on a direct action immediately blocks Live calls that loaded the weaker policy. Only after publication does relaxing confirmation reach Live.
- Writing live records or runtime files changes the current data those runs read.
- Pausing an agent blocks Live while its owner can still use Test. Changing a conversation’s model also takes effect separately from agent publication.
Live workflow tools follow the latest release. You cannot attach a tool with a pinned workflow release.
How do I inspect the current environment?
Section titled “How do I inspect the current environment?”In the app: open Agents → Support helper → Edit / Test / Live. Save before switching modes. Live requires a published agent. In a workflow, Test (tooltip “Test current flow”) runs the open flow on the selected Dev / Live version. Inspect Conversation files inside that Test or Live conversation’s Files panel. CLI/MCP list only Reference and Runtime files.
With an assistant: use explicit --workflow <workflowId> without pinning. Scoped MCP calls use workflowId.
Find the agent and workflow to get their IDs.
cai agent list --search "Support helper" --jsoncai workflow list --limit 100 --jsonNote Support helper’s data.agents[].id as <agentId> and Support desk’s data.items[].id as <workflowId>. If the workflow is absent and data.hasMore is true, get its ID from the app. This list has no continuation token.
Inspect the agent and workflow status, then compare the agent’s Reference and Runtime file lists.
cai agent get <agentId> --jsoncai workflow status --workflow <workflowId> --jsoncai agent files <agentId> --space knowledge --jsoncai agent files <agentId> --space knowledge --live --jsoncai agent files <agentId> --space shared --environment live --jsoncai agent files <agentId> --space shared --environment dev --jsonFile pages default to 50, with a maximum of 200. While data.hasMore is true, repeat with --cursor <cursor> from data.nextCursor, keeping all filters identical (MCP: cursor).
MCP uses agent_file_list with agentId, space, environment for Runtime, and live:true for published Reference files. For the owner’s draft, omit live.
Where does recovery stop?
Section titled “Where does recovery stop?”Within plan limits, workflow restore recovers an available definition. It does not rewind records, files, provider actions, or usage. Restoring Support desk does not remove the escalation already created for T-104 or retract its notification.
For agents, repair the draft and publish a new version.