Documentação interativa
Toda aplicação Agent-Lab serve OpenAPI 3 automaticamente — a implementação de
referência em http://localhost:18000/docs (ou a sua
própria aplicação, onde quer que ela rode). O catálogo abaixo documenta os routers
nativos do framework; seus extra_routers aparecem no mesmo schema.
Autenticação
Quando auth.enabled é true (consulte a Referência de configuração),
as rotas exigem um bearer token do Keycloak. O router /auth só é montado quando a
autenticação está ativada:
TOKEN=$(curl -s -X POST https://<host>/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "…", "password": "…"}' | jq -r '.access_token')
curl -s https://<host>/agents/list -H "Authorization: Bearer $TOKEN" | jq| Método | Endpoint | Descrição |
|---|---|---|
| POST | /auth/login |
Cria um novo bearer token |
| POST | /auth/renew |
Renova um bearer token existente |
| POST | /auth/exchange |
Troca um authorization code do Microsoft Entra ID (PKCE) por um token da aplicação |
| GET | /auth/profile |
Obtém o perfil do usuário autenticado |
| PUT | /auth/profile |
Atualiza o perfil do usuário autenticado |
A configuração do realm/client é explicada em Autenticação com Keycloak.
Caminhos sem autenticação: /status/*, /docs, /openapi.json, /mcp, /static,
os endpoints well-known do OAuth e o mount da SPA — todo o resto exige um token válido.
Endpoints
Agentes
Crie instâncias de qualquer tipo de agente registrado; agent_type é validado
dinamicamente contra o registro.
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /agents/list |
Lista todas as instâncias de agentes |
| GET | /agents/types |
Lista os tipos de agentes registrados (o registro) |
| GET | /agents/{agent_id} |
Obtém uma instância de agente pelo ID |
| POST | /agents/create |
Cria uma nova instância de agente |
| POST | /agents/update |
Atualiza as informações básicas de um agente |
| POST | /agents/update_setting |
Atualiza uma única configuração do agente |
| POST | /agents/{agent_id}/reset_settings |
Restaura as configurações padrão de um agente |
| DELETE | /agents/delete/{agent_id} |
Exclui uma instância de agente |
| WS | /agents/ws/task_updates/{agent_id} |
Stream WebSocket com atualizações de progresso de tarefas em operações longas |
Mensagens
| Método | Endpoint | Descrição |
|---|---|---|
| POST | /messages/post |
Envia uma mensagem a um agente e obtém a resposta |
| POST | /messages/list |
Lista as mensagens de um agente |
| GET | /messages/{message_id} |
Obtém os detalhes expandidos de uma mensagem (respostas, anexo) |
| DELETE | /messages/delete/{message_id} |
Exclui uma mensagem |
Modelos de linguagem
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /llms/list |
Lista os modelos de linguagem configurados |
| GET | /llms/{language_model_id} |
Obtém um modelo de linguagem e suas configurações |
| POST | /llms/create |
Cria um novo modelo de linguagem |
| POST | /llms/update |
Atualiza a configuração de um modelo de linguagem |
| POST | /llms/update_setting |
Atualiza uma única configuração do modelo de linguagem |
| DELETE | /llms/delete/{language_model_id} |
Exclui um modelo de linguagem |
Integrações
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /integrations/list |
Lista as integrações externas (fornecedores de IA) |
| GET | /integrations/{integration_id} |
Obtém os detalhes de uma integração |
| POST | /integrations/create |
Cria uma integração (credenciais armazenadas no Vault) |
| DELETE | /integrations/delete/{integration_id} |
Exclui uma integração |
Anexos
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /attachments/list |
Lista os anexos |
| GET | /attachments/download/{attachment_id} |
Faz o download de um anexo |
| POST | /attachments/upload |
Faz o upload de um arquivo anexo |
| POST | /attachments/embeddings |
Gera embeddings para um anexo |
Status e MCP
| Método | Endpoint | Descrição |
|---|---|---|
| GET | /status/liveness |
Probe de liveness |
| GET | /status/readiness |
Probe de readiness |
| GET | /status/metrics |
Métricas do Prometheus |
| * | /mcp |
O servidor MCP (Streamable HTTP) |
| GET | /.well-known/oauth-protected-resource/mcp |
Metadados OAuth para clientes MCP |
Exemplos de requisição
Criar uma instância de agente — agent_name aceita [a-zA-Z0-9_-];
agent_type deve ser um tipo registrado; language_model_id é opcional:
curl -s -X POST http://localhost:18000/agents/create \
-H "Content-Type: application/json" \
-d '{
"agent_name": "support-agent-1",
"agent_type": "coordinator_planner_supervisor",
"language_model_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}' | jqEnviar uma mensagem — message_role é um de human, assistant, tool;
attachment_id é opcional:
curl -s -X POST http://localhost:18000/messages/post \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"message_role": "human",
"message_content": "Summarize the attached report.",
"attachment_id": null
}' | jqAtualizar uma configuração do agente — setting_key aceita [a-zA-Z_-];
setting_value comporta até 16.000 caracteres (templates de prompt e payloads JSON
ficam aqui — consulte o Modelo de domínio de entidades):
curl -s -X POST http://localhost:18000/agents/update_setting \
-H "Content-Type: application/json" \
-d '{
"agent_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"setting_key": "system_prompt",
"setting_value": "You are a concise research assistant…"
}' | jqConvenções
- IDs são UUIDs; todos os endpoints de listagem aceitam corpos JSON, e não query strings.
- Configurações são pares chave-valor persistidos com o agente ou o modelo — é assim que a mesma implementação executa muitas instâncias configuradas de formas diferentes.
- O registro é a fonte da verdade para os valores válidos de
agent_type— executeGET /agents/typespara ver o que a aplicação em execução descobriu (incluindo seus próprios pacotes viascan_packages).