Saltar para o conteúdo

Pesquisar na documentação

Escreva para pesquisar em todas as páginas da documentação.

Menu da documentação
ReferênciaPúblico-alvo · Consumidores da API

Referência da API REST

O catálogo completo de endpoints, com exemplos de pedidos

Esta página foi traduzida automaticamente do inglês. Em caso de divergência, prevalece o original.Ler o original em inglês

Documentação interativa

Todas as aplicações Agent-Lab servem automaticamente OpenAPI 3 — a implementação de referência em http://localhost:18000/docs (ou a sua própria aplicação, onde quer que esteja em execução). O catálogo abaixo documenta os routers incluídos na framework; os seus extra_routers aparecem no mesmo esquema.

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 Criar um novo bearer token
POST /auth/renew Renovar um bearer token existente
POST /auth/exchange Trocar um código de autorização do Microsoft Entra ID (PKCE) por um token da aplicação
GET /auth/profile Obter o perfil do utilizador autenticado
PUT /auth/profile Atualizar o perfil do utilizador autenticado

A configuração do realm/cliente é descrita em Autenticação com Keycloak.

Caminhos sem autenticação: /status/*, /docs, /openapi.json, /mcp, /static, os endpoints well-known de OAuth e o ponto de montagem da SPA — tudo o resto exige um token válido.

Endpoints

Agentes

Criar instâncias de qualquer tipo de agente registado; agent_type é validado dinamicamente face ao registo.

Método Endpoint Descrição
GET /agents/list Listar todas as instâncias de agentes
GET /agents/types Listar os tipos de agente registados (o registo)
GET /agents/{agent_id} Obter uma instância de agente pelo ID
POST /agents/create Criar uma nova instância de agente
POST /agents/update Atualizar as informações básicas de um agente
POST /agents/update_setting Atualizar uma única definição de um agente
POST /agents/{agent_id}/reset_settings Repor as definições predefinidas de um agente
DELETE /agents/delete/{agent_id} Eliminar uma instância de agente
WS /agents/ws/task_updates/{agent_id} Stream WebSocket com atualizações do progresso de tarefas em operações longas

Mensagens

Método Endpoint Descrição
POST /messages/post Enviar uma mensagem a um agente e obter a resposta
POST /messages/list Listar as mensagens de um agente
GET /messages/{message_id} Obter os detalhes expandidos de uma mensagem (respostas, anexo)
DELETE /messages/delete/{message_id} Eliminar uma mensagem

Modelos de linguagem

Método Endpoint Descrição
GET /llms/list Listar os modelos de linguagem configurados
GET /llms/{language_model_id} Obter um modelo de linguagem e as respetivas definições
POST /llms/create Criar um novo modelo de linguagem
POST /llms/update Atualizar a configuração de um modelo de linguagem
POST /llms/update_setting Atualizar uma única definição de um modelo de linguagem
DELETE /llms/delete/{language_model_id} Eliminar um modelo de linguagem

Integrações

Método Endpoint Descrição
GET /integrations/list Listar integrações externas (fornecedores de IA)
GET /integrations/{integration_id} Obter os detalhes de uma integração
POST /integrations/create Criar uma integração (credenciais guardadas no Vault)
DELETE /integrations/delete/{integration_id} Eliminar uma integração

Anexos

Método Endpoint Descrição
GET /attachments/list Listar anexos
GET /attachments/download/{attachment_id} Transferir um anexo
POST /attachments/upload Carregar um ficheiro como anexo
POST /attachments/embeddings Gerar embeddings para um anexo

Estado e MCP

Método Endpoint Descrição
GET /status/liveness Liveness probe
GET /status/readiness Readiness probe
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 pedidos

Criar uma instância de agente — agent_name aceita [a-zA-Z0-9_-]; agent_type tem de ser um tipo registado; 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"
      }' | jq

Enviar 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
      }' | jq

Atualizar uma definição de agente — setting_key aceita [a-zA-Z_-]; setting_value comporta até 16 000 caracteres (é aqui que residem os templates de prompts e os payloads JSON — 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…"
      }' | jq

Convenções

  • Os IDs são UUIDs; todos os endpoints de listagem aceitam corpos JSON, e não query strings.
  • As definiçõ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 forma diferente.
  • O registo é a fonte de verdade para os valores válidos de agent_type — execute GET /agents/types para ver o que a aplicação em execução descobriu (incluindo os seus próprios pacotes através de scan_packages).