[{"data":1,"prerenderedAt":638},["ShallowReactive",2],{"tool-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,"url":36,"pricing":74,"kind":75,"metaTitle":76,"takeaways":77,"faq":83,"toc":96,"blocks":121,"others":422},"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.","Az Agents SDK runner-ciklusának diagramja: bemenet, ügynök, modellhívás, végső kimenet, guardrail-ek, és a bemenetbe visszafutó eszközhívások","MIT · API pay per token","Agent framework","OpenAI Agents SDK értékelés · Balázs Csorba",[78,79,80,81,82],"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.",[84,87,90,93],{"q":85,"a":86},"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":88,"a":89},"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":91,"a":92},"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":94,"a":95},"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.",[97,100,103,106,109,112,115,118],{"id":98,"title":99},"what-it-is","Mi ez",{"id":101,"title":102},"how-it-works","Hogyan működik a ciklus",{"id":104,"title":105},"getting-started","Első lépések",{"id":107,"title":108},"guardrails-and-approvals","Guardrail-ek és jóváhagyások",{"id":110,"title":111},"tracing-and-cost","Tracing és költségkontroll",{"id":113,"title":114},"where-it-shingles","Hol csikrik",{"id":116,"title":117},"verdict","Ítélek",{"id":119,"title":120},"sources","Források",[122,130,133,136,139,182,183,186,195,198,216,217,220,222,225,231,232,235,247,256,257,260,272,275,281,282,285,288,351,354,355,358,373,376,384,385],{"type":123,"content":124},"paragraph",[125,129],{"tag":126,"children":127},"strong",[128],"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":123,"content":131},[132],"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":134,"level":135,"id":98,"text":99},"heading",2,{"type":123,"content":137},[138],"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":140,"ordered":141,"items":142},"list",false,[143,153,158,163,168,172,177],[144,147,148,152],{"tag":126,"children":145},[146],"Csomag",": ",{"tag":149,"children":150},"code",[151],"openai-agents"," a PyPI-on, MIT licenc, Python 3.10 vagy újabb kell hozzá.",[154,157],{"tag":126,"children":155},[156],"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.",[159,162],{"tag":126,"children":160},[161],"Modellek",": alapértelmezetten az OpenAI Responses API, alternatívaként a Chat Completions, más szolgáltatókhoz LiteLLM- és AnyLLM-adapter.",[164,167],{"tag":126,"children":165},[166],"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.",[169,171],{"tag":126,"children":170},[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.",[173,176],{"tag":126,"children":174},[175],"Memória",": SQLite, SQLAlchemy, Redis, MongoDB, Dapr, titkosított és az OpenAI Conversations API-re épülő sessionök.",[178,181],{"tag":126,"children":179},[180],"Tartós végrehajtás",": nincs a csomagban; a dokumentáció hosszú futásokhoz Temporal, DBOS, Dapr vagy Restate rendszert ajánl.",{"type":134,"level":135,"id":101,"text":102},{"type":123,"content":184},[185],"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":187,"attrs":188,"inner":192,"caption":193},"diagram",{"viewBox":189,"role":190,"aria-labelledby":191},"0 0 720 360","img","oa-loop-t oa-loop-d","\u003Ctitle id=\"oa-loop-t\">Az OpenAI Agents SDK runner-ciklusának egy fordulója\u003C\u002Ftitle>\u003Cdesc id=\"oa-loop-d\">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.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"ah-oa\" viewBox=\"0 0 10 10\" refX=\"9\" refY=\"5\" markerWidth=\"7\" markerHeight=\"7\" orient=\"auto-start-reverse\">\u003Cpath d=\"M0 0L10 5L0 10z\" class=\"d-head\" \u002F>\u003C\u002Fmarker>\u003C\u002Fdefs>\u003Ctext x=\"20\" y=\"26\" class=\"d-title\">THE RUNNER LOOP\u003C\u002Ftext>\u003Ctext x=\"700\" y=\"26\" text-anchor=\"end\" class=\"d-label\">source: agents sdk docs\u003C\u002Ftext>\u003Crect x=\"20\" y=\"44\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"95\" y=\"70\" text-anchor=\"middle\" class=\"d-text\">input\u003C\u002Ftext>\u003Ctext x=\"95\" y=\"90\" text-anchor=\"middle\" class=\"d-small\">string or items\u003C\u002Ftext>\u003Crect x=\"205\" y=\"44\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"280\" y=\"70\" text-anchor=\"middle\" class=\"d-text\">agent\u003C\u002Ftext>\u003Ctext x=\"280\" y=\"90\" text-anchor=\"middle\" class=\"d-small\">instructions, tools\u003C\u002Ftext>\u003Crect x=\"390\" y=\"44\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-accent\" \u002F>\u003Ctext x=\"465\" y=\"70\" text-anchor=\"middle\" class=\"d-text\">model call\u003C\u002Ftext>\u003Ctext x=\"465\" y=\"90\" text-anchor=\"middle\" class=\"d-small\">Responses API\u003C\u002Ftext>\u003Crect x=\"575\" y=\"44\" width=\"125\" height=\"62\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"637\" y=\"70\" text-anchor=\"middle\" class=\"d-text\">final output\u003C\u002Ftext>\u003Ctext x=\"637\" y=\"90\" text-anchor=\"middle\" class=\"d-small\">no tool calls\u003C\u002Ftext>\u003Cpath d=\"M170 75H201\" class=\"d-line\" marker-end=\"url(#ah-oa)\" \u002F>\u003Cpath d=\"M355 75H386\" class=\"d-line\" marker-end=\"url(#ah-oa)\" \u002F>\u003Cpath d=\"M540 75H571\" class=\"d-line\" marker-end=\"url(#ah-oa)\" \u002F>\u003Crect x=\"205\" y=\"170\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"280\" y=\"196\" text-anchor=\"middle\" class=\"d-text\">guardrails\u003C\u002Ftext>\u003Ctext x=\"280\" y=\"216\" text-anchor=\"middle\" class=\"d-small\">input, output, tools\u003C\u002Ftext>\u003Crect x=\"390\" y=\"170\" width=\"150\" height=\"62\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"465\" y=\"196\" text-anchor=\"middle\" class=\"d-text\">tool calls\u003C\u002Ftext>\u003Ctext x=\"465\" y=\"216\" text-anchor=\"middle\" class=\"d-small\">function, MCP, hosted\u003C\u002Ftext>\u003Crect x=\"575\" y=\"170\" width=\"125\" height=\"62\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"637\" y=\"196\" text-anchor=\"middle\" class=\"d-text\">traces\u003C\u002Ftext>\u003Ctext x=\"637\" y=\"216\" text-anchor=\"middle\" class=\"d-small\">batched export\u003C\u002Ftext>\u003Cpath d=\"M280 106V168\" class=\"d-line\" marker-end=\"url(#ah-oa)\" \u002F>\u003Cpath d=\"M465 106V168\" class=\"d-line\" marker-end=\"url(#ah-oa)\" \u002F>\u003Cpath d=\"M637 106V168\" class=\"d-line\" marker-end=\"url(#ah-oa)\" \u002F>\u003Cpath d=\"M465 232V292H95V110\" class=\"d-line-accent\" marker-end=\"url(#ah-oa)\" \u002F>\u003Ctext x=\"280\" y=\"314\" text-anchor=\"middle\" class=\"d-small\">tool results are appended to the input, and the loop repeats\u003C\u002Ftext>\u003Ctext x=\"280\" y=\"340\" text-anchor=\"middle\" class=\"d-label\">max_turns defaults to 10\u003C\u002Ftext>",[194],"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":123,"content":196},[197],"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":199,"variant":200,"title":201,"body":202},"callout","tip","Három belépési pont, egy RunConfig",[203],[204,207,208,211,212,215],{"tag":126,"children":205},[206],"A Runner.run()"," aszinkron. ",{"tag":126,"children":209},[210],"A Runner.run_sync()"," szkriptekhez és jegyzetfüzetekhez csomagolja. ",{"tag":126,"children":213},[214],"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":134,"level":135,"id":104,"text":105},{"type":123,"content":218},[219],"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":149,"code":221},"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":123,"content":223},[224],"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":199,"variant":226,"title":227,"body":228},"warn","A tracing be van kapcsolva, és adatokat tárol",[229],[230],"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":134,"level":135,"id":107,"text":108},{"type":123,"content":233},[234],"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":140,"ordered":141,"items":236},[237,239,241,243,245],[238],"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.",[240],"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.",[242],"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.",[244],"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.",[246],"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":123,"content":248},[249,250,255],"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":251,"to":252,"children":253},"link","\u002Fblog\u002Fhuman-in-the-loop-ai-agents",[254],"human-in-the-loop értékelésben",", csak állapotfájl helyett socket.",{"type":134,"level":135,"id":110,"text":111},{"type":123,"content":258},[259],"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":140,"ordered":141,"items":261},[262,264,266,268,270],[263],"Alapértelmezetten keletkező spanek: runner, task, turn, agent, generation, function, guardrail, handoff, transzkripció és beszéd.",[265],"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.",[267],"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.",[269],"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.",[271],"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":123,"content":273},[274],"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":199,"variant":276,"title":277,"body":278},"note","Zero Data Retention",[279],[280],"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":134,"level":135,"id":113,"text":114},{"type":123,"content":283},[284],"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":123,"content":286},[287],"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":289,"head":290,"rows":306},"table",[291,295,299,302],[292],{"tag":126,"children":293},[294],"Opció",[296],{"tag":126,"children":297},[298],"Vezérlési modell",[300],{"tag":126,"children":301},[180],[303],{"tag":126,"children":304},[305],"Legutóbbi kiadás, 2026. október",[307,318,329,340],[308,312,314,316],[309],{"tag":126,"children":310},[311],"OpenAI Agents SDK",[313],"Modellirányított ciklus, handoffok, ügynökök eszközként",[315],"Külső: Temporal, DBOS, Dapr, Restate",[317],"0.23.1",[319,323,325,327],[320],{"tag":126,"children":321},[322],"LangGraph",[324],"Kifejezett graph checkpointokkal",[326],"Beépített",[328],"1.2.14",[330,334,336,338],[331],{"tag":126,"children":332},[333],"Pydantic AI",[335],"Kód-orchestráció, tipizált ügynökök",[337],"Külső: Temporal, DBOS, Prefect, Restate",[339],"2.54.0",[341,345,347,349],[342],{"tag":126,"children":343},[344],"Google ADK",[346],"Modellirányított ügynökök plusz workflow-ügynökök",[348],"Beépített, ADK 2.0 workflow runtime",[350],"2.11.0",{"type":123,"content":352},[353],"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":134,"level":135,"id":116,"text":117},{"type":123,"content":356},[357],"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":140,"ordered":359,"items":360},true,[361,363,365,367,369,371],[362],"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.",[364],"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.",[366],"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.",[368],"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.",[370],"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.",[372],"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":123,"content":374},[375],"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":377,"content":378},"quote",[379,383],{"tag":380,"children":381},"em",[382],"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":134,"level":135,"id":119,"text":120},{"type":140,"ordered":359,"items":386},[387,392,395,398,401,404,407,410,414,418],[388],{"tag":389,"href":36,"children":390},"a",[391],"OpenAI Agents SDK documentation",[393],{"tag":389,"href":39,"children":394},[391],[396],{"tag":389,"href":42,"children":397},[391],[399],{"tag":389,"href":45,"children":400},[391],[402],{"tag":389,"href":48,"children":403},[391],[405],{"tag":389,"href":51,"children":406},[391],[408],{"tag":389,"href":54,"children":409},[53],[411],{"tag":389,"href":57,"children":412},[413],"OpenAI",[415],{"tag":389,"href":60,"children":416},[417],"OpenAI API documentation",[419],{"tag":389,"href":63,"children":420},[421],"Arize",[423,487,536,590],{"slug":424,"published":425,"minutes":426,"category":7,"tags":427,"keywords":431,"about":438,"sources":442,"cover":479,"og":480,"expertise":66,"locales":481,"lang":70,"title":482,"description":483,"coverAlt":484,"url":445,"pricing":485,"kind":486},"mcp-reference-servers","2026-09-25",9,[12,428,429,430],"Reference servers","Tool protocol","Server SDKs",[432,433,434,435,436,437],"mcp reference servers","modelcontextprotocol servers github","write an mcp server","mcp server examples","mcp server sdk","mcp server security",[439],{"name":440,"url":441},"Model Context Protocol","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FModel_Context_Protocol",[443,446,449,452,455,458,461,464,467,470,473,476],{"title":444,"url":445},"MCP reference servers repository","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers",{"title":447,"url":448},"Repository README and server list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FREADME.md",{"title":450,"url":451},"Security policy","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FSECURITY.md",{"title":453,"url":454},"Release process and trusted publishing","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002FRELEASING.md",{"title":456,"url":457},"Filesystem server README","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Ffilesystem\u002FREADME.md",{"title":459,"url":460},"Everything server feature list","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers\u002Fblob\u002Fmain\u002Fsrc\u002Feverything\u002Fdocs\u002Ffeatures.md",{"title":462,"url":463},"MCP Registry","https:\u002F\u002Fregistry.modelcontextprotocol.io\u002F",{"title":465,"url":466},"Archived reference servers","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fservers-archived",{"title":468,"url":469},"Model Context Protocol documentation","https:\u002F\u002Fmodelcontextprotocol.io\u002F",{"title":471,"url":472},"TypeScript MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Ftypescript-sdk",{"title":474,"url":475},"Python MCP SDK","https:\u002F\u002Fgithub.com\u002Fmodelcontextprotocol\u002Fpython-sdk",{"title":477,"url":478},"FastMCP on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Ffastmcp\u002F","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fmcp-reference-servers\u002Fog.jpg",[68,69,70],"MCP-referenciaszerverek: mit mutatnak be és mit hagynak ki","Elemzés a modelcontextprotocol\u002Fservers repozól: hét referenciaszerver, mit tanít mindegyik, a mögöttes SDK-verziók, és miért nem kerülhet egyik sem éles rendszerbe.","Hét referenciaszerver, amelyet egyetlen MCP-kliens hoz el stdio-n keresztül","MIT","Protocol tooling",{"slug":488,"published":489,"minutes":6,"category":7,"tags":490,"keywords":496,"about":504,"sources":511,"cover":528,"og":529,"expertise":66,"locales":530,"lang":70,"title":531,"description":532,"coverAlt":533,"url":534,"pricing":535,"kind":491},"aider","2026-09-23",[491,492,493,494,495],"Coding agent","Terminal","Git workflow","BYO key","Open source",[488,497,498,499,500,501,502,503],"aider vs claude code","aider polyglot benchmark","ai pair programming terminal","aider leaderboard","open source coding agent","aider architect mode","aider install",[505,508],{"name":506,"url":507},"Aider","https:\u002F\u002Faider.chat\u002F",{"name":509,"url":510},"Aider on GitHub","https:\u002F\u002Fgithub.com\u002FAider-AI\u002Faider",[512,514,517,520,523,525],{"title":513,"url":507},"Aider website",{"title":515,"url":516},"Aider LLM leaderboards","https:\u002F\u002Faider.chat\u002Fdocs\u002Fleaderboards\u002F",{"title":518,"url":519},"Aider linting and testing","https:\u002F\u002Faider.chat\u002Fdocs\u002Fusage\u002Flint-test.html",{"title":521,"url":522},"Aider token limits","https:\u002F\u002Faider.chat\u002Fdocs\u002Ftroubleshooting\u002Ftoken-limits.html",{"title":524,"url":510},"Aider repository on GitHub",{"title":526,"url":527},"aider-chat on PyPI","https:\u002F\u002Fpypi.org\u002Fproject\u002Faider-chat\u002F","\u002Fimages\u002Fblog\u002Faider\u002Fcover.webp","\u002Fimages\u002Fblog\u002Faider\u002Fog.jpg",[68,69,70],"Aider teszt: git-first párprogramozás a terminálon","Az Aider 0.86.2 tesztje: Apache-2.0-s terminálos párprogramozó, amelynek benchmarkja őszintén rangsorolja a modelleket, és amelynek megállt a kiadási üteme.","Borítókép az Aider-teszthez: egy terminálmunkamenet, amely egyetlen kérést egy sor git committá alakít","https:\u002F\u002Faider.chat","Free · BYO API key",{"slug":537,"published":538,"minutes":426,"category":7,"tags":539,"keywords":544,"about":551,"sources":561,"cover":582,"og":583,"expertise":66,"locales":584,"lang":70,"title":585,"description":586,"coverAlt":587,"url":588,"pricing":589,"kind":491},"openhands","2026-09-09",[491,540,541,542,543],"Sandboxed execution","Automations","Self-hosted","MIT licence",[537,545,546,547,548,549,501,550],"openhands self-host","open hands coding agent","openhands vs claude code","agent canvas","openhands docker sandbox","openhands cloud pricing",[552,555,558],{"name":553,"url":554},"OpenHands","https:\u002F\u002Fwww.openhands.dev",{"name":556,"url":557},"OpenHands on GitHub","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands",{"name":559,"url":560},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[562,564,567,570,573,576,579],{"title":563,"url":557},"OpenHands README",{"title":565,"url":566},"OpenHands licence (MIT)","https:\u002F\u002Fgithub.com\u002FOpenHands\u002FOpenHands\u002Fblob\u002Fmain\u002FLICENSE",{"title":568,"url":569},"Agent Canvas 1.25.0 release notes","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fagent-canvas\u002Frelease-notes\u002Fv1.25.0.md",{"title":571,"url":572},"OpenHands sandbox overview","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Fsandboxes\u002Foverview.md",{"title":574,"url":575},"OpenHands quick start","https:\u002F\u002Fdocs.openhands.dev\u002Fopenhands\u002Fusage\u002Finstallation",{"title":577,"url":578},"OpenHands pricing","https:\u002F\u002Fwww.openhands.dev\u002Fpricing",{"title":580,"url":581},"Introducing the OpenHands Index","https:\u002F\u002Fwww.openhands.dev\u002Fblog\u002Fintroducing-the-openhands-index","\u002Fimages\u002Fblog\u002Fopenhands\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fopenhands\u002Fog.jpg",[68,69,70],"OpenHands: a nyílt forráskódú coding agent, amit üzemeltetsz","Az OpenHands 1.25.0 MIT-licencű coding agent platform web canvas-szal, CLI-vel, sandboxolt végrehajtással és ütemezett automatizálásokkal. Elemzés arról, hol erős és hol nehézkes.","Az OpenHands-ajánló címképe: hurok a feladattól az agenten és a sandboxon át vissza","https:\u002F\u002Fgithub.com\u002FAll-Hands-AI\u002FOpenHands","Free · self-host",{"slug":591,"published":592,"minutes":6,"category":7,"tags":593,"keywords":598,"about":605,"sources":609,"cover":631,"og":632,"expertise":66,"locales":633,"lang":70,"title":634,"description":635,"coverAlt":636,"url":608,"pricing":637,"kind":594},"cursor","2026-09-02",[594,595,596,597,12],"AI code editor","Coding agents","CLI","Usage-based pricing",[591,599,600,601,602,603,604],"cursor vs github copilot","cursor pricing","cursor cli","ai code editor","cursor usage limits","cursor pro plus",[606],{"name":607,"url":608},"Cursor","https:\u002F\u002Fcursor.com",[610,613,616,619,622,625,628],{"title":611,"url":612},"Cursor pricing","https:\u002F\u002Fcursor.com\u002Fpricing",{"title":614,"url":615},"Cursor models and pricing docs","https:\u002F\u002Fcursor.com\u002Fdocs\u002Fmodels-and-pricing",{"title":617,"url":618},"Cursor CLI documentation","https:\u002F\u002Fcursor.com\u002Fdocs\u002Fcli\u002Foverview",{"title":620,"url":621},"GitHub Copilot plans","https:\u002F\u002Fgithub.com\u002Ffeatures\u002Fcopilot\u002Fplans",{"title":623,"url":624},"Claude pricing","https:\u002F\u002Fclaude.com\u002Fpricing",{"title":626,"url":627},"Claude Code cost documentation","https:\u002F\u002Fdocs.claude.com\u002Fen\u002Fdocs\u002Fclaude-code\u002Fcosts",{"title":629,"url":630},"Cline pricing","https:\u002F\u002Fcline.bot\u002Fpricing","\u002Fimages\u002Fblog\u002Fcursor\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fcursor\u002Fog.jpg",[68,69,70],"A Cursor értékelése: AI kódszerkesztő, amely a listaáron felül számláz","A Cursor szerkesztőt, terminálos agentet és felhőben futó munkákat egyetlen előfizetés mögé rejt. Mennyibe kerül a két felhasználási pool, és mikor jobb a Copilot, a Claude Code vagy a Cline.","Absztrakt pipeline-grafika a Cursor-értékeléshez","Free · Pro from $20 per month",1791383550056]