Visão geral
O CrewAI pode planejar em dois níveis:- Planejamento do agente: o agente escreve um plano passo a passo para o próprio trabalho e depois executa e verifica cada passo. Configure com
Agent(planning_config=PlanningConfig(...)). - Planejamento da crew: antes de a crew rodar, um
CrewPlannerescreve um plano para cada tarefa e o adiciona à descrição de cada tarefa. Ative comCrew(planning=True).
Planejamento do agente
Passe umPlanningConfig para um agente para ativar o planejamento:
PlanningConfig ativa o planejamento. Para desativá-lo, deixe planning_config sem valor.
Como funciona
Quando o agente inicia uma tarefa, ele executa um ciclo de planejar e executar:- Planejar. O LLM de planejamento escreve um plano, com a instrução de ficar dentro de
max_stepspassos, e informa se o plano está pronto. - Refinar. Se o plano não estiver pronto, o planejador o refina até que esteja pronto ou até atingir
max_attempts. - Executar. Cada passo vira um item de todo e roda no próprio loop de ferramentas, limitado por
max_step_iterationsestep_timeout. - Observar. Depois de cada passo, o agente verifica o resultado. O quanto ele verifica depende de
reasoning_effort. - Replanejar. Dependendo de
reasoning_effort, um passo que falha ou um plano que deixa de servir faz o agente escrever um novo plano, atémax_replansvezes. - Responder. O agente monta a resposta final a partir dos resultados dos passos.
max_attempts, ou se o LLM de planejamento não suportar function calling, o agente usa o loop de execução padrão.
Esforço de raciocínio
reasoning_effort controla o que acontece depois de cada passo:
observe_steps substitui a revisão por LLM em qualquer nível: True a adiciona ao "low", e False a remove de "medium" e "high". Com observe_steps=True, o "low" também replaneja quando a revisão diz que um passo que falhou precisa de um novo plano.
Opções de configuração
str
padrão:"medium"
Quanto o agente verifica e se adapta depois de cada passo:
"low", "medium" ou "high".bool
padrão:"None"
Executa uma revisão por LLM depois de cada passo.
None revisa apenas em "medium" e "high".int
padrão:"None"
Número máximo de tentativas de planejamento, contando o primeiro plano.
None continua refinando até o planejador marcar o plano como pronto, o que pode gerar mais chamadas ao LLM. Defina um número para limitar.int
padrão:"20"
O limite de passos que o planejador deve respeitar. Ele é passado ao prompt como
{max_steps} e não é aplicado ao plano retornado. Deve ser pelo menos 1.int
padrão:"3"
Número máximo de replanejamentos completos antes de o agente finalizar a resposta.
0 desativa o replanejamento.int
padrão:"15"
Número máximo de iterações do LLM em um único passo. Valores menores deixam os passos mais rápidos, porém menos completos.
int
padrão:"None"
Tempo máximo, em segundos, para um único passo, verificado antes de cada chamada ao LLM no passo. Quando ele é excedido, o passo para e retorna o que tem até então. O passo não é marcado como falho, e uma chamada ao LLM ou a uma ferramenta já em andamento não é interrompida.
None significa sem limite de tempo.str | BaseLLM
padrão:"None"
O LLM usado no planejamento e na revisão depois de cada passo.
None usa o LLM do agente.str
padrão:"None"
Prompt de sistema personalizado para o planejamento.
None usa o prompt padrão.str
padrão:"None"
Prompt personalizado para o primeiro plano. Veja Prompts personalizados abaixo.
str
padrão:"None"
Prompt personalizado para refinar um plano. Veja Prompts personalizados abaixo.
Prompts personalizados
plan_prompt e refine_prompt são preenchidos com str.format do Python. Estes placeholders estão disponíveis:
Se seus prompts não incluírem
{max_steps}, o planejador não recebe nenhum limite de passos.
Planejamento sem tarefa
O planejamento também roda quando você chama um agente diretamente comkickoff(), sem uma Task ou uma Crew. A mensagem de entrada é usada como descrição da tarefa:
O atalho planning=True
Agent(planning=True) ativa uma configuração limitada e de baixo custo. Ela equivale a PlanningConfig(reasoning_effort="low", max_attempts=1): uma tentativa de planejamento e nenhuma revisão por LLM depois de cada passo.
planning_config, ele tem prioridade.
Quando o planejamento falha
Se ocorrer um erro enquanto o agente planeja, o erro é registrado no log e o agente executa a tarefa sem plano.reasoning=True e max_reasoning_attempts estão obsoletos. Veja Reasoning para saber como migrar.Planejamento da crew
Quando o planejamento da crew está ativado, todas as informações da crew são enviadas para umCrewPlanner antes de as tarefas rodarem. Ele planeja cada tarefa passo a passo e adiciona o plano à descrição dessa tarefa.
Usando o planejamento da crew
Adicioneplanning=True à sua Crew. Sempre que a crew é iniciada, o CrewPlanner escreve um plano como o da aba Result e adiciona a parte de cada tarefa à descrição dessa tarefa:
LLM de planejamento
O planejamento da crew usagpt-5.4-mini por padrão. Defina planning_llm com o nome de um modelo ou uma instância de LLM para usar outro modelo, por exemplo Crew(..., planning=True, planning_llm="gpt-5").
