Skip to content

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.

RunDefinitionWorkflow records
Owner Test conversationCurrent saved agent draft; current development workflowsDevelopment.
Live conversationPublished agent; latest published workflow releasesLive.
Ordinary incoming trigger eventEnabled published trigger and live flow in an active workflowLive.
Incoming event with development permissionEnabled development trigger and development flowDevelopment.
Replay targeting developmentEnabled development trigger and flow; incoming-event permission is unnecessaryDevelopment.
Replay targeting livePublished live trigger and flowLive.
Flow test targeting development / liveThe explicitly selected development version / live releaseThe matching store.
Isolated node testDevelopment node; upstream nodes do not executeDevelopment.

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.

Agent files have three spaces:

File spaceOwner Test readsLive reads
ReferenceCurrent draft reference filesFiles frozen into the published agent version.
RuntimeCurrent live files, with development files taking precedence at matching pathsCurrent live files.
ConversationFiles and attachments for that Test conversationFiles 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.

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.

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.

Terminal window
cai agent list --search "Support helper" --json
cai workflow list --limit 100 --json

Note 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.

Terminal window
cai agent get <agentId> --json
cai workflow status --workflow <workflowId> --json
cai agent files <agentId> --space knowledge --json
cai agent files <agentId> --space knowledge --live --json
cai agent files <agentId> --space shared --environment live --json
cai agent files <agentId> --space shared --environment dev --json

File 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.

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.