mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-05-01 15:22:37 +00:00
adjust aop to amp docs lang (#4179)
Some checks failed
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Check Documentation Broken Links / Check broken links (push) Has been cancelled
Notify Downstream / notify-downstream (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
Some checks failed
CodeQL Advanced / Analyze (actions) (push) Has been cancelled
CodeQL Advanced / Analyze (python) (push) Has been cancelled
Check Documentation Broken Links / Check broken links (push) Has been cancelled
Notify Downstream / notify-downstream (push) Has been cancelled
Mark stale issues and pull requests / stale (push) Has been cancelled
* adjust aop to amp docs lang * whoop no print
This commit is contained in:
@@ -8,6 +8,7 @@ mode: "wide"
|
||||
## Visão Geral de um Agente
|
||||
|
||||
No framework CrewAI, um `Agent` é uma unidade autônoma que pode:
|
||||
|
||||
- Executar tarefas específicas
|
||||
- Tomar decisões com base em seu papel e objetivo
|
||||
- Utilizar ferramentas para alcançar objetivos
|
||||
@@ -16,15 +17,19 @@ No framework CrewAI, um `Agent` é uma unidade autônoma que pode:
|
||||
- Delegar tarefas, quando permitido
|
||||
|
||||
<Tip>
|
||||
Pense em um agente como um membro especializado da equipe com habilidades, competências e responsabilidades específicas. Por exemplo, um agente `Researcher` pode ser excelente em coletar e analisar informações, enquanto um agente `Writer` pode ser melhor na criação de conteúdo.
|
||||
Pense em um agente como um membro especializado da equipe com habilidades,
|
||||
competências e responsabilidades específicas. Por exemplo, um agente
|
||||
`Researcher` pode ser excelente em coletar e analisar informações, enquanto um
|
||||
agente `Writer` pode ser melhor na criação de conteúdo.
|
||||
</Tip>
|
||||
|
||||
<Note type="info" title="Aprimoramento Empresarial: Construtor Visual de Agentes">
|
||||
O CrewAI AOP inclui um Construtor Visual de Agentes, que simplifica a criação e configuração de agentes sem escrever código. Projete seus agentes visualmente e teste-os em tempo real.
|
||||
O CrewAI AMP inclui um Construtor Visual de Agentes, que simplifica a criação e configuração de agentes sem escrever código. Projete seus agentes visualmente e teste-os em tempo real.
|
||||
|
||||

|
||||
|
||||
O Construtor Visual de Agentes permite:
|
||||
|
||||
- Configuração intuitiva de agentes com interfaces baseadas em formulários
|
||||
- Testes e validação em tempo real
|
||||
- Biblioteca de modelos com tipos de agentes pré-configurados
|
||||
@@ -33,36 +38,36 @@ O Construtor Visual de Agentes permite:
|
||||
|
||||
## Atributos do Agente
|
||||
|
||||
| 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. |
|
||||
| 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. |
|
||||
|
||||
## Criando Agentes
|
||||
|
||||
@@ -137,7 +142,8 @@ class LatestAiDevelopmentCrew():
|
||||
```
|
||||
|
||||
<Note>
|
||||
Os nomes utilizados em seus arquivos YAML (`agents.yaml`) devem ser iguais aos nomes dos métodos no seu código Python.
|
||||
Os nomes utilizados em seus arquivos YAML (`agents.yaml`) devem ser iguais aos
|
||||
nomes dos métodos no seu código Python.
|
||||
</Note>
|
||||
|
||||
### Definição Direta em Código
|
||||
@@ -183,6 +189,7 @@ agent = Agent(
|
||||
Vamos detalhar algumas combinações de parâmetros-chave para casos de uso comuns:
|
||||
|
||||
#### Agente de Pesquisa Básico
|
||||
|
||||
```python Code
|
||||
research_agent = Agent(
|
||||
role="Analista de Pesquisa",
|
||||
@@ -194,6 +201,7 @@ research_agent = Agent(
|
||||
```
|
||||
|
||||
#### Agente de Desenvolvimento de Código
|
||||
|
||||
```python Code
|
||||
dev_agent = Agent(
|
||||
role="Desenvolvedor Python Sênior",
|
||||
@@ -207,6 +215,7 @@ dev_agent = Agent(
|
||||
```
|
||||
|
||||
#### Agente de Análise de Longa Duração
|
||||
|
||||
```python Code
|
||||
analysis_agent = Agent(
|
||||
role="Analista de Dados",
|
||||
@@ -220,6 +229,7 @@ analysis_agent = Agent(
|
||||
```
|
||||
|
||||
#### Agente com Template Personalizado
|
||||
|
||||
```python Code
|
||||
custom_agent = Agent(
|
||||
role="Atendente de Suporte ao Cliente",
|
||||
@@ -232,6 +242,7 @@ custom_agent = Agent(
|
||||
```
|
||||
|
||||
#### Agente Ciente de Data, com Raciocínio
|
||||
|
||||
```python Code
|
||||
strategic_agent = Agent(
|
||||
role="Analista de Mercado",
|
||||
@@ -246,6 +257,7 @@ strategic_agent = Agent(
|
||||
```
|
||||
|
||||
#### Agente de Raciocínio
|
||||
|
||||
```python Code
|
||||
reasoning_agent = Agent(
|
||||
role="Planejador Estratégico",
|
||||
@@ -259,6 +271,7 @@ reasoning_agent = Agent(
|
||||
```
|
||||
|
||||
#### Agente Multimodal
|
||||
|
||||
```python Code
|
||||
multimodal_agent = Agent(
|
||||
role="Analista de Conteúdo Visual",
|
||||
@@ -272,52 +285,65 @@ multimodal_agent = Agent(
|
||||
### Detalhes dos Parâmetros
|
||||
|
||||
#### Parâmetros Críticos
|
||||
|
||||
- `role`, `goal` e `backstory` são obrigatórios e definem o comportamento do agente
|
||||
- `llm` determina o modelo de linguagem utilizado (padrão: GPT-4 da OpenAI)
|
||||
|
||||
#### Memória e Contexto
|
||||
|
||||
- `memory`: Ative para manter o histórico de conversas
|
||||
- `respect_context_window`: Evita problemas com limites de tokens
|
||||
- `knowledge_sources`: Adicione bases de conhecimento específicas do domínio
|
||||
|
||||
#### Controle de Execução
|
||||
|
||||
- `max_iter`: Número máximo de tentativas antes da melhor resposta
|
||||
- `max_execution_time`: Tempo limite em segundos
|
||||
- `max_rpm`: Limite de requisições por minuto
|
||||
- `max_retry_limit`: Tentativas de correção em erros
|
||||
|
||||
#### Execução de Código
|
||||
|
||||
- `allow_code_execution`: Deve ser True para permitir execução de código
|
||||
- `code_execution_mode`:
|
||||
- `"safe"`: Usa Docker (recomendado para produção)
|
||||
- `"unsafe"`: Execução direta (apenas em ambientes confiáveis)
|
||||
|
||||
<Note>
|
||||
Isso executa uma imagem Docker padrão. Se você deseja configurar a imagem Docker, veja a ferramenta Code Interpreter na seção de ferramentas.
|
||||
Adicione a ferramenta de interpretação de código como um parâmetro em ferramentas no agente.
|
||||
Isso executa uma imagem Docker padrão. Se você deseja configurar a imagem
|
||||
Docker, veja a ferramenta Code Interpreter na seção de ferramentas. Adicione a
|
||||
ferramenta de interpretação de código como um parâmetro em ferramentas no
|
||||
agente.
|
||||
</Note>
|
||||
|
||||
#### Funcionalidades Avançadas
|
||||
|
||||
- `multimodal`: Habilita capacidades multimodais para processar texto e conteúdo visual
|
||||
- `reasoning`: Permite que o agente reflita e crie planos antes de executar tarefas
|
||||
- `inject_date`: Injeta a data atual automaticamente nas descrições das tarefas
|
||||
|
||||
#### Templates
|
||||
|
||||
- `system_template`: Define o comportamento central do agente
|
||||
- `prompt_template`: Estrutura o formato da entrada
|
||||
- `response_template`: Formata as respostas do agente
|
||||
|
||||
<Note>
|
||||
Ao usar templates personalizados, assegure-se de definir tanto `system_template` quanto `prompt_template`. O `response_template` é opcional, mas recomendado para formatação consistente de saída.
|
||||
Ao usar templates personalizados, assegure-se de definir tanto
|
||||
`system_template` quanto `prompt_template`. O `response_template` é opcional,
|
||||
mas recomendado para formatação consistente de saída.
|
||||
</Note>
|
||||
|
||||
<Note>
|
||||
Ao usar templates personalizados, você pode usar variáveis como `{role}`, `{goal}` e `{backstory}` em seus templates. Elas serão automaticamente preenchidas durante a execução.
|
||||
Ao usar templates personalizados, você pode usar variáveis como `{role}`, `
|
||||
{goal}` e `{backstory}` em seus templates. Elas serão automaticamente
|
||||
preenchidas durante a execução.
|
||||
</Note>
|
||||
|
||||
## Ferramentas do Agente
|
||||
|
||||
Agentes podem ser equipados com diversas ferramentas para ampliar suas capacidades. O CrewAI suporta ferramentas do:
|
||||
|
||||
- [CrewAI Toolkit](https://github.com/joaomdmoura/crewai-tools)
|
||||
- [LangChain Tools](https://python.langchain.com/docs/integrations/tools)
|
||||
|
||||
@@ -356,7 +382,9 @@ analyst = Agent(
|
||||
```
|
||||
|
||||
<Note>
|
||||
Quando `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.
|
||||
Quando `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.
|
||||
</Note>
|
||||
|
||||
## Gerenciamento da Janela de Contexto
|
||||
@@ -386,6 +414,7 @@ smart_agent = Agent(
|
||||
```
|
||||
|
||||
**O que acontece quando os limites de contexto são excedidos:**
|
||||
|
||||
- ⚠️ **Mensagem de aviso**: `"Context length exceeded. Summarizing content to fit the model context window."`
|
||||
- 🔄 **Resumir automaticamente**: O CrewAI resume o histórico da conversa de forma inteligente
|
||||
- ✅ **Execução contínua**: A execução da tarefa prossegue normalmente com o contexto resumido
|
||||
@@ -407,6 +436,7 @@ strict_agent = Agent(
|
||||
```
|
||||
|
||||
**O que acontece quando os limites de contexto são excedidos:**
|
||||
|
||||
- ❌ **Mensagem de erro**: `"Context length exceeded. Consider using smaller text or RAG tools from crewai_tools."`
|
||||
- 🛑 **Execução interrompida**: A execução da tarefa é parada imediatamente
|
||||
- 🔧 **Intervenção manual necessária**: Você precisará modificar sua abordagem
|
||||
@@ -414,6 +444,7 @@ strict_agent = Agent(
|
||||
### Como Escolher a Melhor Configuração
|
||||
|
||||
#### Use `respect_context_window=True` (padrão) quando:
|
||||
|
||||
- **Processar documentos grandes** que podem ultrapassar os limites de contexto
|
||||
- **Conversas longas** onde certo grau de resumo é aceitável
|
||||
- **Tarefas de pesquisa** onde o contexto geral é mais importante que detalhes exatos
|
||||
@@ -432,6 +463,7 @@ document_processor = Agent(
|
||||
```
|
||||
|
||||
#### Use `respect_context_window=False` quando:
|
||||
|
||||
- **Precisão é crítica** e perda de informação é inaceitável
|
||||
- **Tarefas jurídicas ou médicas** que requerem contexto completo
|
||||
- **Revisão de código** onde detalhes perdidos podem causar bugs
|
||||
@@ -454,6 +486,7 @@ precision_agent = Agent(
|
||||
Ao lidar com conjuntos de dados muito grandes, considere as seguintes estratégias:
|
||||
|
||||
#### 1. Use Ferramentas RAG
|
||||
|
||||
```python Code
|
||||
from crewai_tools import RagTool
|
||||
|
||||
@@ -471,6 +504,7 @@ rag_agent = Agent(
|
||||
```
|
||||
|
||||
#### 2. Use Fontes de Conhecimento
|
||||
|
||||
```python Code
|
||||
# Use fontes de conhecimento ao invés de prompts grandes
|
||||
knowledge_agent = Agent(
|
||||
@@ -494,6 +528,7 @@ knowledge_agent = Agent(
|
||||
### Solucionando Problemas de Contexto
|
||||
|
||||
**Se você receber erros de limite de contexto:**
|
||||
|
||||
```python Code
|
||||
# Solução rápida: Habilite manipulação automática
|
||||
agent.respect_context_window = True
|
||||
@@ -507,6 +542,7 @@ agent.tools = [RagTool()]
|
||||
```
|
||||
|
||||
**Se o resumo automático perder informações importantes:**
|
||||
|
||||
```python Code
|
||||
# Desative o resumo automático e use RAG
|
||||
agent = Agent(
|
||||
@@ -520,28 +556,34 @@ agent = Agent(
|
||||
```
|
||||
|
||||
<Note>
|
||||
O recurso de gerenciamento da janela de contexto funciona automaticamente em segundo plano. Você não precisa chamar funções especiais – basta definir `respect_context_window` conforme deseja e o CrewAI cuida do resto!
|
||||
O recurso de gerenciamento da janela de contexto funciona automaticamente em
|
||||
segundo plano. Você não precisa chamar funções especiais – basta definir
|
||||
`respect_context_window` conforme deseja e o CrewAI cuida do resto!
|
||||
</Note>
|
||||
|
||||
## Considerações e Boas Práticas Importantes
|
||||
|
||||
### Segurança e Execução de Código
|
||||
|
||||
- Ao usar `allow_code_execution`, seja cauteloso com entradas do usuário e sempre as valide
|
||||
- Use `code_execution_mode: "safe"` (Docker) em ambientes de produção
|
||||
- Considere definir limites adequados de `max_execution_time` para evitar loops infinitos
|
||||
|
||||
### Otimização de Performance
|
||||
|
||||
- Use `respect_context_window: true` para evitar problemas com limite de tokens
|
||||
- Ajuste `max_rpm` para evitar rate limiting
|
||||
- Ative `cache: true` para melhorar performance em tarefas repetitivas
|
||||
- Ajuste `max_iter` e `max_retry_limit` conforme a complexidade da tarefa
|
||||
|
||||
### Gerenciamento de Memória e Contexto
|
||||
|
||||
- Considere `knowledge_sources` para informações específicas de domínio
|
||||
- Configure `embedder` ao usar modelos de embedding personalizados
|
||||
- Use templates personalizados (`system_template`, `prompt_template`, `response_template`) para controle fino do comportamento do agente
|
||||
|
||||
### Funcionalidades Avançadas
|
||||
|
||||
- Ative `reasoning: true` para agentes que precisam planejar e refletir antes de tarefas complexas
|
||||
- Defina `max_reasoning_attempts` para controlar as iterações de planejamento (`None` para ilimitadas)
|
||||
- Use `inject_date: true` para dar consciência temporal a agentes em tarefas que dependem de datas
|
||||
@@ -549,6 +591,7 @@ O recurso de gerenciamento da janela de contexto funciona automaticamente em seg
|
||||
- Ative `multimodal: true` para agentes que precisam processar texto e imagem
|
||||
|
||||
### Colaboração entre Agentes
|
||||
|
||||
- Ative `allow_delegation: true` quando agentes precisarem trabalhar juntos
|
||||
- Use `step_callback` para monitorar e registrar interações dos agentes
|
||||
- Considere usar LLMs diferentes para propósitos distintos:
|
||||
@@ -556,6 +599,7 @@ O recurso de gerenciamento da janela de contexto funciona automaticamente em seg
|
||||
- `function_calling_llm` para uso eficiente de ferramentas
|
||||
|
||||
### Consciência de Data e Raciocínio
|
||||
|
||||
- Use `inject_date: true` para fornecer consciência temporal aos agentes em tarefas sensíveis ao tempo
|
||||
- Customize o formato de data com `date_format` usando códigos standards de datetime do Python
|
||||
- Códigos válidos incluem: %Y (ano), %m (mês), %d (dia), %B (nome completo do mês), etc.
|
||||
@@ -563,22 +607,26 @@ O recurso de gerenciamento da janela de contexto funciona automaticamente em seg
|
||||
- Ative `reasoning: true` para tarefas complexas que se beneficiam de planejamento e reflexão antecipados
|
||||
|
||||
### Compatibilidade de Modelos
|
||||
|
||||
- Defina `use_system_prompt: false` para modelos antigos que não suportam mensagens de sistema
|
||||
- Certifique-se que o `llm` escolhido suporta as funcionalidades necessárias (como function calling)
|
||||
|
||||
## Solução de Problemas Comuns
|
||||
|
||||
1. **Limite de Taxa (Rate Limiting)**: Se atingir limites de API:
|
||||
|
||||
- Implemente o `max_rpm` adequado
|
||||
- Use cache para operações repetitivas
|
||||
- Considere agrupar requisições em lote
|
||||
|
||||
2. **Erros de Janela de Contexto**: Se exceder limites de contexto:
|
||||
|
||||
- Habilite `respect_context_window`
|
||||
- Otimize seus prompts
|
||||
- Limpe periodicamente a memória do agente
|
||||
|
||||
3. **Problemas de Execução de Código**: Se a execução de código falhar:
|
||||
|
||||
- Verifique se o Docker está instalado para o modo seguro
|
||||
- Cheque permissões de execução
|
||||
- Revise as configurações do sandbox de código
|
||||
|
||||
@@ -4,7 +4,14 @@ description: Aprenda a usar o CLI do CrewAI para interagir com o CrewAI.
|
||||
icon: terminal
|
||||
mode: "wide"
|
||||
---
|
||||
<Warning>A partir da versão 0.140.0, a plataforma CrewAI AOP iniciou um processo de migração de seu provedor de login. Como resultado, o fluxo de autenticação via CLI foi atualizado. Usuários que utlizam o Google para fazer login, ou que criaram conta após 3 de julho de 2025 não poderão fazer login com versões anteriores da biblioteca `crewai`.</Warning>
|
||||
|
||||
<Warning>
|
||||
A partir da versão 0.140.0, a plataforma CrewAI AMP iniciou um processo de
|
||||
migração de seu provedor de login. Como resultado, o fluxo de autenticação via
|
||||
CLI foi atualizado. Usuários que utlizam o Google para fazer login, ou que
|
||||
criaram conta após 3 de julho de 2025 não poderão fazer login com versões
|
||||
anteriores da biblioteca `crewai`.
|
||||
</Warning>
|
||||
|
||||
## Visão Geral
|
||||
|
||||
@@ -40,6 +47,7 @@ crewai create [OPTIONS] TYPE NAME
|
||||
- `NAME`: Nome do crew ou flow
|
||||
|
||||
Exemplo:
|
||||
|
||||
```shell Terminal
|
||||
crewai create crew my_new_crew
|
||||
crewai create flow my_new_flow
|
||||
@@ -56,6 +64,7 @@ crewai version [OPTIONS]
|
||||
- `--tools`: (Opcional) Mostra a versão instalada das ferramentas do CrewAI
|
||||
|
||||
Exemplo:
|
||||
|
||||
```shell Terminal
|
||||
crewai version
|
||||
crewai version --tools
|
||||
@@ -73,6 +82,7 @@ crewai train [OPTIONS]
|
||||
- `-f, --filename TEXT`: Caminho para um arquivo customizado para treinamento (padrão: "trained_agents_data.pkl")
|
||||
|
||||
Exemplo:
|
||||
|
||||
```shell Terminal
|
||||
crewai train -n 10 -f my_training_data.pkl
|
||||
```
|
||||
@@ -104,6 +114,7 @@ crewai replay [OPTIONS]
|
||||
- `-t, --task_id TEXT`: Reexecuta o crew a partir deste task ID, incluindo todas as tarefas subsequentes
|
||||
|
||||
Exemplo:
|
||||
|
||||
```shell Terminal
|
||||
crewai replay -t task_123456
|
||||
```
|
||||
@@ -133,6 +144,7 @@ crewai reset-memories [OPTIONS]
|
||||
- `-a, --all`: Redefine TODAS as memórias
|
||||
|
||||
Exemplo:
|
||||
|
||||
```shell Terminal
|
||||
crewai reset-memories --long --short
|
||||
crewai reset-memories --all
|
||||
@@ -150,6 +162,7 @@ crewai test [OPTIONS]
|
||||
- `-m, --model TEXT`: Modelo LLM para executar os testes no Crew (padrão: "gpt-4o-mini")
|
||||
|
||||
Exemplo:
|
||||
|
||||
```shell Terminal
|
||||
crewai test -n 5 -m gpt-3.5-turbo
|
||||
```
|
||||
@@ -163,12 +176,17 @@ crewai run
|
||||
```
|
||||
|
||||
<Note>
|
||||
A partir da versão 0.103.0, o comando `crewai run` pode ser usado para executar tanto crews padrão quanto flows. Para flows, ele detecta automaticamente o tipo a partir do pyproject.toml e executa o comando apropriado. Este é agora o modo recomendado de executar tanto crews quanto flows.
|
||||
A partir da versão 0.103.0, o comando `crewai run` pode ser usado para
|
||||
executar tanto crews padrão quanto flows. Para flows, ele detecta
|
||||
automaticamente o tipo a partir do pyproject.toml e executa o comando
|
||||
apropriado. Este é agora o modo recomendado de executar tanto crews quanto
|
||||
flows.
|
||||
</Note>
|
||||
|
||||
<Note>
|
||||
Certifique-se de executar estes comandos a partir do diretório onde seu projeto CrewAI está configurado.
|
||||
Alguns comandos podem exigir configuração ou ajustes adicionais dentro da estrutura do seu projeto.
|
||||
Certifique-se de executar estes comandos a partir do diretório onde seu
|
||||
projeto CrewAI está configurado. Alguns comandos podem exigir configuração ou
|
||||
ajustes adicionais dentro da estrutura do seu projeto.
|
||||
</Note>
|
||||
|
||||
### 9. Chat
|
||||
@@ -180,6 +198,7 @@ Depois de receber os resultados, você pode continuar interagindo com o assisten
|
||||
```shell Terminal
|
||||
crewai chat
|
||||
```
|
||||
|
||||
<Note>
|
||||
Garanta que você execute estes comandos a partir do diretório raiz do seu projeto CrewAI.
|
||||
</Note>
|
||||
@@ -197,28 +216,30 @@ def crew(self) -> Crew:
|
||||
chat_llm="gpt-4o", # LLM para orquestração de chat
|
||||
)
|
||||
```
|
||||
|
||||
</Note>
|
||||
|
||||
### 10. Deploy
|
||||
|
||||
Implemente o crew ou flow no [CrewAI AOP](https://app.crewai.com).
|
||||
Implemente o crew ou flow no [CrewAI AMP](https://app.crewai.com).
|
||||
|
||||
- **Autenticação**: Você precisa estar autenticado para implementar no CrewAI AOP.
|
||||
Você pode fazer login ou criar uma conta com:
|
||||
```shell Terminal
|
||||
crewai login
|
||||
```
|
||||
- **Autenticação**: Você precisa estar autenticado para implementar no CrewAI AMP.
|
||||
Você pode fazer login ou criar uma conta com:
|
||||
|
||||
```shell Terminal
|
||||
crewai login
|
||||
```
|
||||
|
||||
- **Criar um deployment**: Depois de autenticado, você pode criar um deployment para seu crew ou flow a partir da raiz do seu projeto local.
|
||||
```shell Terminal
|
||||
crewai deploy create
|
||||
```
|
||||
- Lê a configuração do seu projeto local.
|
||||
- Solicita a confirmação das variáveis de ambiente (como `OPENAI_API_KEY`, `SERPER_API_KEY`) encontradas localmente. Elas serão armazenadas de forma segura junto ao deployment na plataforma Enterprise. Verifique se suas chaves sensíveis estão corretamente configuradas localmente (por exemplo, em um arquivo `.env`) antes de executar este comando.
|
||||
```shell Terminal
|
||||
crewai deploy create
|
||||
```
|
||||
- Lê a configuração do seu projeto local.
|
||||
- Solicita a confirmação das variáveis de ambiente (como `OPENAI_API_KEY`, `SERPER_API_KEY`) encontradas localmente. Elas serão armazenadas de forma segura junto ao deployment na plataforma Enterprise. Verifique se suas chaves sensíveis estão corretamente configuradas localmente (por exemplo, em um arquivo `.env`) antes de executar este comando.
|
||||
|
||||
### 11. Gerenciamento de Organização
|
||||
|
||||
Gerencie suas organizações no CrewAI AOP.
|
||||
Gerencie suas organizações no CrewAI AMP.
|
||||
|
||||
```shell Terminal
|
||||
crewai org [COMMAND] [OPTIONS]
|
||||
@@ -227,65 +248,80 @@ crewai org [COMMAND] [OPTIONS]
|
||||
#### Comandos:
|
||||
|
||||
- `list`: Liste todas as organizações das quais você faz parte
|
||||
|
||||
```shell Terminal
|
||||
crewai org list
|
||||
```
|
||||
|
||||
- `current`: Exibe sua organização ativa atualmente
|
||||
|
||||
```shell Terminal
|
||||
crewai org current
|
||||
```
|
||||
|
||||
- `switch`: Mude para uma organização específica
|
||||
|
||||
```shell Terminal
|
||||
crewai org switch <organization_id>
|
||||
```
|
||||
|
||||
<Note>
|
||||
Você deve estar autenticado no CrewAI AOP para usar estes comandos de gerenciamento de organização.
|
||||
Você deve estar autenticado no CrewAI AMP para usar estes comandos de
|
||||
gerenciamento de organização.
|
||||
</Note>
|
||||
|
||||
- **Criar um deployment** (continuação):
|
||||
- Vincula o deployment ao respectivo repositório remoto do GitHub (normalmente detectado automaticamente).
|
||||
|
||||
- **Implantar o Crew**: Depois de autenticado, você pode implantar seu crew ou flow no CrewAI AOP.
|
||||
```shell Terminal
|
||||
crewai deploy push
|
||||
```
|
||||
- Inicia o processo de deployment na plataforma CrewAI AOP.
|
||||
- Após a iniciação bem-sucedida, será exibida a mensagem Deployment created successfully! juntamente com o Nome do Deployment e um Deployment ID (UUID) único.
|
||||
- Vincula o deployment ao respectivo repositório remoto do GitHub (normalmente detectado automaticamente).
|
||||
|
||||
- **Implantar o Crew**: Depois de autenticado, você pode implantar seu crew ou flow no CrewAI AMP.
|
||||
|
||||
```shell Terminal
|
||||
crewai deploy push
|
||||
```
|
||||
|
||||
- Inicia o processo de deployment na plataforma CrewAI AMP.
|
||||
- Após a iniciação bem-sucedida, será exibida a mensagem Deployment created successfully! juntamente com o Nome do Deployment e um Deployment ID (UUID) único.
|
||||
|
||||
- **Status do Deployment**: Você pode verificar o status do seu deployment com:
|
||||
```shell Terminal
|
||||
crewai deploy status
|
||||
```
|
||||
Isso retorna o status mais recente do último deployment iniciado (por exemplo, `Building Images for Crew`, `Deploy Enqueued`, `Online`).
|
||||
|
||||
```shell Terminal
|
||||
crewai deploy status
|
||||
```
|
||||
|
||||
Isso retorna o status mais recente do último deployment iniciado (por exemplo, `Building Images for Crew`, `Deploy Enqueued`, `Online`).
|
||||
|
||||
- **Logs do Deployment**: Você pode checar os logs do seu deployment com:
|
||||
```shell Terminal
|
||||
crewai deploy logs
|
||||
```
|
||||
Isso faz o streaming dos logs do deployment para seu terminal.
|
||||
|
||||
```shell Terminal
|
||||
crewai deploy logs
|
||||
```
|
||||
|
||||
Isso faz o streaming dos logs do deployment para seu terminal.
|
||||
|
||||
- **Listar deployments**: Você pode listar todos os seus deployments com:
|
||||
```shell Terminal
|
||||
crewai deploy list
|
||||
```
|
||||
Isto lista todos os seus deployments.
|
||||
|
||||
```shell Terminal
|
||||
crewai deploy list
|
||||
```
|
||||
|
||||
Isto lista todos os seus deployments.
|
||||
|
||||
- **Deletar um deployment**: Você pode deletar um deployment com:
|
||||
```shell Terminal
|
||||
crewai deploy remove
|
||||
```
|
||||
Isto exclui o deployment da plataforma CrewAI AOP.
|
||||
|
||||
```shell Terminal
|
||||
crewai deploy remove
|
||||
```
|
||||
|
||||
Isto exclui o deployment da plataforma CrewAI AMP.
|
||||
|
||||
- **Comando de Ajuda**: Você pode obter ajuda sobre o CLI com:
|
||||
```shell Terminal
|
||||
crewai deploy --help
|
||||
```
|
||||
Isto exibe a mensagem de ajuda para o CLI CrewAI Deploy.
|
||||
```shell Terminal
|
||||
crewai deploy --help
|
||||
```
|
||||
Isto exibe a mensagem de ajuda para o CLI CrewAI Deploy.
|
||||
|
||||
Assista ao vídeo tutorial para uma demonstração passo-a-passo de implantação do seu crew no [CrewAI AOP](http://app.crewai.com) usando o CLI.
|
||||
Assista ao vídeo tutorial para uma demonstração passo-a-passo de implantação do seu crew no [CrewAI AMP](http://app.crewai.com) usando o CLI.
|
||||
|
||||
<iframe
|
||||
className="w-full aspect-video rounded-xl"
|
||||
@@ -298,7 +334,7 @@ Assista ao vídeo tutorial para uma demonstração passo-a-passo de implantaçã
|
||||
|
||||
### 11. Chaves de API
|
||||
|
||||
Ao executar o comando ```crewai create crew```, o CLI primeiro mostrará os 5 provedores de LLM mais comuns e pedirá para você selecionar um.
|
||||
Ao executar o comando `crewai create crew`, o CLI primeiro mostrará os 5 provedores de LLM mais comuns e pedirá para você selecionar um.
|
||||
|
||||
Após selecionar um provedor de LLM, será solicitado que você informe as chaves de API.
|
||||
|
||||
@@ -306,11 +342,11 @@ Após selecionar um provedor de LLM, será solicitado que você informe as chave
|
||||
|
||||
Inicialmente, o CLI solicitará as chaves de API para os seguintes serviços:
|
||||
|
||||
* OpenAI
|
||||
* Groq
|
||||
* Anthropic
|
||||
* Google Gemini
|
||||
* SambaNova
|
||||
- OpenAI
|
||||
- Groq
|
||||
- Anthropic
|
||||
- Google Gemini
|
||||
- SambaNova
|
||||
|
||||
Ao selecionar um provedor, o CLI solicitará que você insira sua chave de API.
|
||||
|
||||
@@ -322,7 +358,7 @@ Ao escolher um provedor, o CLI solicitará que você informe o nome da chave e a
|
||||
|
||||
Veja o seguinte link para o nome de chave de cada provedor:
|
||||
|
||||
* [LiteLLM Providers](https://docs.litellm.ai/docs/providers)
|
||||
- [LiteLLM Providers](https://docs.litellm.ai/docs/providers)
|
||||
|
||||
### 12. Gerenciamento de Configuração
|
||||
|
||||
@@ -335,23 +371,26 @@ crewai config [COMANDO] [OPÇÕES]
|
||||
#### Comandos:
|
||||
|
||||
- `list`: Exibir todos os parâmetros de configuração do CLI
|
||||
|
||||
```shell Terminal
|
||||
crewai config list
|
||||
```
|
||||
|
||||
- `set`: Definir um parâmetro de configuração do CLI
|
||||
|
||||
```shell Terminal
|
||||
crewai config set <chave> <valor>
|
||||
```
|
||||
|
||||
- `reset`: Redefinir todos os parâmetros de configuração do CLI para valores padrão
|
||||
|
||||
```shell Terminal
|
||||
crewai config reset
|
||||
```
|
||||
|
||||
#### Parâmetros de Configuração Disponíveis
|
||||
|
||||
- `enterprise_base_url`: URL base da instância CrewAI AOP
|
||||
- `enterprise_base_url`: URL base da instância CrewAI AMP
|
||||
- `oauth2_provider`: Provedor OAuth2 usado para autenticação (ex: workos, okta, auth0)
|
||||
- `oauth2_audience`: Valor de audiência OAuth2, tipicamente usado para identificar a API ou recurso de destino
|
||||
- `oauth2_client_id`: ID do cliente OAuth2 emitido pelo provedor, usado durante solicitações de autenticação
|
||||
@@ -360,42 +399,51 @@ crewai config reset
|
||||
#### Exemplos
|
||||
|
||||
Exibir configuração atual:
|
||||
|
||||
```shell Terminal
|
||||
crewai config list
|
||||
```
|
||||
|
||||
Exemplo de saída:
|
||||
|
||||
| Parâmetro | Valor | Descrição |
|
||||
| :------------------- | :---------------------- | :------------------------------------------------------------ |
|
||||
| enterprise_base_url | https://app.crewai.com | URL base da instância CrewAI AOP |
|
||||
| org_name | Not set | Nome da organização atualmente ativa |
|
||||
| org_uuid | Not set | UUID da organização atualmente ativa |
|
||||
| oauth2_provider | workos | Provedor OAuth2 (ex.: workos, okta, auth0) |
|
||||
| oauth2_audience | client_01YYY | Audience usada para identificar a API/recurso de destino |
|
||||
| oauth2_client_id | client_01XXX | Client ID OAuth2 emitido pelo provedor (usado na autenticação) |
|
||||
| oauth2_domain | login.crewai.com | Domínio do provedor OAuth2 (ex.: your-org.auth0.com) |
|
||||
| Parâmetro | Valor | Descrição |
|
||||
| :------------------ | :--------------------- | :------------------------------------------------------------- |
|
||||
| enterprise_base_url | https://app.crewai.com | URL base da instância CrewAI AMP |
|
||||
| org_name | Not set | Nome da organização atualmente ativa |
|
||||
| org_uuid | Not set | UUID da organização atualmente ativa |
|
||||
| oauth2_provider | workos | Provedor OAuth2 (ex.: workos, okta, auth0) |
|
||||
| oauth2_audience | client_01YYY | Audience usada para identificar a API/recurso de destino |
|
||||
| oauth2_client_id | client_01XXX | Client ID OAuth2 emitido pelo provedor (usado na autenticação) |
|
||||
| oauth2_domain | login.crewai.com | Domínio do provedor OAuth2 (ex.: your-org.auth0.com) |
|
||||
|
||||
Definir a URL base do enterprise:
|
||||
|
||||
```shell Terminal
|
||||
crewai config set enterprise_base_url https://minha-empresa.crewai.com
|
||||
```
|
||||
|
||||
Definir provedor OAuth2:
|
||||
|
||||
```shell Terminal
|
||||
crewai config set oauth2_provider auth0
|
||||
```
|
||||
|
||||
Definir domínio OAuth2:
|
||||
|
||||
```shell Terminal
|
||||
crewai config set oauth2_domain minha-empresa.auth0.com
|
||||
```
|
||||
|
||||
Redefinir todas as configurações para padrões:
|
||||
|
||||
```shell Terminal
|
||||
crewai config reset
|
||||
```
|
||||
|
||||
<Note>
|
||||
As configurações são armazenadas em `~/.config/crewai/settings.json`. Algumas configurações como nome da organização e UUID são somente leitura e gerenciadas através de comandos de autenticação e organização. Configurações relacionadas ao repositório de ferramentas são ocultas e não podem ser definidas diretamente pelo usuário.
|
||||
As configurações são armazenadas em `~/.config/crewai/settings.json`. Algumas
|
||||
configurações como nome da organização e UUID são somente leitura e
|
||||
gerenciadas através de comandos de autenticação e organização. Configurações
|
||||
relacionadas ao repositório de ferramentas são ocultas e não podem ser
|
||||
definidas diretamente pelo usuário.
|
||||
</Note>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: 'Listeners de Evento'
|
||||
description: 'Acesse eventos do CrewAI para criar integrações e monitoramento personalizados'
|
||||
title: "Listeners de Evento"
|
||||
description: "Acesse eventos do CrewAI para criar integrações e monitoramento personalizados"
|
||||
icon: spinner
|
||||
mode: "wide"
|
||||
---
|
||||
@@ -20,11 +20,12 @@ O CrewAI utiliza uma arquitetura de event bus para emitir eventos ao longo do ci
|
||||
Quando ações específicas ocorrem no CrewAI (como a inicialização de um Crew, um Agent concluindo uma tarefa ou o uso de uma ferramenta), o sistema emite os eventos correspondentes. Você pode registrar handlers para esses eventos para executar código personalizado quando eles acontecerem.
|
||||
|
||||
<Note type="info" title="Aprimoramento Enterprise: Prompt Tracing">
|
||||
O CrewAI AOP fornece o recurso Prompt Tracing, que aproveita o sistema de eventos para rastrear, armazenar e visualizar todos os prompts, respostas e metadados associados. Isso proporciona poderosas capacidades de depuração e transparência nas operações dos seus agentes.
|
||||
O CrewAI AMP fornece o recurso Prompt Tracing, que aproveita o sistema de eventos para rastrear, armazenar e visualizar todos os prompts, respostas e metadados associados. Isso proporciona poderosas capacidades de depuração e transparência nas operações dos seus agentes.
|
||||
|
||||

|
||||
|
||||
Com o Prompt Tracing você pode:
|
||||
|
||||
- Visualizar o histórico completo de todos os prompts enviados ao seu LLM
|
||||
- Monitorar o uso de tokens e custos
|
||||
- Depurar falhas de raciocínio dos agentes
|
||||
@@ -263,7 +264,6 @@ A estrutura do objeto de evento depende do tipo do evento, mas todos herdam de `
|
||||
|
||||
Campos adicionais variam pelo tipo de evento. Por exemplo, `CrewKickoffCompletedEvent` inclui os campos `crew_name` e `output`.
|
||||
|
||||
|
||||
## Uso Avançado: Handlers Escopados
|
||||
|
||||
Para lidar temporariamente com eventos (útil para testes ou operações específicas), você pode usar o context manager `scoped_handlers`:
|
||||
|
||||
@@ -14,11 +14,12 @@ As tarefas fornecem todos os detalhes necessários para sua execução, como des
|
||||
As tarefas dentro do CrewAI podem ser colaborativas, exigindo que múltiplos agentes trabalhem juntos. Isso é gerenciado por meio das propriedades da tarefa e orquestrado pelo processo do Crew, potencializando o trabalho em equipe e a eficiência.
|
||||
|
||||
<Note type="info" title="Aprimoramento Empresarial: Construtor Visual de Tarefas">
|
||||
O CrewAI AOP inclui um Construtor Visual de Tarefas no Crew Studio, que simplifica a criação e o encadeamento de tarefas complexas. Projete seus fluxos de tarefas visualmente e teste-os em tempo real sem necessidade de escrever código.
|
||||
O CrewAI AMP inclui um Construtor Visual de Tarefas no Crew Studio, que simplifica a criação e o encadeamento de tarefas complexas. Projete seus fluxos de tarefas visualmente e teste-os em tempo real sem necessidade de escrever código.
|
||||
|
||||

|
||||
|
||||
O Construtor Visual de Tarefas permite:
|
||||
|
||||
- Criação de tarefas via arrastar-e-soltar
|
||||
- Visualização de dependências e fluxo de tarefas
|
||||
- Testes e validações em tempo real
|
||||
@@ -28,10 +29,12 @@ O Construtor Visual de Tarefas permite:
|
||||
### Fluxo de Execução de Tarefas
|
||||
|
||||
As tarefas podem ser executadas de duas maneiras:
|
||||
|
||||
- **Sequencial**: As tarefas são executadas na ordem em que são definidas
|
||||
- **Hierárquica**: As tarefas são atribuídas aos agentes com base em seus papéis e especialidades
|
||||
|
||||
O fluxo de execução é definido ao criar o crew:
|
||||
|
||||
```python Code
|
||||
crew = Crew(
|
||||
agents=[agent1, agent2],
|
||||
@@ -42,25 +45,25 @@ crew = Crew(
|
||||
|
||||
## Atributos da Tarefa
|
||||
|
||||
| Atributo | Parâmetros | Tipo | Descrição |
|
||||
| :------------------------------- | :---------------- | :--------------------------- | :----------------------------------------------------------------------------------------------------------------- |
|
||||
| **Descrição** | `description` | `str` | Uma declaração clara e concisa do que a tarefa envolve. |
|
||||
| **Saída Esperada** | `expected_output` | `str` | Uma descrição detalhada de como deve ser o resultado da tarefa concluída. |
|
||||
| **Nome** _(opcional)_ | `name` | `Optional[str]` | Um identificador de nome para a tarefa. |
|
||||
| **Agente** _(opcional)_ | `agent` | `Optional[BaseAgent]` | O agente responsável por executar a tarefa. |
|
||||
| **Ferramentas** _(opcional)_ | `tools` | `List[BaseTool]` | As ferramentas/recursos que o agente pode usar para esta tarefa. |
|
||||
| **Contexto** _(opcional)_ | `context` | `Optional[List["Task"]]` | Outras tarefas cujas saídas serão usadas como contexto para esta tarefa. |
|
||||
| **Execução Assíncrona** _(opc.)_ | `async_execution` | `Optional[bool]` | Se a tarefa deve ser executada de forma assíncrona. O padrão é False. |
|
||||
| **Input Humano** _(opcional)_ | `human_input` | `Optional[bool]` | Se a tarefa deve ter uma revisão humana da resposta final do agente. O padrão é False. |
|
||||
| **Markdown** _(opcional)_ | `markdown` | `Optional[bool]` | Se a tarefa deve instruir o agente a retornar a resposta final formatada em Markdown. O padrão é False. |
|
||||
| **Config** _(opcional)_ | `config` | `Optional[Dict[str, Any]]` | Parâmetros de configuração específicos da tarefa. |
|
||||
| **Arquivo de Saída** _(opcional)_| `output_file` | `Optional[str]` | Caminho do arquivo para armazenar a saída da tarefa. |
|
||||
| **Criar Diretório** _(opcional)_ | `create_directory` | `Optional[bool]` | Se deve criar o diretório para output_file caso não exista. O padrão é True. |
|
||||
| **Saída JSON** _(opcional)_ | `output_json` | `Optional[Type[BaseModel]]` | Um modelo Pydantic para estruturar a saída em JSON. |
|
||||
| **Output Pydantic** _(opcional)_ | `output_pydantic` | `Optional[Type[BaseModel]]` | Um modelo Pydantic para a saída da tarefa. |
|
||||
| **Callback** _(opcional)_ | `callback` | `Optional[Any]` | Função/objeto a ser executado após a conclusão da tarefa. |
|
||||
| **Guardrail** _(opcional)_ | `guardrail` | `Optional[Callable]` | Função para validar a saída da tarefa antes de prosseguir para a próxima tarefa. |
|
||||
| **Max Tentativas Guardrail** _(opcional)_ | `guardrail_max_retries` | `Optional[int]` | Número máximo de tentativas quando a validação do guardrail falha. Padrão é 3. |
|
||||
| Atributo | Parâmetros | Tipo | Descrição |
|
||||
| :---------------------------------------- | :---------------------- | :-------------------------- | :------------------------------------------------------------------------------------------------------ |
|
||||
| **Descrição** | `description` | `str` | Uma declaração clara e concisa do que a tarefa envolve. |
|
||||
| **Saída Esperada** | `expected_output` | `str` | Uma descrição detalhada de como deve ser o resultado da tarefa concluída. |
|
||||
| **Nome** _(opcional)_ | `name` | `Optional[str]` | Um identificador de nome para a tarefa. |
|
||||
| **Agente** _(opcional)_ | `agent` | `Optional[BaseAgent]` | O agente responsável por executar a tarefa. |
|
||||
| **Ferramentas** _(opcional)_ | `tools` | `List[BaseTool]` | As ferramentas/recursos que o agente pode usar para esta tarefa. |
|
||||
| **Contexto** _(opcional)_ | `context` | `Optional[List["Task"]]` | Outras tarefas cujas saídas serão usadas como contexto para esta tarefa. |
|
||||
| **Execução Assíncrona** _(opc.)_ | `async_execution` | `Optional[bool]` | Se a tarefa deve ser executada de forma assíncrona. O padrão é False. |
|
||||
| **Input Humano** _(opcional)_ | `human_input` | `Optional[bool]` | Se a tarefa deve ter uma revisão humana da resposta final do agente. O padrão é False. |
|
||||
| **Markdown** _(opcional)_ | `markdown` | `Optional[bool]` | Se a tarefa deve instruir o agente a retornar a resposta final formatada em Markdown. O padrão é False. |
|
||||
| **Config** _(opcional)_ | `config` | `Optional[Dict[str, Any]]` | Parâmetros de configuração específicos da tarefa. |
|
||||
| **Arquivo de Saída** _(opcional)_ | `output_file` | `Optional[str]` | Caminho do arquivo para armazenar a saída da tarefa. |
|
||||
| **Criar Diretório** _(opcional)_ | `create_directory` | `Optional[bool]` | Se deve criar o diretório para output_file caso não exista. O padrão é True. |
|
||||
| **Saída JSON** _(opcional)_ | `output_json` | `Optional[Type[BaseModel]]` | Um modelo Pydantic para estruturar a saída em JSON. |
|
||||
| **Output Pydantic** _(opcional)_ | `output_pydantic` | `Optional[Type[BaseModel]]` | Um modelo Pydantic para a saída da tarefa. |
|
||||
| **Callback** _(opcional)_ | `callback` | `Optional[Any]` | Função/objeto a ser executado após a conclusão da tarefa. |
|
||||
| **Guardrail** _(opcional)_ | `guardrail` | `Optional[Callable]` | Função para validar a saída da tarefa antes de prosseguir para a próxima tarefa. |
|
||||
| **Max Tentativas Guardrail** _(opcional)_ | `guardrail_max_retries` | `Optional[int]` | Número máximo de tentativas quando a validação do guardrail falha. Padrão é 3. |
|
||||
|
||||
## Criando Tarefas
|
||||
|
||||
@@ -81,7 +84,7 @@ crew.kickoff(inputs={'topic': 'AI Agents'})
|
||||
|
||||
Veja um exemplo de configuração de tarefas usando YAML:
|
||||
|
||||
```yaml tasks.yaml
|
||||
````yaml tasks.yaml
|
||||
research_task:
|
||||
description: >
|
||||
Realize uma pesquisa detalhada sobre {topic}
|
||||
@@ -101,7 +104,7 @@ reporting_task:
|
||||
agent: reporting_analyst
|
||||
markdown: true
|
||||
output_file: report.md
|
||||
```
|
||||
````
|
||||
|
||||
Para usar essa configuração YAML em seu código, crie uma classe crew que herda de `CrewBase`:
|
||||
|
||||
@@ -159,7 +162,8 @@ class LatestAiDevelopmentCrew():
|
||||
```
|
||||
|
||||
<Note>
|
||||
Os nomes usados em seus arquivos YAML (`agents.yaml` e `tasks.yaml`) devem corresponder aos nomes dos métodos no seu código Python.
|
||||
Os nomes usados em seus arquivos YAML (`agents.yaml` e `tasks.yaml`) devem
|
||||
corresponder aos nomes dos métodos no seu código Python.
|
||||
</Note>
|
||||
|
||||
### Definição Direta no Código (Alternativa)
|
||||
@@ -196,7 +200,8 @@ reporting_task = Task(
|
||||
```
|
||||
|
||||
<Tip>
|
||||
Especifique diretamente um `agent` para a tarefa ou permita que o processo `hierarchical` do CrewAI decida com base em papéis, disponibilidade, etc.
|
||||
Especifique diretamente um `agent` para a tarefa ou permita que o processo
|
||||
`hierarchical` do CrewAI decida com base em papéis, disponibilidade, etc.
|
||||
</Tip>
|
||||
|
||||
## Saída da Tarefa
|
||||
@@ -209,22 +214,22 @@ Por padrão, o `TaskOutput` incluirá apenas a saída `raw`. Um `TaskOutput` só
|
||||
|
||||
### Atributos do Task Output
|
||||
|
||||
| Atributo | Parâmetros | Tipo | Descrição |
|
||||
| :---------------- | :------------- | :------------------------- | :------------------------------------------------------------------------------------------ |
|
||||
| **Description** | `description` | `str` | Descrição da tarefa. |
|
||||
| **Summary** | `summary` | `Optional[str]` | Resumo da tarefa, gerado automaticamente a partir das primeiras 10 palavras da descrição. |
|
||||
| **Raw** | `raw` | `str` | Saída bruta da tarefa. Este é o formato padrão da saída. |
|
||||
| **Pydantic** | `pydantic` | `Optional[BaseModel]` | Objeto modelo Pydantic representando a saída da tarefa de forma estruturada. |
|
||||
| **JSON Dict** | `json_dict` | `Optional[Dict[str, Any]]` | Dicionário representando a saída da tarefa em JSON. |
|
||||
| **Agent** | `agent` | `str` | O agente que executou a tarefa. |
|
||||
| **Output Format** | `output_format`| `OutputFormat` | O formato da saída da tarefa, podendo ser RAW, JSON e Pydantic. O padrão é RAW. |
|
||||
| Atributo | Parâmetros | Tipo | Descrição |
|
||||
| :---------------- | :-------------- | :------------------------- | :---------------------------------------------------------------------------------------- |
|
||||
| **Description** | `description` | `str` | Descrição da tarefa. |
|
||||
| **Summary** | `summary` | `Optional[str]` | Resumo da tarefa, gerado automaticamente a partir das primeiras 10 palavras da descrição. |
|
||||
| **Raw** | `raw` | `str` | Saída bruta da tarefa. Este é o formato padrão da saída. |
|
||||
| **Pydantic** | `pydantic` | `Optional[BaseModel]` | Objeto modelo Pydantic representando a saída da tarefa de forma estruturada. |
|
||||
| **JSON Dict** | `json_dict` | `Optional[Dict[str, Any]]` | Dicionário representando a saída da tarefa em JSON. |
|
||||
| **Agent** | `agent` | `str` | O agente que executou a tarefa. |
|
||||
| **Output Format** | `output_format` | `OutputFormat` | O formato da saída da tarefa, podendo ser RAW, JSON e Pydantic. O padrão é RAW. |
|
||||
|
||||
### Métodos e Propriedades da Tarefa
|
||||
|
||||
| Método/Propriedade | Descrição |
|
||||
| :----------------- | :--------------------------------------------------------------------------------------------- |
|
||||
| **json** | Retorna a representação da saída da tarefa em JSON como string, se o formato de saída for JSON.|
|
||||
| **to_dict** | Converte as saídas JSON e Pydantic para um dicionário. |
|
||||
| Método/Propriedade | Descrição |
|
||||
| :----------------- | :--------------------------------------------------------------------------------------------------- |
|
||||
| **json** | Retorna a representação da saída da tarefa em JSON como string, se o formato de saída for JSON. |
|
||||
| **to_dict** | Converte as saídas JSON e Pydantic para um dicionário. |
|
||||
| **str** | Retorna a representação em string da saída da tarefa, priorizando Pydantic, depois JSON, depois raw. |
|
||||
|
||||
### Acessando Saídas das Tarefas
|
||||
@@ -280,12 +285,13 @@ formatted_task = Task(
|
||||
```
|
||||
|
||||
Quando `markdown=True`, o agente recebe instruções extras para formatar a saída usando:
|
||||
|
||||
- `#` para títulos
|
||||
- `**texto**` para negrito
|
||||
- `*texto*` para itálico
|
||||
- `-` ou `*` para bullet points
|
||||
- `` `código` `` para código inline
|
||||
- ``` ```linguagem ``` para blocos de código
|
||||
- ` `linguagem ``` para blocos de código
|
||||
|
||||
### Configuração YAML com Markdown
|
||||
|
||||
@@ -296,7 +302,7 @@ analysis_task:
|
||||
expected_output: >
|
||||
Uma análise completa com gráficos e descobertas-chave
|
||||
agent: analyst
|
||||
markdown: true # Habilita formatação em markdown
|
||||
markdown: true # Habilita formatação em markdown
|
||||
output_file: analysis.md
|
||||
```
|
||||
|
||||
@@ -308,7 +314,9 @@ analysis_task:
|
||||
- **Compatibilidade Multi-plataforma**: Markdown é universalmente suportado
|
||||
|
||||
<Note>
|
||||
As instruções de formatação em markdown são adicionadas automaticamente ao prompt da tarefa quando `markdown=True`, então não é necessário detalhar os requisitos de formatação na descrição da tarefa.
|
||||
As instruções de formatação em markdown são adicionadas automaticamente ao
|
||||
prompt da tarefa quando `markdown=True`, então não é necessário detalhar os
|
||||
requisitos de formatação na descrição da tarefa.
|
||||
</Note>
|
||||
|
||||
## Dependências de Tarefas e Contexto
|
||||
@@ -368,6 +376,7 @@ blog_task = Task(
|
||||
### Requisitos da Função Guardrail
|
||||
|
||||
1. **Assinatura da Função**:
|
||||
|
||||
- Deve aceitar exatamente um parâmetro (a saída da tarefa)
|
||||
- Deve retornar uma tupla `(bool, Any)`
|
||||
- Type hints são recomendados, mas opcionais
|
||||
@@ -376,11 +385,10 @@ blog_task = Task(
|
||||
- Em caso de sucesso: retorna uma tupla `(True, resultado_validado)`
|
||||
- Em caso de falha: retorna uma tupla `(False, "mensagem de erro explicando a falha")`
|
||||
|
||||
|
||||
|
||||
### Melhores Práticas de Tratamento de Erros
|
||||
|
||||
1. **Respostas de Erro Estruturadas**:
|
||||
|
||||
```python Code
|
||||
from crewai import TaskOutput, LLMGuardrail
|
||||
|
||||
@@ -396,11 +404,13 @@ def validate_with_context(result: TaskOutput) -> Tuple[bool, Any]:
|
||||
```
|
||||
|
||||
2. **Categorias de Erro**:
|
||||
|
||||
- Use códigos de erro específicos
|
||||
- Inclua contexto relevante
|
||||
- Forneça feedback acionável
|
||||
|
||||
3. **Cadeia de Validação**:
|
||||
|
||||
```python Code
|
||||
from typing import Any, Dict, List, Tuple, Union
|
||||
from crewai import TaskOutput
|
||||
@@ -427,6 +437,7 @@ def complex_validation(result: TaskOutput) -> Tuple[bool, Any]:
|
||||
### Tratamento dos Resultados do Guardrail
|
||||
|
||||
Quando um guardrail retorna `(False, erro)`:
|
||||
|
||||
1. O erro é enviado de volta para o agente
|
||||
2. O agente tenta corrigir o problema
|
||||
3. O processo se repete até:
|
||||
@@ -434,6 +445,7 @@ Quando um guardrail retorna `(False, erro)`:
|
||||
- O número máximo de tentativas ser atingido
|
||||
|
||||
Exemplo com manipulação de tentativas:
|
||||
|
||||
```python Code
|
||||
from typing import Optional, Tuple, Union
|
||||
from crewai import TaskOutput, Task
|
||||
@@ -459,10 +471,12 @@ task = Task(
|
||||
## Obtendo Saídas Estruturadas e Consistentes das Tarefas
|
||||
|
||||
<Note>
|
||||
É importante também observar que a saída da última tarefa de um crew se torna a saída final do próprio crew.
|
||||
É importante também observar que a saída da última tarefa de um crew se torna
|
||||
a saída final do próprio crew.
|
||||
</Note>
|
||||
|
||||
### Usando `output_pydantic`
|
||||
|
||||
A propriedade `output_pydantic` permite que você defina um modelo Pydantic que a saída da tarefa deve seguir. Isso garante que a saída seja não apenas estruturada, mas também validada de acordo com o modelo.
|
||||
|
||||
Veja um exemplo de uso do output_pydantic:
|
||||
@@ -532,18 +546,22 @@ print("Acessando propriedades - Opção 5")
|
||||
print("Blog:", result)
|
||||
|
||||
```
|
||||
|
||||
Neste exemplo:
|
||||
* Um modelo Pydantic Blog é definido com os campos title e content.
|
||||
* A tarefa task1 utiliza a propriedade output_pydantic para especificar que sua saída deve seguir o modelo Blog.
|
||||
* Após executar o crew, você pode acessar a saída estruturada de várias formas, como mostrado.
|
||||
|
||||
- Um modelo Pydantic Blog é definido com os campos title e content.
|
||||
- A tarefa task1 utiliza a propriedade output_pydantic para especificar que sua saída deve seguir o modelo Blog.
|
||||
- Após executar o crew, você pode acessar a saída estruturada de várias formas, como mostrado.
|
||||
|
||||
#### Explicação sobre o acesso à saída
|
||||
1. Indexação estilo dicionário: Acesse os campos diretamente usando result["nome_do_campo"]. Isso funciona porque a classe CrewOutput implementa o método __getitem__.
|
||||
|
||||
1. Indexação estilo dicionário: Acesse os campos diretamente usando result["nome_do_campo"]. Isso funciona porque a classe CrewOutput implementa o método **getitem**.
|
||||
2. Diretamente do modelo Pydantic: Acesse os atributos diretamente do objeto result.pydantic.
|
||||
3. Usando o método to_dict(): Converta a saída para um dicionário e acesse os campos.
|
||||
4. Imprimindo o objeto inteiro: Simplesmente imprima o objeto result para ver a saída estruturada.
|
||||
|
||||
### Usando `output_json`
|
||||
|
||||
A propriedade `output_json` permite definir o formato de saída esperado em JSON. Isso garante que a saída da tarefa seja uma estrutura JSON válida que pode ser facilmente analisada e utilizada na aplicação.
|
||||
|
||||
Veja um exemplo de uso do `output_json`:
|
||||
@@ -603,14 +621,15 @@ print("Blog:", result)
|
||||
```
|
||||
|
||||
Neste exemplo:
|
||||
* Um modelo Pydantic Blog é definido com os campos title e content, usado para especificar a estrutura do JSON de saída.
|
||||
* A tarefa task1 utiliza a propriedade output_json para indicar que espera uma saída JSON que segue o modelo Blog.
|
||||
* Após executar o crew, você pode acessar a saída estruturada em JSON conforme demonstrado.
|
||||
|
||||
- Um modelo Pydantic Blog é definido com os campos title e content, usado para especificar a estrutura do JSON de saída.
|
||||
- A tarefa task1 utiliza a propriedade output_json para indicar que espera uma saída JSON que segue o modelo Blog.
|
||||
- Após executar o crew, você pode acessar a saída estruturada em JSON conforme demonstrado.
|
||||
|
||||
#### Explicação sobre o acesso à saída
|
||||
|
||||
1. Acessando propriedades via indexação de dicionário: Você pode acessar os campos diretamente usando result["nome_do_campo"]. Isso é possível pois a classe CrewOutput implementa o método __getitem__, permitindo tratar a saída como um dicionário. Nesse caso, estamos acessando title e content do resultado.
|
||||
2. Imprimindo o objeto Blog inteiro: Ao imprimir result, você obterá a representação em string do objeto CrewOutput. Como o método __str__ é implementado para retornar a saída em JSON, isso exibirá toda a saída como uma string formatada representando o objeto Blog.
|
||||
1. Acessando propriedades via indexação de dicionário: Você pode acessar os campos diretamente usando result["nome_do_campo"]. Isso é possível pois a classe CrewOutput implementa o método **getitem**, permitindo tratar a saída como um dicionário. Nesse caso, estamos acessando title e content do resultado.
|
||||
2. Imprimindo o objeto Blog inteiro: Ao imprimir result, você obterá a representação em string do objeto CrewOutput. Como o método **str** é implementado para retornar a saída em JSON, isso exibirá toda a saída como uma string formatada representando o objeto Blog.
|
||||
|
||||
---
|
||||
|
||||
@@ -827,8 +846,6 @@ task = Task(
|
||||
)
|
||||
```
|
||||
|
||||
|
||||
|
||||
```python Code
|
||||
@CrewBase
|
||||
class InternalCrew:
|
||||
@@ -872,6 +889,7 @@ task = Task(
|
||||
### Casos Comuns de Uso
|
||||
|
||||
#### Validação de Formato de Dados
|
||||
|
||||
```python Code
|
||||
def validate_email_format(result: str) -> Tuple[bool, Union[str, str]]:
|
||||
"""Garante que a saída contenha um e-mail válido."""
|
||||
@@ -883,6 +901,7 @@ def validate_email_format(result: str) -> Tuple[bool, Union[str, str]]:
|
||||
```
|
||||
|
||||
#### Filtragem de Conteúdo
|
||||
|
||||
```python Code
|
||||
def filter_sensitive_info(result: str) -> Tuple[bool, Union[str, str]]:
|
||||
"""Remove ou valida informações sensíveis."""
|
||||
@@ -894,6 +913,7 @@ def filter_sensitive_info(result: str) -> Tuple[bool, Union[str, str]]:
|
||||
```
|
||||
|
||||
#### Transformação de Dados
|
||||
|
||||
```python Code
|
||||
def normalize_phone_number(result: str) -> Tuple[bool, Union[str, str]]:
|
||||
"""Garante que números de telefone estejam em formato consistente."""
|
||||
@@ -908,6 +928,7 @@ def normalize_phone_number(result: str) -> Tuple[bool, Union[str, str]]:
|
||||
### Recursos Avançados
|
||||
|
||||
#### Encadeando Múltiplas Validações
|
||||
|
||||
```python Code
|
||||
def chain_validations(*validators):
|
||||
"""Encadeia múltiplos validadores."""
|
||||
@@ -932,6 +953,7 @@ task = Task(
|
||||
```
|
||||
|
||||
#### Lógica Customizada de Retentativas
|
||||
|
||||
```python Code
|
||||
task = Task(
|
||||
description="Gerar dados",
|
||||
@@ -987,7 +1009,7 @@ analysis_task:
|
||||
Um relatório financeiro abrangente com insights trimestrais
|
||||
agent: financial_analyst
|
||||
output_file: reports/quarterly/q4_2024_analysis.pdf
|
||||
create_directory: true # Criar automaticamente o diretório 'reports/quarterly/'
|
||||
create_directory: true # Criar automaticamente o diretório 'reports/quarterly/'
|
||||
|
||||
audit_task:
|
||||
description: >
|
||||
@@ -996,18 +1018,20 @@ audit_task:
|
||||
Um relatório de auditoria de conformidade
|
||||
agent: auditor
|
||||
output_file: audit/compliance_report.md
|
||||
create_directory: false # O diretório já deve existir
|
||||
create_directory: false # O diretório já deve existir
|
||||
```
|
||||
|
||||
### Casos de Uso
|
||||
|
||||
**Criação Automática de Diretórios (`create_directory=True`):**
|
||||
|
||||
- Ambientes de desenvolvimento e prototipagem
|
||||
- Geração dinâmica de relatórios com pastas baseadas em datas
|
||||
- Fluxos de trabalho automatizados onde a estrutura de diretórios pode variar
|
||||
- Aplicações multi-tenant com pastas específicas do usuário
|
||||
|
||||
**Gerenciamento Manual de Diretórios (`create_directory=False`):**
|
||||
|
||||
- Ambientes de produção com controles rígidos do sistema de arquivos
|
||||
- Aplicações sensíveis à segurança onde diretórios devem ser pré-configurados
|
||||
- Sistemas com requisitos específicos de permissão
|
||||
|
||||
@@ -17,9 +17,10 @@ Isso inclui ferramentas do [CrewAI Toolkit](https://github.com/joaomdmoura/crewa
|
||||
permitindo desde buscas simples até interações complexas e trabalho em equipe eficiente entre agentes.
|
||||
|
||||
<Note type="info" title="Aprimoramento para Empresas: Repositório de Ferramentas">
|
||||
O CrewAI AOP oferece um Repositório de Ferramentas abrangente, com integrações pré-construídas para sistemas empresariais e APIs comuns. Implemente agentes com ferramentas corporativas em minutos em vez de dias.
|
||||
O CrewAI AMP oferece um Repositório de Ferramentas abrangente, com integrações pré-construídas para sistemas empresariais e APIs comuns. Implemente agentes com ferramentas corporativas em minutos em vez de dias.
|
||||
|
||||
O Repositório de Ferramentas Empresariais inclui:
|
||||
|
||||
- Conectores pré-construídos para sistemas empresariais populares
|
||||
- Interface para criação de ferramentas personalizadas
|
||||
- Controle de versão e funcionalidades de compartilhamento
|
||||
@@ -116,44 +117,45 @@ crew.kickoff()
|
||||
|
||||
Aqui está uma lista das ferramentas disponíveis e suas descrições:
|
||||
|
||||
| Ferramenta | Descrição |
|
||||
| :------------------------------- | :------------------------------------------------------------------------------------------- |
|
||||
| **ApifyActorsTool** | Ferramenta que integra Apify Actors aos seus fluxos de trabalho para web scraping e automação.|
|
||||
| **BrowserbaseLoadTool** | Ferramenta para interação e extração de dados de navegadores web. |
|
||||
| **CodeDocsSearchTool** | Uma ferramenta RAG otimizada para busca em documentações de código e documentos técnicos. |
|
||||
| **CodeInterpreterTool** | Ferramenta para interpretar código Python. |
|
||||
| **ComposioTool** | Permite o uso de ferramentas Composio. |
|
||||
| **CSVSearchTool** | Ferramenta RAG projetada para busca em arquivos CSV, ideal para dados estruturados. |
|
||||
| **DALL-E Tool** | Ferramenta para gerar imagens utilizando a API do DALL-E. |
|
||||
| **DirectorySearchTool** | Ferramenta RAG para busca em diretórios, útil para navegação em sistemas de arquivos. |
|
||||
| **DOCXSearchTool** | Ferramenta RAG voltada para busca em documentos DOCX, ideal para processar arquivos Word. |
|
||||
| **DirectoryReadTool** | Facilita a leitura e processamento de estruturas de diretórios e seus conteúdos. |
|
||||
| **EXASearchTool** | Ferramenta projetada para buscas exaustivas em diversas fontes de dados. |
|
||||
| **FileReadTool** | Permite a leitura e extração de dados de arquivos, suportando diversos formatos. |
|
||||
| **FirecrawlSearchTool** | Ferramenta para buscar páginas web usando Firecrawl e retornar os resultados. |
|
||||
| **FirecrawlCrawlWebsiteTool** | Ferramenta para rastrear páginas web utilizando o Firecrawl. |
|
||||
| **FirecrawlScrapeWebsiteTool** | Ferramenta para extrair o conteúdo de URLs usando Firecrawl. |
|
||||
| **GithubSearchTool** | Ferramenta RAG para buscar em repositórios GitHub, útil para pesquisa de código e documentação.|
|
||||
| **SerperDevTool** | Ferramenta especializada para finalidades de desenvolvimento, com funcionalidades em evolução. |
|
||||
| **TXTSearchTool** | Ferramenta RAG voltada para busca em arquivos de texto (.txt), adaptada para dados não estruturados. |
|
||||
| **JSONSearchTool** | Ferramenta RAG para busca em arquivos JSON, voltada ao manuseio de dados estruturados. |
|
||||
| **LlamaIndexTool** | Permite o uso das ferramentas LlamaIndex. |
|
||||
| **MDXSearchTool** | Ferramenta RAG para busca em arquivos Markdown (MDX), útil para documentação. |
|
||||
| **PDFSearchTool** | Ferramenta RAG para busca em documentos PDF, ideal para processar documentos digitalizados. |
|
||||
| **PGSearchTool** | Ferramenta RAG otimizada para busca em bancos de dados PostgreSQL, adequada para consultas. |
|
||||
| **Vision Tool** | Ferramenta para gerar imagens utilizando a API do DALL-E. |
|
||||
| **RagTool** | Ferramenta RAG de uso geral, capaz de lidar com diferentes fontes e tipos de dados. |
|
||||
| **ScrapeElementFromWebsiteTool** | Permite extrair elementos específicos de sites, útil para extração de dados direcionada. |
|
||||
| **ScrapeWebsiteTool** | Facilita o scraping de sites inteiros, ideal para coleta abrangente de dados. |
|
||||
| **WebsiteSearchTool** | Ferramenta RAG para busca em conteúdos de sites, otimizada para extração de dados web. |
|
||||
| **XMLSearchTool** | Ferramenta RAG para busca em arquivos XML, adequada para formatos de dados estruturados. |
|
||||
| **YoutubeChannelSearchTool** | Ferramenta RAG para busca em canais do YouTube, útil para análise de conteúdo em vídeo. |
|
||||
| **YoutubeVideoSearchTool** | Ferramenta RAG para busca em vídeos do YouTube, ideal para extração de dados de vídeo. |
|
||||
| Ferramenta | Descrição |
|
||||
| :------------------------------- | :--------------------------------------------------------------------------------------------------- |
|
||||
| **ApifyActorsTool** | Ferramenta que integra Apify Actors aos seus fluxos de trabalho para web scraping e automação. |
|
||||
| **BrowserbaseLoadTool** | Ferramenta para interação e extração de dados de navegadores web. |
|
||||
| **CodeDocsSearchTool** | Uma ferramenta RAG otimizada para busca em documentações de código e documentos técnicos. |
|
||||
| **CodeInterpreterTool** | Ferramenta para interpretar código Python. |
|
||||
| **ComposioTool** | Permite o uso de ferramentas Composio. |
|
||||
| **CSVSearchTool** | Ferramenta RAG projetada para busca em arquivos CSV, ideal para dados estruturados. |
|
||||
| **DALL-E Tool** | Ferramenta para gerar imagens utilizando a API do DALL-E. |
|
||||
| **DirectorySearchTool** | Ferramenta RAG para busca em diretórios, útil para navegação em sistemas de arquivos. |
|
||||
| **DOCXSearchTool** | Ferramenta RAG voltada para busca em documentos DOCX, ideal para processar arquivos Word. |
|
||||
| **DirectoryReadTool** | Facilita a leitura e processamento de estruturas de diretórios e seus conteúdos. |
|
||||
| **EXASearchTool** | Ferramenta projetada para buscas exaustivas em diversas fontes de dados. |
|
||||
| **FileReadTool** | Permite a leitura e extração de dados de arquivos, suportando diversos formatos. |
|
||||
| **FirecrawlSearchTool** | Ferramenta para buscar páginas web usando Firecrawl e retornar os resultados. |
|
||||
| **FirecrawlCrawlWebsiteTool** | Ferramenta para rastrear páginas web utilizando o Firecrawl. |
|
||||
| **FirecrawlScrapeWebsiteTool** | Ferramenta para extrair o conteúdo de URLs usando Firecrawl. |
|
||||
| **GithubSearchTool** | Ferramenta RAG para buscar em repositórios GitHub, útil para pesquisa de código e documentação. |
|
||||
| **SerperDevTool** | Ferramenta especializada para finalidades de desenvolvimento, com funcionalidades em evolução. |
|
||||
| **TXTSearchTool** | Ferramenta RAG voltada para busca em arquivos de texto (.txt), adaptada para dados não estruturados. |
|
||||
| **JSONSearchTool** | Ferramenta RAG para busca em arquivos JSON, voltada ao manuseio de dados estruturados. |
|
||||
| **LlamaIndexTool** | Permite o uso das ferramentas LlamaIndex. |
|
||||
| **MDXSearchTool** | Ferramenta RAG para busca em arquivos Markdown (MDX), útil para documentação. |
|
||||
| **PDFSearchTool** | Ferramenta RAG para busca em documentos PDF, ideal para processar documentos digitalizados. |
|
||||
| **PGSearchTool** | Ferramenta RAG otimizada para busca em bancos de dados PostgreSQL, adequada para consultas. |
|
||||
| **Vision Tool** | Ferramenta para gerar imagens utilizando a API do DALL-E. |
|
||||
| **RagTool** | Ferramenta RAG de uso geral, capaz de lidar com diferentes fontes e tipos de dados. |
|
||||
| **ScrapeElementFromWebsiteTool** | Permite extrair elementos específicos de sites, útil para extração de dados direcionada. |
|
||||
| **ScrapeWebsiteTool** | Facilita o scraping de sites inteiros, ideal para coleta abrangente de dados. |
|
||||
| **WebsiteSearchTool** | Ferramenta RAG para busca em conteúdos de sites, otimizada para extração de dados web. |
|
||||
| **XMLSearchTool** | Ferramenta RAG para busca em arquivos XML, adequada para formatos de dados estruturados. |
|
||||
| **YoutubeChannelSearchTool** | Ferramenta RAG para busca em canais do YouTube, útil para análise de conteúdo em vídeo. |
|
||||
| **YoutubeVideoSearchTool** | Ferramenta RAG para busca em vídeos do YouTube, ideal para extração de dados de vídeo. |
|
||||
|
||||
## Criando suas próprias Ferramentas
|
||||
|
||||
<Tip>
|
||||
Desenvolvedores podem criar `ferramentas personalizadas` adaptadas para as necessidades de seus agentes ou utilizar opções pré-construídas.
|
||||
Desenvolvedores podem criar `ferramentas personalizadas` adaptadas para as
|
||||
necessidades de seus agentes ou utilizar opções pré-construídas.
|
||||
</Tip>
|
||||
|
||||
Existem duas formas principais de criar uma ferramenta CrewAI:
|
||||
@@ -248,8 +250,10 @@ def my_tool(question: str) -> str:
|
||||
### Mecanismo de Cache Personalizado
|
||||
|
||||
<Tip>
|
||||
As ferramentas podem implementar opcionalmente uma `cache_function` para ajuste fino do comportamento de cache.
|
||||
Esta função determina quando armazenar resultados em cache com base em condições específicas, oferecendo controle granular sobre a lógica de cache.
|
||||
As ferramentas podem implementar opcionalmente uma `cache_function` para
|
||||
ajuste fino do comportamento de cache. Esta função determina quando armazenar
|
||||
resultados em cache com base em condições específicas, oferecendo controle
|
||||
granular sobre a lógica de cache.
|
||||
</Tip>
|
||||
|
||||
```python Code
|
||||
|
||||
Reference in New Issue
Block a user