Antonnia Docs
Assistants V2Api reference

API de Branches

Endpoints para gerenciar branches, publicar, fazer merge e rollback

Base URL

https://services.antonnia.com/assistants/api/v2/assistants/{assistant_id}/branches

Criar branch

POST /assistants/{assistant_id}/branches

Cria uma nova branch a partir do HEAD da main. O draft é inicializado com o conteúdo do último commit.

Request body

CampoTipoObrigatórioDescrição
namestringSimNome da branch

Resposta 201

{
  "id": "d4e5f6a1b2c3",
  "assistant_id": "a1b2c3d4e5f6",
  "name": "feature/nova-saudacao",
  "head_commit_id": "c3d4e5f6a1b2",
  "created_at": "2026-03-24T11:00:00Z",
  "updated_at": "2026-03-24T11:00:00Z"
}

Fork branch

POST /assistants/{assistant_id}/branches/{branch_name}/fork

Cria uma nova branch copiando o draft da branch de origem (incluindo mudanças não publicadas).

Request body

CampoTipoObrigatórioDescrição
namestringSimNome da nova branch

Resposta 201

Retorna o objeto Branch da nova branch.


Listar branches

GET /assistants/{assistant_id}/branches

Resposta 200

[
  {
    "id": "b2c3d4e5f6a1",
    "name": "main",
    "head_commit_id": "c3d4e5f6a1b2"
  },
  {
    "id": "d4e5f6a1b2c3",
    "name": "feature/nova-saudacao",
    "head_commit_id": "c3d4e5f6a1b2"
  }
]

Obter snapshot da branch

GET /assistants/{assistant_id}/branches/{branch_name}

Retorna o snapshot publicado (HEAD) da branch — o AssistantSnapshot montado a partir do último commit.

Resposta 200

{
  "context": { ... },
  "graph": { ... },
  "tools": [ ... ],
  "variables": [ ... ]
}

Deletar branch

DELETE /assistants/{assistant_id}/branches/{branch_name}

Deleta a branch e todos os seus draft files.

A branch main não pode ser deletada.

Resposta 204

Sem conteúdo.


Publicar

POST /assistants/{assistant_id}/branches/{branch_name}/publish

Transforma o draft atual em um commit imutável e avança o HEAD da branch.

Request body

CampoTipoObrigatórioDescrição
messagestringNãoDescrição da mudança
author_typestringNão"human", "agent" ou "system" (padrão: "human")
author_idstringNãoID do autor

Exemplo

curl -X POST "https://services.antonnia.com/assistants/api/v2/assistants/$ASSISTANT_ID/branches/$BRANCH_NAME/publish" \
  -H "Authorization: Bearer sk_live_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "Adicionou novo node de classificação",
    "author_type": "human"
  }'
response = httpx.post(
    f"{BASE_URL}/assistants/{assistant_id}/branches/{branch_name}/publish",
    headers=HEADERS,
    json={
        "message": "Adicionou novo node de classificação",
        "author_type": "human",
    },
)

Resposta 200

{
  "commit": {
    "id": "e5f6a1b2c3d4",
    "assistant_id": "a1b2c3d4e5f6",
    "parent_commit_id": "c3d4e5f6a1b2",
    "message": "Adicionou novo node de classificação",
    "author_type": "human",
    "created_at": "2026-03-24T11:30:00Z"
  }
}

Rollback

POST /assistants/{assistant_id}/branches/{branch_name}/rollback

Move o HEAD da branch para um commit anterior e reseta o draft para o estado daquele commit.

Request body

CampoTipoObrigatórioDescrição
commit_idstringSimID do commit de destino

Resposta 200

{
  "commit": {
    "id": "c3d4e5f6a1b2",
    "message": "Versão inicial do assistente de suporte",
    "created_at": "2026-03-24T10:05:00Z"
  }
}

Merge

POST /assistants/{assistant_id}/branches/{branch_name}/merge

Faz merge 3-way do HEAD de uma branch de origem no draft da branch de destino.

Request body

CampoTipoObrigatórioDescrição
source_branch_namestringSimNome da branch de origem
commitbooleanNãoSe true, publica automaticamente após o merge

Resposta 200

Se commit: true, retorna o commit criado. Se commit: false (ou omitido), retorna null.

Erros

StatusDescrição
409Conflito de merge — ambas as branches modificaram os mesmos paths

Exemplo de erro de conflito:

{
  "detail": "Merge conflict on paths: nodes/greeting, tools/check_order"
}

Verificar mudanças

GET /assistants/{assistant_id}/branches/{branch_name}/changes

Verifica se o draft tem mudanças em relação ao HEAD.

Resposta 200

{
  "has_changes": true
}

Obter diff

GET /assistants/{assistant_id}/branches/{branch_name}/diff

Retorna as diferenças entre o draft e o HEAD da branch.

Resposta 200

{
  "diffs": [
    {
      "path": "nodes/greeting",
      "status": "modified",
      "old_content": { "instructions": "Olá!" },
      "new_content": { "instructions": "Olá! Como posso ajudar?" },
      "changes": {
        "instructions": {
          "old": "Olá!",
          "new": "Olá! Como posso ajudar?"
        }
      }
    }
  ]
}

On this page