[{"data":1,"prerenderedAt":748},["ShallowReactive",2],{"blog-llamaindex-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":22,"sources":29,"cover":56,"og":57,"expertise":58,"locales":59,"lang":62,"title":63,"description":64,"coverAlt":65,"metaTitle":66,"takeaways":67,"faq":73,"toc":86,"blocks":111,"others":477},"llamaindex","2026-07-14",10,"agents",[9,10,11,12,13],"Agent framework","RAG","Python","Document parsing","Workflows",[4,15,16,17,18,19,20,21],"llamaindex vs langgraph","llamaindex workflows","llama index agent framework","llamaparse pricing","rag framework python","durable workflows python","document agent framework",[23,26],{"name":24,"url":25},"LlamaIndex","https:\u002F\u002Fgithub.com\u002Frun-llama\u002Fllama_index",{"name":27,"url":28},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",[30,32,35,38,41,44,47,50,53],{"title":31,"url":25},"LlamaIndex repository README and focus note",{"title":33,"url":34},"Agent Workflows: introduction","https:\u002F\u002Fdevelopers.llamaindex.ai\u002Fpython\u002Fllamaagents\u002Fworkflows\u002F",{"title":36,"url":37},"Agent Workflows: writing durable workflows","https:\u002F\u002Fdevelopers.llamaindex.ai\u002Fpython\u002Fllamaagents\u002Fworkflows\u002Fdurable_workflows\u002F",{"title":39,"url":40},"Agent Workflows: observability","https:\u002F\u002Fdevelopers.llamaindex.ai\u002Fpython\u002Fllamaagents\u002Fworkflows\u002Fobservability\u002F",{"title":42,"url":43},"LlamaAgents overview","https:\u002F\u002Fdevelopers.llamaindex.ai\u002Fpython\u002Fllamaagents\u002Foverview\u002F",{"title":45,"url":46},"llama-index-core on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Fllama-index-core\u002F",{"title":48,"url":49},"LlamaIndex and LlamaParse pricing","https:\u002F\u002Fwww.llamaindex.ai\u002Fpricing",{"title":51,"url":52},"LiteParse documentation","https:\u002F\u002Fdevelopers.llamaindex.ai\u002Fliteparse\u002F",{"title":54,"url":55},"LangGraph on GitHub","https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flanggraph","\u002Fimages\u002Fblog\u002Fllamaindex\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllamaindex\u002Fog.jpg","ai-engineer",[60,61,62],"en","de","hu","LlamaIndex teszt: a legszélesebb adat-eszközkészlet, aminek a súlypontja már elmozdult","LlamaIndex 2026: MIT-licencű Python keretrendszer adatokhoz és agentekhez, több mint 300 integrációval, eseményvezérelt Workflows-szal, és egy céggel, amely a fókuszát LlamaParse-ra helyezte.","Nyolc küllő egy középső négyzetes agy körül, egy sokkal hosszabb elér egy távoli dobozt.","LlamaIndex: széles toolkit, elmozduló fókusz · Balázs Csorba",[68,69,70,71,72],"A LlamaIndex továbbra is a legszélesebb open source adat-eszközkészlet LLM-alkalmazásokhoz: több mint 300 integrációs csomag, mindegyik vékony adapter, egy kis magabsztrakció-készlet fölött.","A Workflows, az orchestrációs réteg eseményvezérelt: egy lépés eseményt kap és eseményt ad vissza, a gráf a típusannotációkból származik, és a futás előtt validálódik.","A perzisztencia opcionális és kézzel írandó. Egy futás alapértelmezés szerint efemer, a mentés a `Context.to_dict()` pillanatképéből és a csapat által írt hurokból áll, a folytatás at-least-once, tehát a lépéseknek újrafuttathatónak kell lenniük.","A cég saját README-je szerint a fókusz ma a dokumentumparsolás és a kinyerés. A LlamaParse a fizetős termék, kreditben árazva, a LiteParse pedig a helyi open source parser.","Az ítélet: használd az open source magot, a Workflows-ot pedig kis könyvtárként, de tartsd szűken a framework hatókörét, mert a karbantartás iránya egyértelműen máshová tolódott.",[74,77,80,83],{"q":75,"a":76},"Megéri-e még a LlamaIndex 2026-ban?","Igen, szűkebb hatókörrel. Az MIT-licencű magat továbbra is karbantartják, a `llama-index-core` 2026. szeptember 21-én a 0.14.25 verziónál állt, és a Workflows orchestrációs réteg valóban jól van megtervezve az elágazó és hurkozó logikához. Amitől megváltozott a helyzet, az a cég deklarált fókusza, amelyet a README a dokumentumparsolásra és kinyerésre, nem a frameworkre helyez.",{"q":78,"a":79},"Mik a LlamaIndex Workflows, és hogyan működnek?","Egy workflow a `Workflow` egy alosztálya, amelynek metódusait `@step` díszíti. Minden lépés egy eseménytípust fogad, és egy másikat ad vissza, a framework pedig típusannotáció alapján irányít, így az elágazások szokásos `if` utasítások, a hurkok pedig olyan lépések, amelyek egy korábban kezelt eseményt adnak vissza. A párhuzamosság egy `list[Event]`-et visszaadó lépés, egy `list[Event]`-et fogadó lépéssel párban. Az eseménygráf a futás előtt validálódik.",{"q":81,"a":82},"Hogyan kezeli a LlamaIndex a perzisztenciát és az újrapróbálkozást?","Alapértelmezés szerint nem. Amint a `run()` visszatér, az állapot megszűnik. A dokumentált mechanizmus egy checkpoint-hurok: a kontextust a `Context.to_dict()`-tel mentjük, amikor egy `StepStateChanged` esemény egy lépést befejezettnek jelöl, majd a `Context.from_dict()`-tel visszaépítjük, és meghívjuk a `run(ctx=...)`-t. A folytatás at-least-once, tehát a mentéskor még futó lépés újrafut. A DBOS futásidejű plugin az alternatíva, ami megszünteti a hurkot.",{"q":84,"a":85},"Mennyibe kerül a LlamaParse?","Az árazási oldal krediteket ad el, nem helyeket: 1000 kredit 1,25 dollár, 10 000 kredit ingyen, 40 000 az 50 dolláros starter csomagban és 400 000 az 500 dolládos pro csomagban, a pay-as-you-go plafon pedig havi 500, illetve 5000 dollár. Az egyidejű parse feladatok száma 5 az ingyenes és a starter csomagban, 20 a prof, 100 az enterprise szinten. A parse, a kinyerés, a besorolás és az indexelés ugyanarról az egyenlegről von le.",[87,90,93,96,99,102,105,108],{"id":88,"title":89},"what-it-is","Mi ez",{"id":91,"title":92},"how-it-works","Hogyan működik a Workflows",{"id":94,"title":95},"getting-started","Első lépések",{"id":97,"title":98},"durability","Perzisztencia és újrapróbálkozás",{"id":100,"title":101},"where-it-falls-short","Hol gyengül",{"id":103,"title":104},"the-pivot","A fordulópont a dokumentumfeldolgozás felé",{"id":106,"title":107},"verdict","Ítélet",{"id":109,"title":110},"sources","Források",[112,116,119,122,142,165,166,192,198,226,236,237,240,242,264,283,284,305,307,322,323,326,383,386,393,394,397,412,415,421,422,425,439,443,446,447],{"type":113,"content":114},"paragraph",[115],"A LlamaIndex MIT-licencű Python-keretrendszer, amely LLM-alkalmazásokat köt össze adatokkal. Konnektorok és indexabsztrakciók halmazaként indult retrievalre, és máig a legszélesebb ilyen eszközkészlet: a repository több mint 300 integrációs csomagot publikál modell-szolgáltatókhoz, embedding modellekhez, vektortárakhoz, dokumentum-betöltőkhöz és rerankerekhez. Ez a szélesség az oka, hogy a legtöbb csapat először ezzel találkozik, és az is, hogy hasznos marad akkor is, ha a cég figyelme már máshol jár. Az itt felvett állás egyszerű: használd az open source magot, és tudatosan döntsd el, melyik hosztolt részt veszed fel.",{"type":113,"content":117},[118],"A modell-szolgáltató és az alkalmazás között helyezkedik el. A magban semmi nem beszél közvetlenül modell-szolgáltatóval; minden modell, embedder és vektortár egy integrációs csomagon keresztül érkezik, amely a mag egy absztrakt osztályát implementálja. Ez tiszta határ, és egyben a fő panasz forrása is: ugyanaz az absztrakciónak le kell fednie az OpenAI-t, egy helyi Ollama-folyamatot és egy tucat embedding modellt, így a hasznos közös nevező keskenyebb, mint a felület sugallja. A LangGraphgel ugyanazt az orchestrációs szerepet versenypályázza, a LangChainnel az adatkezelést, a kézzel összerakott vektortár-plusz-reranker kombinációval pedig a kényelmet versenyezi, nem a képességet.",{"type":120,"level":121,"id":88,"text":89},"heading",2,{"type":113,"content":123},[124,125,129,130,133,134,137,138,141],"A csomagstruktúra az első, amit ellenőrizni kell, és ott kezdődik a legtöbb zavar. A ",{"tag":126,"children":127},"code",[128],"llama-index-core"," tartalmazza az absztrakciókat, és a Workflows-ot is mellé szállítja. A ",{"tag":126,"children":131},[132],"llama-index"," az induló csomag, amely a magot és egy választott integrációcsoportot telepíti. A Workflows önállóan is megjelent ",{"tag":126,"children":135},[136],"llama-index-workflows"," néven, és ha a magon keresztül érkezik, akkor ",{"tag":126,"children":139},[140],"llama_index.core.workflow"," néven importálják. Minden más külön telepítés, és csak ezért marad kezelhető a függőségi fa.",{"type":143,"ordered":144,"items":145},"list",false,[146,151,153,155,157,163],[147,148,150],"MIT-licenc. A ",{"tag":126,"children":149},[128]," aktuális kiadása 0.14.25, 2026. szeptember 21-én.",[152],"Több mint 300 integrációs csomag a PyPI-n, mindegyik vékony adapter a mag egy absztrakt osztálya fölött.",[154],"A Workflows, az orchestrációs réteg eseményvezérelt: egy lépés egy eseményt kap, és egy másikat ad vissza, a framework pedig típusannotáció alapján irányít, nem deklarált él mentén.",[156],"Az eseménygráfot a futás előtt validálja a framework. Elutasítja az olyan workflow-kat, ahol egy eseménynek nincs termelője, egy előállított eseménynek nincs fogyasztója, vagy nem érhető el végső esemény.",[158,159,162],"A futások alapértelmezés szerint efemerisek. A perzisztencia opcionális ",{"tag":126,"children":160},[161],"Context.to_dict()"," pillanatképeken keresztül, vagy egy futásidejű pluginnon, mint a DBOS, amely a lépésátmeneteket adatbázisba naplózza.",[164],"A framework gyakorlati célplatformja a Python. Csak a LiteParse, a cég új helyi parserje szállít bindingokat a Pythonon túl.",{"type":120,"level":121,"id":91,"text":92},{"type":113,"content":167},[168,169,172,173,176,177,180,181,184,185,188,189,191],"A Workflows az a rész, amit érdemes megérteni, mert az is az, ami túléri a framework RAG-múltját. Egy workflow a ",{"tag":126,"children":170},[171],"Workflow"," egy alosztálya, amelynek metódusait a ",{"tag":126,"children":174},[175],"@step"," díszíti. Minden lépés egy eseménytípust fogad, és egy másikat ad vissza; a kezdeti eseménytípus visszaadása indítja a futást, a ",{"tag":126,"children":178},[179],"StopEvent"," visszaadása zárja. Az elágazások szokásos ",{"tag":126,"children":182},[183],"if"," utasítások, amelyek különböző eseménytípusokat adnak vissza, a hurok pedig olyan lépés, amely korábban kezelt eseménytípust ad vissza. A párhuzamosság egy ",{"tag":126,"children":186},[187],"list[Event]","-et visszaadó lépés, egy ",{"tag":126,"children":190},[187],"-et fogadó lépéssel párban, amely a gyűjtő.",{"type":193,"src":194,"alt":195,"wide":196,"caption":197},"image","\u002Fimages\u002Fblog\u002Fllamaindex\u002Fdiagram-7.webp","Workflows: tipizált események viszik előre a futást Egy kezdő esemény elindít egy retrieval lépést, amely nyolc párhuzamos workerre fanoutol, majd egy reranking lépés és egy záró StopEvent következik. Alattuk egy checkpoint lépés minden befejezett lépés után JSON-ba menti a kontextust, és egy resume útvonal csak a befejezetlen munkát ismétli.",true,"A gráf a lépésszignatúrákból származik, és az első esemény kibocsátása előtt validálódik. A perzisztencia nem része a futásidejének: az egy hurok, amit a csapat ír körül.",{"type":143,"ordered":144,"items":199},[200,205,210,216],[201,202,204],"Adj vissza ",{"tag":126,"children":203},[187],"-et, ha egy lépés véges halmazzal dolgozik, és minden munkaelemet előállíthat, mielőtt a további workerek elindulnak.",[206,207,209],"Fogadj el ",{"tag":126,"children":208},[187],"-et, ha a lépésnek az eredmények teljes halmazára szüksége van a folytatáshoz.",[211,212,215],"Hívd a ",{"tag":126,"children":213},[214],"ctx.send_event(...)"," metódust, ha az események száma előre ismeretlen, vagy ha egy eseményt lépen kívülről kell kibocsátani.",[217,218,221,222,225],"A ",{"tag":126,"children":219},[220],"ctx.store"," a futáson belüli megosztott állapotra való, a ",{"tag":126,"children":223},[224],"Resource(...)"," pedig azokra a kliensekre, modellekre és konfigurációra, amelyek nem kerülhetnek egy pillanatképbe.",{"type":113,"content":227},[228,229,231,232,235],"A típusannotációk nem díszítőelemek, hanem teherhordók. Végrehajtás előtt a framework a lépésszignatúrákból levezeti az eseménygráfot, és megtagadja az indulást, ha van nem előállított esemény, elfogyasztatlanul maradó esemény vagy el nem érhető ",{"tag":126,"children":230},[179],". Ez olyan bekötési hibákat fog meg, amelyeket a kézzel megírt függvénykompozíció egyáltalán nem, és ez a tervezés legerősebb érve. Az ár az, hogy a szándékosan dinamikus workflow-nak a ",{"tag":126,"children":233},[234],"ctx.send_event","-hez kell visszatérnie, és meg kell jelölnie, mely statikus ellenőrzések hagyhatók ki, ami gyakorlatban azt jelenti: minél képesebb egy workflow, annál kevésbé ellenőrizhető statikusan.",{"type":120,"level":121,"id":94,"text":95},{"type":113,"content":238},[239],"A legkisebb használható workflow körülbelül húsz sor. Két telepítési forma támogatott, és az importútban különböznek, ez a részlet szokott sokaknak megbukni:",{"type":126,"code":241},"import asyncio\n\nfrom llama_index.core import VectorStoreIndex\nfrom workflows import Workflow, step\nfrom workflows.events import Event, StartEvent, StopEvent\n\n\nclass Answered(Event):\n    question: str\n    answer: str\n\n\nclass TriageFlow(Workflow):\n    index: VectorStoreIndex\n\n    @step\n    async def retrieve(self, ev: StartEvent) -> Answered:\n        retriever = self.index.as_retriever(similarity_top_k=8)\n        nodes = await retriever.aretrieve(ev.question)\n        best = max(nodes, key=lambda n: n.score or 0.0)\n        return Answered(question=ev.question, answer=best.node.get_content())\n\n    @step\n    async def answer(self, ev: Answered) -> StopEvent:\n        return StopEvent(result=ev.answer)\n\n\nasync def main():\n    flow = TriageFlow(index=VectorStoreIndex.from_documents(documents), timeout=60)\n    result = await flow.run(question=\"What is the refund window?\")\n    print(result.result)\n\nasyncio.run(main())",{"type":113,"content":243},[217,244,247,248,251,252,255,256,259,260,263],{"tag":126,"children":245},[246],"run()"," egy ",{"tag":126,"children":249},[250],"WorkflowHandler","-t ad vissza. Awaitelhető, és ha nem awaitelsz azonnal, hanem megtartod a handlert, közben hozzáférsz a ",{"tag":126,"children":253},[254],"stream_events()","-hez a folyamatjelzéshez. A ",{"tag":126,"children":257},[258],"timeout"," argumentum másodpercben értendő, és a konstruktorban adod át. Minden lépés szándékosan async, ezért egy önálló szkripthez egyetlen ",{"tag":126,"children":261},[262],"asyncio.run"," belépési pont kell; FastAPI-ben vagy jegyzetfüzetben nem szükséges.",{"type":265,"variant":266,"title":267,"body":268},"callout","tip","Válaszd ki tudatosan a telepítési formát",[269],[270,271,273,274,276,277,279,280,282],"Ha csak az orchestráció kell, telepítsd egyedül a ",{"tag":126,"children":272},[136]," csomagot; ha a retrieval-komponensek is jönnek, telepítsd a ",{"tag":126,"children":275},[128],"-t, mert az újra exportálja a Workflows-ot ",{"tag":126,"children":278},[140]," néven. Az induló ",{"tag":126,"children":281},[132]," csomag egy választott integrációcsoportot húz be, amit a legtöbb alkalmazás már az első napon lecserél.",{"type":120,"level":121,"id":97,"text":98},{"type":113,"content":285},[286,287,289,290,292,293,296,297,300,301,304],"A Workflows alapértelmezés szerint efemer: amint a ",{"tag":126,"children":288},[246]," visszatér, az állapot megszűnik, és a következő futás nulláról indul. Sok száz dokumentumra kiterjedő kiszámoláshoz, amelynek nem szabad nulláról újrakezdődnie, a dokumentáció checkpoint hurkot ír elő. A ",{"tag":126,"children":291},[161]," szerializálja a még folyamatban lévő eseményeket és az állapottárolót, a ",{"tag":126,"children":294},[295],"Context.from_dict()"," visszaépíti őket, a ",{"tag":126,"children":298},[299],"run(ctx=...)"," pedig egy másik folyamatban folytatja. Beépített checkpointer nincs: a futás belső ",{"tag":126,"children":302},[303],"StepStateChanged"," eseményt ad le, amikor egy lépés befejeződik, és ez a mentési jel.",{"type":126,"code":306},"import json\n\nfrom workflows.events import StepState, StepStateChanged\n\nhandler = flow.run(question=q)\n\nasync for ev in handler.stream_events(expose_internal=True):\n    if isinstance(ev, StepStateChanged) and ev.step_state == StepState.NOT_RUNNING:\n        json.dump(handler.ctx.to_dict(), open(\"run.json\", \"w\"))\n\nresult = await handler\n\n# after a restart: resume from the last snapshot\nctx = Context.from_dict(flow, json.load(open(\"run.json\")))\nresult = await flow.run(ctx=ctx)",{"type":113,"content":308},[309,310,313,314,317,318,321],"A dizájn két tulajdonsága üzemeltetéskor jelentkezik. A folytatás at-least-once: az a lépés, amely a pillanatkép idején még futott, visszatekeredik és újrafut, tehát legfeljebb ",{"tag":126,"children":311},[312],"num_workers"," elem duplázódik. A pillanatkép pedig JSON, így ha a szerializáló nem tud kódolni egy értéket, a ",{"tag":126,"children":315},[316],"to_dict()"," feldob, és az egész mentés elhasal, nem csak az érintett mező. A nehéz bemenetek ezért ",{"tag":126,"children":319},[320],"Resource","-be kerülnek, amely folytatáskor újraalkotódik ahelyett, hogy szerializálódna. Aki nem akarja magát kezelni a hurkot, használhatja a DBOS futásidejű plugint, amely a lépésátmeneteket adatbázisba naplózza, és nem kell hozzá checkpoint-kód.",{"type":120,"level":121,"id":100,"text":101},{"type":113,"content":324},[325],"A gyengeségek strukturálisak, nem bugok. A szélesség karbantartási felület: több száz integrációval egy frissítés olyan modell-wrappert is mozgathat, amelyet senki nem akart hozzáérni, és egy integráció rögzítése gyakran a mag rögzítését is jelenti. A magas szintű API annyit elrejt, hogy egy prototípus anélkül juthat productionbe, hogy bárki feljegyezné, melyik chunkméret, melyik top-k és melyik prompt-sablon adta a választ; az alapértékek kényelmesek, és nincsenek alapértékként dokumentálva. A perzisztencia opcionális és kézzel írandó, vagyis épp az ellentéte annak, amit egy hosszú életű batch feladat kér. És a framework mögötti cég nyíltan szűkítette a fókuszát, ami 2026-ban kínos értékelési tényező.",{"type":327,"head":328,"rows":337},"table",[329,331,333,335],[330],"Framework",[332],"Orchestrációs modell",[334],"Perzisztencia és állapot",[336],"Hol nyer",[338,350,361,372],[339,344,346,348],[340],{"tag":341,"children":342},"strong",[343],"LlamaIndex Workflows",[345],"Eseményvezérelt lépések, vezérlési folyamat normál Pythonban",[347],"Nincs beépített checkpointer; kontextusmentések a csapattól vagy a DBOS futásidejű plugin",[349],"A retrieval- és dokumentumkomponensek ugyanabban a könyvtárban vannak",[351,355,357,359],[352],{"tag":341,"children":353},[354],"LangGraph",[356],"Explicit állapotgráf feltételes élekkel",[358],"A tartós végrehajtás és a checkpointerek az alapértelmezés",[360],"Az állapotátmenetek maguk az artefaktum, és gráfként átláthatók maradnak",[362,366,368,370],[363],{"tag":341,"children":364},[365],"Haystack",[367],"Tipizált komponensekből álló pipeline-ok",[369],"Komponensenkénti hibaelágak és újrapróbálkozások",[371],"Stabil komponenskatalógus retrievalre épülő alkalmazásokhoz",[373,377,379,381],[374],{"tag":341,"children":375},[376],"DSPy",[378],"Deklaratív modulok, offline hangolva egy metrikára",[380],"Nincs; ez nem orchestrációs futásidej",[382],"Promptok és modulok hangolása, mielőtt kiszolgáló kód egyáltalán létezne",{"type":113,"content":384},[385],"Végigolvasva a perzisztencia oszlopot a gyakorlati metszet jól látszik. A LangGraph alapértelmezetté teszi a checkpointot, és ezt azzal fizeti meg, hogy a gráf explicit, ami gondolkodási munka, viszont olvashatóságot vásárol. A Workflows a vezérlést normál Pythonban tartja, ami jobban olvasható és rosszabbul átlátható: egy workflow, amely 500 dokumentumra is kiterjed, 500 párhuzamos hívás, amelyek sorrendjét egyetlen eszköz sem segít meglátni. Egy csapat számára, amelynek munkája az állapotátmenetek átgondolása, ez rossz csere. Egy csapat számára, amely normál Pythont akar írni és elvárja, hogy előre nem láthatóan viselkedjen, ez jó csere.",{"type":113,"content":387},[388,389,392],"Ide tartozik egy második megjegyzés. A dinamikus workflow elveszíti a statikus analízist, és a dokumentáció kimondja, hogy az el nem érhető lépések és az egyszeri események pontosan azok, amit ezek az ellenőrzések nem látnak. Aki kézzel rajzolt gráfot ültet át Workflows-ba, elég korán nyúl a ",{"tag":126,"children":390},[391],"skip_graph_checks"," opcióhoz, és ezzel csendben letiltja azt az ellenőrzést, amely az elhalt ágakat megtalálná, vagyis ugyanazt az ellenőrzést, amely eredetileg a bekötési hibát kiszúrta volna.",{"type":120,"level":121,"id":103,"text":104},{"type":113,"content":395},[396],"A repository README-je mostantól feltűnő jegyzetet visel: a LlamaIndex aktuális fókusza a dokumentumparsolás és kinyerés, a LlamaParse pedig a cég vállalati platformja ehhez. Ez megváltoztatja, hogy mit finanszíroz egy karbantartási keret. Az integrációs csomagok továbbra is megjelennek és működnek; az már nem garantált, hogy mindegyik bővül, amikor új szolgáltató jelenik meg.",{"type":143,"ordered":144,"items":398},[399,401,403,405,410],[400],"A LlamaParse a fizetős termék: agentikus OCR, parsolás, kinyerés és indexelés, kreditben értékesítve, nem felhasználói helyek szerint.",[402],"A LiteParse az open source ellensúly: egy Rust parser, amely helyben fut, LLM, felhőfüggőség és API-kulcs nélkül, TypeScripthez, Pythonhoz, Rusthoz és böngészős WASM-hez való bindingokkal.",[404],"A ParseBench és az ExtractBench a cég saját nyilvános benchmarkjai parsolásra és kinyerésre.",[406,407,409],"A framework MIT-licencű marad, és megjelent a PyPI-n, a ",{"tag":126,"children":408},[128]," 0.14.25 verzióval 2026. szeptember 21-én.",[411],"Az eredmény egy megosztott stratégia: nyílt eszközök a helyi parsoláshoz, hosztolt platform a nehéz dokumentumokhoz, és közöttük az agent-framework mint integrációs felület.",{"type":113,"content":413},[414],"Ez megindokolható üzleti döntés, és enyhe figyelmeztetés mindenkinek, aki most keretrendszert választ. A halom azon részei, amelyeket leginkább karbantartanak, a fizetős fal mögött vannak, és a MIT-mag az, ami könyvtárként hasznos marad. Ezt úgy olvasd, hogy a framework hatókörét érdemes kicsire tartani: a Workflows-ot az orchestrációra használd, a betöltést és a parsolást tartsd házban, ahol ez lehetséges, és légy explicit abban, melyik hívások hagyják el az infrastruktúrádat.",{"type":265,"variant":416,"title":417,"body":418},"note","A LlamaParse árai számokban",[419],[420],"Az árazási oldal krediteket ad el, nem helyeket: 1000 kredit 1,25 dollár, 10 000 kredit az ingyenes csomagban, 40 000 az 50 dolláros starterben és 400 000 az 500 dolládos pro csomagban, a pay-as-you-go plafon pedig havi 500, illetve 5000 dollár. Az egyidejű parse feladatok száma 5 az ingyenes és a starter csomagban, 20 a prof, 100 az enterprise szinten. A parse, a kinyerés, a besorolás és az indexelés ugyanarról az egyenlegről von le, és ugyanaz a táblázat intelligens eredménytárolást sorol fel nulla kredites újraparse-sel, amit egy adott parse-konfigurációnál érdemes ellenőrizni, nem pedig feltételezni.",{"type":120,"level":121,"id":106,"text":107},{"type":113,"content":423},[424],"Az ítélet az, hogy a LlamaIndex a legteljesebb válasz egy szűk kérdésre, hogyan kerülnek dokumentumok egy LLM-alkalmazásba saját integrációs réteg írása nélkül, és közepes válasz a tágabb kérdésre, hogyan kell orchestrálni egy agentet. A Workflows valóban jól fordítja elágazó logikát tipizált, validált Pythonná, és az at-least-once checkpoint modellje őszinte a saját hibaértelmezésével. Amit a framework nem kínál, az egy olyan futásideje, amelyre rámutathatsz és megnézhetsz: nincs állapotgráf átvizsgálásra, nincs alapértelmezett perzisztencia, és a karbantartás iránya nyilvánosan máshová tolódott.",{"type":143,"ordered":196,"items":426},[427,429,431,433,435,437],[428],"Vedd, ha az adataid többsége dokumentum, és a konektor-, chunker-, embedder- és reranker-absztrakciók már meg vannak írva. Ez valódi megtakarítás, és ez volt az eredeti cél.",[430],"Vedd a Workflows-ot önálló, kis könyvtárként, ha az orchestráció elágazó, hurkozó Python, amely most az asyncio-ban összekeveredve él. A tipizált eseménygráf és az indulás előtti validáció az ok.",[432],"Ne válaszd egy olyan gráf miatt, amelyen végig kell gondolkodni. Ha az állapotátmenetek maguk a vizsgálandó anyag, az explicit gráf ver a Python vezérlési struktúrája.",[434],"Ne válaszd a hosztolt platform miatt. A LlamaParse, az Extract és az index szolgáltatás külön fizetős termék kreditárazással, és az ingestion-számládat frameworkhez kötni döntés, nem alapértelmezés.",[436],"Kerüld TypeScript- vagy Go stackhez. A mag Python, csak az új LiteParse parser szállít szélesebb bindingokat.",[438],"Értékeld újra egy év múlva, ha az integrációs szélesség hordozó. A cég parsolásra és kinyerésre fókuszáló iránya mellett a vektortár- és embedder-integrációk hosszú farka az, ami a leginkább kitett a lassú karbantartásnak.",{"type":440,"content":441},"quote",[442],"The current focus of LlamaIndex is to build the best AI-powered engine for document parsing and extraction.",{"type":113,"content":444},[445],"Ez a mondat a projekt README-jében áll, nem egy blogbejegyzésben, ami szokatlan és megjegyzésre érdemes: maguk a framework fenntartói nevezik meg, merre tart az ütterv. Mérnöki olvasatban ez azt jelenti, hogy az orchestrációs réteget karbantartják, de nem az a cél, a fizetős dokumentumfeldolgozás viszont az.",{"type":120,"level":121,"id":109,"text":110},{"type":143,"ordered":196,"items":448},[449,453,456,459,462,465,468,471,474],[450],{"tag":451,"href":25,"children":452},"a",[31],[454],{"tag":451,"href":34,"children":455},[33],[457],{"tag":451,"href":37,"children":458},[36],[460],{"tag":451,"href":40,"children":461},[39],[463],{"tag":451,"href":43,"children":464},[42],[466],{"tag":451,"href":46,"children":467},[45],[469],{"tag":451,"href":49,"children":470},[48],[472],{"tag":451,"href":52,"children":473},[51],[475],{"tag":451,"href":55,"children":476},[54],[478,537,610,680],{"slug":479,"published":480,"minutes":481,"category":7,"tags":482,"keywords":488,"about":499,"sources":509,"cover":531,"og":532,"expertise":58,"locales":533,"lang":62,"title":534,"description":535,"coverAlt":536},"agent-tool-design-descriptions-errors","2026-10-17",11,[483,484,485,486,487],"AI agents","Tool use","Function calling","MCP","Agent design",[489,490,491,492,493,494,495,496,497,498],"agent tool design","writing tool descriptions for llm","function calling best practices","tool use error handling","mcp tool design","tool calling is_error","how many tools should an agent have","tool search defer_loading","agent computer interface","llm tool schema design",[500,503,506],{"name":501,"url":502},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",{"name":504,"url":505},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"name":507,"url":508},"Poka-yoke","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPoka-yoke",[510,513,516,519,522,525,528],{"title":511,"url":512},"Anthropic Engineering: Writing effective tools for agents, with agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fwriting-tools-for-agents",{"title":514,"url":515},"Anthropic Engineering: Building effective agents (Dec 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents",{"title":517,"url":518},"Claude Platform Docs: Define tools","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fdefine-tools",{"title":520,"url":521},"Claude Platform Docs: Handle tool calls","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fhandle-tool-calls",{"title":523,"url":524},"Claude Platform Docs: Tool search tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Ftool-search-tool",{"title":526,"url":527},"Model Context Protocol specification 2025-11-25: Tools","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fserver\u002Ftools",{"title":529,"url":530},"OpenAI API Docs: Function calling","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ffunction-calling","\u002Fimages\u002Fblog\u002Fagent-tool-design-descriptions-errors\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fagent-tool-design-descriptions-errors\u002Fog.jpg",[60,61,62],"Eszközök tervezése AI-ágenseknek: nevek, leírások, sémák és hibaüzenetek","Ágenseszközök, amelyeket jól választ és hív a modell: feladatra szabott eszközök, leírások, sémák, tömör válaszok és használható hibaüzenetek.","Három réssel ellátott alapzat; a középső rés fölött pontosan illeszkedő blokk áll, mellette két rossz szélességű blokk.",{"slug":538,"published":480,"minutes":481,"category":7,"tags":539,"keywords":545,"about":558,"sources":568,"cover":604,"og":605,"expertise":58,"locales":606,"lang":62,"title":607,"description":608,"coverAlt":609},"coding-agents-legacy-codebase-migration",[540,541,542,543,544],"Legacy migration","Coding agents","Strangler fig","Testing","Code review",[546,547,548,549,550,551,552,553,554,555,556,557],"legacy code migration ai","coding agent legacy codebase","strangler fig pattern ai","characterization tests legacy code","ai code migration review","agent assisted refactoring","legacy modernization coding agent","differential testing migration","shadow traffic migration","ai code review gate","test harness before migration","llm code migration",[559,562,565],{"name":560,"url":561},"Legacy code","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLegacy_code",{"name":563,"url":564},"Characterization test","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCharacterization_test",{"name":566,"url":567},"Strangler fig pattern","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FStrangler_fig_pattern",[569,572,574,577,580,583,586,589,592,595,598,601],{"title":570,"url":571},"Martin Fowler: Strangler Fig (2024)","https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FStranglerFigApplication.html",{"title":573,"url":564},"Wikipedia: Characterization test",{"title":575,"url":576},"Google Research: Accelerating code migrations with AI (2024)","https:\u002F\u002Fresearch.google\u002Fblog\u002Faccelerating-code-migrations-with-ai\u002F",{"title":578,"url":579},"Ziftci et al.: Migrating Code At Scale With LLMs At Google (arXiv 2504.09691)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":581,"url":582},"Anthropic: Effective harnesses for long-running agents (2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":584,"url":585},"Anthropic: Redesigning source control at Anthropic (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fredesigning-source-control",{"title":587,"url":588},"METR: Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity","https:\u002F\u002Fmetr.org\u002Fblog\u002F2025-07-10-early-2025-ai-experienced-os-dev-study\u002F",{"title":590,"url":591},"Chand et al.: Why Industry Migrates and When It Trusts LLMs (ESEM 2026)","https:\u002F\u002Fdrops.dagstuhl.de\u002Fentities\u002Fdocument\u002F10.4230\u002FLIPIcs.ESEM.2026.85",{"title":593,"url":594},"Li et al.: Environment-in-the-Loop: Rethinking Code Migration with LLM-based Agents (arXiv 2602.09944)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2602.09944",{"title":596,"url":597},"AWS: Amazon Q Developer just reached a $260 million dollar milestone (2024)","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Fdevops\u002Famazon-q-developer-just-reached-a-260-million-dollar-milestone\u002F",{"title":599,"url":600},"OpenAI: Why SWE-bench Verified no longer measures frontier coding capabilities (2026)","https:\u002F\u002Fopenai.com\u002Findex\u002Fwhy-we-no-longer-evaluate-swe-bench-verified\u002F",{"title":602,"url":603},"GitHub Docs: About GitHub Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcoding-agent\u002Fabout-coding-agent","\u002Fimages\u002Fblog\u002Fcoding-agents-legacy-codebase-migration\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcoding-agents-legacy-codebase-migration\u002Fog.jpg",[60,61,62],"Legacy kódbázis migrálása coding agentekkel: strangler fig playbook","Hogyan dolgozik coding agent egy legacy migráción: characterization tesztek először, egy seam feladatonként, review gate-ek és differenciális ellenőrzés.","Rétegek halmaza, a felső kettőt újak váltják, mellettük varrat és pipa.",{"slug":611,"published":480,"minutes":612,"category":7,"tags":613,"keywords":617,"about":629,"sources":639,"cover":674,"og":675,"expertise":58,"locales":676,"lang":62,"title":677,"description":678,"coverAlt":679},"background-agents-async-pr-workflow",12,[541,614,615,544,616],"Pull requests","CI","Automation",[618,619,620,621,622,623,624,625,626,627,628],"background coding agent","async coding agent","cloud coding agent pull request","copilot coding agent limits","codex cloud tasks","claude code cloud sessions","jules coding agent limits","agent pull request review","coding agent sandbox","agent CI gating","cost per merged pull request",[630,633,636],{"name":631,"url":632},"Software agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_agent",{"name":634,"url":635},"Pull request","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDistributed_version_control",{"name":637,"url":638},"Continuous integration","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContinuous_integration",[640,641,644,647,650,653,656,659,662,665,668,671],{"title":602,"url":603},{"title":642,"url":643},"GitHub Docs: Risks and mitigations for Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcloud-agent\u002Frisks-and-mitigations",{"title":645,"url":646},"OpenAI Developers: Codex cloud environments","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fcloud\u002Fenvironments",{"title":648,"url":649},"Anthropic: Use Claude Code in the cloud","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fclaude-code-on-the-web",{"title":651,"url":652},"Google Jules: Limits and plans","https:\u002F\u002Fjules.google\u002Fdocs\u002Fusage-limits\u002F",{"title":654,"url":655},"Google Jules: Getting started","https:\u002F\u002Fjules.google\u002Fdocs\u002F",{"title":657,"url":658},"GitHub Docs: About protected branches","https:\u002F\u002Fdocs.github.com\u002Fen\u002Frepositories\u002Fconfiguring-branches-and-merges-in-your-repository\u002Fmanaging-protected-branches\u002Fabout-protected-branches",{"title":660,"url":661},"GitHub Docs: Models and pricing for GitHub Copilot","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Freference\u002Fcopilot-billing\u002Fmodels-and-pricing",{"title":663,"url":664},"OpenAI Developers: Codex pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpricing",{"title":666,"url":667},"Ehsani et al.: Where Do AI Coding Agents Fail? An Empirical Study of Failed Agentic Pull Requests in GitHub (MSR 2026, arXiv 2601.15195)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2601.15195",{"title":669,"url":670},"Peralta et al.: Why Are Agentic Pull Requests Merged or Rejected? An Empirical Study (MSR 2026, arXiv 2605.22534)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2605.22534",{"title":672,"url":673},"DORA: State of AI-assisted Software Development 2025","https:\u002F\u002Fdora.dev\u002Fdora-report-2025","\u002Fimages\u002Fblog\u002Fbackground-agents-async-pr-workflow\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fbackground-agents-async-pr-workflow\u002Fog.jpg",[60,61,62],"Háttérben futó kódoló ügynökök: PR-ek, sorok és review","Hogyan sorakoztatnak feladatokba az aszinkron kódoló ügynökök, hogyan futnak sandboxban, nyitnak draft PR-t és mennek át a CI-n. Limitek, költségek, review.","Egy kártya a tálcán öt mezőre ágazik, a nyilak egy kapu mögötti laphoz vezetnek.",{"slug":681,"published":682,"minutes":6,"category":7,"tags":683,"keywords":689,"about":701,"sources":709,"cover":742,"og":743,"expertise":58,"locales":744,"lang":62,"title":745,"description":746,"coverAlt":747},"context-rot-compaction-long-running-agents","2026-10-16",[684,685,686,687,688],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[690,691,692,693,694,695,696,697,698,699,700],"context rot","context rot LLM","compaction AI agents","context engineering","long-running agents context window","Claude compaction API","context editing clear tool results","OpenAI responses compaction","lost in the middle LLM","agent context management","sub-agents context isolation",[702,705,708],{"name":703,"url":704},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":706,"url":707},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":501,"url":502},[710,713,716,719,722,724,727,730,733,736,739],{"title":711,"url":712},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":714,"url":715},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":717,"url":718},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":720,"url":721},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":723,"url":582},"Anthropic: Effective harnesses for long-running agents (Nov 2025)",{"title":725,"url":726},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":728,"url":729},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":731,"url":732},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":734,"url":735},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":737,"url":738},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":740,"url":741},"Cognition: Don't Build Multi-Agents","https:\u002F\u002Fcognition.ai\u002Fblog\u002Fdont-build-multi-agents","\u002Fimages\u002Fblog\u002Fcontext-rot-compaction-long-running-agents\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcontext-rot-compaction-long-running-agents\u002Fog.jpg",[60,61,62],"Kontextusromlás hosszan futó ügynököknél: törlés, tömörítés, memória és al-ügynökök","Miért romlik az LLM pontossága a kontextus növekedésével, és hogyan tartja pályán a hosszú ügynökfutást a törlés, a tömörítés, a jegyzet és az al-ügynök.","Egy kis négyzetes prés magas lappköteget nyom rövidre, közben két jegyzet ágazik le.",1792261159621]