Pular para conteúdo

Capítulo 4.4 — Tool misuse e excessive agency

🎯 Objetivo

Tratar tool misuse e excessive agency como riscos arquiteturais, não como bugs do prompt. A maior parte dos incidentes sérios com agentes em produção começa aqui.

🧠 Conceito

  • Tool misuse. O agente chama uma tool de forma legítima do ponto de vista do schema, mas de forma errada do ponto de vista do negócio: argumentos inválidos, recurso errado, momento errado, tenant errado.
  • Excessive agency. O agente pode fazer mais coisas do que precisa para a tarefa atual. Quanto maior a superfície, maior o risco de tool misuse.
  • Confused deputy. O agente, agindo com seus próprios privilégios, executa ação que o usuário não tinha permissão de pedir.

🛡️ Mitigações

Em camadas, de fora para dentro:

  • Least privilege na identidade do agente (Cap. 4.8). Tokens curtos, escopos mínimos, sem credenciais humanas reusadas.
  • Allowlist explícita de tools por role no harness.
  • Validação de schema dos argumentos antes de qualquer ação.
  • Policy-as-code (Cap. 4.7) decidindo, em runtime, se aquela chamada de tool é permitida, dadas role, tenant, recurso, risco e contexto.
  • Idempotência das tools que modificam estado: chamar duas vezes com o mesmo idempotency_key não duplica efeito.
  • Rate limits por tool, por agente, por tenant.
  • Budgets por tenant e por agente: custo e número de chamadas.
  • Sandbox para execução de código gerado.
  • HITL para ações de alto risco (definir critérios objetivos: valor financeiro, mudança em recurso crítico, contato externo, etc.).
  • Audit trail ligando ação -> token -> policy decision -> resultado.

🚨 Sinais operacionais a monitorar

  • Taxa de chamadas a tools negadas por policy (deve ser >0; se for zero, a policy não está sendo testada).
  • Tentativas de tool fora da allowlist (sintoma de regressão ou ataque).
  • Pico de chamadas a tools sensíveis em janelas curtas.
  • Crescimento súbito de custo por agente ou por tenant.

🧰 Exemplos práticos relacionados (planejados)

  • EX-SEC-03 - simulação de tool misuse com policy bloqueando ação.
  • EX-AGT-06 - agente com policy Rego sidecar bloqueando tool calls.