Antonnia Docs
Assistants V2Api reference

API de Drafts

Endpoints para editar, ler e resetar o rascunho de uma branch

Base URL

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

Aplicar changeset

PATCH /assistants/{assistant_id}/branches/{branch_name}/draft

Aplica múltiplas mudanças no draft em uma única requisição. Todos os campos são opcionais — envie apenas o que mudou.

Request body

CampoTipoDescrição
contextobject{ assistant_name?, assistant_description? }
configobject{ initial_node_id? }
nodesobject{ upsert: NodeInput[], delete: string[] }
toolsobject{ upsert: ToolInput[], delete: string[] }
variablesobject{ upsert: VariableInput[], delete: string[] }

Nodes no mesmo batch podem se referenciar entre si. Por exemplo, um node com next_node: "node-b" pode ser enviado junto com o node "node-b" no mesmo array de upsert.

Atualizado

context e config seguem RFC 7396 JSON Merge Patch: campos omitidos são preservados, null remove a chave, e objetos aninhados são mesclados recursivamente.

Exemplo

curl -X PATCH "https://services.antonnia.com/assistants/api/v2/assistants/$ASSISTANT_ID/branches/$BRANCH_NAME/draft" \
  -H "Authorization: Bearer sk_live_YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "nodes": {
      "upsert": [
        {
          "id": "farewell",
          "name": "Despedida",
          "description": "Node de encerramento",
          "type": "llm",
          "config": {
            "node_type": "llm",
            "instructions": "Agradeça o cliente e encerre a conversa."
          }
        }
      ],
      "delete": ["old_node"]
    }
  }'
response = httpx.patch(
    f"{BASE_URL}/assistants/{assistant_id}/branches/{branch_name}/draft",
    headers=HEADERS,
    json={
        "nodes": {
            "upsert": [
                {
                    "id": "farewell",
                    "name": "Despedida",
                    "description": "Node de encerramento",
                    "type": "llm",
                    "config": {
                        "node_type": "llm",
                        "instructions": "Agradeça o cliente e encerre a conversa.",
                    },
                }
            ],
            "delete": ["old_node"],
        }
    },
)

Resposta 200

{
  "context_updated": false,
  "config_updated": false,
  "nodes_upserted": 1,
  "nodes_deleted": 1,
  "tools_upserted": 0,
  "tools_deleted": 0,
  "variables_upserted": 0,
  "variables_deleted": 0
}

Ler snapshot do draft

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

Retorna o snapshot completo montado a partir de todos os arquivos do draft.

Query parameters

ParâmetroTipoDescrição
prefixstringFiltrar por prefixo de path (ex: nodes/, tools/)

Resposta 200

{
  "context": {
    "assistant_name": "Suporte ao Cliente",
    "assistant_description": "Assistente de suporte para e-commerce"
  },
  "graph": {
    "initial_node_id": "greeting",
    "nodes": { ... }
  },
  "tools": [ ... ],
  "variables": [ ... ]
}

Listar paths do draft

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

Lista apenas os paths dos arquivos no draft, sem conteúdo. Útil para verificar o que existe antes de fazer edições.

Query parameters

ParâmetroTipoDescrição
prefixstringFiltrar por prefixo (opcional)

Resposta 200

["context", "config", "nodes/greeting", "nodes/farewell", "tools/check_order"]

Descartar arquivo

POST /assistants/{assistant_id}/branches/{branch_name}/draft/discard

Reverte um único arquivo do draft para o estado do HEAD.

Request body

CampoTipoObrigatórioDescrição
pathstringSimPath do arquivo (ex: nodes/greeting)

Resposta 204

Sem conteúdo.


Resetar draft

POST /assistants/{assistant_id}/branches/{branch_name}/draft/reset

Reseta todos os arquivos do draft para o estado de um commit específico.

Request body

CampoTipoObrigatórioDescrição
commit_idstringSimID do commit

Resposta 204

Sem conteúdo.


CRUD de Nodes

Listar nodes

GET /draft/nodes

Obter node

GET /draft/nodes/{node_id}

Criar/substituir node

PUT /draft/nodes/{node_id}
CampoTipoObrigatórioDescrição
namestringSimNome do node
descriptionstringNãoDescrição (padrão: "")
typestringSimTipo: llm, classifier, router, logic, skill
configobjectNãoConfiguração específica do tipo
positionobjectNãoPosição no editor visual { x, y }

Atualizar parcialmente

PATCH /draft/nodes/{node_id}

Envia apenas os campos que deseja alterar.

Atualizado

Segue RFC 7396 JSON Merge Patch: campos omitidos são preservados, null remove a chave, objetos aninhados são mesclados recursivamente.

# Troca apenas o model, preserva instructions, next_node, tools, etc.
curl -X PATCH ".../draft/nodes/greeting" \
  -d '{"config": {"model": "openai:gpt-5.4"}}'

# Remove next_node (vira null no config)
curl -X PATCH ".../draft/nodes/greeting" \
  -d '{"config": {"next_node": null}}'

Deletar node

DELETE /draft/nodes/{node_id}

Resposta 204.


CRUD de Tools

Listar tools

GET /draft/tools

Obter tool

GET /draft/tools/{tool_id}

Criar/substituir tool

PUT /draft/tools/{tool_id}
CampoTipoObrigatórioDescrição
namestringSimNome da tool
descriptionstringSimDescrição
requestobjectSim{ url, method } — endpoint da API externa
parametersobjectNãoSchema de parâmetros
should_closebooleanNãoSe a tool encerra a sessão

Atualizar parcialmente

PATCH /draft/tools/{tool_id}

Deletar tool

DELETE /draft/tools/{tool_id}

CRUD de Variables

Listar variables

GET /draft/variables

Obter variable

GET /draft/variables/{variable_id}

Criar/substituir variable

PUT /draft/variables/{variable_id}
CampoTipoObrigatórioDescrição
namestringSimNome da variável
permissionstringSimread_only ou read_write
typestringSimstring, number, boolean, etc.
default_valueanyNãoValor padrão

Atualizar parcialmente

PATCH /draft/variables/{variable_id}

Deletar variable

DELETE /draft/variables/{variable_id}

Config

Obter config

GET /draft/config

Substituir config

PUT /draft/config
CampoTipoDescrição
initial_node_idstringID do node inicial do grafo

Atualizar parcialmente

PATCH /draft/config

Context

Obter context

GET /draft/context

Substituir context

PUT /draft/context
CampoTipoDescrição
assistant_namestringNome do assistente
assistant_descriptionstringDescrição do assistente

Atualizar parcialmente

PATCH /draft/context

On this page