> ## Documentation Index
> Fetch the complete documentation index at: https://docs.threetone.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Versions and drafts

> Use explicit branches, review draft snapshots, and publish identifiable agent configuration versions without confusing them with deployment.

An agent has branches and published configuration versions. Use a draft to prepare a complete change, then review what will be published to the selected branch. Configuration publication and live traffic deployment are separate operations.

<Warning>
  Voice and custom-model configurations can be authored, but cannot be published in the current implementation. Managed text-only publication requires compatible model routing, referenced resources, and a valid workflow. Branch creation, merge, and rebase also validate publication eligibility. An initial version created with an agent does not establish the same runtime readiness as a later validated publication.
</Warning>

<Frame caption="Recording pending: Review and publish a configuration version. Follow the written guide below.">
  <img src="https://mintcdn.com/threetonelabs-c2efc9c8/RV32i5440UZIaFHA/images/tutorials/recording-pending.webp?fit=max&auto=format&n=RV32i5440UZIaFHA&q=85&s=55f66d2eef49d8c92c9ac46f84bace35" alt="Recording pending for Review and publish a configuration version. No playable video is available yet." width="1600" height="900" className="w-full h-auto aspect-video" loading="lazy" noZoom data-path="images/tutorials/recording-pending.webp" />
</Frame>

## Know the identifiers

| Identifier | What it identifies |
| - | - |
| `agent_id` | The agent resource. |
| `branch_id` | The branch you are reading, editing, or publishing. |
| `version_id` | A published configuration snapshot. |

[Create agent](/api-reference/agents-platform/create-agent) returns `agent_id`, `main_branch_id`, and `initial_version_id`. Keep these identifiers when creating subsequent requests.

## Dashboard working copy

The editor keeps a local working copy while you edit. Review its changes against the latest published version before selecting **Publish**. In **Review Changes**, confirm the branch, add a **Commit message**, and publish the reviewed diff.

A local working copy is not the same resource as a server draft created through the API. Do not assume an unsubmitted editor change is available to another teammate or integration.

## API workflow

<Steps>
  <Step title="Select the branch">
    Read the agent and identify the intended branch. To create a branch, provide `name`, `description`, and `parent_version_id` through [Create agent branch](/api-reference/agents-platform/create-agent-branch).
  </Step>

  <Step title="Prepare the complete draft">
    Use [Create agent draft](/api-reference/agents-platform/create-agent-draft) with an explicit `branch_id` query parameter. A draft is a configuration snapshot containing the agent name, `conversation_config`, `platform_settings`, and `workflow`.

    Start from the selected version and preserve fields you are not changing. Do not treat a complete draft snapshot as a small partial patch.
  </Step>

  <Step title="Review before publication">
    Compare the draft with the branch's current published configuration. Review models, knowledge, tool references, and workflow changes as well as the prompt.

    When combining branch changes, inspect [merge preview](/api-reference/agents-platform/preview-merged-configuration) or [rebase preview](/api-reference/agents-platform/preview-rebased-configuration) before applying them.
  </Step>

  <Step title="Publish and read back">
    Use [Update agent](/api-reference/agents-platform/update-agent) with an explicit `branch_id` query parameter and a useful `version_description`.

    To commit the saved server draft, send a body containing only `version_description`. A request containing other configuration fields publishes those submitted changes from the branch's published tip; it does not commit the saved draft. Review which workflow you intend before sending the request.

    Read the agent and [version metadata](/api-reference/agents-platform/get-agent-version-metadata) back. Confirm the branch, resulting version, and reviewed settings.
  </Step>
</Steps>

<Frame caption="Screenshot pending: Review Changes with a sample configuration diff and the selected branch.">
  <img src="https://mintcdn.com/threetonelabs-c2efc9c8/-FnvNeuT_PFanG1t/images/placeholders/screenshot-pending.svg?fit=max&auto=format&n=-FnvNeuT_PFanG1t&q=85&s=b29809bcbd6979cc43ace35853669b46" alt="Screenshot pending for Review Changes with a sample configuration diff and the selected branch. This illustration is not a product screenshot." width="1600" height="1000" className="w-full h-auto" loading="lazy" noZoom data-path="images/placeholders/screenshot-pending.svg" />
</Frame>

<Note>
  Traffic deployment is currently gated in the documented implementation. Publishing a configuration version does not route live conversations to it. See [current availability](/agents-platform/overview#current-availability).
</Note>

## Discarding and reconciling changes

Use [Delete agent draft](/api-reference/agents-platform/delete-agent-draft) to remove the server draft for the selected branch. Dashboard **Discard changes** operates on the editor's working copy. Check which kind of draft you are changing before discarding it.

If the published version changes while you edit, review the newer version and reconcile your pending changes before publication. Keep a short version description that explains the intended behavior rather than listing only the fields changed.

## Review checklist

Confirm the workspace and branch, inspect the complete diff, check referenced resources, and read the published version back. Retain the agent, branch, and version IDs with any later runtime test evidence so you can identify exactly which configuration was assessed.

## Frequently asked questions

<AccordionGroup>
  <Accordion title="Is the editor working copy a server draft?" id="faq-local-server-draft">No. The editor keeps local pending changes. An API server draft is a separate stored resource on a selected branch.</Accordion>
  <Accordion title="How do I commit the saved server draft?" id="faq-draft-publish-body">Select branch\_id explicitly and send a PATCH body containing only version\_description. Other configuration fields publish submitted changes from the branch tip.</Accordion>
  <Accordion title="Does a published version allocate live traffic?" id="faq-version-deployment">No. A version identifies saved configuration. Traffic allocation and runtime execution require a separate supported path.</Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.