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
@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
@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
@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
@agent
é usada para decorar métodos que definem e retornam objetos Agent.
5. Definição de Tarefa
@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
@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 arquivoagents.yaml
pode ser estruturado para o agente researcher:
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.