Despre acest curs
În C6 am construit un agent RAG simplu: un text politic intra în sistem, agentul recupera context din FAISS și genera un răspuns în vocea rolului definit în YAML.
În C7 trecem de la un singur răspuns la un thread orchestrat. Construim un workflow în care state-ul circulă între noduri, routerul decide cine vorbește, iar fiecare agent vede conversația anterioară înainte să producă o intervenție nouă.
C6: text politic → agent RAG → răspuns C7: state → router → agent_node → state update → router → END
LangGraph nu face modelul mai inteligent. Face fluxul explicit, controlabil și inspectabil.
Materiale
docs/ethics_and_limits.md și pentru verificarea livrabilului final.Concepte centrale
În acest curs învățăm cum să construim un workflow agentic simplu cu LangGraph. Conceptele de mai jos sunt cele care apar direct în EchoChamber.
| Concept | Ce înseamnă | În EchoChamber |
|---|---|---|
| State | Datele care circulă prin graf | stimulus, messages, current_turn |
| Node | Funcție Python care modifică state-ul | router_node, agent_node |
| Edge | Trecere fixă între noduri | agent_node → router |
| Conditional edge | Alegere pe baza state-ului | router → agent sau END |
| Router | Decide următorul pas | Cine vorbește în thread |
| Thread | Conversația generată | Lista de mesaje din messages |
Ce construim
Construim un thread multi-agent pentru EchoChamber. Fiecare agent are rolul său definit în YAML, folosește corpusul și vectorstore-ul din C5 și C6, vede conversația anterioară și produce o intervenție nouă sub controlul unui router LangGraph.
- Fiecare agent pornește de la un rol discursiv definit în YAML.
- Retriever-ul și contextul RAG rămân baza factuală a intervenției.
- Mesajele anterioare sunt păstrate în state și devin parte din context.
- Routerul decide când continuă thread-ul și când graful se oprește.
În C7 modelăm interacțiuni și tranziții între stări, nu doar un singur răspuns generat.
De ce contează pentru cercetarea socială
- Putem observa cum se construiește un thread, nu doar cum arată o ieșire individuală.
- Putem urmări cum agenții reacționează la mesaje anterioare și cum se repetă sau se schimbă frame-urile.
- Putem studia unde conversația escaladează și unde trebuie introdus control uman.
- Workflow-ul devine inspectabil: știm cine a vorbit, de ce și în ce ordine.
C7 nu este despre a simula oameni reali. Este despre a construi un instrument didactic pentru a analiza poziții discursive simulate.
Activitate practică
- Verificăm că agentul RAG din C6 funcționează.
- Construim un graf simplu fără LLM.
- Construim un graf cu decizie.
- Definim
ThreadState. - Construim
router_node. - Construim
make_agent_node. - Rulăm primul thread multi-agent.
- Vizualizăm conversația.
- Extragem codul în
core/graph.py.
Livrabile C7
Individual
- 01
notebooks/student_XX/C7_01_langgraph_multi_agent_thread.ipynb
- Notebook-ul trebuie să conțină un thread multi-agent rulat.
- Minimum 3 agenți.
- Minimum 4 intervenții.
- O scurtă interpretare a conversației.
Echipă
- 02
core/graph.py - 03
app/app.py - 04
docs/ethics_and_limits.md - 05
README.md
core/graph.pytrebuie să conțină cel puțin:thread_to_text(),router_node(),route_decision(),make_agent_node(),build_graph(),run_thread().app/app.pytrebuie să pregătească integrarea minimă a unui tab multi-agent.docs/ethics_and_limits.mdexplică limitele și riscurile sistemului.README.mdtrebuie să includă link către documentul de etică.
Sesiune de lucru în echipă
Scopul sesiunii este stabilizarea aplicației și pregătirea trecerii de la Agent RAG simplu la thread multi-agent. Ordinea corectă de lucru este:
Nu începeți cu interfața. Dacă roles.yaml, retriever.py sau agent.py nu funcționează, graph.py și app.py nu vor funcționa corect.
Regulă de echipă
Nu lucrează doi membri pe același fișier comun în același timp.
Fișiere comune
- A
assets/roles/roles.yaml - B
core/retriever.py - C
core/agent.py - D
core/graph.py - E
app/app.py
Ce nu facem în C7
- Nu facem redesign complet de UI.
- Nu construim dashboard.
- Nu folosim n8n, MCP sau scraping web.
- Nu construim un sistem multi-agent avansat. În C7 vrem stabilitate: un agent RAG funcțional și un thread multi-agent minimal.
Etică și limite
EchoChamber generează răspunsuri politice simulate. Agenții nu sunt persoane reale și nu reprezintă grupuri sociale reale. Outputul generat nu este adevăr factual și nu trebuie prezentat ca opinie publică.
- Agenții sunt etichetați clar ca roluri simulate.
- Contextul RAG este separat de răspuns.
- Nu există API keys sau
.envîn GitHub. - Rezultatele sunt revizuite de oameni.
docs/ethics_and_limits.mdexistă și este legat înREADME.md.
Test comun
Input: CCR a decis anularea alegerilor după suspiciuni privind influențe externe. Agent recomandat: anti_sistem Alternativ: agentul pentru care echipa are sigur vectorstore funcțional
La finalul C7, echipa trebuie să poată rula un thread multi-agent simplu și să explice clar ce este state-ul, ce face routerul, ce face un agent_node, cum se actualizează conversația, cum se oprește graful și care sunt limitele etice ale simulării.