Visão Geral
Knowledge no CrewAI é um sistema poderoso que permite que agentes de IA acessem e utilizem fontes de informação externas durante suas tarefas. Pense nisso como dar aos seus agentes uma biblioteca de referência que eles podem consultar enquanto trabalham.Principais benefícios de usar Knowledge:
- Aprimorar agentes com informações específicas do domínio
- Apoiar decisões com dados do mundo real
- Manter contexto entre conversas
- Fundamentar respostas em informações factuais
Exemplos de Início Rápido
Exemplo Básico de Knowledge com String
Code
Exemplo de Knowledge com Conteúdo Web
Você precisa instalar
docling para o seguinte exemplo funcionar: uv add doclingCode
Fontes de Knowledge Suportadas
O CrewAI suporta vários tipos de fontes de knowledge prontas para uso:Fontes de Texto
- Strings brutas
- Arquivos de texto (.txt)
- Documentos PDF
Dados Estruturados
- Arquivos CSV
- Planilhas Excel
- Documentos JSON
Fonte de Knowledge de Arquivo de Texto
Fonte de Knowledge PDF
Fonte de Knowledge CSV
Fonte de Knowledge Excel
Fonte de Knowledge JSON
Certifique-se de criar a pasta ./knowledge. Todos os arquivos de origem (ex: .txt, .pdf, .xlsx, .json) devem ser colocados nesta pasta para gerenciamento centralizado.
Knowledge de Agente vs Crew: Guia Completo
Entendendo os Níveis de Knowledge: O CrewAI suporta knowledge tanto no nível de agente quanto de crew. Esta seção esclarece exatamente como cada um funciona, quando são inicializados, e aborda equívocos comuns sobre dependências.
Como a Inicialização de Knowledge Realmente Funciona
Aqui está exatamente o que acontece quando você usa knowledge:Knowledge no Nível do Agente (Independente)
O Que Acontece Durante crew.kickoff()
Quando você chama crew.kickoff(), aqui está a sequência exata:
Independência de Armazenamento
Cada nível de knowledge usa coleções de armazenamento independentes:Exemplos Completos Funcionais
Exemplo 1: Knowledge Apenas do Agente
Exemplo 2: Knowledge Tanto do Agente Quanto da Crew
Exemplo 3: Múltiplos Agentes com Knowledge Diferente
Configuração de Knowledge
Você pode configurar a configuração de knowledge para a crew ou agente.Code
Parâmetros de Knowledge Suportados
Lista de fontes de knowledge que fornecem conteúdo para ser armazenado e consultado. Pode incluir PDF, CSV, Excel, JSON, arquivos de texto ou conteúdo de string.
Nome da coleção onde o knowledge será armazenado. Usado para identificar diferentes conjuntos de knowledge. Padrão é “knowledge” se não fornecido.
Configuração de armazenamento personalizada para gerenciar como o knowledge é armazenado e recuperado. Se não fornecido, um armazenamento padrão será criado.
Transparência do Armazenamento de Knowledge
Entendendo o Armazenamento de Knowledge: O CrewAI armazena automaticamente as fontes de knowledge em diretórios específicos da plataforma usando ChromaDB para armazenamento vetorial. Entender essas localizações e padrões ajuda com implantações de produção, depuração e gerenciamento de armazenamento.
Onde o CrewAI Armazena Arquivos de Knowledge
Por padrão, o CrewAI usa o mesmo sistema de armazenamento que a memória, armazenando knowledge em diretórios específicos da plataforma:Localizações de Armazenamento Padrão por Plataforma
macOS:Encontrando Sua Localização de Armazenamento de Knowledge
Para ver exatamente onde o CrewAI está armazenando seus arquivos de knowledge:Controlando Localizações de Armazenamento de Knowledge
Opção 1: Variável de Ambiente (Recomendado)
Opção 2: Armazenamento de Knowledge Personalizado
Opção 3: Armazenamento de Knowledge Específico do Projeto
Comportamento Padrão do Provedor de Embedding
Provedor de Embedding Padrão: O CrewAI usa por padrão embeddings da OpenAI (
text-embedding-3-small) para armazenamento de knowledge, mesmo quando usa diferentes provedores de LLM. Você pode facilmente personalizar isso para corresponder à sua configuração.Entendendo o Comportamento Padrão
Personalizando Provedores de Embedding de Knowledge
Configurando Embeddings do Azure OpenAI
Ao usar embeddings do Azure OpenAI:- Certifique-se de implantar o modelo de embedding na plataforma Azure primeiro
- Então você precisa usar a seguinte configuração:
Recursos Avançados
Reescrita de Consulta
O CrewAI implementa um mecanismo inteligente de reescrita de consulta para otimizar a recuperação de knowledge. Quando um agente precisa pesquisar nas fontes de knowledge, o prompt da tarefa bruto é automaticamente transformado em uma consulta de pesquisa mais eficaz.Como a Reescrita de Consulta Funciona
- Quando um agente executa uma tarefa com fontes de knowledge disponíveis, o método
_get_knowledge_search_queryé acionado - O LLM do agente é usado para transformar o prompt original da tarefa em uma consulta de pesquisa otimizada
- Esta consulta otimizada é então usada para recuperar informações relevantes das fontes de knowledge
Benefícios da Reescrita de Consulta
Precisão de Recuperação Melhorada
Ao focar em conceitos-chave e remover conteúdo irrelevante, a reescrita de consulta ajuda a recuperar informações mais relevantes.
Consciência de Contexto
As consultas reescritas são projetadas para ser mais específicas e conscientes do contexto para recuperação de banco de dados vetorial.
Exemplo
Eventos de Knowledge
O CrewAI emite eventos durante o processo de recuperação de knowledge que você pode escutar usando o sistema de eventos. Esses eventos permitem que você monitore, depure e analise como o knowledge está sendo recuperado e usado pelos seus agentes.Eventos de Knowledge Disponíveis
- KnowledgeRetrievalStartedEvent: Emitido quando um agente começa a recuperar knowledge das fontes
- KnowledgeRetrievalCompletedEvent: Emitido quando a recuperação de knowledge é concluída, incluindo a consulta usada e o conteúdo recuperado
- KnowledgeQueryStartedEvent: Emitido quando uma consulta às fontes de knowledge começa
- KnowledgeQueryCompletedEvent: Emitido quando uma consulta é concluída com sucesso
- KnowledgeQueryFailedEvent: Emitido quando uma consulta às fontes de knowledge falha
- KnowledgeSearchQueryFailedEvent: Emitido quando uma consulta de pesquisa falha
Exemplo: Monitorando Recuperação de Knowledge
Fontes de Knowledge Personalizadas
O CrewAI permite que você crie fontes de knowledge personalizadas para qualquer tipo de dados estendendo a classeBaseKnowledgeSource. Vamos criar um exemplo prático que busca e processa artigos de notícias espaciais.
Exemplo de Fonte de Knowledge de Notícias Espaciais
Depuração e Solução de Problemas
Depurando Problemas de Knowledge
Verificar Inicialização de Knowledge do Agente
Verificar Localizações de Armazenamento de Knowledge
Testar Recuperação de Knowledge
Inspecionar Coleções de Knowledge
Verificar Processamento de Knowledge
Problemas Comuns de Armazenamento de Knowledge
Erros “Arquivo não encontrado”:Comandos de Reset de Knowledge
Limpando Knowledge
Se você precisar limpar o knowledge armazenado no CrewAI, você pode usar o comandocrewai reset-memories com a opção --knowledge.
Command
Melhores Práticas
Organização de Conteúdo
Organização de Conteúdo
- Mantenha tamanhos de chunk apropriados para seu tipo de conteúdo
- Considere sobreposição de conteúdo para preservação de contexto
- Organize informações relacionadas em fontes de knowledge separadas
Dicas de Performance
Dicas de Performance
- Ajuste tamanhos de chunk baseado na complexidade do conteúdo
- Configure modelos de embedding apropriados
- Considere usar provedores de embedding locais para processamento mais rápido
Knowledge de Uma Vez
Knowledge de Uma Vez
- Com a estrutura de arquivo típica fornecida pelo CrewAI, as fontes de knowledge são incorporadas toda vez que o kickoff é acionado.
- Se as fontes de knowledge são grandes, isso leva à ineficiência e latência aumentada, pois os mesmos dados são incorporados cada vez.
- Para resolver isso, inicialize diretamente o parâmetro knowledge em vez do parâmetro knowledge_sources.
- Link para a issue para ter a ideia completa Github Issue
Gerenciamento de Knowledge
Gerenciamento de Knowledge
- Use knowledge no nível do agente para informações específicas do papel
- Use knowledge no nível da crew para informações compartilhadas que todos os agentes precisam
- Configure embedders no nível do agente se você precisar de estratégias de embedding diferentes
- Use nomenclatura consistente de coleção mantendo papéis de agente descritivos
- Teste a inicialização de knowledge verificando agent.knowledge após o kickoff
- Monitore localizações de armazenamento para entender onde o knowledge está armazenado
- Reset knowledge apropriadamente usando os tipos de comando corretos
Melhores Práticas de Produção
Melhores Práticas de Produção
- Configure
CREWAI_STORAGE_DIRpara uma localização conhecida em produção - Escolha provedores de embedding explícitos para corresponder à sua configuração de LLM e evitar conflitos de chave de API
- Monitore o tamanho do armazenamento de knowledge conforme ele cresce com adições de documentos
- Organize fontes de knowledge por domínio ou propósito usando nomes de coleção
- Inclua diretórios de knowledge em suas estratégias de backup e implantação
- Configure permissões de arquivo apropriadas para arquivos de knowledge e diretórios de armazenamento
- Use variáveis de ambiente para chaves de API e configuração sensível
