Skip to main content
Documentação interna para desenvolvedores. Esta página documenta os endpoints da API dos agentes, os requisitos de autenticação, os padrões de consulta do Prisma e as notas de implementação. Não se destina a usuários finais.

Mapa de rotas


Padrão de autenticação

Todos os endpoints do agente usam withPermissionRoute de @zappway/lib/create-route-handler.
LEIA os pontos de extremidade: anyPermission: ['agents.read'] + authMode: 'lightweight' Endpoints WRITE: anyPermission: ['agents.write'] (sem authMode — usa sessão completa) Isolamento da organização: todas as consultas devem ter como escopo req.session.organization.id.

CRUD principal

Listar Agentes

Criar agente

Obtenha agente por ID


SubAPI de habilidades

Principais funções da biblioteca

Lógica do Escopo de Habilidade

Restrição de exclusividade do slug

Ao criar/atualizar um slug, sempre verifique se há conflitos:

Listar tipo de resposta de habilidades


SubAPI de especialistas

Detecção de ciclo

O manipulador PUT /specialists detecta ciclos em profundidade 1 antes de criar uma delegação:

estrutura de configuração de regra especializada

Desativar: remove a regra especializada


Problemas conhecidos/pegadinhas

  • assertAgentBelongsToOrganization — Sempre chame isso antes de qualquer operação de banco de dados específica do agente para evitar vazamentos de dados entre organizações. Será lançado se o agente não corresponder à organização.
  • propose-from-rag usa um contador skipped para propostas que correspondam às habilidades existentes (por slug). O limite é definido em @zappway/lib/agent-skills.
  • Especialistas PUT é IDEMPOTENTE, mas NÃO ESTRITAMENTE ATÔMICO no nível do banco de dados (veja o comentário embutido no código: IDEMPOTENT_BUT_NOT_ATOMIC). Sob alta simultaneidade, duas solicitações paralelas poderiam criar uma delegação duplicada. Um índice exclusivo em nível de banco de dados em (agent_id, type, config->>'targetAgentId') resolveria isso.
  • O status lastReviewedAt só é atualizado quando o status muda para active ou archived, e não em atualizações gerais de PATCH.

Índices Prisma usados


Referência de erro