Knowledge Sources în CrewAI (PDF, CSV, JSON, Text RAG) în CrewAI & Sisteme Multi-Agent

Memorie, Knowledge (RAG) & CLI Nivel: intermediar

Atașarea de baze de cunoștințe (documente PDF, tabele CSV, fișiere Markdown sau stringuri) direct la un Agent sau la întregul Crew pentru interogare RAG automată.

Sintaxă & invocare Python
from crewai.knowledge.source.pdf_knowledge_source import PDFKnowledgeSource
from crewai.knowledge.source.string_knowledge_source import StringKnowledgeSource

manual_pdf = PDFKnowledgeSource(file_paths=["proceduri_interne.pdf"])
echipa = Crew(..., knowledge_sources=[manual_pdf])

Descriere & Utilizare

Spre deosebire de Memory (care reține ce s-a discutat în timpul execuției), Knowledge (Sursele de cunoștințe) îți permite să încarci documentație de referință preexistentă — manuale PDF, cataloage CSV/Excel, fișiere JSON sau ghiduri de stil — la care agenții au acces automat prin RAG.

Poți atașa knowledge_sources=[...] fie la nivel de Crew (toți agenții din echipă pot consulta documentele), fie la nivel de Agent individual (de exemplu, doar agentul Juridic are acces la PDF-ul cu legislația GDPR, iar agentul Tehnic are acces la documentația API).

CrewAI se ocupă automat de citirea fișierelor din folderul knowledge/ al proiectului, împărțirea lor în fragmente (chunking) și indexarea vectorială.

Cum să o reții ușor

💡 Ca biblioteca de manuale de specialitate pusă pe biroul echipei înainte de începerea proiectului: fiecare specialist își poate consulta propriul regulament fără a consuma apeluri de unelte externe.

Opțiuni și parametri tehnici

  • StringKnowledgeSource(content="..."): creează o bază RAG rapidă direct dintr-un text în memorie.
  • PDFKnowledgeSource / CSVKnowledgeSource / JSONKnowledgeSource / TextFileKnowledgeSource: încarcă fișiere din directorul knowledge/.
  • chunk_size & chunk_overlap: controlează dimensiunea fragmentelor indexate pe fiecare sursă (ex: chunk_size=1000, chunk_overlap=200).
  • metadata: dicționar de etichete atașat sursei de cunoștințe.

Exemple practice și cazuri de utilizare

  • Alocare de cunoștințe specifice pe agent: agent_hr = Agent(..., knowledge_sources=[PDFKnowledgeSource(file_paths=["regulament_intern.pdf"])])
  • Configurarea chunking-ului pe un document dens: TextFileKnowledgeSource(file_paths=["cod_fiscal.txt"], chunk_size=800, chunk_overlap=150)
  • Combinarea cu embedder personalizat pentru limba română: folosește bge-m3 sau text-embedding-3-small.

Sfaturi de configurare & capcane

Toate căile pasate în file_paths=[...] pentru clasele *KnowledgeSource sunt relative la directorul knowledge/ din rădăcina proiectului tău CrewAI!

Comenzi și ghiduri înrudite