🛡️ Agent Governance Toolkit: freio e auditoria pros seus agentes de IA
Nível 3 · 🐷 Circe · ⏱️ ~20 min · Pré-requisitos: Python 3.11+, pip, noções de YAML e de agentes/tool calling (não precisa de conta, cartão nem chave de API pra rodar a validação local)
📌 Pra que serve
O Agent Governance Toolkit (AGT) é um kit open source da Microsoft (licença MIT, em public preview, então pode ter mudanças incompatíveis antes da versão GA) que coloca regras em código determinístico entre o agente e as ferramentas dele. Cada chamada de tool, mensagem e delegação é interceptada antes de acontecer.Resolve três problemas: "essa ação é permitida?", "qual agente fez isso?" e "dá pra provar o que aconteceu?". Quem põe agentes autônomos em produção (times de segurança, plataforma e compliance) se beneficia. Pedir "por favor siga as regras" no prompt não é controle, e o AGT não depende disso.
🛠️ Passo a passo
1. Confira o Python. Rode python --version. Você precisa do 3.11 ou superior.
2. Instale o pacote com o extra [full]. Use o comando da seção "Instalação Python" abaixo. Dica: faça isso dentro de um ambiente virtual (python -m venv .venv && source .venv/bin/activate).
3. Crie o policy.yaml. Ele define a ação padrão e as regras. O exemplo abaixo (do README) bloqueia drop, delete e truncate, e exige aprovação do security-team pra send_email. Copie o bloco "Execução rápida" ou o arquivo no fim deste tutorial.
4. Envolva sua ferramenta com govern(). Você precisa de uma função sua (aqui chamada my_tool). Importe govern de agentmesh.governance e faça:
from agentmesh.governance import govern def my_tool(action, table):
... # sua ferramenta de verdade (consulta ao banco, por exemplo)
safe_tool = govern(my_tool, policy="policy.yaml")
5. Teste o caminho permitido.
safe_tool(action="re
ad", table="users") deve executar normalmente, e a decisão vai pro log de auditoria.6. Teste o caminho bloqueado.
safe_tool(action="drop", table="users") deve levantar GovernanceDenied citando a regra block-destructive. Se não bloquear, veja o "Limite honesto" abaixo: o mapeamento entre os argumentos da sua função e action.type é o ponto a conferir na documentação.7. Valide com a CLI
agt. Rode agt doctor (instalação), agt lint-policy policy.yaml (valida o YAML; se tiver uma pasta de políticas, aponte pra ela, como agt lint-policy policies/) e agt verify (checagem OWASP). Em CI, use agt verify --evidence ./agt-evidence.json --strict pra falhar com evidência fraca. O arquivo de evidência é gerado por você no seu pipeline, então confira o formato esperado na documentação.8. Audite seus prompts. Se você tem uma pasta com prompts, rode
agt red-team scan ./prompts/ --min-grade B pra fazer uma auditoria de prompt injection. Ajuste o caminho pra sua pasta real.9. Cresça por camadas. Tudo é opcional: comece com
govern() + auditoria e só adicione identidade (SPIFFE/DID/mTLS), sandbox (anéis de privilégio) e SRE (kill switch, SLOs) conforme o risco aumentar.Se você usa Claude Code, tem plugin: adicione o marketplace e instale o agt-governance (comandos abaixo). Há também SDKs pra TypeScript, .NET, Rust e Go, e adaptadores pra vários frameworks de agentes. A lista completa está na documentação.
💡 Dica: o AGT roda no mesmo processo que o agente (camada de middleware, não de kernel do SO). Em produção, rode cada agente em um container separado pra ter isolamento de verdade.
🔗 Links e instalação
- Fonte: https://github.com/microsoft/agent-governance-toolkit
- Documentação: https://microsoft.github.io/agent-governance-toolkit
- PyPI: https://pypi.org/project/agent-governance-toolkit/
- npm (SDK TypeScript): @microsoft/agent-
Instalação Python:
pip install "agent-governance-toolkit[full]"Outros ambientes (confira o nome exato do pacote no README da pasta de cada SDK no repositório):
npm install @microsoft/agent-governance-sdk
dotnet add package Microsoft.AgentGovernance
cargo add agent-governance
go get github.com/microsoft/agent-governance-toolkit/agent-governance-golangPlugin pro Claude Code (dentro dele):
/plugin marketplace add microsoft/agent-governance-toolkit
/plugin install agt-governance@agent-governance-toolkit⚡ Execução rápida
pip install "agent-governance-toolkit[full]"cat > policy.yaml <<'EOF'
apiVersion: governance.toolkit/v1
name: production-policy
default_action: allow
rules:
- name: block-destructive
condition: "action.type in ['drop', 'delete', 'truncate']"
action: deny
description: "Destructive operations require human approval"
- name: require-approval-for-send
condition: "action.type == 'send_email'"
action: require_approval
approvers: ["security-team"]
EOF
agt doctor
agt lint-policy policy.yaml
Limite honesto: o material é o README, então mostra o essencial, mas não detalha como o govern() mapeia os argumentos da sua função pra action.type. Veja o quickstart na documentação oficial antes de usar em produção.