Agenți RAG & Framework-uri

Mai mult decât simple întrebări și răspunsuri: O privire practică asupra Framework-urilor Agentice pentru RAG

De la pipeline-uri liniare la agenți orientați pe obiectiv, capabili să planifice, să folosească unelte și să se auto-corecteze în datele reale, dezordonate.

De CRIA • 15.05.2025

Dacă lucrați cu Modele Lingvistice Mari (LLM), probabil ați construit deja un pipeline de Generare Augmentată prin Regăsire (RAG). Este un prim pas excelent: extrageți un document, îl inserați într-un prompt și obțineți un răspuns contextualizat. Dar ce se întâmplă atunci când primul document nu este cel corect? Sau când întrebarea utilizatorului necesită mai mulți pași și unelte pentru a primi un răspuns?

Atunci este momentul să treceți de la pipeline-uri simple la sisteme agentice. Un „agent” este, în esență, un LLM încapsulat într-o buclă de control care îi permite să folosească unelte, să raționeze pe baza rezultatelor și să-și planifice următorii pași pentru a atinge un obiectiv.

În compania noastră, am aprofundat crearea de sisteme agentice, în special pentru RAG complex. Scopul nu este doar să răspundem la întrebări, ci să construim un sistem care poate găsi și sintetiza informații în mod fiabil din surse de date dezordonate, din lumea reală. Această postare trece în revistă framework-urile cu care am lucrat, de ce am ales ce am ales și cum să gândiți adoptarea pentru propriile proiecte.

Cele două unelte fundamentale: LangChain vs. LangGraph

LangChain

Ideea de bază a LangChain este LangChain Expression Language (LCEL), care vă permite să conectați componentele într-un „lanț”. Fluxul este un Graf Aciclic Dirijat (DAG), adică merge într-o singură direcție, de la început la sfârșit.

chain = prompt | model | output_parser

Este simplu și curat.

Folosiți-l pentru:

  • RAG de bază: Regăsiți un document, creați un prompt, obțineți un răspuns.
  • Rezumare: Introduceți text într-un lanț de rezumare.
  • Extragere de date: Obțineți JSON structurat dintr-un bloc de text.

Pentru primul nostru chatbot intern de documentație, a fost perfect: previzibil și ușor de depanat.

LangGraph

Problema unui lanț simplu este că nu își poate reveni din erori. Dacă prima regăsire întoarce „zgomot”, lanțul eșuează. LangGraph, construit peste LangChain, rezolvă aceasta permițând definirea fluxului ca un graf cu noduri și muchii. Diferența cheie? Permite bucle.

Asta înseamnă că un agent poate încerca ceva, verifica rezultatul și, dacă nu e suficient, revine în buclă pentru a încerca din nou cu altă unealtă sau o interogare rafinată. Funcționează prin pasarea unui obiect de stare între noduri, astfel încât agentul știe permanent ce s-a făcut și care este ținta curentă.

Folosiți-l pentru:

  • RAG cu auto-corecție: la eșecul căutării, agentul reformulează și caută din nou.
  • Fluxuri cu mai mulți agenți: un supervizor direcționează către „agent de căutare” sau „agent de analiză”, în buclă, până la răspuns.
  • Human-in-the-Loop: graful se poate opri pentru aprobare umană.
Caracteristică LangChain LangGraph
Abstracție Principală Lanț (LCEL) Graf de Noduri
Tip de Workflow Liniar (DAG) Ciclic (cu bucle)
Managementul Stării În general fără stare per rulare Obiect de stare explicit și persistent
Utilizare Principală Secvențe simple, previzibile Agenți complecși, dinamici, cu stare

Recomandarea noastră: începeți cu LangChain. Când doriți ca lanțul să „reîncerce” sau să „decidă” pasul următor în funcție de un rezultat, treceți la LangGraph.

Cum construim RAG Agentic cu LangGraph

Echipa noastră de suport răspunde la întrebări complexe consultând documentație tehnică, tichete istorice și wiki-uri interne. Un RAG simplu nu era suficient. Fluxul agentic:

  1. Nodul 1: Deconstrucția interogării — întrebarea este transformată într-un plan structurat cu termeni de căutare.
  2. Nodul 2: Regăsire în paralel — căutări simultane în BD vectorială (docs), Elasticsearch (tichete) și Confluence (wiki).
  3. Muchie condițională: Validarea conținutului — scorare rapidă a relevanței.
    • Scor mare → sinteză.
    • Scor mic → buclă înapoi la deconstrucție cu indiciu „gândește din nou”.
  4. Nodul 3: Sinteza răspunsului — îmbinare în prompt final; răspuns pas-cu-pas cu linkuri la surse.
  5. Nodul 4: Rezultatul final — prezentare către inginerul de suport.

De ce funcționează: controlul ciclic și starea persistentă fac sistemul rezilient la regăsiri slabe și eșecuri parțiale.

Framework-uri de Orchestrare: Când ai nevoie de o echipă de agenți

Uneori, un singur agent nu este de ajuns. Ai nevoie de agenți specializați care să colaboreze. Aici intră framework-urile de orchestrare.

  • Crew.AI: definești o „echipă” cu roluri (rol, obiectiv, istoric). Excelent pentru creare de conținut: cercetare (RAG) → redactare.
  • Google ADK: framework orientat producție cu pattern-uri precum SequentialAgent/ParallelAgent; ideal pentru o flotă de agenți.
Framework Idee principală Ideal pentru
Microsoft AutoGen Agenții rezolvă sarcini „conversând”. Probleme dinamice cu cale neclară către soluție.
LlamaIndex Framework de date pentru conectarea LLM-urilor la surse externe. RAG intensiv în date; ingestie & regăsire avansată.
Haystack Framework open-source pentru căutare & RAG producție. IR la scară enterprise și pipeline-uri RAG.
MetaGPT Agenți care imită roluri (PM, Inginer) cu SOP-uri. Sarcini foarte structurate: cod, planuri de proiect.
SuperAGI Platformă end-to-end pentru agenți (construcție, deploy, monitorizare). Echipe care vor platformă completă și GUI.
Semantic Kernel SDK ce conectează LLM-urile cu cod convențional (C#, Python). Integrarea raționamentului LLM în aplicații existente.

Concluzie

Călătoria în AI-ul agentic e un compromis între control și conveniență.

  • LangChain oferă blocuri liniare simple — locul ideal de început.
  • LangGraph aduce control granular pentru logică complexă, în bucle — agenți robusti, auto-corectivi.
  • Crew.AI și Google ADK abstractizează orchestrarea echipelor de agenți.

Pentru noi, combinația optimă în RAG avansat a fost LlamaIndex pentru stratul de regăsire și LangGraph pentru raționament și folosirea uneltelor. Alegând framework-ul potrivit pentru sarcină, depășiți demo-urile și construiți sisteme AI care pot raționa, planifica și rezolva probleme reale.

Referințe