Agentii AI au trecut de la demo-uri de cercetare la sisteme in productie. Se estimeaza ca peste 60% din aplicatiile AI de enterprise vor include componente agentice pana in 2026. Dar construirea agentilor de la zero - gestionand bucle de tool, stare, memorie, tratarea erorilor si coordonarea multi-agent - este complexa. Aici intervin framework-urile.
Patru framework-uri domina in 2026: LangGraph, CrewAI, OpenAI Agents SDK si Claude Agent SDK. Fiecare adopta o abordare fundamental diferita pentru aceeasi problema: a oferi LLM-urilor capacitatea de a rationa, planifica, folosi tool-uri si colabora.
Vedere Generala
| Aspect | LangGraph | CrewAI | OpenAI Agents SDK | Claude Agent SDK |
|---|---|---|---|---|
| Creat de | LangChain | CrewAI Inc. | OpenAI | Anthropic |
| Arhitectura | Bazata pe grafuri | Bazata pe roluri | Bazata pe handoff | Bucla autonoma |
| Filozofie | Control maxim | Colaborare de echipa | Abstractie minima | Da agentului un calculator |
| Limbaje | Python, TypeScript | Python | Python | Python, TypeScript |
| Suport modele | Oricare (OpenAI, Claude, local) | Oricare | Oricare (in ciuda numelui) | Doar Claude |
| Stele GitHub | ~29k | ~40k | ~21k | ~6k |
| Ideal pentru | Workflow-uri stateful complexe | Specializare multi-agent | Routing si triage | Coding si sarcini cu fisiere |
LangGraph: Constructorul de Grafuri
LangGraph modeleaza workflow-urile agentilor ca grafuri ciclice dirijate. Definesti noduri (functii care fac munca) si muchii (tranzitii intre ele, optional conditionale). Starea curge prin graf si persista prin checkpointing.
Este cel mai explicit si controlabil framework - conectezi fiecare pas manual.
Concepte Cheie
- StateGraph: definitia grafului cu stare tipizata
- Nodes: functii Python care transforma starea
- Edges: conexiuni intre noduri, pot fi conditionale
- Checkpointing: persistenta integrata pentru workflow-uri de lunga durata
Exemplu de Cod
from langgraph.graph import StateGraph, MessagesState, START, END from langchain_openai import ChatOpenAI llm = ChatOpenAI(model="gpt-4o") def call_agent(state: MessagesState): response = llm.invoke(state["messages"]) return {"messages": [response]} def should_continue(state: MessagesState): last = state["messages"][-1] if last.tool_calls: return "tools" return END def call_tools(state: MessagesState): # Execute tool calls and return results results = [] for tool_call in state["messages"][-1].tool_calls: result = execute_tool(tool_call) results.append(result) return {"messages": results} graph = StateGraph(MessagesState) graph.add_node("agent", call_agent) graph.add_node("tools", call_tools) graph.add_edge(START, "agent") graph.add_conditional_edges("agent", should_continue, {"tools": "tools", END: END}) graph.add_edge("tools", "agent") app = graph.compile() result = app.invoke({"messages": [{"role": "user", "content": "What's the weather?"}]})
Puncte Forte
- Control granular asupra fiecarui pas si tranzitii
- Checkpointing integrat si human-in-the-loop
- Paritate completa cu TypeScript
- Functioneaza cu orice furnizor LLM
- Ideal pentru workflow-uri complexe cu ramificari conditionale si bucle
Puncte Slabe
- Curba de invatare abrupta - trebuie sa intelegi concepte de teoria grafurilor
- Verbos pentru cazuri de utilizare simple - un agent de baza necesita mai mult boilerplate decat alte framework-uri
- Debugging-ul fluxurilor grafului poate fi dificil fara LangSmith
Preturi
Open-source (MIT). LangSmith (platforma de observabilitate gestionata) are planuri platite pentru monitorizare in productie.
CrewAI: Asamblorul de Echipe
CrewAI foloseste o metafora umana: asamblezi un crew de agenti specializati, fiecare cu un rol, un obiectiv si o poveste. Agentii colaboreaza pe sarcini folosind tool-uri, coordonati de un proces (secvential, ierarhic sau consensual).
Gandeste-te la asta ca angajarea unei echipe in care fiecare membru are un titlu si o specialitate specifice.
Concepte Cheie
- Agent: un persona cu rol, obiectiv, poveste si tool-uri
- Task: o sarcina cu descriere, output asteptat si agent asignat
- Crew: un grup de agenti care lucreaza impreuna
- Process: strategie de executie (secventiala, ierarhica, consensuala)
- Flow: strat de orchestrare event-driven pentru conectarea mai multor crew-uri
Exemplu de Cod
from crewai import Agent, Task, Crew, Process researcher = Agent( role="Senior Research Analyst", goal="Find comprehensive data about the given topic", backstory="You have 10 years of experience in technology research. " "You are thorough and always verify facts from multiple sources.", tools=[web_search_tool], verbose=True, ) writer = Agent( role="Technical Writer", goal="Create clear, engaging technical content", backstory="You write for a developer audience. " "Your articles are practical and include code examples.", tools=[file_tool], verbose=True, ) research_task = Task( description="Research the latest developments in WebAssembly in 2026. " "Focus on WASI, Component Model, and production use cases.", expected_output="A structured research document with key findings and sources.", agent=researcher, ) writing_task = Task( description="Write a blog post based on the research. " "Include code examples and Mermaid diagrams.", expected_output="A complete blog post in Markdown format.", agent=writer, context=[research_task], # Writer receives researcher's output ) crew = Crew( agents=[researcher, writer], tasks=[research_task, writing_task], process=Process.sequential, verbose=True, ) result = crew.kickoff() print(result.raw)
Puncte Forte
- Abstractie bazata pe roluri intuitiva - usor de inteles
- Peste 100 de integrari de tool-uri incorporate
- Memorie partajata intre agenti (pe termen scurt, pe termen lung, pe entitate)
- Cea mai mare comunitate (~40k stele GitHub)
- Proces ierarhic cu un agent "manager" care deleaga si valideaza
Puncte Slabe
- Mai putin control granular decat LangGraph - definesti roluri, nu cai de executie exacte
- Procesul ierarhic poate fi imprevizibil cand agentii nu sunt de acord
- Debugging-ul conversatiilor multi-agent este mai dificil decat fluxurile cu un singur agent
Preturi
Core open-source (gratuit). CrewAI Platform: $99/luna (Teams) pana la $120k/an (Enterprise). Preturi bazate pe crew-uri active si executii lunare.
OpenAI Agents SDK: Routerul
OpenAI Agents SDK (succesorul spiritual al Swarm) se concentreaza pe handoff - agenti care transfera conversatii catre alti agenti specializati. Este cel mai minimalist framework: agenti, tool-uri, handoff si guardrail. Atat.
Concepte Cheie
- Agent: model + instructiuni + tool-uri + handoff
- Handoff: un transfer catre un alt agent (modelat ca un tool pe care LLM-ul il poate apela)
- Guardrail: validare de intrare/iesire care ruleaza in paralel cu agentul
- Runner: executa bucla agentului
- Tracing: observabilitate integrata pentru toate apelurile LLM, invocarile de tool si handoff-uri
Exemplu de Cod
from agents import Agent, Runner, handoff, InputGuardrail, GuardrailFunctionOutput from pydantic import BaseModel class SafetyCheck(BaseModel): is_safe: bool reason: str async def content_safety(ctx, agent, input_text): result = await Runner.run( Agent(name="Safety", instructions="Check if input is safe. No PII."), input_text, context=ctx, ) output = SafetyCheck.model_validate_json(result.final_output) return GuardrailFunctionOutput( output_info=output, tripwire_triggered=not output.is_safe ) billing_agent = Agent( name="Billing Agent", instructions="You handle billing inquiries. Be precise with numbers.", tools=[lookup_invoice, process_payment], ) refund_agent = Agent( name="Refund Agent", instructions="You process refund requests. Always verify the order first.", tools=[lookup_order, issue_refund], ) triage_agent = Agent( name="Triage Agent", instructions="Route the customer to the right specialist. " "Ask clarifying questions if needed.", handoffs=[billing_agent, refund_agent], input_guardrails=[InputGuardrail(guardrail_function=content_safety)], ) result = await Runner.run(triage_agent, "I need a refund for order #4521") print(result.final_output) # The triage agent routes to refund_agent, which processes the refund
Puncte Forte
- Pattern de handoff curat - natural pentru workflow-uri de routing/triage
- Guardrail-urile ruleaza in paralel cu executia (fail-fast, neblocante)
- Dashboard de tracing integrat pentru debugging
- In ciuda numelui, suporta modele non-OpenAI
- Abstractie minima - usor de inteles si de extins
Puncte Slabe
- Gestionarea starii mai putin matura decat LangGraph
- Fara persistenta sau checkpointing integrate
- Ecosistemul de tool-uri terte este mai restrans
- Design-ul centrat pe handoff poate sa nu se potriveasca oricarei arhitecturi
Preturi
Open-source (MIT). Platesti per token in functie de modelul utilizat.
Claude Agent SDK: Dezvoltatorul
Claude Agent SDK adopta o abordare diferita: in loc sa definesti workflow-uri sau roluri, oferi agentului un set de tool-uri si il lasi sa-si dea seama cum sa realizeze sarcina. Foloseste aceeasi bucla autonoma care alimenteaza Claude Code - citeste, actioneaza, verifica, itereaza.
Concepte Cheie
- query(): punctul de intrare principal care porneste bucla agentului
- Tool-uri integrate: Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch
- Tool-uri personalizate via MCP: defineste tool-uri ca servere MCP in-process
- Sub-agenti: agenti specializati catre care parintele poate delega
- Sessions: mentin contextul de-a lungul mai multor interactiuni
Exemplu de Cod
import { tool, createSdkMcpServer, query } from "@anthropic-ai/claude-agent-sdk"; import { z } from "zod"; const searchDocs = tool( "search_docs", "Search the internal documentation for relevant information", { query: z.string().describe("Search query") }, async ({ query }) => { const results = await vectorStore.similaritySearch(query, 5); return { content: [{ type: "text", text: results.map(r => r.pageContent).join("\n\n") }], }; } ); const docsServer = createSdkMcpServer({ name: "docs", version: "1.0.0", tools: [searchDocs], }); for await (const message of query({ prompt: "Find how authentication works in our system and write a summary", options: { mcpServers: { docs: docsServer }, allowedTools: ["Read", "Glob", "Grep", "mcp__docs__search_docs"], }, })) { if (message.type === "result" && message.subtype === "success") { console.log(message.result); } }
Puncte Forte
- Integrare MCP de prima clasa - conecteaza-te la orice ecosistem de servere MCP
- Tool-uri integrate pentru operatiuni cu fisiere, terminal si acces web
- Compactare automata a contextului pentru baze de cod mari
- Paralelism al sub-agentilor pentru sarcini complexe
- Acelasi motor ca Claude Code - testat in lupta pe workflow-uri reale de dezvoltare
Puncte Slabe
- Doar modele Claude - fara suport multi-furnizor
- Framework mai nou cu o comunitate mai mica
- Necesita runtime-ul Node.js chiar si pentru SDK-ul Python
- Mai putin control explicit al workflow-ului comparativ cu LangGraph
Preturi
Open-source. Tarife standard per token ale API-ului Claude. Managed Agents (versiune gazduita): $0.08 per ora de sesiune pe langa costurile per token.
Cand Sa Alegi Care
Alege LangGraph daca:
- Ai nevoie de control precis asupra fiecarui pas al workflow-ului
- Cazul tau de utilizare implica logica conditionala complexa si bucle
- Vrei persistenta integrata si checkpoint-uri human-in-the-loop
- Trebuie sa folosesti mai multi furnizori LLM in acelasi workflow
Alege CrewAI daca:
- Vrei o abstractie intuitiva bazata pe roluri
- Sarcina ta implica mai multi agenti cu specialitati distincte
- Ai nevoie ca agentii sa colaboreze si sa-si paseze context intre ei
- Valorezi cea mai mare comunitate si cele mai multe integrari
Alege OpenAI Agents SDK daca:
- Pattern-ul tau principal este rutarea conversatiilor catre specialisti
- Ai nevoie de guardrail-uri care valideaza intrarea/iesirea in paralel
- Vrei abstractia cea mai simpla posibila cu boilerplate minim
- Tracing-ul si observabilitatea integrate sunt importante
Alege Claude Agent SDK daca:
- Agentii tai trebuie sa citeasca, scrie si execute cod
- Vrei integrare de prima clasa cu servere MCP
- Ai nevoie de agenti autonomi care itereaza si se auto-corecteaza
- Folosesti deja Claude si vrei integrarea cea mai profunda
Se Pot Combina Framework-urile?
Da. Un pattern comun este sa folosesti un framework pentru orchestrare si altul pentru agentii individuali:
- LangGraph pentru graful workflow-ului general
- CrewAI pentru un nod specific care necesita colaborare multi-agent
- Claude Agent SDK pentru sub-sarcini legate de coding via MCP
- OpenAI Agents SDK pentru triage si routing orientat catre client
Framework-urile nu se exclud reciproc. Foloseste-l pe cel care se potriveste fiecarei parti a sistemului tau.
Concluzie
Fiecare framework face un pariu clar:
- LangGraph optimizeaza pentru control - tu decizi fiecare tranzitie
- CrewAI optimizeaza pentru colaborare - agentii lucreaza ca o echipa
- OpenAI Agents SDK optimizeaza pentru simplicitate - abstractie minima, handoff-uri curate
- Claude Agent SDK optimizeaza pentru autonomie - da-i tool-uri si lasa-l sa lucreze
Alegerea corecta depinde de workflow-ul tau, echipa ta si stack-ul tau existent. Alege-l pe cel care se potriveste cazului tau principal de utilizare, invata-l bine si integreaza-le pe celelalte cand ajungi la punctul lor forte.