Antonnia Docs
Assistants V2Concepts

Branches

Como branches organizam versões paralelas de um assistente

Uma branch é um ponteiro nomeado para um commit. Cada branch mantém seu próprio draft (rascunho) e HEAD (último commit publicado).

Objeto Branch

{
  "id": "b2c3d4e5f6a1",
  "assistant_id": "a1b2c3d4e5f6",
  "name": "main",
  "head_commit_id": "c3d4e5f6a1b2",
  "created_at": "2026-03-24T10:00:00Z",
  "updated_at": "2026-03-24T10:05:00Z"
}
CampoDescrição
idIdentificador único da branch
nameNome da branch (ex: main, feature/nova-saudacao)
head_commit_idÚltimo commit publicado. null se nunca foi publicado.

Branch main

Todo assistente começa com uma branch main. Esta é a branch de produção — o endpoint GET /assistants/{id}/runtime sempre lê o HEAD da main.

A branch main não pode ser deletada.

Ciclo de vida

Criar branch → Editar draft → Publicar → (Merge na main)
                    ↑              │
                    └── continuar ─┘

1. Criar

Ao criar uma branch, o draft é inicializado com o conteúdo do HEAD da main. Você pode criar a partir de um nome:

POST /assistants/{id}/branches
{ "name": "feature/nova-saudacao" }

2. Fork

Se quiser copiar o draft de uma branch existente (incluindo mudanças não publicadas):

POST /assistants/{id}/branches/{branch_name}/fork
{ "name": "experiment/variacao-a" }

3. Publicar

Transforma o draft atual em um commit imutável e avança o HEAD:

POST /assistants/{id}/branches/{branch_name}/publish
{
  "message": "Melhorou a saudação inicial",
  "author_type": "human"
}

4. Merge

Para levar as mudanças de uma branch para outra (tipicamente para a main):

POST /assistants/{id}/branches/{target_branch_name}/merge
{
  "source_branch_name": "feature_branch_name",
  "commit": true
}

O merge faz uma comparação 3-way (ancestor, source, target) e aplica as mudanças no draft da branch de destino. Se commit for true, publica automaticamente após o merge.

Se ambas as branches modificaram o mesmo path, o merge retorna um erro 409 Conflict com a lista de paths em conflito. Resolva os conflitos manualmente editando o draft antes de tentar novamente.

5. Rollback

Para reverter o HEAD para um commit anterior:

POST /assistants/{id}/branches/{branch_name}/rollback
{ "commit_id": "commit_anterior_id" }

O rollback atualiza o HEAD e reseta o draft para o estado daquele commit.

Verificando mudanças

Antes de publicar, verifique se há mudanças pendentes no draft:

GET /assistants/{id}/branches/{branch_name}/changes
→ { "has_changes": true }

Para ver o diff detalhado entre o draft e o HEAD:

GET /assistants/{id}/branches/{branch_name}/diff
→ { "diffs": [...] }

Relacionados

  • Drafts — como editar o conteúdo de uma branch
  • API de Branches — referência completa dos endpoints

On this page