Usando Anotações no crew.py
Aprenda como usar anotações para estruturar corretamente agentes, tarefas e componentes no CrewAI
Este guia explica como utilizar anotações para referenciar corretamente agentes, tarefas e outros componentes no arquivo crew.py
.
Introdução
As anotações no framework CrewAI são utilizadas para decorar classes e métodos, fornecendo metadados e funcionalidades para diversos componentes do seu crew. Essas anotações auxiliam na organização e estruturação do seu código, tornando-o mais legível e fácil de manter.
Anotações Disponíveis
O framework CrewAI fornece as seguintes anotações:
@CrewBase
: Usada para decorar a classe principal do crew.@agent
: Decora métodos que definem e retornam objetos Agent.@task
: Decora métodos que definem e retornam objetos Task.@crew
: Decora o método que cria e retorna o objeto Crew.@llm
: Decora métodos que inicializam e retornam objetos Language Model.@tool
: Decora métodos que inicializam e retornam objetos Tool.@callback
: Utilizada para definir métodos de callback.@output_json
: Utilizada para métodos que retornam dados em JSON.@output_pydantic
: Utilizada para métodos que retornam modelos Pydantic.@cache_handler
: Utilizada para definição de métodos de manipulação de cache.
Exemplos de Uso
Vamos passar por exemplos de como utilizar essas anotações:
1. Classe Base do Crew
A anotação @CrewBase
é usada para decorar a classe principal do crew. Esta classe geralmente contém as configurações e métodos para criação de agentes, tarefas e do próprio crew.
2. Definição de Tool
A anotação @tool
é usada para decorar métodos que retornam objetos tool. Essas ferramentas podem ser usadas por agentes para executar tarefas específicas.
3. Definição de LLM
A anotação @llm
é usada para decorar métodos que inicializam e retornam objetos Language Model. Esses LLMs são utilizados pelos agentes para tarefas de processamento de linguagem natural.
4. Definição de Agente
A anotação @agent
é usada para decorar métodos que definem e retornam objetos Agent.
5. Definição de Tarefa
A anotação @task
é usada para decorar métodos que definem e retornam objetos Task. Esses métodos especificam a configuração da tarefa e o agente responsável por ela.
6. Criação do Crew
A anotação @crew
é usada para decorar o método que cria e retorna o objeto Crew
. Este método reúne todos os componentes (agentes e tarefas) em um crew funcional.
Configuração YAML
As configurações dos agentes geralmente são armazenadas em um arquivo YAML. Veja um exemplo de como o arquivo agents.yaml
pode ser estruturado para o agente researcher:
Esta configuração YAML corresponde ao agente researcher definido na classe LinkedinProfileCrew
. A configuração especifica o papel do agente, objetivo, contexto e outras propriedades, como o LLM e as tools que ele utiliza.
Repare como os campos llm
e tools
no arquivo YAML correspondem aos métodos decorados com @llm
e @tool
na classe Python.
Boas Práticas
- Nomenclatura Consistente: Utilize nomenclatura clara e consistente para seus métodos. Por exemplo, métodos de agentes podem ser nomeados de acordo com suas funções (ex: researcher, reporting_analyst).
- Variáveis de Ambiente: Utilize variáveis de ambiente para informações sensíveis como chaves de API.
- Flexibilidade: Estruture seu crew de forma flexível, permitindo fácil adição ou remoção de agentes e tarefas.
- Correspondência YAML-Código: Assegure que os nomes e estruturas nos arquivos YAML correspondam corretamente aos métodos decorados em seu código Python.
Seguindo essas orientações e utilizando corretamente as anotações, você conseguirá criar crews bem estruturados e de fácil manutenção utilizando o framework CrewAI.