Visão geral
Este guia foca em controles nativos do CrewAI que você pode usar para reduzir riscos de segurança em sistemas de produção. O objetivo é simples: manter o comportamento do agente limitado, com privilégio mínimo e auditável.1) Limitar a execução para evitar comportamento descontrolado
Use limites de execução em agentes e crews para que falhas degradem de forma previsível em vez de escalar.Controles recomendados
max_rpm: limitar taxa de requisições aos provedoresmax_iter: limitar ciclos iterativos de raciocínio/ferramentasmax_execution_time: timeout rígido para trabalhos longos
2) Aplicar privilégio mínimo às ferramentas
Evite dar todas as ferramentas a todos os agentes. Dê a cada agente apenas as ferramentas necessárias para sua tarefa.Por que isso importa
- Reduz o raio de impacto de prompt injection ou erros de lógica
- Evita acesso acidental a sistemas não relacionados
- Melhora a rastreabilidade de quem pode fazer o quê
3) Tratar delegação como um limite de confiança
Quandoallow_delegation=True, um agente pode encaminhar trabalho a outros agentes. Isso pode ser útil, mas também é um limite de segurança.
Padrões seguros de delegação
- Mantenha a delegação desativada por padrão
- Ative apenas para papéis que realmente precisam de orquestração
- Combine delegação com restrições claras de tarefa e execução limitada
4) Restringir saídas com schemas e expectativas
Use saídas estruturadas sempre que possível para reduzir respostas ambíguas ou inseguras em texto livre.Controles recomendados
output_pydanticpara saída de Task validada por schemaexpected_outputpara descrever critérios rígidos de aceitação
5) Adicionar supervisão humana para ações de alto impacto
Para operações sensíveis (por exemplo ações financeiras, mutações em produção ou mudanças que afetam clientes), adicione revisão humana no ponto certo do caminho de execução.O que human_input=True faz
human_input=True em uma Task pausa depois que o agente executou suas ferramentas e produziu um resultado. Ele solicita feedback humano sobre a resposta final antes que essa saída seja aceita e finalizada. Não bloqueia a execução de ferramentas — um agente em uma Task com human_input=True ainda pode chamar ferramentas destrutivas ou com efeitos colaterais antes que qualquer humano veja a execução.
Use human_input=True quando quiser que um humano revise, refine ou aprove a saída da Task antes que ela se torne o resultado oficial (por exemplo fluxos de treinamento ou revisão de qualidade).
Quando você precisa de aprovação antes das ferramentas executarem
Para checkpoints como:- Antes de executar ferramentas irreversíveis
- Antes de efeitos colaterais externos (e-mails, tickets, gravações)
- Antes de exceções de política ou segurança
- Tool hooks com
@on(InterceptionPoint.PRE_TOOL_CALL)erequest_human_input()— bloqueia a chamada da ferramenta até aprovação - Execution hooks em execuções de Crew e Flow
- @human_feedback em passos de Flow para aprovação no nível do workflow
verbose=True em agentes envolvidos em fluxos sensíveis para facilitar a inspeção durante depuração e revisão de incidentes.
Checklist operacional
Use este checklist rápido antes do rollout em produção:- Cada agente tem execução limitada (
max_rpm,max_iter,max_execution_time) - O acesso a ferramentas é escopado por papel (sem lista ampla compartilhada)
- A delegação está desativada, salvo quando explicitamente necessária
- Tasks de alto impacto usam
output_pydanticeexpected_outputpreciso - Gates de aprovação pré-execução existem para ferramentas irreversíveis ou com efeito colateral (tool hooks, Flow hooks ou
@human_feedback) -
human_input=Trueé usado apenas onde revisão pós-execução da saída é suficiente - Execuções de agentes são registradas ou rastreadas para revisão pós-incidente
