Guia detalhado sobre como criar e gerenciar agentes no framework CrewAI.
Agent
é uma unidade autônoma que pode:
Researcher
pode ser excelente em coletar e analisar informações, enquanto um agente Writer
pode ser melhor na criação de conteúdo.Atributo | Parâmetro | Tipo | Descrição |
---|---|---|---|
Role (Função) | role | str | Define a função e a área de especialização do agente dentro da equipe. |
Goal (Objetivo) | goal | str | O objetivo individual que guia a tomada de decisão do agente. |
Backstory (História de fundo) | backstory | str | Fornece contexto e personalidade ao agente, enriquecendo as interações. |
LLM (opcional) | llm | Union[str, LLM, Any] | Modelo de linguagem que alimenta o agente. Padrão: modelo especificado em OPENAI_MODEL_NAME ou “gpt-4”. |
Tools (Ferramentas) (opcional) | tools | List[BaseTool] | Capacidades ou funções disponíveis para o agente. Padrão: lista vazia. |
Function Calling LLM (opcional) | function_calling_llm | Optional[Any] | Modelo de linguagem usado para chamada de ferramentas, sobrescreve LLM principal se especificado. |
Max Iterations (opcional) | max_iter | int | Número máximo de iterações antes do agente fornecer sua melhor resposta. Padrão: 20. |
Max RPM (opcional) | max_rpm | Optional[int] | Quantidade máxima de requisições por minuto para evitar limites de taxa. |
Max Execution Time (opcional) | max_execution_time | Optional[int] | Tempo máximo (em segundos) de execução da tarefa. |
Verbose (opcional) | verbose | bool | Habilita logs detalhados de execução para depuração. Padrão: False. |
Allow Delegation (opcional) | allow_delegation | bool | Permite que o agente delegue tarefas para outros agentes. Padrão: False. |
Step Callback (opcional) | step_callback | Optional[Any] | Função chamada após cada passo do agente, sobrescreve callback da equipe. |
Cache (opcional) | cache | bool | Ativa cache para o uso de ferramentas. Padrão: True. |
System Template (opcional) | system_template | Optional[str] | Template personalizado de prompt de sistema para o agente. |
Prompt Template (opcional) | prompt_template | Optional[str] | Template de prompt personalizado para o agente. |
Response Template (opcional) | response_template | Optional[str] | Template de resposta personalizado para o agente. |
Allow Code Execution (opcional) | allow_code_execution | Optional[bool] | Ativa execução de código pelo agente. Padrão: False. |
Max Retry Limit (opcional) | max_retry_limit | int | Número máximo de tentativas (retries) em caso de erro. Padrão: 2. |
Respect Context Window (opcional) | respect_context_window | bool | Mantém as mensagens dentro do tamanho da janela de contexto, resumindo quando necessário. Padrão: True. |
Code Execution Mode (opcional) | code_execution_mode | Literal["safe", "unsafe"] | Modo de execução de código: ‘safe’ (usando Docker) ou ‘unsafe’ (direto). Padrão: ‘safe’. |
Multimodal (opcional) | multimodal | bool | Se o agente suporta capacidades multimodais. Padrão: False. |
Inject Date (opcional) | inject_date | bool | Se deve injetar automaticamente a data atual nas tarefas. Padrão: False. |
Date Format (opcional) | date_format | str | Formato de data utilizado quando inject_date está ativo. Padrão: “%Y-%m-%d” (formato ISO). |
Reasoning (opcional) | reasoning | bool | Se o agente deve refletir e criar um plano antes de executar uma tarefa. Padrão: False. |
Max Reasoning Attempts (opcional) | max_reasoning_attempts | Optional[int] | Número máximo de tentativas de raciocínio antes de executar a tarefa. Se None, tentará até estar pronto. |
Embedder (opcional) | embedder | Optional[Dict[str, Any]] | Configuração do embedder utilizado pelo agente. |
Knowledge Sources (opcional) | knowledge_sources | Optional[List[BaseKnowledgeSource]] | Fontes de conhecimento disponíveis para o agente. |
Use System Prompt (opcional) | use_system_prompt | Optional[bool] | Se deve usar o system prompt (suporte para modelo o1). Padrão: True. |
src/latest_ai_development/config/agents.yaml
e edite o template para atender aos seus requisitos.
{topic}
) serão substituídas pelos valores fornecidos em seus inputs ao executar o crew:CrewBase
:
agents.yaml
) devem ser iguais aos nomes dos métodos no seu código Python.Agent
. Veja um exemplo abrangente mostrando todos os parâmetros disponíveis:
role
, goal
e backstory
são obrigatórios e definem o comportamento do agentellm
determina o modelo de linguagem utilizado (padrão: GPT-4 da OpenAI)memory
: Ative para manter o histórico de conversasrespect_context_window
: Evita problemas com limites de tokensknowledge_sources
: Adicione bases de conhecimento específicas do domíniomax_iter
: Número máximo de tentativas antes da melhor respostamax_execution_time
: Tempo limite em segundosmax_rpm
: Limite de requisições por minutomax_retry_limit
: Tentativas de correção em errosallow_code_execution
: Deve ser True para permitir execução de códigocode_execution_mode
:
"safe"
: Usa Docker (recomendado para produção)"unsafe"
: Execução direta (apenas em ambientes confiáveis)multimodal
: Habilita capacidades multimodais para processar texto e conteúdo visualreasoning
: Permite que o agente reflita e crie planos antes de executar tarefasinject_date
: Injeta a data atual automaticamente nas descrições das tarefassystem_template
: Define o comportamento central do agenteprompt_template
: Estrutura o formato da entradaresponse_template
: Formata as respostas do agentesystem_template
quanto prompt_template
. O response_template
é opcional, mas recomendado para formatação consistente de saída.{role}
, {goal}
e {backstory}
em seus templates. Elas serão automaticamente preenchidas durante a execução.memory
está ativo, o agente manterá o contexto ao longo de múltiplas interações, melhorando a capacidade de lidar com tarefas complexas, em múltiplos passos.respect_context_window
.
respect_context_window=True
)respect_context_window=False
)respect_context_window=True
)"Context length exceeded. Summarizing content to fit the model context window."
respect_context_window=False
)"Context length exceeded. Consider using smaller text or RAG tools from crewai_tools."
respect_context_window=True
(padrão) quando:respect_context_window=False
quando:verbose=True
para visualizar o gerenciamento de contexto em açãoTrue
e False
para descobrir o que funciona melhor para seu casorespect_context_window
conforme deseja e o CrewAI cuida do resto!allow_code_execution
, seja cauteloso com entradas do usuário e sempre as validecode_execution_mode: "safe"
(Docker) em ambientes de produçãomax_execution_time
para evitar loops infinitosrespect_context_window: true
para evitar problemas com limite de tokensmax_rpm
para evitar rate limitingcache: true
para melhorar performance em tarefas repetitivasmax_iter
e max_retry_limit
conforme a complexidade da tarefaknowledge_sources
para informações específicas de domínioembedder
ao usar modelos de embedding personalizadossystem_template
, prompt_template
, response_template
) para controle fino do comportamento do agentereasoning: true
para agentes que precisam planejar e refletir antes de tarefas complexasmax_reasoning_attempts
para controlar as iterações de planejamento (None
para ilimitadas)inject_date: true
para dar consciência temporal a agentes em tarefas que dependem de datasdate_format
usando códigos padrões do Python datetimemultimodal: true
para agentes que precisam processar texto e imagemallow_delegation: true
quando agentes precisarem trabalhar juntosstep_callback
para monitorar e registrar interações dos agentesllm
principal para raciocínio complexofunction_calling_llm
para uso eficiente de ferramentasinject_date: true
para fornecer consciência temporal aos agentes em tarefas sensíveis ao tempodate_format
usando códigos standards de datetime do Pythonreasoning: true
para tarefas complexas que se beneficiam de planejamento e reflexão antecipadosuse_system_prompt: false
para modelos antigos que não suportam mensagens de sistemallm
escolhido suporta as funcionalidades necessárias (como function calling)max_rpm
adequadorespect_context_window