[{"data":1,"prerenderedAt":776},["ShallowReactive",2],{"blog-reasoning-models-effort-thinking-budget-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":26,"sources":36,"cover":61,"og":62,"expertise":63,"locales":64,"lang":67,"title":68,"description":69,"coverAlt":70,"metaTitle":71,"takeaways":72,"faq":78,"toc":94,"blocks":125,"others":542},"reasoning-models-effort-thinking-budget","2026-10-17",10,"llmops",[9,10,11,12,13],"Reasoning models","Effort","LLMOps","Cost","Evals",[15,16,17,18,19,20,21,22,23,24,25],"reasoning effort parameter","claude effort parameter","claude adaptive thinking","budget_tokens deprecated","openai reasoning effort","gemini thinking_level","thinking tokens cost","reasoning tokens billing","task budget claude","overthinking reasoning models","max_tokens thinking",[27,30,33],{"name":28,"url":29},"Reasoning language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FReasoning_language_model",{"name":31,"url":32},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",{"name":34,"url":35},"Prompt engineering","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_engineering",[37,40,43,46,49,52,55,58],{"title":38,"url":39},"Claude Platform Docs: Effort","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Feffort",{"title":41,"url":42},"Claude Platform Docs: Extended thinking (manual budget_tokens mode)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fextended-thinking",{"title":44,"url":45},"Claude Platform Docs: Steering thinking (cost, caching, pricing)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fthinking-steering-and-cost",{"title":47,"url":48},"Claude Platform Docs: Task budgets","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Ftask-budgets",{"title":50,"url":51},"OpenAI API Docs: Reasoning models","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Freasoning",{"title":53,"url":54},"Google AI for Developers: Gemini thinking","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fthinking",{"title":56,"url":57},"Chen et al.: Do NOT Think That Much for 2+3=? On the Overthinking of o1-Like LLMs (arXiv 2412.21187)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2412.21187",{"title":59,"url":60},"Gema et al.: Inverse Scaling in Test-Time Compute (arXiv 2507.14417)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2507.14417","\u002Fimages\u002Fblog\u002Freasoning-models-effort-thinking-budget\u002Fcover.webp","\u002Fimages\u002Fblog\u002Freasoning-models-effort-thinking-budget\u002Fog.jpg","ai-engineer",[65,66,67],"en","de","hu","Reasoning effort és gondolkodási keret: mennyit gondolkodjon egy modell?","Így működik az effort, az adaptív thinking és a thinking_level a Claude-nál, az OpenAI-nál és a Gemininél, mennyibe kerül a thinking, és hogyan válassz szintet","Négy függőleges sáv emelkedik rövidtől a magasig egy vonalon, a legmagasabb fölött kis jelző.","Reasoning effort és gondolkodási keret · Balázs Csorba",[73,74,75,76,77],"A Claude, az OpenAI és a Gemini is tokenkeretről elnevezett szintekre váltott: effort a Claude-nál és az OpenAI-nál, thinking_level a Gemininél.","A thinking-tokeneket kimeneti tokenként számlázzák akkor is, ha csak összefoglalót vagy semmit sem látsz belőlük.","A max_tokens az egyetlen kemény korlát egy kérésen; az effort és a task budget iránymutatás, amelyet a modell túlléphet vagy figyelmen kívül hagyhat.","A több gondolkodás nem mindig jobb: kutatások túlgondolást mutatnak könnyű feladatokon, és egyes feladatokon csökkenő pontosságot hosszabb reasoning mellett.","A szintet saját evalokon futtatott effort-sweeppel válaszd ki, és beszélgetésenként tartsd stabilan, hogy ne törd el a prompt cache-t.",[79,82,85,88,91],{"q":80,"a":81},"Mi a különbség az effort és a gondolkodási keret között?","A gondolkodási keret, például a régebbi Claude-modellek budget_tokens paramétere, tokencélt ad a válasz előtti reasoningnek. Az effort viselkedési szint, amely minden kimeneti tokent alakít, a szöveget és a tool callokat is, és a modellre bízza, gondolkodjon-e egyáltalán. A Claude 4.7-től a budget_tokens 400-as hibát ad, ott az effort a vezérlő.",{"q":83,"a":84},"Kifizetem a thinking-tokeneket, ha nem is látom őket?","Igen. Az Anthropic a teljes thinking-tokenmennyiséget kimeneti tokenként számlázza, akár summarized, akár omitted a display értéke. Az OpenAI a rejtett reasoning-tokeneket kimenetként számlázza, a Gemini pedig a thinkinges választ a kimeneti és a thinking-tokenek összegeként árazza.",{"q":86,"a":87},"Melyik effort-szinttel kezdjek?","A modell alapértelmezésével, és futtass sweepet a saját eval-készleteden. Az alapértékek eltérnek: a Claude Opus 5.5 és a Haiku 5.5 medium, a legtöbb más Claude-modell high, a gpt-5.5 medium. Ott lépj lejjebb, ahol a minőség tart, és csak ott feljebb, ahol az evalok nyereséget mutatnak.",{"q":89,"a":90},"Miért jött vissza üres vagy csonka válasz?","A modell gondolkodás közben elérte a max_tokens vagy max_output_tokens határt. A Claude max_tokens stop_reasont ad, az OpenAI incomplete státuszt max_output_tokens okkal, a Gemini hiányos kimenetet. Emeld a határt, vagy csökkentsd az effort-szintet.",{"q":92,"a":93},"Eltöri az effort váltása a prompt cache-t?","A Claude-nál igen, ha a felső szintű értéket változtatod: az effort értéke bekerül a renderelt promptba, így egy új érték érvényteleníti a cache-töréspontokat. Több mai Claude-modell bétában támogatja az üzenetenkénti effort-váltást, amely megtartja a cache-elt előtagot.",[95,98,101,104,107,110,113,116,119,122],{"id":96,"title":97},"what-you-pay-for","Mik a thinking-tokenek, és miért fizetsz",{"id":99,"title":100},"three-apis","A vezérlők a Claude-nál, az OpenAI-nál és a Gemininél",{"id":102,"title":103},"from-budget-tokens","A budget_tokens-től az effortig",{"id":105,"title":106},"max-tokens-hard-cap","A max_tokens az egyetlen kemény korlát",{"id":108,"title":109},"more-is-not-better","A több gondolkodás nem mindig jobb",{"id":111,"title":112},"effort-sweep","Szintválasztás: az effort-sweep",{"id":114,"title":115},"per-request-routing","Effort kérésenkénti routolása a cache feltörése nélkül",{"id":117,"title":118},"agent-loops","Ágenshurkok: interleaved thinking és task budget",{"id":120,"title":121},"measure-it","Mérd a thinkinget, mint bármely más költséget",{"id":123,"title":124},"sources","Források",[126,139,146,149,152,167,168,171,260,284,306,307,317,319,326,327,345,354,356,357,360,374,375,378,387,389,409,410,425,440,443,444,457,480,481,504,512,513],{"type":127,"content":128},"paragraph",[129,130,134,135,138],"Egy éve a reasoning szabályozása egy szám kiválasztását jelentette: 4000 vagy 16 000 tokenes gondolkodási keretet. 2026-ra a három nagy API másban egyezett meg. A Claude és az OpenAI ",{"tag":131,"children":132},"code",[133],"effort"," szintet kínál, a Gemini ",{"tag":131,"children":136},[137],"thinking_level"," értéket, és a modell kérésenként dönti el, gondolkodik-e egyáltalán. Ezt könnyebb beállítani és nehezebb átlátni, mert a szabályzó már nem egy tokenszámnak felel meg.",{"type":127,"content":140},[141,142,145],"Ez a cikk sorra veszi, mit kínál valójában az egyes API-k, mennyibe kerül a thinking a számlán, miért a ",{"tag":131,"children":143},[144],"max_tokens"," az egyetlen kemény korlátod, miért ronthat a válaszokon a több gondolkodás, és hogyan választok szintet egy funkcióhoz: effort-sweep egy valódi eval-készleten, utána fix beállítás beszélgetésenként, hogy a prompt cache megmaradjon.",{"type":147,"level":148,"id":96,"text":97},"heading",2,{"type":127,"content":150},[151],"A reasoning modellek a látható válaszuk és a tool callok előtt, a mai modelleknél azok között is generálnak tokeneket. Minden nagy API-nál ezek kimeneti tokenként számlázódnak, vagyis az árlista drága oldalán. Az OpenAI egyértelműen kimondja, hogy a reasoning-tokenek nem láthatók az API-n keresztül, de helyet foglalnak a kontextusban, és kimeneti tokenként számlázzák őket. A Gemini a thinkinges választ a kimeneti és a thinking-tokenek összegeként árazza. Az Anthropic a teljes belső gondolkodást számlázza akkor is, ha a válasz csak összefoglalót tartalmaz.",{"type":127,"content":153},[154,155,158,159,162,163,166],"A Claude-nál a ",{"tag":131,"children":156},[157],"display"," beállítás csak azt változtatja meg, mit látsz. ",{"tag":131,"children":160},[161],"summarized"," értékkel összefoglaló szöveget kapsz, ",{"tag":131,"children":164},[165],"omitted"," értékkel üres a thinking mező, a számlázott kimeneti token viszont mindkét esetben a modell által generált teljes gondolkodás. Az Anthropic figyelmeztet, hogy a számlázott szám nem egyezik a láthatóval. Van egy csendesebb költség is: a Claude Opus 4.5 és a 4.6-tól számozott modellek a korábbi körök thinking-blokkjait a kontextusban tartják, és minden további kérésnél bemenetként számlázzák.",{"type":147,"level":148,"id":99,"text":100},{"type":127,"content":169},[170],"Messziről a három API hasonlónak tűnik, de azokban a részletekben különböznek, amelyeken a kód eltörik: hol van a paraméter, milyen értékeket fogad el egy modell, és mi az alapértelmezés. Az alapértékek számítanak a legtöbbet, mert egy kihagyott paraméter is döntés.",{"type":172,"head":173,"rows":182},"table",[174,176,178,180],[175],"API",[177],"Paraméter",[179],"Értékek",[181],"Alapérték",[183,213,241],[184,186,190,207],[185],"Claude Messages API",[187],{"tag":131,"children":188},[189],"output_config.effort",[191,194,195,194,198,194,201,194,204],{"tag":131,"children":192},[193],"low",", ",{"tag":131,"children":196},[197],"medium",{"tag":131,"children":199},[200],"high",{"tag":131,"children":202},[203],"xhigh",{"tag":131,"children":205},[206],"max",[208,210,211],{"tag":131,"children":209},[197]," az Opus 5.5-ön és a Haiku 5.5-ön, máshol többnyire ",{"tag":131,"children":212},[200],[214,216,220,237],[215],"OpenAI Responses API",[217],{"tag":131,"children":218},[219],"reasoning.effort",[221,194,224,194,227,194,229,194,231,194,233,194,235],{"tag":131,"children":222},[223],"none",{"tag":131,"children":225},[226],"minimal",{"tag":131,"children":228},[193],{"tag":131,"children":230},[197],{"tag":131,"children":232},[200],{"tag":131,"children":234},[203],{"tag":131,"children":236},[206],[238,239],"Modellfüggő, a gpt-5.5-ön ",{"tag":131,"children":240},[197],[242,244,247,256],[243],"Gemini API",[245],{"tag":131,"children":246},[137],[248,194,250,194,252,194,254],{"tag":131,"children":249},[226],{"tag":131,"children":251},[193],{"tag":131,"children":253},[197],{"tag":131,"children":255},[200],[257,258],"Modellfüggő, a gemini-3.8-flash-en ",{"tag":131,"children":259},[197],{"type":127,"content":261},[262,263,265,266,268,269,271,272,274,275,277,278,280,281,283],"Nem minden modell fogad el minden értéket. A Claude-nál nem minden ",{"tag":131,"children":264},[206],"-ot támogató modell támogatja az ",{"tag":131,"children":267},[203],"-t, és az effort-dokumentáció modellenkénti ajánlásai felülírják az általános táblázatot: az Opus 4.7 és 4.8 kódoláshoz és ágensekhez ",{"tag":131,"children":270},[203],"-ról javasolja az indulást, a Sonnet 5.5 jól specifikált ágensalapú kódoláshoz ",{"tag":131,"children":273},[197],"-ot. Az OpenAI-nál a GPT-6 Astra HTTP 400-zal utasítja el a ",{"tag":131,"children":276},[223]," értéket. A Gemininél a gemini-3-pro-preview csak a ",{"tag":131,"children":279},[193]," és a ",{"tag":131,"children":282},[200]," szintet ismeri.",{"type":285,"variant":286,"title":287,"body":288},"callout","warn","A kihagyott effort nem stabil beállítás",[289],[290,291,293,294,296,297,299,300,305],"A Claude Opus 5.5 alapértéke ",{"tag":131,"children":292},[197],", a Claude Opus 5-é ",{"tag":131,"children":295},[200]," volt. Az Anthropic jelzi, hogy egy ",{"tag":131,"children":298},[133]," nélküli kérés ezért egy szinttel lejjebb fut, mint az Opus 5-ön. Ha effort beállítása nélkül cserélsz modellazonosítót, egyszerre két változót módosítasz. Rögzítsd a szintet a kódban, és a modellfrissítést kezeld migrációként, saját ",{"tag":301,"to":302,"children":303},"link","\u002Fblog\u002Fllm-model-migration-regression-testing",[304],"regressziós futtatással",".",{"type":147,"level":148,"id":102,"text":103},{"type":127,"content":308},[309,310,313,314,316],"A régi Claude-vezérlő, a ",{"tag":131,"children":311},[312],"thinking: {type: \"enabled\", budget_tokens: N}",", a 4.6-os modelleken elavult, a Claude 4.7-től pedig 400-as hibával elutasítják. A Claude 4.5-ön és korábbiakon továbbra is számít, mert ott ez az egyetlen thinking-mód: a keret legalább 1024 token, és kisebb kell legyen a ",{"tag":131,"children":315},[144]," értéknél, 32k feletti keretre pedig az Anthropic batch-feldolgozást javasol az időtúllépések elkerülésére. A migráció a kódban kicsi, a viselkedésben nagy.",{"type":131,"code":318},"\u002F\u002F before: fixed budget, Claude thinks on every request\n{ \"model\": \"claude-sonnet-4-6\", \"max_tokens\": 16000,\n  \"thinking\": { \"type\": \"enabled\", \"budget_tokens\": 10000 } }\n\n\u002F\u002F after: adaptive thinking, depth controlled by effort\n{ \"model\": \"claude-sonnet-4-6\", \"max_tokens\": 16000,\n  \"thinking\": { \"type\": \"adaptive\" },\n  \"output_config\": { \"effort\": \"high\" } }",{"type":127,"content":320},[321,322,325],"Fix kerettel a Claude minden kérésnél gondolkodik. Adaptív thinkinggel kérésenként dönt, alacsony effortnál és könnyű bemeneten akár teljesen kihagyja a gondolkodást, ezért ne írj olyan kódot, amely feltételezi, hogy minden asszisztens-kör thinking-blokkal kezdődik. Az effort a thinkingen túl is hat: alakítja a szöveget és a tool callokat, az alacsonyabb szintek kevesebb és tömörebb tool callt adnak. Az Opus 5.5-ön az adaptív thinking ki sem kapcsolható; a ",{"tag":131,"children":323},[324],"thinking: {type: \"disabled\"}"," 400-at ad.",{"type":147,"level":148,"id":105,"text":106},{"type":127,"content":328},[329,330,332,333,336,337,340,341,344],"Az effort iránymutatás, nem keret. Az Anthropic viselkedési jelzésnek nevezi, a kemény plafon pedig a ",{"tag":131,"children":331},[144],", amely a gondolkodást és a választ együtt fedi le. Ha egy nehéz kérés sokáig gondolkodik, a válasz megírása előtt elérheti ezt a plafont. A Claude ilyenkor ",{"tag":131,"children":334},[335],"stop_reason: \"max_tokens\""," értékkel áll meg. Az OpenAI ",{"tag":131,"children":338},[339],"status: \"incomplete\""," állapotot ad ",{"tag":131,"children":342},[343],"max_output_tokens"," okkal, akár mielőtt bármilyen látható kimenet keletkezne, és a reasoningért így is fizetsz. A Gemini ugyanígy viselkedik, és számlázza a legenerált thinking-tokeneket.",{"type":127,"content":346},[347,348,350,351,353],"Az OpenAI azt javasolja, hogy kezdetben legalább 25 000 tokent tarts fenn reasoningre és kimenetre, az Anthropic pedig nagyobb modelljein ",{"tag":131,"children":349},[203]," és ",{"tag":131,"children":352},[206]," szintnél 64k körüli indulást javasol. Csonkolásnál döntsd el, melyik javítás illik: ha a csonka kéréseknek kellett a reasoning, emeld a plafont; ha túlgondolták, csökkentsd az effortot. Akárhogy is, a csonkolt esetet kezeld a kódban, ahelyett hogy félkész választ szállítanál.",{"type":131,"code":355},"\u002F\u002F Claude: treat truncation as a failure, not as an answer\nconst res = await client.messages.create({\n  model: \"claude-opus-5-5\",\n  max_tokens: 32000,\n  output_config: { effort: \"high\" },\n  messages,\n});\nif (res.stop_reason === \"max_tokens\") {\n  metrics.increment(\"llm.truncated\", { effort: \"high\" });\n  \u002F\u002F retry once with a larger cap, or fall back to a lower effort\n}\nconst thinking = res.usage.output_tokens_details?.thinking_tokens ?? 0;",{"type":147,"level":148,"id":108,"text":109},{"type":127,"content":358},[359],"Az intuitív modell, hogy több reasoning jobb választ jelent, nehéz feladatokon igaz, a széleken viszont elbukik. Chen és társai 2024 végén dokumentálták az o1-stílusú modellek túlgondolását: túlzott számítás egyszerű feladatokra minimális haszonnal, például hosszú láncok a 2+3-ra. 2025 júliusában az Anthropichoz köthető kutatók olyan feladatokat publikáltak, ahol a hosszabb reasoning rontja a pontosságot, vagyis fordított skálázódást a futásidejű számítás és a minőség között, többek között irreleváns információtól elterelődő és látszólagos összefüggések felé sodródó modellekkel.",{"type":127,"content":361},[362,363,365,366,368,369,373],"A gyártói dokumentációk ugyanezt mondják üzemeltetési nyelven. Az Anthropic Opus 4.7-re vonatkozó útmutatója szerint a ",{"tag":131,"children":364},[206]," a legtöbb munkaterhelésnél jelentős költséget ad kis nyereségért, és strukturált kimenetű vagy kevésbé intelligenciaigényes feladatokon túlgondoláshoz vezethet. Az OpenAI csak akkor javasolja az ",{"tag":131,"children":367},[203],"-t, ha az evalok egyértelmű hasznot mutatnak. Egy adatkinyerő vagy osztályozó funkciónál a helyes válasz gyakran a legalacsonyabb szint, amely még tartja a minőséget, ",{"tag":301,"to":370,"children":371},"\u002Fblog\u002Fstructured-outputs-json-schema-llm",[372],"strukturált kimenettel"," kombinálva, hogy a formátum ne attól függjön, mennyit gondolkodott a modell.",{"type":147,"level":148,"id":111,"text":112},{"type":127,"content":376},[377],"Minden gyártó ugyanazzal az utasítással zárja az útmutatóját: teszteld a saját munkaterheléseden. Az Anthropic kifejezetten azt mondja, hogy friss sweepet futtass, ne vidd át a beállításokat egy korábbi modellről, mert a szinteket generációnként újrakalibrálják. A gyakorlatban ez egy kis szkript: ugyanaz az eval-készlet, ugyanaz a modell, minden támogatott szint, és szintenként négy szám.",{"type":379,"attrs":380,"inner":384,"caption":385},"diagram",{"viewBox":381,"role":382,"aria-labelledby":383},"0 0 720 170","img","rme1-t rme1-d","\u003Ctitle id=\"rme1-t\">Az effort-sweep folyamata\u003C\u002Ftitle>\u003Cdesc id=\"rme1-d\">Ugyanazt az eval-készletet minden effort-szinten lefuttatod, rögzíted a minőséget, a költséget, a késleltetést és a csonkolást, kiválasztod a minőségi küszöböt teljesítő legalacsonyabb szintet, rögzíted a kódban, és minden modellfrissítésnél megismétled.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"rme1-ah\" 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>\u003Crect x=\"20\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"79\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Eval-készlet\u003C\u002Ftext>\u003Ctext x=\"79\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">valódi forgalom\u003C\u002Ftext>\u003Cpath d=\"M138 85H158\" class=\"d-line\" marker-end=\"url(#rme1-ah)\" \u002F>\u003Crect x=\"160\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"220\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Sweep\u003C\u002Ftext>\u003Ctext x=\"220\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">low-tól max-ig\u003C\u002Ftext>\u003Cpath d=\"M279 85H299\" class=\"d-line\" marker-end=\"url(#rme1-ah)\" \u002F>\u003Crect x=\"301\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"360\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Mérés\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">pont, költség, p95\u003C\u002Ftext>\u003Cpath d=\"M419 85H439\" class=\"d-line\" marker-end=\"url(#rme1-ah)\" \u002F>\u003Crect x=\"441\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"500\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Választás\u003C\u002Ftext>\u003Ctext x=\"500\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">legalacsonyabb jó\u003C\u002Ftext>\u003Cpath d=\"M560 85H580\" class=\"d-line\" marker-end=\"url(#rme1-ah)\" \u002F>\u003Crect x=\"582\" y=\"47\" width=\"118\" height=\"76\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"641\" y=\"81\" text-anchor=\"middle\" class=\"d-text\">Rögzítés\u003C\u002Ftext>\u003Ctext x=\"641\" y=\"103\" text-anchor=\"middle\" class=\"d-small\">funkciónként\u003C\u002Ftext>",[386],"A sweep olcsó ahhoz képest, mintha egy hónapig rossz szinten futna éles környezetben. Futtasd újra, valahányszor változik a modellazonosító.",{"type":131,"code":388},"for (const effort of [\"low\", \"medium\", \"high\", \"xhigh\"]) {\n  const runs = await Promise.all(evalSet.map(async (c) => {\n    const t0 = Date.now();\n    const r = await client.messages.create({\n      model, max_tokens: 64000, output_config: { effort },\n      messages: c.messages,\n    });\n    return { ms: Date.now() - t0, out: r.usage.output_tokens,\n             truncated: r.stop_reason === \"max_tokens\",\n             score: await grade(c, r) };\n  }));\n  report(effort, runs); \u002F\u002F pass rate, mean output tokens, p95 ms, truncation rate\n}",{"type":127,"content":390},[391,392,394,395,397,398,400,401,403,404,408],"Az eredményt görbeként olvasd, ne győztesként. Ha a ",{"tag":131,"children":393},[197]," ugyanazokat az eseteket teljesíti, mint a ",{"tag":131,"children":396},[200],", a kimeneti tokenek töredékéért, a ",{"tag":131,"children":399},[197]," nyer. Ha a ",{"tag":131,"children":402},[200]," épp az üzletileg fontos eseteket javítja, a plusz tokenek olcsók. A nehéz rész az értékelés, és ez ugyanaz a munka, mint bármely ",{"tag":301,"to":405,"children":406},"\u002Fblog\u002Fllm-evals-for-product-features",[407],"LLM-eval egy termékfunkcióhoz",": valódi forgalomból címkézett esetek és egy értékelő, amelyben megbízol.",{"type":147,"level":148,"id":114,"text":115},{"type":127,"content":411},[412,413,415,416,418,419,421,422,424],"Funkciónként egy szint az alapvonal. A következő lépés, hogy kérésenként változtatod: ",{"tag":131,"children":414},[193]," egy rutin megerősítéshez, ",{"tag":131,"children":417},[200]," a tervezési lépéshez. Az Anthropic a dinamikus effortot bevált gyakorlatként említi, egy csapdával. A feloldott effort-érték bekerül a renderelt promptba, így a felső szintű érték változtatása két kérés között érvényteleníti a cache-töréspontokat. Az Anthropic saját példájában a második kérés teljes cache-olvasást mutat, a harmadik pedig új cache-írást, miután az effort ",{"tag":131,"children":420},[197],"-ról ",{"tag":131,"children":423},[193],"-ra csökkent.",{"type":127,"content":426},[427,428,432,433,436,437,439],"Két kerülőút van. Munkaterhelések között a funkcióhatáron routolj, ahol a beszélgetések amúgy sem osztoznak cache-en; a logika ugyanaz, mint a ",{"tag":301,"to":429,"children":430},"\u002Fblog\u002Fllm-cost-latency-prompt-caching-routing",[431],"modell-routingnál",". Egy beszélgetésen belül a mai Claude-modellek, például az Opus 5.5, a Sonnet 5.5 és a Haiku 5.5 bétában támogatják az üzenetenkénti effort-váltást a ",{"tag":131,"children":434},[435],"mid-conversation-output-config-2026-07-01"," fejléc mögött: egy üres, ",{"tag":131,"children":438},[189]," értéket hordozó system üzenet a következő felhasználói körtől váltja a szintet, és cache-ben hagyja a korábbi előtagot.",{"type":127,"content":441},[442],"A promptalapú terelés a harmadik eszköz. Az Anthropic olyan mondatokat dokumentál rutinkörökre, mint az \"Answer directly without deliberating.\", de figyelmeztet, hogy ez a megfogalmazásra érzékeny és kevésbé megbízható, mint az effort, a Haiku 5.5-ön pedig a fékező mondat nem csökkentette megbízhatóan a gondolkodást. Én csak akkor használom, ha a szint már jó.",{"type":147,"level":148,"id":117,"text":118},{"type":127,"content":445},[446,447,449,450,452,453,456],"Egy ágensben egy felhasználói üzenetből sok kérés lesz, a ",{"tag":131,"children":448},[144]," pedig csak az egyes kéréseket korlátozza, nem az egész kört. A mai modellek automatikusan gondolkodnak a tool callok között. Az Anthropic szerint az új felhasználói bemenet utáni első kérés viszi jellemzően a reasoning nagyját, a csak tool-eredményeket feldolgozó követő kérések pedig akár ",{"tag":131,"children":451},[203]," szinten is kihagyhatják a gondolkodást. Az OpenAI azt kéri, hogy a reasoning itemeket a function call kimenetekkel együtt add vissza, ",{"tag":131,"children":454},[455],"previous_response_id"," segítségével vagy a teljes output itemekkel, hogy a modell folytathassa a gondolkodást, ne kezdje elölről.",{"type":127,"content":458},[459,460,463,464,194,467,470,471,474,475,479],"Az egész hurokra a Claude-nak bétában task budgetje van (",{"tag":131,"children":461},[462],"task-budgets-2026-03-13","): ",{"tag":131,"children":465},[466],"output_config.task_budget",{"tag":131,"children":468},[469],"type: \"tokens\""," értékkel és legalább 20 000-es ",{"tag":131,"children":472},[473],"total"," mezővel. A modell egy szerveroldali visszaszámlálót lát, és beosztja magát, hogy rendezetten fejezze be. Ez ajánlás, nem kikényszerített korlát, és egy nyilvánvalóan túl kicsi keret miatt a Claude leszűkítheti vagy elutasíthatja a feladatot. Az Anthropic a mért feladatonkénti költés p99 értékéből javasolja a méretezést. Az effort lépésenként a mélységet, a task budget az összes szélességet hangolja. Az ágenshurok működését ",{"tag":301,"to":476,"children":477},"\u002Fblog\u002Fagent-loop-explained",[478],"Az ágenshurok, elmagyarázva"," cikk tárgyalja.",{"type":147,"level":148,"id":120,"text":121},{"type":127,"content":482},[483,484,487,488,491,492,495,496,499,500,503],"Mindhárom API külön jelenti a thinkinget, így nincs ok a találgatásra. A Claude a ",{"tag":131,"children":485},[486],"usage.output_tokens_details.thinking_tokens"," mezőt adja, amely mindig legfeljebb akkora, mint az ",{"tag":131,"children":489},[490],"output_tokens",", streamelésnél pedig az utolsó ",{"tag":131,"children":493},[494],"message_delta"," eseményben jelenik meg. Az OpenAI az ",{"tag":131,"children":497},[498],"output_tokens_details.reasoning_tokens",", a Gemini a ",{"tag":131,"children":501},[502],"total_thought_tokens"," mezőt adja. Tedd a mezőt minden trace-re, az effort-szint és a modellazonosító mellé.",{"type":127,"content":505},[506,507,511],"Három grafikon elég: kérésenkénti thinking-token funkciónként, csonkolási arány effort-szintenként, és minőségi pontszám effort-szintenként a mintavételezett evalokból. Ha egy promptváltozás után kúszik felfelé a kérésenkénti gondolkodás, még aznap látod, nem a számlán. A tracing oldalát az ",{"tag":301,"to":508,"children":509},"\u002Fblog\u002Fagent-observability-opentelemetry",[510],"LLM-ágensek megfigyelhetősége OpenTelemetryvel"," cikk írja le.",{"type":147,"level":148,"id":123,"text":124},{"type":514,"ordered":515,"items":516},"list",true,[517,521,524,527,530,533,536,539],[518],{"tag":519,"href":39,"children":520},"a",[38],[522],{"tag":519,"href":42,"children":523},[41],[525],{"tag":519,"href":45,"children":526},[44],[528],{"tag":519,"href":48,"children":529},[47],[531],{"tag":519,"href":51,"children":532},[50],[534],{"tag":519,"href":54,"children":535},[53],[537],{"tag":519,"href":57,"children":538},[56],[540],{"tag":519,"href":60,"children":541},[59],[543,599,666,723],{"slug":544,"published":5,"minutes":545,"category":7,"tags":546,"keywords":552,"about":566,"sources":574,"cover":593,"og":594,"expertise":63,"locales":595,"lang":67,"title":596,"description":597,"coverAlt":598},"deepseek-v4-1-flash-1017",15,[547,548,549,550,551],"DeepSeek","Open-weight models","KV cache","Mixture of experts","LLM cost",[553,554,555,556,557,558,559,560,561,562,563,564,565],"DeepSeek V4.1 Flash 1017","DeepSeek V4.1 Flash","Causal Encoder-Decoder","Compressed Sparse Attention 2","CSA2","FP4 KV cache","KV cache compression","SWA Bounded Replay","Engram conditional memory","DSpark speculative decoding","DeepSeek pricing","DeepSWE benchmark","open-weight coding model",[567,569,571],{"name":547,"url":568},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FDeepSeek",{"name":550,"url":570},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMixture_of_experts",{"name":572,"url":573},"Transformer (deep learning architecture)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTransformer_(deep_learning_architecture)",[575,578,581,584,587,590],{"title":576,"url":577},"DeepSeek-AI: DeepSeek-V4.1-Flash: Pushing the Limits of KV Cache Compression (arXiv:2609.19969)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2609.19969",{"title":579,"url":580},"Hugging Face: deepseek-ai\u002FDeepSeek-V4.1-Flash-1017 model card","https:\u002F\u002Fhuggingface.co\u002Fdeepseek-ai\u002FDeepSeek-V4.1-Flash-1017",{"title":582,"url":583},"OpenRouter: DeepSeek V4.1 Flash 1017, pricing and providers","https:\u002F\u002Fopenrouter.ai\u002Fdeepseek\u002Fdeepseek-v4.1-flash-1017",{"title":585,"url":586},"The Decoder: Deepseek V4.1 Flash 1017 beats larger rivals in agentic tasks while once again massively cutting per-task costs","https:\u002F\u002Fthe-decoder.com\u002Fdeepseek-v4-1-flash-1017-beats-larger-rivals-in-agentic-tasks-while-once-again-massively-cutting-per-task-costs\u002F",{"title":588,"url":589},"AI Weekly: DeepSeek opens V4.1-Flash-1017 weights and $0.75 Search API","https:\u002F\u002Faiweekly.co\u002Falerts\u002Fdeepseek-opens-v41-flash-1017-weights-and-075-search-api",{"title":591,"url":592},"DeepSeek on X: DeepSeek-V4.1-Flash-1017 announcement","https:\u002F\u002Fx.com\u002Fdeepseek_ai\u002Fstatus\u002F2111375640717033777","\u002Fimages\u002Fblog\u002Fdeepseek-v4-1-flash-1017\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fdeepseek-v4-1-flash-1017\u002Fog.jpg",[65,66,67],"DeepSeek V4.1 Flash 1017: 890 bájt KV-cache tokenenként, és mit nyer ezzel egy ágens","Technikai mélyfúrás a DeepSeek V4.1 Flash 1017-ről: encoder-decoder felosztás, CSA2 cache-megosztás, FP4 KV-cache, benchmarkok és a valós költség ágensfeladatonként.","Balra egy magas, vékony kártyákból álló köteg, egy nyíl, jobbra ugyanezek a kártyák a magasság negyedére préselve.",{"slug":600,"published":5,"minutes":6,"category":7,"tags":601,"keywords":607,"about":619,"sources":629,"cover":660,"og":661,"expertise":63,"locales":662,"lang":67,"title":663,"description":664,"coverAlt":665},"llm-rate-limits-retries-provider-fallback",[602,603,604,605,606],"Rate limits","Retries","Fallback","Reliability","LLM gateway",[608,609,610,611,612,613,614,615,616,617,618],"llm rate limit handling","429 too many requests llm api","exponential backoff with jitter","anthropic 529 overloaded error","openai rate limit retry","llm provider fallback","litellm fallbacks","retry-after header","llm circuit breaker","multi provider llm failover","claude api rate limits",[620,623,626],{"name":621,"url":622},"Token bucket","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FToken_bucket",{"name":624,"url":625},"Exponential backoff","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FExponential_backoff",{"name":627,"url":628},"Circuit breaker design pattern","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCircuit_breaker_design_pattern",[630,633,636,639,642,645,648,651,654,657],{"title":631,"url":632},"Claude Platform Docs: Rate limits","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fapi\u002Frate-limits",{"title":634,"url":635},"Claude Platform Docs: API errors","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fapi\u002Ferrors",{"title":637,"url":638},"OpenAI API Docs: Rate limits","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Frate-limits",{"title":640,"url":641},"AWS Builders Library: Timeouts, retries and backoff with jitter","https:\u002F\u002Fbuilder.aws.com\u002Fcontent\u002F3EumjoZascWd1oZiEgL8ORlv3qE\u002Ftimeouts-retries-and-backoff-with-jitter",{"title":643,"url":644},"MDN: Retry-After header","https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FHTTP\u002FReference\u002FHeaders\u002FRetry-After",{"title":646,"url":647},"Martin Fowler: Circuit Breaker (2014)","https:\u002F\u002Fmartinfowler.com\u002Fbliki\u002FCircuitBreaker.html",{"title":649,"url":650},"LiteLLM Docs: Router, retries and cooldowns","https:\u002F\u002Fdocs.litellm.ai\u002Fdocs\u002Frouting",{"title":652,"url":653},"LiteLLM Docs: Proxy fallbacks and reliability","https:\u002F\u002Fdocs.litellm.ai\u002Fdocs\u002Fproxy\u002Freliability",{"title":655,"url":656},"OpenRouter Docs: Model fallbacks","https:\u002F\u002Fopenrouter.ai\u002Fdocs\u002Fguides\u002Frouting\u002Fmodel-fallbacks",{"title":658,"url":659},"AI SDK Docs: Settings (maxRetries, timeout)","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-core\u002Fsettings","\u002Fimages\u002Fblog\u002Fllm-rate-limits-retries-provider-fallback\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-rate-limits-retries-provider-fallback\u002Fog.jpg",[65,66,67],"LLM rate limitek élesben: újrapróbálás, backoff és szolgáltatóváltás","Hogyan működnek az LLM rate limitek, mit érdemes újrapróbálni, backoff jitterrel, retry egy rétegben, és fallback-láncok, amelyek nem rontják el a kimenetet.","Kis négyzetek kapaszkodnak három fokon egy széles téglalaphoz, mögötte még kettő sorban.",{"slug":667,"published":5,"minutes":668,"category":7,"tags":669,"keywords":673,"about":684,"sources":692,"cover":717,"og":718,"expertise":63,"locales":719,"lang":67,"title":720,"description":721,"coverAlt":722},"prompt-versioning-management",8,[670,671,11,13,672],"Prompt management","Versioning","Langfuse",[674,675,676,677,678,679,680,681,682,683],"prompt versioning","prompt management","prompt registry","version control for prompts","langfuse prompt management","mlflow prompt registry","prompts in git","openai prompt object deprecation","prompt rollback production","prompt ci evaluation",[685,686,689],{"name":34,"url":35},{"name":687,"url":688},"Version control","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FVersion_control",{"name":690,"url":691},"Continuous integration","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FContinuous_integration",[693,696,699,702,705,708,711,714],{"title":694,"url":695},"OpenAI API Docs: Migrate from prompt objects","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompting\u002Fmigrate-from-prompt-object",{"title":697,"url":698},"OpenAI API Docs: Prompt engineering (reusable prompts deprecation note)","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fprompt-engineering",{"title":700,"url":701},"Langfuse Docs: Prompt version control","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fprompt-management\u002Ffeatures\u002Fprompt-version-control",{"title":703,"url":704},"Langfuse Docs: Prompt caching in the SDKs","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fprompt-management\u002Ffeatures\u002Fcaching",{"title":706,"url":707},"Langfuse Docs: Link prompts to traces","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fprompt-management\u002Ffeatures\u002Flink-to-traces",{"title":709,"url":710},"MLflow Docs: Prompt Registry","https:\u002F\u002Fmlflow.org\u002Fdocs\u002Flatest\u002Fgenai\u002Fprompt-registry\u002F",{"title":712,"url":713},"Promptfoo Docs: GitHub Action","https:\u002F\u002Fwww.promptfoo.dev\u002Fdocs\u002Fintegrations\u002Fgithub-action\u002F",{"title":715,"url":716},"Claude Platform Docs: Prompt caching","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fprompt-caching","\u002Fimages\u002Fblog\u002Fprompt-versioning-management\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fprompt-versioning-management\u002Fog.jpg",[65,66,67],"Promptverziózás élesben: git, registry, címkék és visszaállítás","Promptok verziózása élesben: mi tartozik egy verzióhoz, git vagy prompt registry, címkék és visszaállítás, eval-kapu a CI-ban és a cache-re gyakorolt hatás.","Öt álló kártya sorban, a harmadik íves nyíllal visszafordul, a kapu az utolsó előtt áll.",{"slug":724,"published":5,"minutes":725,"category":7,"tags":726,"keywords":730,"about":741,"sources":749,"cover":770,"og":771,"expertise":63,"locales":772,"lang":67,"title":773,"description":774,"coverAlt":775},"llm-batch-api-offline-workloads",9,[727,12,11,728,729],"Batch API","Prompt caching","Data pipelines",[731,732,733,734,735,736,737,738,739,740],"llm batch api","anthropic message batches api","openai batch api","gemini batch mode","batch inference llm cost","batch api 50 percent discount","openai flex processing","bedrock batch inference","llm offline processing","batch api prompt caching",[742,745,748],{"name":743,"url":744},"Batch processing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBatch_processing",{"name":746,"url":747},"JSON Lines","https:\u002F\u002Fjsonlines.org\u002F",{"name":31,"url":32},[750,753,755,756,759,762,764,767],{"title":751,"url":752},"Claude Platform Docs: Batch processing","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fbatch-processing",{"title":754,"url":632},"Claude Platform Docs: Rate limits (Message Batches API)",{"title":715,"url":716},{"title":757,"url":758},"OpenAI API Docs: Batch API","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fbatch",{"title":760,"url":761},"OpenAI API Docs: Flex processing","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fflex-processing",{"title":763,"url":638},"OpenAI API Docs: Rate limits (batch queue limits)",{"title":765,"url":766},"Google AI for Developers: Gemini Batch API","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fbatch-api",{"title":768,"url":769},"Amazon Bedrock User Guide: Batch inference","https:\u002F\u002Fdocs.aws.amazon.com\u002Fbedrock\u002Flatest\u002Fuserguide\u002Fbatch-inference.html","\u002Fimages\u002Fblog\u002Fllm-batch-api-offline-workloads\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-batch-api-offline-workloads\u002Fog.jpg",[65,66,67],"LLM batch API-k: félárú inferencia olyan munkára, amely várhat","Mikor érdemes az Anthropic, OpenAI és Gemini batch API-ját használni, hogyan működnek a limitek, a párosítás és a hibák, és hogyan adódnak össze a kedvezmények.","Széles doboz nyolc kis négyzettel, balról érkeznek, egy hosszú nyíl visszatér.",1792245343903]