API de Agentes
Tipos de agente e atribuição
Agentes são atribuídos a sessões e determinam como as conversas são tratadas. Não existe uma API CRUD independente para agentes — os agentes são gerenciados pelo painel da Antonnia e referenciados por ID nas operações de sessão.
Objeto Agent
Os agentes possuem dois tipos, diferenciados pelo campo type:
Agente IA
{
"id": "agent_abc",
"name": "Support Bot",
"type": "ai",
"assistant_id": "asst_123",
"organization_id": "org_xyz",
"created_at": "2025-01-15T10:30:00Z"
}| Field | Type | Description |
|---|---|---|
id | string | Identificador único do agente |
name | string | Nome de exibição |
type | string | Sempre "ai" |
assistant_id | string | Referência à configuração do assistente |
organization_id | string | Organização proprietária |
Agente Humano
{
"id": "agent_def",
"name": "João Silva",
"type": "human",
"profile_id": "profile_456",
"organization_id": "org_xyz",
"created_at": "2025-01-15T10:30:00Z"
}| Field | Type | Description |
|---|---|---|
id | string | Identificador único do agente |
name | string | Nome de exibição |
type | string | Sempre "human" |
profile_id | string | Referência ao perfil de usuário do operador |
organization_id | string | Organização proprietária |
Usando agentes em sessões
Atribuir na criação
POST /sessions
{
"contact_id": "user_123",
"contact_name": "Jane Doe",
"agent_id": "agent_abc"
}Transferir para outro agente
POST /sessions/{session_id}/transfer
{ "agent_id": "agent_def" }Remover agente
POST /sessions/{session_id}/transfer
{ "agent_id": null }Verificando o tipo do agente
O campo agent da sessão inclui o objeto completo do agente. Use agent.type para determinar o comportamento:
session = httpx.get(f"{BASE_URL}/sessions/{session_id}", headers=HEADERS).json()
if session["agent"] and session["agent"]["type"] == "ai":
# Trigger auto-reply
httpx.post(f"{BASE_URL}/sessions/{session_id}/reply", headers=HEADERS, json={})
elif session["agent"] and session["agent"]["type"] == "human":
# Human agent — no auto-reply needed
pass
else:
# No agent assigned
pass