[{"data":1,"prerenderedAt":686},["ShallowReactive",2],{"blog-openai-agents-sdk-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":23,"sources":33,"cover":64,"og":65,"expertise":66,"locales":67,"lang":70,"title":71,"description":72,"coverAlt":73,"metaTitle":74,"takeaways":75,"faq":81,"toc":94,"blocks":119,"others":416},"openai-agents-sdk","2026-09-11",10,"agents",[9,10,11,12,13],"Agent runtime","Tracing","Guardrails","MCP","Python",[15,16,17,18,19,20,21,22],"openai agents sdk","openai agents sdk vs langgraph","python agent framework comparison","openai agents sdk guardrails","agent run tracing tool calls","openai agents sdk human in the loop","openai-agents pypi","agents sdk vs responses api",[24,27,30],{"name":25,"url":26},"Model context protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_context_protocol",{"name":28,"url":29},"Software framework","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_framework",{"name":31,"url":32},"Agentic AI","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAgentic_AI",[34,37,40,43,46,49,52,55,58,61],{"title":35,"url":36},"OpenAI Agents SDK documentation: Intro, and Agents SDK or Responses API","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002F",{"title":38,"url":39},"OpenAI Agents SDK documentation: Running agents","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Frunning_agents\u002F",{"title":41,"url":42},"OpenAI Agents SDK documentation: Guardrails","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fguardrails\u002F",{"title":44,"url":45},"OpenAI Agents SDK documentation: Human-in-the-loop","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fhuman_in_the_loop\u002F",{"title":47,"url":48},"OpenAI Agents SDK documentation: Tracing","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Ftracing\u002F",{"title":50,"url":51},"OpenAI Agents SDK documentation: Configuration","https:\u002F\u002Fopenai.github.io\u002Fopenai-agents-python\u002Fconfig\u002F",{"title":53,"url":54},"openai-agents 0.23.1 on PyPI, release history and licence","https:\u002F\u002Fpypi.org\u002Fproject\u002Fopenai-agents\u002F",{"title":56,"url":57},"OpenAI: The next evolution of the Agents SDK (15 April 2026)","https:\u002F\u002Fopenai.com\u002Findex\u002Fthe-next-evolution-of-the-agents-sdk\u002F",{"title":59,"url":60},"OpenAI API documentation: Agents, comparison of the three runtimes","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fagents",{"title":62,"url":63},"Arize: AI agent frameworks compared (1 October 2026)","https:\u002F\u002Farize.com\u002Fai-agents\u002Fagent-frameworks\u002F","\u002Fimages\u002Fblog\u002Fopenai-agents-sdk\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenai-agents-sdk\u002Fog.jpg","ai-engineer",[68,69,70],"en","de","hu","OpenAI Agents SDK: könnyű agent-runtime éles szélekkel","Az OpenAI Agents SDK értékelése: a runner-ciklus, a tracing, a guardrail-ek és a jóváhagyások, plusz mit fizet a kiadási tempó és a Responses-only funkciók.","Négy négyzetből álló kis gyűrű nagyobb gyűrűben, kívül háromszögek és két pajzs.","OpenAI Agents SDK értékelés · Balázs Csorba",[76,77,78,79,80],"A Python csomag MIT licenc alatt áll, Python 3.10 vagy újabb kell hozzá, és 2026. október 2-én a 0.23.1 verziónál járt, 123 PyPI kiadással 2025. március óta.","A runner alapértelmezetten max_turns=10 körre korlátoz, és MaxTurnsExceeded hibát dob, ez az ésszerű alapérték, amelyet a legtöbb csapatnak meg kell tartania.","A tracing alapértelmezetten be van kapcsolva, és hordozza a modellek és az eszközök bemeneteit és kimeneteit, ezért a production futásoknak trace_include_sensitive_data=False értéket kell állítaniuk.","A guardrail-ek alapértelmezetten az ügynök mellett futnak, így a tripwire megtelésekor a tokenek már elmentek; a költségérzékeny útvonalakon a run_in_parallel=False a megfelelő beállítás.","A computer use, a hosted tool search és a programmatic tool calling elutasításra kerül a Chat Completions modelleken és a nem Responses alapú backenden, így a providerfüggetlenségi állítás halkabb a valóságnál.",[82,85,88,91],{"q":83,"a":84},"Ingyenes az OpenAI Agents SDK?","Az SDK maga MIT licenc alatt áll, és a pip install openai-agents telepíti. A költség az API-nál keletkezik: a ciklus által hívott modellek tokenenként számolnak, és az OpenAI szerint az 2026. áprilisi harness- és sandbox-képességek a tokenre és eszközhívásra basierende szokásos API-árazást használják.",{"q":86,"a":87},"Használható-e nem OpenAI modellekkel?","Igen. A csomag LiteLLM- és AnyLLM-adaptert szállít, olvassa az OPENAI_BASE_URL változót, és a projekt README-je több mint 100 támogatott modellt említ. Több képesség azonban Responses-only, és elutasításra kerül a Chat Completions modelleken és a nem Responses backenden, ezért egyetlen modellhívás helyett a teljes agent futását kell tesztelni.",{"q":89,"a":90},"Miben különbözik az Agents SDK a Responses API-tól?","A Responses API a modell interfésze; az SDK köré runtime épül, amely a fordulókat, az eszközhívás-végrehajtást, a guardrail-eket, a handoffokat és a sessionöket kezeli. Ha a feladat egyetlen hívás, amely egyetlen választ ad, az SDK csak felesleges gépezetet ad hozzá, és a Responses API a kisebb választás.",{"q":92,"a":93},"Hogyan működik az eszközhívások emberi jóváhagyása?","Ha egy function toolon, az Agent.as_tool() híváson, a ShellTool vagy az ApplyPatchTool eszközön beállítják a needs_approval értéket, a futás ToolApprovalItem elemekkel áll meg a result.interruptions mezőben. Az eredményt a to_state() szerializálja, a state.approve() vagy state.reject() dönt, majd a Runner.run(agent, state) folytatja. A hívható jóváhagyási szabályok zárt ajtóként működnek, ha az argumentumok nem értelmezhetők.",[95,98,101,104,107,110,113,116],{"id":96,"title":97},"what-it-is","Mi ez",{"id":99,"title":100},"how-it-works","Hogyan működik a ciklus",{"id":102,"title":103},"getting-started","Első lépések",{"id":105,"title":106},"guardrails-and-approvals","Guardrail-ek és jóváhagyások",{"id":108,"title":109},"tracing-and-cost","Tracing és költségkontroll",{"id":111,"title":112},"where-it-shingles","Hol csikrik",{"id":114,"title":115},"verdict","Ítélek",{"id":117,"title":118},"sources","Források",[120,128,131,134,137,180,181,184,190,193,211,212,215,217,220,226,227,230,242,251,252,255,267,270,276,277,280,283,346,349,350,353,367,370,378,379],{"type":121,"content":122},"paragraph",[123,127],{"tag":124,"children":125},"strong",[126],"Az OpenAI Agents SDK"," az a agent-runtime, amelyet az OpenAI Pythonra és TypeScriptra szállít: kevés primitív, egy fordulóciklus, és olyan tracing, amely már azelőtt be van kapcsolva, hogy bárki kérné. Jó alapérték azoknak a csapatoknak, amelyek OpenAI-modellekre egységesülnek, és a ciklust inkább egy könyvtárban, mint kézzel írt asyncióban látják. A rossz eszköz, amint a workflow állapotgéppé válik.",{"type":121,"content":129},[130],"A nyers Responses API és egy teljes оркесztrációs keret közé ül. A Responses API a modell interfésze. Az SDK hozzáad egy runnert, amely a fordulókat, az eszközhívás-végrehajtást, a guardrail-eket, a handoffokat és a sessionöket kezeli. A LangGraphhez hasonló graph runtime-ok mindkettő fölött helyezkednek el, és kifejezetten kódolják a workflow-t. A dokumentáció maga húzza meg a határt: közvetlenül a Responses API-t kell használni, ha a ciklust, az eszköz-végrehajtást és az állapotkezelést saját kezünkbe akarjuk venni.",{"type":132,"level":133,"id":96,"text":97},"heading",2,{"type":121,"content":135},[136],"A felépítés szándékosan vékony. Egy ügynök utasításokból, modellből és eszközökből áll. A delegációnak pontosan két formája van: az Agent.as_tool() egy menedzserhez tartozik, amely megtartja a beszélgetést, a handoff() pedig egy szakemberhez, aki átveszi. A guardrail-ek szokásos függvények, amelyek tripwire-jelzőt adnak vissza. Minden más, a sessionök, az MCP, a sandbox-kliensek, a realtime és a voice, modulok e körül, nem új absztrakció, amit előbb tanulni kellene.",{"type":138,"ordered":139,"items":140},"list",false,[141,151,156,161,166,170,175],[142,145,146,150],{"tag":124,"children":143},[144],"Csomag",": ",{"tag":147,"children":148},"code",[149],"openai-agents"," a PyPI-on, MIT licenc, Python 3.10 vagy újabb kell hozzá.",[152,155],{"tag":124,"children":153},[154],"Verzió",": 0.23.1, 2026. október 2. A 123. kiadás a 2025. március 4-i 0.0.1 óta; ezekből 77 csak 2026-ban jelent meg.",[157,160],{"tag":124,"children":158},[159],"Modellek",": alapértelmezetten az OpenAI Responses API, alternatívaként a Chat Completions, más szolgáltatókhoz LiteLLM- és AnyLLM-adapter.",[162,165],{"tag":124,"children":163},[164],"Eszközök",": egyszerű Python-függvények a @function_tool dekorátor mögött, továbbá hosztolt eszközök, computer use, shell és apply patch.",[167,169],{"tag":124,"children":168},[12],": stdio, Streamable HTTP, az elavult SSE szállítás és hosztolt MCP-szerverek, mindegyik eszköszűrőkkel és jóváhagyási szabályokkal.",[171,174],{"tag":124,"children":172},[173],"Memória",": SQLite, SQLAlchemy, Redis, MongoDB, Dapr, titkosított és az OpenAI Conversations API-re épülő sessionök.",[176,179],{"tag":124,"children":177},[178],"Tartós végrehajtás",": nincs a csomagban; a dokumentáció hosszú futásokhoz Temporal, DBOS, Dapr vagy Restate rendszert ajánl.",{"type":132,"level":133,"id":99,"text":100},{"type":121,"content":182},[183],"A Runner.run() ciklus, nem függvényhívás. Az aktuális bemenetet elküldi a modellnek, majd a válasszal hármat tesz: a várt kimeneti típusú, eszközhívás nélküli szöveget végső kimenetnek tekinti, handoff esetén másik ügynökre vált, vagy végrehajtja a kért eszközöket, hozzáfűzi az eredményeket, és kezdi újra.",{"type":185,"src":186,"alt":187,"wide":188,"caption":189},"image","\u002Fimages\u002Fblog\u002Fopenai-agents-sdk\u002Fdiagram-7.webp","Az OpenAI Agents SDK runner-ciklusának egy fordulója A bemenet egy ügynökhöz, majd egy modellhíváshoz kerül. Ha a válasz a várt típusú szöveget tartalmazza és nincs eszközhívás, a futás végső kimenetként ér véget, és mindkettő trace-ként exportálódik. Ellenkező esetben a modell eszközhívásokat állít elő, amelyek eredménye a bemenethez fűződik, és a ciklus megismétlődik, a max_turns korláttal, amely alapértelmezetten 10. A guardrail-ek az ügynök mellett futnak.",true,"A futás a várt típusú szövegnél és eszközhívás nélkül ér véget. Minden más újabb forduló, a tízes alapértelmezett korlátig.",{"type":121,"content":191},[192],"Ezt a végső kimenet definícióját érdemes kétszer elolvasni, mert ez teszi a ciklust ciklussá. Egy futás akkor ér véget, amikor a modell a kért típusú szöveget adja és nem kér semmit. Minden más életben tartja, ezért a max_turns az első beállítás, amit szándékosan kell eldönteni, nem örökölni. A max_turns=None teljesen eltávolítja a korlátot.",{"type":194,"variant":195,"title":196,"body":197},"callout","tip","Három belépési pont, egy RunConfig",[198],[199,202,203,206,207,210],{"tag":124,"children":200},[201],"A Runner.run()"," aszinkron. ",{"tag":124,"children":204},[205],"A Runner.run_sync()"," szkriptekhez és jegyzetfüzetekhez csomagolja. ",{"tag":124,"children":208},[209],"A Runner.run_streamed()"," RunResultStreaming eredményt ad, amelynek stream_events() iterátora típusos eseményeket szolgáltat, miközben a modell dolgozik. Mindhárom RunConfig-ot fogad, amely egy futásra felülírja a modellt, a szolgáltatót, a guardrail-eket, a tracinget és az eszközhiba-viselkedést.",{"type":132,"level":133,"id":102,"text":103},{"type":121,"content":213},[214],"A pip install openai-agents az egész beállítás, és az SDK az OPENAI_API_KEY-t az első kliens létrehozásakor olvassa. Egy minimális ügynök egy eszközzel és tipizált válasszal körülbelül húsz sor:",{"type":147,"code":216},"from pydantic import BaseModel\n\nfrom agents import Agent, Runner, function_tool\n\n\n@function_tool\ndef order_status(order_id: str) -> str:\n    \"\"\"Look up the fulfilment status of an order.\"\"\"\n    return STATUS.get(order_id, \"unknown\")\n\n\nclass Reply(BaseModel):\n    answer: str\n    order_id: str\n\n\nagent = Agent(\n    name=\"Order assistant\",\n    instructions=\"Answer with the status of the order the customer names.\",\n    tools=[order_status],\n    output_type=Reply,\n)\n\nresult = Runner.run_sync(agent, \"Where is order A-1024?\", max_turns=6)\nprint(result.final_output)\nprint(result.context_wrapper.usage.total_tokens)",{"type":121,"content":218},[219],"A dekorátor a szignatúrából és a docstringből állítja elő a JSON sémát, így a modell pontosan annyit lát, amennyit a docstring állít. Az output_type validált Pydantic modellt csinál a végső üzenetből string helyett. Az usage összesíti az összes modellhívást a futásban, azokat is, amelyek eszközhívásokat és handoffokat termeltek.",{"type":194,"variant":221,"title":222,"body":223},"warn","A tracing be van kapcsolva, és adatokat tárol",[224],[225],"A tracing alapértelmezetten be van kapcsolva, és a trace_include_sensitive_data értékén True hagyásával exportál az OpenAI backendre, így a generation spanek a modell bemeneteit és kimeneteit, a function spanek pedig az eszköz argumentumait és eredményeit hordozzák. Az ügyféladatokat érintő production futásoknak a RunConfig.trace_include_sensitive_data=False értéket kell állítaniuk, vagy az OPENAI_AGENTS_TRACE_INCLUDE_SENSITIVE_DATA=0 környezeti változót a folyamat indítása előtt.",{"type":132,"level":133,"id":105,"text":106},{"type":121,"content":228},[229],"A guardrail-eket értik félre a leggyakrabban, mert nem mind ugyanazon a ponton lépnek közbe. A bemeneti guardrail-ek csak a lánc első ügynökére futnak, a kimenetiek csak arra az ügynökre, amelyik a végső kimenetet állítja elő, és egyik sem látja a köztük lévő delegált munkát.",{"type":138,"ordered":139,"items":231},[232,234,236,238,240],[233],"A run_in_parallel=False egy bemeneti guardrail-on megállítja az ügynököt, mielőtt elindul. Az alapértelmezés az ügynök mellett futtatja a guardrail-t, ami csökkenti a késleltetést, de a tripwire megtelésekor a tokenek már elmentek.",[235],"Az eszköz guardrail-ek egyedi function toolokat és lokális MCP-eszközöket ölelnek körül, és az egyetlen fajta, amely a multi-agent lánc minden hívását látja.",[237],"A tripwire InputGuardrailTripwireTriggered vagy OutputGuardrailTripwireTriggered hibát dob. Ha maga a guardrail-függvény dob, az ítélet ismeretlennek számít, és a runner a hiba megjelenítése előtt menti a befejezett fordulót.",[239],"A needs_approval egy eszközön, az Agent.as_tool() híváson, a ShellTool vagy az ApplyPatchTool eszközön megállítja a futást; a függőben lévő hívások a result.interruptions mezőben jelennek meg.",[241],"A hívható jóváhagyási szabályok zárt ajtóként működnek. Ha az argumentumok hiányoznak, hibásak vagy nem JSON-objektumok, a hívás kézi jóváhagyást igényel, nem megy át automatikusan.",{"type":121,"content":243},[244,245,250],"A jóváhagyási állapot a RunState-en keresztül sorosítható, így egy leállt futás egy sorban várakozhat, és másik folyamatban folytatható. A dokumentáció egyértelműen kimondja, hogy a RunState.from_json() nem hitelesít semmit: egy nem megbízható helyen tárolt pillanatkép utasításkészlet, amelyet a szerver végrehajt, ezért szerveroldali tárolóba kell kerüljön, a jóváhagyót pedig az alkalmazásnak kell hitelesítenie. Ez ugyanaz a jóváhagyási minta, mint a ",{"tag":246,"to":247,"children":248},"link","\u002Fblog\u002Fhuman-in-the-loop-ai-agents",[249],"human-in-the-loop értékelésben",", csak állapotfájl helyett socket.",{"type":132,"level":133,"id":108,"text":109},{"type":121,"content":253},[254],"A tracing a legerősebb érv emellett, és egyben a legkevésbé kontrollált része. A spanek lefedik a runnert, a taskot és a fordulót, minden ügynököt, minden generálást, minden függvényhívást, a guardrail-eket, a handoffokat és a hangot. Az alapértelmezett BatchTraceProcessor a háttérben másodpercenként exportál, így egy worker befejezheti a munkát és kiléphet, mielőtt a dashboard megjeleníti a futást.",{"type":138,"ordered":139,"items":256},[257,259,261,263,265],[258],"Alapértelmezetten keletkező spanek: runner, task, turn, agent, generation, function, guardrail, handoff, transzkripció és beszéd.",[260],"Globálisan kikapcsolható az OPENAI_AGENTS_DISABLE_TRACING=1 vagy a set_tracing_disabled(True) hívással, egy futásra a RunConfig(tracing_disabled=True) értékkel.",[262],"Szállítási garanciához a flush_traces() hívást a trace kontextus elhagyása után kell meghívni. A tracing kikapcsolása nem dobja el a már pufferezett spaneket.",[264],"Az add_trace_processor() hozzáad egy célpontot, és az OpenAI exportőrt regisztráltan hagyja. A set_trace_processors() lecseréli az alapértelmezést, saját BatchTraceProcessorrel és exportőrrel kell.",[266],"A dokumentáció körülbelül 27 külső processzort sorol fel, köztük a Langfuse-ot, az MLflow-t, az Arize Phoenixot, a LangSmith-et, a Braintrustot, a Datadogot és a Pydantic Logfire-t.",{"type":121,"content":268},[269],"A költségkontroll számolás, nem konfiguráció. A result.context_wrapper.usage a requests, input_tokens, output_tokens, total_tokens értékeket, a kérésenkénti bejegyzéseket, valamint a gyorsítótárazott és reasoning token részleteket tartalmazza; a Responses session tömörítési kérése ugyanazokba az összegekbe kerül. A fontos szám a sikeres futásonkénti költség, és a legnagyobb hatású kar a max_turns, mert egy olyan ciklus, amelynek tizenkét forduló kell a kudarchoz, minden alkalommal tizenkettőt tölt.",{"type":194,"variant":271,"title":272,"body":273},"note","Zero Data Retention",[274],[275],"A tracing nem érhető el azoknál a szervezeteknél, amelyek Zero Data Retention irányelvet követnek, tehát a beépített dashboard ott nem opció. Ugyanez az érv érvényes minden saját üzemeltetésű exportőrre: a redakciót és a kézbesítést ugyanabba az exportőrbe kell tenni. A külön regisztrált redaktor nem akadályozza meg, hogy egy másik processor megkapja a nem redaktált adatot, mert a trace processzorfüggetlen megfigyelők.",{"type":132,"level":133,"id":111,"text":112},{"type":121,"content":278},[279],"Kezdjük a gyengeségekkel. A tartós végrehajtás nincs a csomagban: egy olyan futásnak, amelynek túl kell élnie egy folyamat újraindítását, órákig kell várnia jóváhagyásra, vagy új konténerben kell folytatnia, Temporal, DBOS, Dapr vagy Restate kell mellé. A Python szandbox- és harness-munka 0.14.0-ban, 2026 áprilisában érkezett, a TypeScript-támogatást az írás időpontjában még jövőbeli munkaként írta le a vendor. A tracing alapértelmezetten hasznos adatokat küld az OpenAI-nak, és ZDR alatt egyszerűen nem elérhető. És a providerfüggetlenségi állítás halkabb, mint amennyire hangzik: a computer use, a hosted tool search és a programmatic tool calling elutasításra kerül a Chat Completions modelleken és a nem Responses backenden.",{"type":121,"content":281},[282],"Ezután jön a kiadási tempó. A projekt 2026 első kilenc hónapjában hetvenhét kiadást adott ki, és a 0.21.0 az openai>=3.0.0,\u003C4 alsó korlátra emelte, ami az alapértelmezett szolgáltatót HTTPX2-re váltotta, és eltörte azokat az alkalmazásokat, amelyek legacy httpx klienst adtak át. Egy ilyen tempóban továbbra is 0.x verziószámú könyvtár a rögzített verzió és a changelog olvasásának érve, nem a release-címsor olvasásáé.",{"type":284,"head":285,"rows":301},"table",[286,290,294,297],[287],{"tag":124,"children":288},[289],"Opció",[291],{"tag":124,"children":292},[293],"Vezérlési modell",[295],{"tag":124,"children":296},[178],[298],{"tag":124,"children":299},[300],"Legutóbbi kiadás, 2026. október",[302,313,324,335],[303,307,309,311],[304],{"tag":124,"children":305},[306],"OpenAI Agents SDK",[308],"Modellirányított ciklus, handoffok, ügynökök eszközként",[310],"Külső: Temporal, DBOS, Dapr, Restate",[312],"0.23.1",[314,318,320,322],[315],{"tag":124,"children":316},[317],"LangGraph",[319],"Kifejezett graph checkpointokkal",[321],"Beépített",[323],"1.2.14",[325,329,331,333],[326],{"tag":124,"children":327},[328],"Pydantic AI",[330],"Kód-orchestráció, tipizált ügynökök",[332],"Külső: Temporal, DBOS, Prefect, Restate",[334],"2.54.0",[336,340,342,344],[337],{"tag":124,"children":338},[339],"Google ADK",[341],"Modellirányított ügynökök plusz workflow-ügynökök",[343],"Beépített, ADK 2.0 workflow runtime",[345],"2.11.0",{"type":121,"content":347},[348],"A negyedik oszlopot olvassa a második előtt. A LangGraph 1.x-nél és az ADK 2.x-nél kompatibilitási ígéret van, a 0.23.1-nél az OpenAI egy patch kiadásban is mozgathat egy konstruktor-aláírást, amit az openai kliens alsó korlátjával már megtett. A vezérlési modell oszlopa kevésbé fontos, mint látszik: egy modellirányított ciklus gyorsabban épül, és egy graph csak addig könnyen követhető, amíg a graph kicsi marad.",{"type":132,"level":133,"id":114,"text":115},{"type":121,"content":351},[352],"Az SDK ott nyer, amit később nehéz pótolni. A tracing, amely már a megfigyelhetőségi kód megírása előtt létezik, a tisztán sorosítható jóváhagyási megszakítások és az MCP négy szállításon át, saját kliens nélkül, mindegyik valódi fejlesztési időt takarít meg. Ott veszít, amit később nem lehet átírás nélkül pótolni: a tartós végrehajtást és azt a kifejezett vezérlési folyamat, amely naprakésszé teszi a workflow-t.",{"type":138,"ordered":188,"items":354},[355,357,359,361,363,365],[356],"Vedd fel, ha a csapat OpenAI-modellekre egységesül, és a workflow egy guardrail-ekkel és jóváhagyásokkal rendelkező eszközciklus. Erre tervezték.",[358],"Vedd fel, ha a tracing nem tárgyalható, mert a span modell és a dashboard már a runtime-ra van kötve, nem utólag lett ragasztva.",[360],"Vedd fel MCP-dús ügynökökhöz, ahol a négy szállítás és a szerverenkénti eszköszűrők több kódot spárnak, mint amennyibe a framework kerül.",[362],"Ne vetted fel egyetlen runtime-ként, ha a futásoknak túl kell élniük egy újraindítást, órákig kell várniuk egy emberre, vagy friss konténerben kell folytatniuk. Párosítsd Temporal-lal vagy DBOS-sel az első naptól.",[364],"Ne vetted fel olyan workflow-hoz, amelynek következő lépése üzleti szabály. Ha a sorrend ismert, egy graph runtime vagy egyszerű kód őszintébben mondja ki, mint egy modell, amely talán nem is követi.",[366],"Hagyd ki teljesen, ha az egész feladat egy modellhívás, amely egyetlen választ ad. A Responses API plusz Pydantic kisebb és olcsóbb.",{"type":121,"content":368},[369],"Ebből semmi nem hibája a csomagnak. Ez egy kis, olvasható, MIT-licencű könyvtár, amely egy szűk feladatot rendesen elvégez, és ezt a saját dokumentációjában be is mondja. Az elkerülendő hiba nem az, hogy ezt választod, hanem hogy azért választod, mert a tracing ingyenes, és egy év múlva felderül, hogy a workflow logika olyan promptokban él, amelyeket senki nem diffel. A tartós végrehajtás és az üzleti szabályok maradjanak a runneren kívül.",{"type":371,"content":372},"quote",[373,377],{"tag":374,"children":375},"em",[376],"Elég funkció ahhoz, hogy érdemes legyen használni, de elég kevés primitív ahhoz, hogy gyorsan megtanulható legyen."," — a két tervezési alapelv az OpenAI Agents SDK dokumentációjából.",{"type":132,"level":133,"id":117,"text":118},{"type":138,"ordered":188,"items":380},[381,386,389,392,395,398,401,404,408,412],[382],{"tag":383,"href":36,"children":384},"a",[385],"OpenAI Agents SDK documentation",[387],{"tag":383,"href":39,"children":388},[385],[390],{"tag":383,"href":42,"children":391},[385],[393],{"tag":383,"href":45,"children":394},[385],[396],{"tag":383,"href":48,"children":397},[385],[399],{"tag":383,"href":51,"children":400},[385],[402],{"tag":383,"href":54,"children":403},[53],[405],{"tag":383,"href":57,"children":406},[407],"OpenAI",[409],{"tag":383,"href":60,"children":410},[411],"OpenAI API documentation",[413],{"tag":383,"href":63,"children":414},[415],"Arize",[417,475,548,618],{"slug":418,"published":419,"minutes":420,"category":7,"tags":421,"keywords":426,"about":437,"sources":447,"cover":469,"og":470,"expertise":66,"locales":471,"lang":70,"title":472,"description":473,"coverAlt":474},"agent-tool-design-descriptions-errors","2026-10-17",11,[422,423,424,12,425],"AI agents","Tool use","Function calling","Agent design",[427,428,429,430,431,432,433,434,435,436],"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",[438,441,444],{"name":439,"url":440},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",{"name":442,"url":443},"Model Context Protocol","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"name":445,"url":446},"Poka-yoke","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPoka-yoke",[448,451,454,457,460,463,466],{"title":449,"url":450},"Anthropic Engineering: Writing effective tools for agents, with agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fwriting-tools-for-agents",{"title":452,"url":453},"Anthropic Engineering: Building effective agents (Dec 2024)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fbuilding-effective-agents",{"title":455,"url":456},"Claude Platform Docs: Define tools","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fdefine-tools",{"title":458,"url":459},"Claude Platform Docs: Handle tool calls","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fhandle-tool-calls",{"title":461,"url":462},"Claude Platform Docs: Tool search tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Ftool-search-tool",{"title":464,"url":465},"Model Context Protocol specification 2025-11-25: Tools","https:\u002F\u002Fmodelcontextprotocol.io\u002Fspecification\u002F2025-11-25\u002Fserver\u002Ftools",{"title":467,"url":468},"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",[68,69,70],"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":476,"published":419,"minutes":420,"category":7,"tags":477,"keywords":483,"about":496,"sources":506,"cover":542,"og":543,"expertise":66,"locales":544,"lang":70,"title":545,"description":546,"coverAlt":547},"coding-agents-legacy-codebase-migration",[478,479,480,481,482],"Legacy migration","Coding agents","Strangler fig","Testing","Code review",[484,485,486,487,488,489,490,491,492,493,494,495],"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",[497,500,503],{"name":498,"url":499},"Legacy code","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLegacy_code",{"name":501,"url":502},"Characterization test","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCharacterization_test",{"name":504,"url":505},"Strangler fig pattern","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FStrangler_fig_pattern",[507,510,512,515,518,521,524,527,530,533,536,539],{"title":508,"url":509},"Martin Fowler: Strangler Fig (2024)","https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FStranglerFigApplication.html",{"title":511,"url":502},"Wikipedia: Characterization test",{"title":513,"url":514},"Google Research: Accelerating code migrations with AI (2024)","https:\u002F\u002Fresearch.google\u002Fblog\u002Faccelerating-code-migrations-with-ai\u002F",{"title":516,"url":517},"Ziftci et al.: Migrating Code At Scale With LLMs At Google (arXiv 2504.09691)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2504.09691",{"title":519,"url":520},"Anthropic: Effective harnesses for long-running agents (2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-harnesses-for-long-running-agents",{"title":522,"url":523},"Anthropic: Redesigning source control at Anthropic (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fredesigning-source-control",{"title":525,"url":526},"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":528,"url":529},"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":531,"url":532},"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":534,"url":535},"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":537,"url":538},"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":540,"url":541},"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",[68,69,70],"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":549,"published":419,"minutes":550,"category":7,"tags":551,"keywords":555,"about":567,"sources":577,"cover":612,"og":613,"expertise":66,"locales":614,"lang":70,"title":615,"description":616,"coverAlt":617},"background-agents-async-pr-workflow",12,[479,552,553,482,554],"Pull requests","CI","Automation",[556,557,558,559,560,561,562,563,564,565,566],"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",[568,571,574],{"name":569,"url":570},"Software agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_agent",{"name":572,"url":573},"Pull request","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDistributed_version_control",{"name":575,"url":576},"Continuous integration","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContinuous_integration",[578,579,582,585,588,591,594,597,600,603,606,609],{"title":540,"url":541},{"title":580,"url":581},"GitHub Docs: Risks and mitigations for Copilot cloud agent","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Fconcepts\u002Fagents\u002Fcloud-agent\u002Frisks-and-mitigations",{"title":583,"url":584},"OpenAI Developers: Codex cloud environments","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fcloud\u002Fenvironments",{"title":586,"url":587},"Anthropic: Use Claude Code in the cloud","https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fclaude-code-on-the-web",{"title":589,"url":590},"Google Jules: Limits and plans","https:\u002F\u002Fjules.google\u002Fdocs\u002Fusage-limits\u002F",{"title":592,"url":593},"Google Jules: Getting started","https:\u002F\u002Fjules.google\u002Fdocs\u002F",{"title":595,"url":596},"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":598,"url":599},"GitHub Docs: Models and pricing for GitHub Copilot","https:\u002F\u002Fdocs.github.com\u002Fen\u002Fcopilot\u002Freference\u002Fcopilot-billing\u002Fmodels-and-pricing",{"title":601,"url":602},"OpenAI Developers: Codex pricing","https:\u002F\u002Fdevelopers.openai.com\u002Fcodex\u002Fpricing",{"title":604,"url":605},"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":607,"url":608},"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":610,"url":611},"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",[68,69,70],"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":619,"published":620,"minutes":6,"category":7,"tags":621,"keywords":627,"about":639,"sources":647,"cover":680,"og":681,"expertise":66,"locales":682,"lang":70,"title":683,"description":684,"coverAlt":685},"context-rot-compaction-long-running-agents","2026-10-16",[622,623,624,625,626],"Context rot","Compaction","Context engineering","Long-running agents","Agent memory",[628,629,630,631,632,633,634,635,636,637,638],"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",[640,643,646],{"name":641,"url":642},"Context window","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model#Context_window",{"name":644,"url":645},"Attention (machine learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FAttention_(machine_learning)",{"name":439,"url":440},[648,651,654,657,660,662,665,668,671,674,677],{"title":649,"url":650},"Chroma: Context Rot: How Increasing Input Tokens Impacts LLM Performance (Jul 2025)","https:\u002F\u002Fresearch.trychroma.com\u002Fcontext-rot",{"title":652,"url":653},"Liu et al.: Lost in the Middle: How Language Models Use Long Contexts (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.03172",{"title":655,"url":656},"Modarressi et al.: NoLiMa: Long-Context Evaluation Beyond Literal Matching (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2502.05167",{"title":658,"url":659},"Anthropic: Effective context engineering for AI agents (Sep 2025)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Feffective-context-engineering-for-ai-agents",{"title":661,"url":520},"Anthropic: Effective harnesses for long-running agents (Nov 2025)",{"title":663,"url":664},"Claude API docs: Compaction at a token threshold","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-threshold",{"title":666,"url":667},"Claude API docs: Compaction on demand","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcompaction-on-demand",{"title":669,"url":670},"Claude API docs: Context editing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fcontext-editing",{"title":672,"url":673},"Claude API docs: Memory tool","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fagents-and-tools\u002Ftool-use\u002Fmemory-tool",{"title":675,"url":676},"OpenAI API docs: Compaction","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fcompaction",{"title":678,"url":679},"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",[68,69,70],"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.",1792261159199]