spinny:~/writing $ vim agentic-ai-frameworks-comparison.md
1~2Oi AI agents echoun metakinithei apo ereynitikes epideixes se systimata paragogis. Perissoteroi apo to 60% ton epicheirisiakon AI efarmogon anamenetai na perilamvanoun agentika stoicheia mechri to 2026. Alla i kataskevi agents apo to miden - diacheirisi vrogchon ergaleion, katastasis, mnimis, diacheirisis sfalmaton kai syntonismou pollalon agents - einai polyploki. Edoo mpainoun ta frameworks.3~4Tessera frameworks kyrarchoun to 2026: **LangGraph**, **CrewAI**, **OpenAI Agents SDK** kai **Claude Agent SDK**. Kathena proseggizei to idio provlima me themeliodoos diaforetiko tropo: na dosei sta LLM tin ikanotita na skeftontai, na schedkazoun, na chrisimopoioun ergaleia kai na synergazontai.5~6## Me mia matia7~8| Opseis | LangGraph | CrewAI | OpenAI Agents SDK | Claude Agent SDK |9|--------|-----------|--------|-------------------|-----------------|10| **Dimioyrgos** | LangChain | CrewAI Inc. | OpenAI | Anthropic |11| **Architektoniki** | Vasismeni se grafous | Vasismeni se rolous | Vasismeni se paradoseis | Aftonomi vrogchos |12| **Filosofia** | Megistos elegchos | Omadiki synergasia | Elachisti afairesi | Dose ston agent enan ypologisti |13| **Glosses** | Python, TypeScript | Python | Python | Python, TypeScript |14| **Ypostirixi montelon** | Opoiodipote (OpenAI, Claude, topiko) | Opoiodipote | Opoiodipote (para to onoma) | Mono Claude |15| **GitHub stars** | ~29k | ~40k | ~21k | ~6k |16| **Kalytero gia** | Polyploka stateful workflows | Ekseidikeysi pollalon agents | Routing kai triaz | Kodika kai ergasies me archeia |17~18## LangGraph: O kataskevastis grafon19~20To LangGraph montelopoiei ta workflows ton agents os **kateythynomena kyklika grafa**. Orizete komvous (synartiseis pou ekteloun ergasia) kai akmes (metavaseis metaxy tous, proairetika me synthikes). I katastasi reei mesa apo to grafo kai diatireitai meso checkpointing.21~22Afto einai to pio safes kai elegchomeno framework - syndeete kathe vima monoi sas.23~24```mermaid25graph LR26 Start --> Router[Router Node]27 Router -->|needs research| Research[Research Node]28 Router -->|needs code| Code[Code Node]29 Research --> Synthesize[Synthesize Node]30 Code --> Synthesize31 Synthesize --> End32```33~34### Vasikes ennoies35~36- **StateGraph**: o orismos tou grafou me typopoiimeni katastasi37- **Nodes**: synartiseis Python pou metaschimatizoun tin katastasi38- **Edges**: syndesmoi metaxy komvon, mporoun na einai me synthiki39- **Checkpointing**: ensoomatomeni monimotita gia makrochrones roes ergasias40~41### Paradeigma kodika42~43```python44from langgraph.graph import StateGraph, MessagesState, START, END45from langchain_openai import ChatOpenAI46~47llm = ChatOpenAI(model="gpt-4o")48~49def call_agent(state: MessagesState):50 response = llm.invoke(state["messages"])51 return {"messages": [response]}52~53def should_continue(state: MessagesState):54 last = state["messages"][-1]55 if last.tool_calls:56 return "tools"57 return END58~59def call_tools(state: MessagesState):60 # Execute tool calls and return results61 results = []62 for tool_call in state["messages"][-1].tool_calls:63 result = execute_tool(tool_call)64 results.append(result)65 return {"messages": results}66~67graph = StateGraph(MessagesState)68graph.add_node("agent", call_agent)69graph.add_node("tools", call_tools)70graph.add_edge(START, "agent")71graph.add_conditional_edges("agent", should_continue, {"tools": "tools", END: END})72graph.add_edge("tools", "agent")73~74app = graph.compile()75result = app.invoke({"messages": [{"role": "user", "content": "What's the weather?"}]})76```77~78### Dynata simeia79~80- Leptoereis elegchos kathe vimatos kai metavasis81- Ensoomatomeno checkpointing kai human-in-the-loop82- Pliri isotimia me TypeScript83- Leitoyrgei me opoiondipote parocho LLM84- Kalytero gia polyplokes roes ergasias me synthiki diaklandosi kai vrogchous85~86### Adynamies87~88- Apotomi kampyli mathisis - prepei na katanoite ennoies theorias grafon89- Analytiko gia aples periptoseis - enas vasikos agent apaite perissotero boilerplate apo alla frameworks90- I aposfalmotosi roon grafon mporei na einai dyskoli choris to LangSmith91~92### Timologisi93~94Open-source (MIT). To LangSmith (diacheirizomeni platforma paratirisimotitas) echei epiploches vathmides gia paragoigki parakolouthisi.95~96## CrewAI: O dimiourgos omadas97~98To CrewAI chrisimopoiei mia anthropini metafora: synthetete ena **pliroma** apo ekseidikeymenous agents, kathenas me enan **rolo**, enan **stocho** kai mia **istoria**. Oi agents synergaaontai se **ergasies** chrisimopoiontas **ergaleia**, syntonismenoi apo mia **diadikasia** (seiariaki, ierarchiki i synthesigmatiki).99~100Skeftite to san na prosthenete mia omada opou kathe melos echei sygekkrimeno titlo kai eidikotita.101~102```mermaid103graph TD104 Crew[Crew Manager] --> R[Researcher\nRole: Find data\nTools: WebSearch]105 Crew --> W[Writer\nRole: Write content\nTools: FileWrite]106 Crew --> E[Editor\nRole: Review quality\nTools: FileRead]107 R --> Task1[Research Task]108 W --> Task2[Writing Task]109 E --> Task3[Review Task]110 Task1 --> Task2 --> Task3111```112~113### Vasikes ennoies114~115- **Agent**: mia persona me rolo, stocho, istoria kai ergaleia116- **Task**: mia anathesi me perigrafi, anammenomeno apotelesma kai anatetheimeno agent117- **Crew**: mia omada agent pou ergaazontai mazi118- **Process**: stratigiki ektelesis (seiariaki, ierarchiki, synthesigmatiki)119- **Flow**: epipedo orchestration vasismeno se gegonota gia ti syndesi pollalon pliromaton120~121### Paradeigma kodika122~123```python124from crewai import Agent, Task, Crew, Process125~126researcher = Agent(127 role="Senior Research Analyst",128 goal="Find comprehensive data about the given topic",129 backstory="You have 10 years of experience in technology research. "130 "You are thorough and always verify facts from multiple sources.",131 tools=[web_search_tool],132 verbose=True,133)134~135writer = Agent(136 role="Technical Writer",137 goal="Create clear, engaging technical content",138 backstory="You write for a developer audience. "139 "Your articles are practical and include code examples.",140 tools=[file_tool],141 verbose=True,142)143~144research_task = Task(145 description="Research the latest developments in WebAssembly in 2026. "146 "Focus on WASI, Component Model, and production use cases.",147 expected_output="A structured research document with key findings and sources.",148 agent=researcher,149)150~151writing_task = Task(152 description="Write a blog post based on the research. "153 "Include code examples and Mermaid diagrams.",154 expected_output="A complete blog post in Markdown format.",155 agent=writer,156 context=[research_task], # Writer receives researcher's output157)158~159crew = Crew(160 agents=[researcher, writer],161 tasks=[research_task, writing_task],162 process=Process.sequential,163 verbose=True,164)165~166result = crew.kickoff()167print(result.raw)168```169~170### Dynata simeia171~172- Diaisthitiki afairesi vasismeni se rolous - eykoli stin katanoisi173- Pano apo 100 ensoomatomenees entaxis ergaleion174- Koinochroni mnimi metaxy ton agents (vrachyprothesmi, makroprthesmi, onotitas)175- Megaliteri koinotita (~40k GitHub stars)176- Ierarchiki diadikasia me enan agent "diacheiristi" pou anathete kai epikyroni177~178### Adynamies179~180- Ligotero leptoereis elegchos apo to LangGraph - orizete rolous, ochi akriveis diadirmes ektelesis181- I ierarchiki diadikasia mporei na einai aprobleepti otan oi agents diafounoun182- I aposfalmotosi synomilion pollalon agents einai dyskoloteri apo roes enos agent183~184### Timologisi185~186Open-source pyriinas (dorean). CrewAI Platform: 99 $/mina (Teams) eos 120 chil. $/etos (Enterprise). I timologisi vasizetai se energa pliromata kai miniaia ekteleseis.187~188## OpenAI Agents SDK: O router189~190To OpenAI Agents SDK (pnevmatikos diadochos tou Swarm) epikentroonetai stis **paradoseis** - oi agents metaferoun synomilies se allous ekseidikeymenous agents. Einai to pio minimalistiko framework: agents, ergaleia, paradoseis kai guardrails. Aftoo einai ola.191~192```mermaid193graph LR194 User --> Triage[Triage Agent]195 Triage -->|billing question| Billing[Billing Agent]196 Triage -->|refund request| Refund[Refund Agent]197 Triage -->|technical issue| Support[Support Agent]198 Billing --> Response[Response]199 Refund --> Response200 Support --> Response201```202~203### Vasikes ennoies204~205- **Agent**: modelo + odigies + ergaleia + paradoseis206- **Handoff**: mia metafora se allon agent (montelopoiimeni os ergaleio pou to LLM mporei na kalesei)207- **Guardrail**: epikyrosi eisodou/exodou pou ekteleitai parallila me ton agent208- **Runner**: ektelei ti vrogcho tou agent209- **Tracing**: ensoomatommeni paratirisimotita gia oles tis kliseis LLM, chrisis ergaleion kai paradoseis210~211### Paradeigma kodika212~213```python214from agents import Agent, Runner, handoff, InputGuardrail, GuardrailFunctionOutput215from pydantic import BaseModel216~217class SafetyCheck(BaseModel):218 is_safe: bool219 reason: str220~221async def content_safety(ctx, agent, input_text):222 result = await Runner.run(223 Agent(name="Safety", instructions="Check if input is safe. No PII."),224 input_text,225 context=ctx,226 )227 output = SafetyCheck.model_validate_json(result.final_output)228 return GuardrailFunctionOutput(229 output_info=output, tripwire_triggered=not output.is_safe230 )231~232billing_agent = Agent(233 name="Billing Agent",234 instructions="You handle billing inquiries. Be precise with numbers.",235 tools=[lookup_invoice, process_payment],236)237~238refund_agent = Agent(239 name="Refund Agent",240 instructions="You process refund requests. Always verify the order first.",241 tools=[lookup_order, issue_refund],242)243~244triage_agent = Agent(245 name="Triage Agent",246 instructions="Route the customer to the right specialist. "247 "Ask clarifying questions if needed.",248 handoffs=[billing_agent, refund_agent],249 input_guardrails=[InputGuardrail(guardrail_function=content_safety)],250)251~252result = await Runner.run(triage_agent, "I need a refund for order #4521")253print(result.final_output)254# The triage agent routes to refund_agent, which processes the refund255```256~257### Dynata simeia258~259- Katharo montelo paradosis - fysiko gia workflows routing/triaz260- Ta guardrails ektelountai parallila me tin ektelesi (fail-fast, mi-mplokariistika)261- Ensoomatommeno panel tracing gia aposfalmotosi262- Para to onoma, ypostiri modela ektos OpenAI263- Elachisti afairesi - eykolo na katanoithei kai na epektathei264~265### Adynamies266~267- Ligotero orimi diacheirisi katastasis apo to LangGraph268- Kamia ensoomatommeni monimotita i checkpointing269- To oikosystima ergaleion triton einai mikrotero270- I schedkiasi me epikentro tis paradoseis mporei na min tairiazei se kathe architektoniki271~272### Timologisi273~274Open-source (MIT). Plirnete ana token gia opoiodipote modelo chrisimooieitee.275~276## Claude Agent SDK: O programmatistis277~278To Claude Agent SDK akolouthei mia diaforetiki proseggisi: anti na orizete workflows i rolous, dinete ston agent ena **set ergaleion kai ton afinete na vrei monos tou pos na oloklirosi tin ergasia**. Chrisimopoiei tin idia aftonomi vrogcho pou trofodioti to Claude Code - diavase, drase, epiviose, epanalav.279~280```mermaid281graph TD282 Prompt[User Prompt] --> Loop[Autonomous Agent Loop]283 Loop --> Reason[Reason about next step]284 Reason --> Act[Execute tool]285 Act --> Verify[Check result]286 Verify -->|not done| Loop287 Verify -->|done| Output[Final output]288```289~290### Vasikes ennoies291~292- **query()**: to kyrio simeio eisodou pou xekina ti vrogcho tou agent293- **Ensoomatomena ergaleia**: Read, Write, Edit, Bash, Glob, Grep, WebSearch, WebFetch294- **Prosarmosmena ergaleia meso MCP**: orismos ergaleion os in-process MCP servers295- **Sub-agents**: ekseidikeymenoi agents stous opoious o gonikos mporei na anathesi296- **Sessions**: diatirisi plaissiou se polles allilepidrasis297~298### Paradeigma kodika299~300```typescript301import { tool, createSdkMcpServer, query } from "@anthropic-ai/claude-agent-sdk";302import { z } from "zod";303~304const searchDocs = tool(305 "search_docs",306 "Search the internal documentation for relevant information",307 { query: z.string().describe("Search query") },308 async ({ query }) => {309 const results = await vectorStore.similaritySearch(query, 5);310 return {311 content: [{ type: "text", text: results.map(r => r.pageContent).join("\n\n") }],312 };313 }314);315~316const docsServer = createSdkMcpServer({317 name: "docs",318 version: "1.0.0",319 tools: [searchDocs],320});321~322for await (const message of query({323 prompt: "Find how authentication works in our system and write a summary",324 options: {325 mcpServers: { docs: docsServer },326 allowedTools: ["Read", "Glob", "Grep", "mcp__docs__search_docs"],327 },328})) {329 if (message.type === "result" && message.subtype === "success") {330 console.log(message.result);331 }332}333```334~335### Dynata simeia336~337- Protis taxis entaxi MCP - syndethite me opoiodipote oikosystima MCP servers338- Ensoomatomena ergaleia gia leitourgies archion, terminal kai prosvasi sto diadiktyo339- Aftomati sympyknosi plaisiou gia megales vaseis kodika340- Paralliloi sub-agents gia polyplokes ergasies341- Idia michani me to Claude Code - dokimasmeni se pragmatikes roes ergasias anaptixi342~343### Adynamies344~345- Mono modela Claude - kamia ypostirixi pollon parochon346- Neotero framework me mikroteri koinotita347- Apaite periballon Node.js akomi kai gia to Python SDK348- Ligoteros safis elegchos workflow se sygkrisi me to LangGraph349~350### Timologisi351~352Open-source. Kanoniki timi token Claude API. Managed Agents (filoxenoumeni ekdosi): 0,08 $ ana ora synedriias prostheta apo ta kosti token.353~354## Pote na epilexete poio355~356```mermaid357graph TD358 Start{What's your priority?}359 Start -->|Full control over workflow| LG[LangGraph]360 Start -->|Multi-agent collaboration| CA[CrewAI]361 Start -->|Routing and triage| OA[OpenAI Agents SDK]362 Start -->|Coding and file automation| CS[Claude Agent SDK]363~364 LG --> LGU[Complex stateful workflows\nConditional branching\nHuman-in-the-loop]365 CA --> CAU[Team of specialized agents\nResearch + writing pipelines\nContent generation]366 OA --> OAU[Customer service routing\nMulti-step handoffs\nInput validation]367 CS --> CSU[Code generation and review\nFile-heavy automation\nMCP tool ecosystem]368```369~370### Epilexte LangGraph an:371- Chriazeste akrivii elegcho se kathe vima tis rois ergasias372- I periptosi chrisis sas perilamvanei polyploki synthiki logiki kai vrogchous373- Thelete ensoomatommeni monimotita kai checkpoints human-in-the-loop374- Chriazeste na chrisimopoiisete pollous parochous LLM stin idia roi ergasias375~376### Epilexte CrewAI an:377- Thelete mia diaisthitiki afairesi vasismeni se rolous378- I ergasia sas perilamvanei pollous agents me diaforetikes eidikotites379- Chriazeste oi agents na synergaaontai kai na pernnoun plaisio metaxy tous380- Ektimate ti megaliteri koinotita kai tis perisoteres ensoomatommenes entaxis381~382### Epilexte OpenAI Agents SDK an:383- To kyrio montelo sas einai i drromologisi synomilion se eidikous384- Chriazeste guardrails pou epikyrounoun eisodo/exodo parallila385- Thelete tin aploysteni dynati afairesi me elachisto boilerplate386- To ensoomatommeno tracing kai i paratirisimotita einai simantika387~388### Epilexte Claude Agent SDK an:389- Oi agents sas prepei na diavazoun, grafoun kai ekteloun kodika390- Thelete protis taxis entaxi me MCP servers391- Chriazeste aftonomous agents pou epanalamvanoun kai aftodiiorthonontai392- Idi chrisimopoieite to Claude kai thelete tin vathyteri entaxi393~394## Mporun na syndyastoun ta frameworks?395~396Nai. Ena synitho montelo einai i chrisi enos framework gia tin orchestration kai enos allou gia tos monadikous agents:397~398- **LangGraph** gia to synoliko grafo rois ergasias399- **CrewAI** gia ena sykekkrimeno komvo pou apaite synergasia pollalon agents400- **Claude Agent SDK** gia ypo-ergasies schetikes me kodika meso MCP401- **OpenAI Agents SDK** gia triaz kai routing pros tous pelates402~403Ta frameworks den einai amoimaia apokleiomena. Chrisimopoiiste oti tairiazei se kathe meros tou systimatos sas.404~405## Symperasma406~407Kathe framework kanei mia safii epilogi:408~409- **LangGraph** veltiopolitei gia elegcho - eseis apofasizete gia kathe metavasi410- **CrewAI** veltiopolitei gia synergasia - oi agents ergaazontai os omada411- **OpenAI Agents SDK** veltiopolitei gia aplotita - elachisti afairesi, kathares paradoseis412- **Claude Agent SDK** veltiopolitei gia aftonomia - doste tou ergaleia kai afiste ton na douleepsi413~414I sosti epiloyi exartatai apo ti roi ergasias sas, tin omada sas kai to yparcho stack sas. Dialexte afto pou tairiazei stin kyria periptosi chrisis sas, mathete to kala kai travaaxte ta alla otan ftasete sto dynato tous simeio.415~
NORMAL · agentic-ai-frameworks-comparison.md [readonly]415 lines · :q to close