OdisseIA100%0← todas as jornadas
Nível 3 · 🐷 Circe⏱️ ~20 minProgramação

🛡️ 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

governance-sdk

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-golang

Plugin 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.

Espalhe esta jornada WhatsApp Telegram X LinkedIn
⚓ Fonte original💬 Ver e comentar no Discord

Essa jornada nasceu na comunidade — entra que é grátis e tem gente remando junto.

Entrar no Discord da OdisseIA