[{"data":1,"prerenderedAt":858},["ShallowReactive",2],{"blog-agent-observability-opentelemetry-hu":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":25,"sources":34,"cover":86,"og":87,"expertise":88,"locales":89,"lang":92,"title":93,"description":94,"coverAlt":95,"metaTitle":96,"takeaways":97,"faq":103,"toc":122,"blocks":159,"others":603},"agent-observability-opentelemetry","2026-10-02",12,"llmops",[9,10,11,12,13],"OpenTelemetry","LLM observability","AI agents","Tracing","Evals",[15,16,17,18,19,20,21,22,23,24],"LLM agent observability OpenTelemetry","OpenTelemetry GenAI semantic conventions","how to trace LLM agents","gen_ai semantic conventions attributes","LLM token usage and cost metrics","LLM tracing sampling","PII in LLM traces","Langfuse vs Arize Phoenix vs Datadog","AI agent tracing evals","OpenTelemetry LLM tracing",[26,28,31],{"name":9,"url":27},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOpenTelemetry",{"name":29,"url":30},"Observability","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FObservability_(software)",{"name":32,"url":33},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",[35,38,41,44,47,50,53,56,59,62,65,68,71,74,77,80,83],{"title":36,"url":37},"OpenTelemetry: GenAI semantic conventions repository (open-telemetry\u002Fsemantic-conventions-genai)","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai",{"title":39,"url":40},"GenAI conventions: overview (status Development)","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002FREADME.md",{"title":42,"url":43},"GenAI conventions: model spans, execute_tool and content capture","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-spans.md",{"title":45,"url":46},"GenAI conventions: agent spans","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-agent-spans.md",{"title":48,"url":49},"GenAI conventions: metrics","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-metrics.md",{"title":51,"url":52},"GenAI conventions: inference token metrics","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-token-metrics.md",{"title":54,"url":55},"GenAI conventions: events (gen_ai.evaluation.result)","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fgen-ai-events.md",{"title":57,"url":58},"GenAI conventions: Model Context Protocol","https:\u002F\u002Fgithub.com\u002Fopen-telemetry\u002Fsemantic-conventions-genai\u002Fblob\u002Fmain\u002Fdocs\u002Fgen-ai\u002Fmcp.md",{"title":60,"url":61},"OpenTelemetry docs: GenAI conventions moved notice","https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002Fspecs\u002Fsemconv\u002Fgen-ai\u002F",{"title":63,"url":64},"OpenTelemetry docs: Sampling","https:\u002F\u002Fopentelemetry.io\u002Fdocs\u002Fconcepts\u002Fsampling\u002F",{"title":66,"url":67},"John Hodge: The state of the OpenTelemetry GenAI semantic conventions (July 2026)","https:\u002F\u002Fjohn-hodge.com\u002Fblog\u002Fopentelemetry-genai-semantic-conventions\u002F",{"title":69,"url":70},"Langfuse docs: OpenTelemetry integration","https:\u002F\u002Flangfuse.com\u002Fdocs\u002Fopentelemetry\u002Fget-started",{"title":72,"url":73},"Langfuse repository and licence","https:\u002F\u002Fgithub.com\u002Flangfuse\u002Flangfuse",{"title":75,"url":76},"Arize Phoenix repository","https:\u002F\u002Fgithub.com\u002FArize-ai\u002Fphoenix",{"title":78,"url":79},"Arize OpenInference repository","https:\u002F\u002Fgithub.com\u002FArize-ai\u002Fopeninference",{"title":81,"url":82},"Datadog docs: OpenTelemetry instrumentation for LLM Observability","https:\u002F\u002Fdocs.datadoghq.com\u002Fllm_observability\u002Finstrumentation\u002Fotel_instrumentation\u002F",{"title":84,"url":85},"Honeycomb docs: Send data with OpenTelemetry","https:\u002F\u002Fdocs.honeycomb.io\u002Fsend-data\u002Fopentelemetry\u002F","\u002Fimages\u002Fblog\u002Fagent-observability-opentelemetry\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fagent-observability-opentelemetry\u002Fog.jpg","ai-engineer",[90,91,92],"en","de","hu","LLM-ügynökök megfigyelhetősége OpenTelemetryvel: trace-ek, tokenek, PII és eval","Így trace-eld az LLM-ügynököket OpenTelemetryvel: GenAI semantic conventions és státuszuk, span-fa, token-metrikák, sampling, PII, eval és eszközök.","Ábra: egy ügynökfuttatás OpenTelemetry span-okra ágazik szét a modellhívásokhoz, eszközhívásokhoz, token-metrikákhoz és eval-eredményekhez, majd egy trace-backendbe exportálódik.","LLM-ügynökök observability-je OpenTelemetryvel · Balázs Csorba",[98,99,100,101,102],"Az OpenTelemetry GenAI semantic conventions külön repóba költözött, és továbbra is Development státuszú, ezért rögzítsd a verziókat, és számíts attribútum-átnevezésekre.","Egy ügynökfuttatás legyen egy trace: egy invoke_agent gyökér-span, minden modellhíváshoz egy chat span, minden eszközhíváshoz egy execute_tool span. Ettől a fától válnak láthatóvá a ciklusok és a felesleges lépések.","Minden spanen rögzítsd a token-számokat, a modellt, a finish reasont és a hibatípust, de a promptokat, az eszköz-argumentumokat és az eredményeket alapból hagyd ki (a conventions szerint opt-in), és ha kellenek, tárold őket külön.","Eredmény alapján mintavételezz, ne érmefeldobással: tarts meg minden hibát, minden lassú vagy drága futást és minden megbukott evalt, a többiből pedig egy kis részt. Ne feledd, hogy az eval általában a trace után készül el.","Bármely OTLP-backend fogadhat ügynök-trace-eket, az igazi különbség az, mennyire érti a gen_ai attribútumokat, hol fut és mennyibe kerül. Indulj a szabványból, és tartsd cserélhetően az exportert.",[104,107,110,113,116,119],{"q":105,"a":106},"Mik az OpenTelemetry GenAI semantic conventions?","A generatív AI munkaterhelések szabványos attribútum-, span-, metrika- és eseménynevei: gen_ai.operation.name, gen_ai.request.model, gen_ai.usage.input_tokens, execute_tool és invoke_agent spanok és még sok más. 2026 októberében az open-telemetry\u002Fsemantic-conventions-genai repóban karbantartják őket, és minden GenAI-specifikus elem továbbra is Development jelölésű, nem Stable.",{"q":108,"a":109},"Hogyan trace-eljek egy LLM-ügynököt OpenTelemetryvel?","Futtatásonként hozz létre egy trace-t. A futtatást fogd be egy invoke_agent spanba, minden modellhívást egy chat spanba, minden eszközhívást egy execute_tool spanba, és állítsd be a gen_ai attribútumokat a modellre, a token-használatra, a finish reasonra és a hibákra. Használj instrumentációs könyvtárat a providerhez vagy a frameworkhöz, a saját eszközökhöz adj kézi spanokat, és OTLP-n exportálj.",{"q":111,"a":112},"Naplózzam a promptokat és a válaszokat a trace-ekben?","Alapból ne. A conventions az utasításokat, bemeneteket és kimeneteket érzékenynek és nagynak tekinti, azt várja az instrumentációktól, hogy opt-in nélkül ne rögzítsék őket, élesben pedig a tartalom külső tárolását javasolja, a spanen csak hivatkozással. A teljes tartalmat élesítés előtt, vagy egy mintavételezett, hozzáférés-korlátozott részhalmazra rögzítsd.",{"q":114,"a":115},"Hogyan követem az LLM token-használatot és költséget OpenTelemetryvel?","Minden inference spanen rögzítsd a gen_ai.usage.input_tokens és gen_ai.usage.output_tokens értékét, a dashboardokhoz pedig használd a token usage számlálókat. A conventions token-számokat definiál, árakat nem, így a költséget te számolod a backendben vagy a pipeline-ban, a válaszmodell szerinti árlistából. A cache-elt és a reasoning tokenek az input és output összegek részhalmazai.",{"q":117,"a":118},"Melyik a legjobb LLM-observability eszköz: Langfuse, Phoenix, Datadog vagy Honeycomb?","Attól függ, mit üzemeltetsz már. A Langfuse és az Arize Phoenix LLM-központú és saját szerveren is futtatható, a Datadog LLM Observability a már Datadogot használó csapatoknak illik, és OpenTelemetry 1.37-től várja a gen_ai attribútumokat, a Honeycomb pedig általános OTLP trace-backend. Előbb instrumentálj OpenTelemetryvel, akkor a backend cserélhető döntés marad.",{"q":120,"a":121},"Hogyan kapcsoljam össze a trace-eket az evalokkal?","Az eval-eredményt azon a spanen helyezd el, amelyet értékel. A GenAI conventions definiál egy gen_ai.evaluation.result eseményt névvel, pontszámmal, címkével és magyarázattal, amelynek az értékelt span alá kell tartoznia. Az offline evalokat ugyanazon az instrumentált kódon futtasd, a megbukott éles trace-ekből pedig csinálj új teszteseteket.",[123,126,129,132,135,138,141,144,147,150,153,156],{"id":124,"title":125},"why-traces","Miért kellenek az ügynököknek trace-ek, nem csak logok",{"id":127,"title":128},"semantic-conventions","A GenAI semantic conventions: mi van, és mennyire stabil",{"id":130,"title":131},"trace-tree","A trace-fa: egy futás, egy trace",{"id":133,"title":134},"what-to-record","Mit rögzíts az egyes spanekre",{"id":136,"title":137},"tokens-and-cost","Token- és költségmetrikák",{"id":139,"title":140},"sampling","Sampling: az érdekes futásokat tartsd meg",{"id":142,"title":143},"pii","PII és érzékeny tartalom a trace-ekben",{"id":145,"title":146},"evals","Trace-ek összekötése evalokkal",{"id":148,"title":149},"tools","Eszközök",{"id":151,"title":152},"checklist","Ellenőrzőlista az első sprintre",{"id":154,"title":155},"closing","Hol nem fektetnék még sokat",{"id":157,"title":158},"sources","Források",[160,164,167,176,179,195,198,199,202,213,216,223,224,243,252,264,267,268,271,330,333,334,337,349,352,353,364,367,394,397,398,401,404,431,439,440,447,467,468,471,508,511,512,515,536,544,545,548,549],{"type":161,"content":162},"paragraph",[163],"Egy klasszikus webes kérés egy hívás, egy válasz, és ha elromlik, egy stack trace. Az ügynökfuttatás egy kis program, amelyet a modell menet közben ír: tervez, hív egy eszközt, elolvassa az eredményt, újra hívja a modellt, újrapróbál, és néha ciklusban forog, amíg el nem fogy a keret. Ha egy ilyen futás négyszer annyiba kerül a kelleténél, vagy csendben rossz választ ad, a logok szétszórt sorokat mutatnak, nem a történés alakját.",{"type":161,"content":165},[166],"A „mi történt, milyen sorrendben, és mennyi ideig tartott az egyes rész” kérdésre a distributed tracing már most is a megfelelő eszköz. Az OpenTelemetry (OTel) a gyártófüggetlen módja a trace-ek előállításának, és mostanra saját GenAI semantic conventions készletet kapott. Fiatalok, még Development jelölésűek, és épp most költöztek, ezért ez a cikk legalább annyira arról szól, mit érdemes verzióhoz kötni és mit becsomagolni, mint arról, mit érdemes rögzíteni a telemetriában.",{"type":161,"content":168},[169,170,175],"Végigmegyek a conventions valós státuszán, egy ügynökfuttatás span-fáján, azon, hogy mi kerüljön az egyes spanekre, a token- és költségmetrikákon, a samplingen, a PII-n, az evalokhoz való kapcsolaton, és azon, hogyan illeszkednek a gyakori backendek. A végén ellenőrzőlista van. Feltételezem, hogy tudod, mi az ",{"tag":171,"to":172,"children":173},"link","\u002Fblog\u002Fagent-loop-explained",[174],"az agent loop",".",{"type":177,"level":178,"id":124,"text":125},"heading",2,{"type":161,"content":180},[181,182,186,187,190,191,194],"Az ügynökök három hibamintája trace nélkül szinte láthatatlan. ",{"tag":183,"children":184},"strong",[185],"Ciklusok és felesleges lépések",": a modell ötször hívja ugyanazt a kereső eszközt kissé eltérő argumentumokkal. ",{"tag":183,"children":188},[189],"Csendes romlás",": egy retrieval lépés semmit sem ad vissza, a modell emlékezetből válaszol, és a kimenet hihetőnek tűnik. ",{"tag":183,"children":192},[193],"Költségsodródás",": egy prompt-módosítás vagy egy nagyobb eszközeredmény felfújja a kontextust, és a futás minden későbbi modellhívása drágább lesz.",{"type":161,"content":196},[197],"Mindhárom egy egész futás tulajdonsága, nem egyetlen hívásé. A trace fa alakban adja a futást, csomópontonként idővel, token-számokkal és kimenettel, és lehetővé teszi a lényeges kérdéseket: hány modellhívás jut egy kérésre p95-ön, melyik eszköz hibázik a legtöbbet, melyik lépés viszi a késleltetést. Ha csak logolsz, korrelációs azonosítókból építesz egy rosszabb tracing rendszert.",{"type":177,"level":178,"id":127,"text":128},{"type":161,"content":200},[201],"A semantic conventions az attribútumok, spanek és metrikák megegyezett nevei, hogy egy backend bármelyik könyvtár telemetriáját megértse. A GenAI-hoz lefedik a modell-spanokat (inference, embeddings, retrieval, memory), az ügynök-spanokat (create_agent, invoke_agent, invoke_workflow, plan), az eszközvégrehajtást, a metrikákat, az eseményeket és egy MCP-konvenciót. Provider-specifikus oldalak vannak az Anthropichoz, az OpenAI-hoz, az AWS Bedrockhoz és az Azure AI Inference-hez.",{"type":161,"content":203},[204,205,208,209,212],"Két tény számít, mielőtt rájuk építesz. Először: a conventions ",{"tag":183,"children":206},[207],"elköltöztek",", az opentelemetry.io oldala már csak átirányít a külön open-telemetry\u002Fsemantic-conventions-genai repóra. Másodszor: ",{"tag":183,"children":210},[211],"nem stabilak",". Az áttekintő oldal Development státuszt visel, és a független forrás, amelyet használtam, 2026. júliusi állapot szerint egyetlen GenAI-specifikus attribútumot, spant, metrikát vagy eseményt sem talált Stable jelöléssel (csak a közös attribútumok, például az error.type azok). Számíts rá, hogy a nevek változnak a kiadások között.",{"type":161,"content":214},[215],"Gyakorlatban ez egy verziókapcsoló. Azok az instrumentációk, amelyek a régebbi conventions-t támogatták, alapból a befagyasztott 1.36-os kori kimenetet adják, és az újabb alakhoz az OTEL_SEMCONV_STABILITY_OPT_IN=gen_ai_latest_experimental beállítás kell. Nem minden framework kezeli egyformán ezt a változót, ezért ne a dokumentációban bízz, hanem nézz meg egy valódi exportált spant. A Datadog például az 1.37-es vagy újabb alakot várja.",{"type":217,"variant":218,"title":219,"body":220},"callout","warn","Kezeld a conventions-t mozgó célpontként",[221],[222],"Én rögzíteném az instrumentációs csomagok verzióját, tennék egy vékony saját segédréteget az alkalmazás és az OTel API közé (hogy egy átnevezés egysoros módosítás legyen), és tartanék egy golden-file tesztet, amely minden fajta spanből exportál egyet, és összeveti az attribútumneveket. Ha egy framework-frissítés megváltoztatja a kimenetet, a teszt bukjon el, ne a dashboardjaid ürüljenek ki csendben.",{"type":177,"level":178,"id":130,"text":131},{"type":161,"content":225},[226,227,230,231,234,235,238,239,242],"A conventions definiálja a szükséges span-fajtákat. A gyökér egy ",{"tag":183,"children":228},[229],"invoke_agent"," span (INTERNAL kind egy folyamaton belüli ügynöknél, CLIENT egy távoli ügynökszolgáltatásnál). Alatta modellhívásonként egy ",{"tag":183,"children":232},[233],"chat"," span (a művelet és a kért modell nevével, CLIENT kind), eszközhívásonként egy ",{"tag":183,"children":236},[237],"execute_tool"," span (INTERNAL), és ha az ügynöködnek külön tervezési fázisa van, egy ",{"tag":183,"children":240},[241],"plan"," span. Az ügynökök körüli többlépéses pipeline használhat invoke_workflow spant. A retrievalnek saját spanje van, az adatforrás nevével.",{"type":244,"attrs":245,"inner":249,"caption":250},"diagram",{"viewBox":246,"role":247,"aria-labelledby":248},"0 0 730 410","img","d1-otel-t d1-otel-d","\u003Ctitle id=\"d1-otel-t\">Egy ügynökfuttatás trace-fája\u003C\u002Ftitle>\u003Cdesc id=\"d1-otel-d\">Nyolc spanből álló fa. A gyökér az invoke_agent. Gyerekei: plan, chat, execute_tool search_orders egy retrieval gyerekkel, egy második chat, execute_tool create_refund és egy záró chat. Alul szaggatott doboz mutatja a futáshoz kapcsolt eval-eredmény eseményt.\u003C\u002Fdesc>\u003Ctext x=\"20\" y=\"28\" class=\"d-title\">Egy ügynökfuttatás trace-fája\u003C\u002Ftext>\u003Ctext x=\"710\" y=\"28\" text-anchor=\"end\" class=\"d-label\">GenAI semantic conventions\u003C\u002Ftext>\u003Crect x=\"20\" y=\"50\" width=\"290\" height=\"28\" rx=\"8\" class=\"d-accent\" \u002F>\u003Ctext x=\"32\" y=\"68.5\" class=\"d-text\">invoke_agent support-agent\u003C\u002Ftext>\u003Ctext x=\"404\" y=\"68.5\" class=\"d-small\">kérésenként egy, a futás gyökere\u003C\u002Ftext>\u003Cpath d=\"M34 78 V102 H56\" class=\"d-line\" \u002F>\u003Crect x=\"56\" y=\"88\" width=\"290\" height=\"28\" rx=\"8\" class=\"d-box\" \u002F>\u003Ctext x=\"68\" y=\"106.5\" class=\"d-text\">plan support-agent\u003C\u002Ftext>\u003Ctext x=\"404\" y=\"106.5\" class=\"d-small\">opcionális: feladatbontás\u003C\u002Ftext>\u003Cpath d=\"M34 78 V140 H56\" class=\"d-line\" \u002F>\u003Crect x=\"56\" y=\"126\" width=\"290\" height=\"28\" rx=\"8\" class=\"d-sky\" \u002F>\u003Ctext x=\"68\" y=\"144.5\" class=\"d-text\">chat {model}\u003C\u002Ftext>\u003Ctext x=\"404\" y=\"144.5\" class=\"d-small\">tokenek be és ki, finish reason\u003C\u002Ftext>\u003Cpath d=\"M34 78 V178 H56\" class=\"d-line\" \u002F>\u003Crect x=\"56\" y=\"164\" width=\"290\" height=\"28\" rx=\"8\" class=\"d-mint\" \u002F>\u003Ctext x=\"68\" y=\"182.5\" class=\"d-text\">execute_tool search_orders\u003C\u002Ftext>\u003Ctext x=\"404\" y=\"182.5\" class=\"d-small\">argumentum és eredmény: csak opt-in\u003C\u002Ftext>\u003Cpath d=\"M70 192 V216 H92\" class=\"d-line\" \u002F>\u003Crect x=\"92\" y=\"202\" width=\"290\" height=\"28\" rx=\"8\" class=\"d-box\" \u002F>\u003Ctext x=\"104\" y=\"220.5\" class=\"d-text\">retrieval orders-index\u003C\u002Ftext>\u003Ctext x=\"404\" y=\"220.5\" class=\"d-small\">az eszközben: saját gyerek-span\u003C\u002Ftext>\u003Cpath d=\"M34 78 V254 H56\" class=\"d-line\" \u002F>\u003Crect x=\"56\" y=\"240\" width=\"290\" height=\"28\" rx=\"8\" class=\"d-sky\" \u002F>\u003Ctext x=\"68\" y=\"258.5\" class=\"d-text\">chat {model}\u003C\u002Ftext>\u003Ctext x=\"404\" y=\"258.5\" class=\"d-small\">második kör, nőtt a kontextus\u003C\u002Ftext>\u003Cpath d=\"M34 78 V292 H56\" class=\"d-line\" \u002F>\u003Crect x=\"56\" y=\"278\" width=\"290\" height=\"28\" rx=\"8\" class=\"d-gold\" \u002F>\u003Ctext x=\"68\" y=\"296.5\" class=\"d-text\">execute_tool create_refund\u003C\u002Ftext>\u003Ctext x=\"404\" y=\"296.5\" class=\"d-small\">író művelet: jóváhagyás és kimenet\u003C\u002Ftext>\u003Cpath d=\"M34 78 V330 H56\" class=\"d-line\" \u002F>\u003Crect x=\"56\" y=\"316\" width=\"290\" height=\"28\" rx=\"8\" class=\"d-sky\" \u002F>\u003Ctext x=\"68\" y=\"334.5\" class=\"d-text\">chat {model}\u003C\u002Ftext>\u003Ctext x=\"404\" y=\"334.5\" class=\"d-small\">végső válasz, finish reason stop\u003C\u002Ftext>\u003Crect x=\"20\" y=\"360\" width=\"690\" height=\"34\" rx=\"8\" class=\"d-box d-dash\" \u002F>\u003Ctext x=\"365\" y=\"381\" text-anchor=\"middle\" class=\"d-small\">gen_ai.evaluation.result: pontszám és címke az értékelt spanen\u003C\u002Ftext>",[251],"Egy ügynökfuttatás egy trace-ként. A span-nevek a conventions-t követik, a szürke megjegyzések azt jelölik, amit minden csomópontban nézek.",{"type":161,"content":253},[254,255,258,259,263],"Két részletet érdemes átvenni. A modellhívás span-neve a művelet és a modell, például a chat plusz a modell neve, ami alacsonyan tartja a kardinalitást és olvashatóvá teszi a vízesés-nézetet. A conventions pedig kifejezetten arra biztat, hogy a ",{"tag":183,"children":256},[257],"saját"," eszközeidet kézzel instrumentáld execute_tool spanekkel, mert egy automatikus instrumentáció nem ismerheti a kódodban futó eszközöket. Az MCP-szervereket hívó eszközöknél az MCP-konvenció a kérés metaadataiban viheti a trace-kontextust (traceparent, tracestate és baggage), így a szerveroldal ugyanabba a trace-be kerül. Hogy miért fontos ez a szerveroldali kép, azt az ",{"tag":171,"to":260,"children":261},"\u002Fblog\u002Fmcp-tool-design-lessons-jira-server",[262],"MCP-eszköztervezési tanulságok"," cikk mutatja.",{"type":161,"content":265},[266],"Még egy pont az alakról: egy újrapróbált modellhívás egyetlen span legyen, amely az összes újrapróbálkozást lefedi, ne több, mert a convention a spant a hívó szemszögéből látott logikai műveletként definiálja. Ha látni akarod az újrapróbálkozásokat, rögzítsd őket eseményként vagy attribútumként ezen a spanen.",{"type":177,"level":178,"id":133,"text":134},{"type":161,"content":269},[270],"A szabvány megmondja, mi érhető el, azt nem, mi éri meg a tárhelyet. Ezzel a készlettel indulnék. A második oszlop nevei a conventions-ből valók, hacsak nincs jelölve, hogy saját (custom).",{"type":272,"head":273,"rows":280},"table",[274,276,278],[275],"Egység",[277],"Beállítandó attribútumok",[279],"Miért éri meg",[281,288,295,302,309,316,323],[282,284,286],[283],"Ügynökfuttatás (invoke_agent)",[285],"gen_ai.agent.name, gen_ai.agent.version, gen_ai.conversation.id, error.type, saját: release, tenant, végeredmény",[287],"Futások csoportosítása ügynökverzió és session szerint, release-ek összevetése, az átadással vagy hibával végződő futások megtalálása",[289,291,293],[290],"Modellhívás (chat)",[292],"gen_ai.operation.name, gen_ai.provider.name, gen_ai.request.model, gen_ai.response.model, gen_ai.response.finish_reasons, gen_ai.usage.input_tokens, gen_ai.usage.output_tokens, cache-olvasási és reasoning token-számok, error.type",[294],"Hívásonkénti költség, csonkolás (finish reason length), cache-találati arány, modell-fallbackek, mely provider-hibák dominálnak",[296,298,300],[297],"Kérésbeállítások",[299],"gen_ai.request.temperature, gen_ai.request.max_tokens, gen_ai.request.reasoning.level, gen_ai.prompt.name, gen_ai.prompt.version",[301],"Viselkedésváltozások magyarázata, a minőség egy prompt-verzióhoz kötése",[303,305,307],[304],"Eszközhívás (execute_tool)",[306],"gen_ai.tool.name, gen_ai.tool.call.id, gen_ai.tool.type, error.type, saját: olvasó vagy író, jóváhagyás megtörtént",[308],"Eszközönkénti hibaarány és késleltetés, az író műveletek és jóváhagyóik megtalálása",[310,312,314],[311],"Retrieval",[313],"gen_ai.data_source.id, saját: top-k, találatok száma, dokumentumazonosítók tartalom nélkül",[315],"Az üres vagy gyenge retrieval észrevétele, mielőtt a modell egy gördülékeny válasz mögé rejtené",[317,319,321],[318],"Tartalom",[320],"gen_ai.system_instructions, gen_ai.input.messages, gen_ai.output.messages, gen_ai.tool.call.arguments, gen_ai.tool.call.result (mind opt-in)",[322],"Hibakeresés és tesztesetek, adatvédelmi és tárhelyköltség árán (lásd a PII szakaszt)",[324,326,328],[325],"Értékelés",[327],"gen_ai.evaluation.name, gen_ai.evaluation.score.value, gen_ai.evaluation.score.label, gen_ai.evaluation.explanation",[329],"Minőségi jelzés pontosan azon a spanen, amelyet értékel",{"type":161,"content":331},[332],"Azokat az attribútumokat, amelyekre egy samplernek szüksége lehet, a span létrehozásakor állítsd be. A conventions a gen_ai.operation.name, gen_ai.provider.name, gen_ai.request.model attribútumot és a szervercímet (ügynök-spanoknál a gen_ai.agent.name-et is) említi olyanként, amelynek létrehozáskor rendelkezésre KELL állnia, mert egy head sampler nem látja a később hozzáadottakat.",{"type":177,"level":178,"id":136,"text":137},{"type":161,"content":335},[336],"A spanek futásonkénti részletet adnak, a metrikák olcsó, hosszú életű trendeket. A conventions kategóriánként (input, output, cache read, cache write, reasoning) definiál token usage számlálókat, modalitás szerint bontva, és a fogyasztás elsődleges műszereinek, illetve a költség közelítésének nevezi őket. Mellettük hisztogramok vannak a műveletenkénti token-eloszlásra, p95 és p99 kiugrók keresésére szánva, és kifejezetten nem összegekre vagy költségre. Az ügynökökhöz van hisztogram az invokáció időtartamára, az invokációnkénti inference-hívások és eszközhívások számára, valamint egy eszközvégrehajtási időtartam. Az utolsó kettőt tenném fel először a dashboardra: a ciklust megmutatják, mielőtt a számla megtenné.",{"type":161,"content":338},[339,340,343,344,348],"Figyelj a számtanra. Az input token-szám a cache-elt tokeneket is TARTALMAZZA, a cache read, cache write és reasoning számok pedig az input és output összegek részhalmazai. Ha külön tételként összeadod őket, duplán számolsz. A conventions emellett ",{"tag":183,"children":341},[342],"nem definiál ár- vagy költségattribútumot",", a költséget tehát te számolod: a token-kategóriák szorozva egy válaszmodell szerinti árlistával, a backendben vagy egy pipeline-lépésben, és verziózd az árlistát. Hogy mit tegyél, ha már látod a számokat, azt az ",{"tag":171,"to":345,"children":346},"\u002Fblog\u002Fllm-cost-latency-prompt-caching-routing",[347],"LLM költség, késleltetés és prompt caching cikk"," tárgyalja.",{"type":161,"content":350},[351],"A metrika-dimenziók maradjanak alacsony kardinalitásúak: modell, provider, ügynöknév, művelet, kimenet. A felhasználó- vagy beszélgetésazonosító spanre való, nem metrikára, különben a metrikaszámlád a felhasználóbázissal együtt nő.",{"type":177,"level":178,"id":139,"text":140},{"type":161,"content":354},[355,356,359,360,363],"Az ügynök-trace-ek nagyobbak a szokásos webes trace-eknél, tartalomrögzítéssel pedig sokkal nagyobbak lehetnek. Mintavételezni fogsz. Az OpenTelemetry megkülönbözti a ",{"tag":183,"children":357},[358],"head samplinget"," (a döntés a trace elején születik, például trace-azonosító szerinti fix százalék) és a ",{"tag":183,"children":361},[362],"tail samplinget"," (a döntés azután születik, hogy az összes vagy a legtöbb span ismert, így a hibás vagy nagy késleltetésű trace-eket mindig megtarthatod). A dokumentáció őszinte a költségről: a tail sampling nehezebben valósítható meg és üzemeltethető, és a döntést hozó komponensnek állapottartónak kell lennie.",{"type":161,"content":365},[366],"Ügynökökhöz egy egyszerű szabályrendszert használnék, a százalékokat pedig kiindulópontnak tekinteném, amit finomhangolni kell:",{"type":368,"ordered":369,"items":370},"list",false,[371,376,380,384,389],[372,375],{"tag":183,"children":373},[374],"100%-ot tarts meg"," a hibás, időtúllépéses, emberi átadással végződő vagy felhasználói panasszal jelzett futásokból.",[377,379],{"tag":183,"children":378},[374]," a költségben, időtartamban vagy modellhívás-számban a megszokott fölött messze járó futásokból. Ezek a ciklusaid.",[381,383],{"tag":183,"children":382},[374]," a megbukott evalú futásokból és a canary release futásaiból.",[385,388],{"tag":183,"children":386},[387],"Egy kis részt mintavételezz",", mondjuk 5-10 százalékot, a többiből, hogy legyen reprezentatív alapvonalad.",[390,393],{"tag":183,"children":391},[392],"Ne mintavételezett trace-ekből számolj arányokat."," Az arányokat és riasztásokat metrikákból (a fent említett időtartam-, token- és eszközhívás-műszerekből) számold, ne a mintavételezett trace-ek számolásából.",{"type":161,"content":395},[396],"Két ügynök-specifikus csapda. Egy futás percekig tarthat, ezért a tail samplernek elég sokáig kell várnia a döntéssel, és közben a futás minden spanjét memóriában kell tartania. Az eval pontszám pedig általában azután érkezik, hogy a trace lezárult és exportálódott, így nem tudja irányítani a tail döntést, hacsak nem inline értékelsz. Ha azt akarod, hogy a megbukott evalok túléljék a mintavételezést, vagy futtass minden futásra egy olcsó inline ellenőrzést, vagy csatold később a pontszámot, és gondoskodj róla, hogy a megjelölt futások kimintázott trace-e még elérhető legyen.",{"type":177,"level":178,"id":142,"text":143},{"type":161,"content":399},[400],"A promptok, az eszköz-argumentumok és az eszközeredmények azt tartalmazzák, amit a felhasználóid és a rendszereid: neveket, e-mail-címeket, rendelésszámokat, szerződésszövegeket, néha titkokat. A conventions egyértelműen állást foglal. Az utasítások, bemenetek és kimenetek érzékenynek és gyakran nagynak számítanak, ezért az instrumentációk alapból NEM rögzíthetik őket, és opt-int kell kínálniuk. Három mintát írnak le: semmit sem rögzíteni (ez az alapértelmezés), a tartalmat span-attribútumokban rögzíteni, vagy a tartalmat külön tárolni, és a spanekre csak hivatkozást tenni. Ez utóbbi az ajánlott minta élesben, mert a külső tárnak saját hozzáférés-szabályozása van.",{"type":161,"content":402},[403],"Ebből gyakorlati felállás következik:",{"type":368,"ordered":369,"items":405},[406,411,416,421,426],[407,410],{"tag":183,"children":408},[409],"Éles alapértelmezés:"," csak metaadat. Modell, tokenek, finish reason, eszköznevek, hibatípusok, azonosítók. Meglepően sok hibakeresés megoldható ezzel.",[412,415],{"tag":183,"children":413},[414],"Élesítés előtt és tesztekben:"," teljes tartalom a spanekre, mert nincs valódi személyes adat, és maximális átláthatóságot akarsz.",[417,420],{"tag":183,"children":418},[419],"Tartalom élesben:"," csak a külső tárolós mintán át, egy mintavételezett vagy megjelölt részhalmazra, rövid megőrzéssel és csak azoknak elérhetően, akiknek kell. A conventions megengedi a folyamaton belüli hookot, amely rögzítés előtt módosíthatja vagy kitakarhatja a tartalmat, és ez a hook a sampling-döntéstől függetlenül lefut.",[422,425],{"tag":183,"children":423},[424],"Exportálás előtt takarj ki",", ne a backendben. A telemetria-pipeline egy feldolgozó lépése vagy egy folyamaton belüli hook eltávolíthat mintákat, például e-mail-címeket és kártyaszámokat. Ne a szolgáltatóra bízd, miután az adat elhagyta a hálózatodat.",[427,430],{"tag":183,"children":428},[429],"Használj pszeudonim azonosítókat"," a felhasználókhoz és beszélgetésekhez, soha nyers e-mail-címet vagy nevet, hogy meg tudj találni egy futást anélkül, hogy a trace személyes adatok nyilvántartásává válna.",{"type":161,"content":432},[433,434,438],"Az eszköz-argumentumok külön figyelmet érdemelnek, mert gyakran a futás leginkább azonosító része, és könnyű megfeledkezni róluk. Ha a trace-eid elhagyják az EU-t, vagy egy amerikai szolgáltatóhoz kerülnek, ugyanazok a szabályok érvényesek, mint magára a modell-API-ra, lásd a ",{"tag":171,"to":435,"children":436},"\u002Fblog\u002Fgdpr-llm-api-eu-data-residency",[437],"GDPR és az LLM API-k"," cikket. A trace-ekben lévő prompt-tartalom emellett prompt injection forrás is: egy megbízhatatlan modellkimenetet megjelenítő trace-néző célpont, ez is ok a szoros hozzáférés-szabályozásra.",{"type":177,"level":178,"id":145,"text":146},{"type":161,"content":441},[442,443,446],"A trace megmondja, mi történt, az eval megmondja, hogy jó volt-e. Együtt a leghasznosabbak. A conventions definiál egy ",{"tag":183,"children":444},[445],"gen_ai.evaluation.result"," eseményt az értékelés nevével, pontszámmal, olvasható címkével, magyarázattal és a válaszazonosítóval, és azt mondja, hogy az értékelt GenAI-művelet span alá KELL tartoznia, vagy ha nincs span, a válaszazonosítót kell hordoznia. Egy utólag futó LLM-bíró vagy szabályalapú ellenőrzés így közvetlenül az értékelt csomópontra írhatja az ítéletét.",{"type":161,"content":448},[449,450,453,454,457,458,461,462,466],"Három módon használom ezt az összekötést. ",{"tag":183,"children":451},[452],"Offline:"," az eval-adathalmazt ugyanazon az instrumentált ügynökön futtatom, a trace-eket futás- vagy release-azonosítóval (saját attribútum) címkézem, és egy helyen hasonlítom össze a költséget, a lépésszámot és a pontszámot release-enként. ",{"tag":183,"children":455},[456],"Online:"," az éles futások egy mintáját pontozom, és riasztok az eső sikerességi arányra, a megbukott trace-ekkel egy kattintásra. ",{"tag":183,"children":459},[460],"Visszacsatolás:"," ha egy éles trace megbukik, a bemenetét (és az elvárt viselkedést) átmásolom a tesztkészletbe, ehhez rögzített tartalom kell, ezért a megjelölt futásokra a külső tárolós mintát használom. Magukat az evalokat az ",{"tag":171,"to":463,"children":464},"\u002Fblog\u002Fllm-evals-for-product-features",[465],"LLM eval termékfunkciókhoz"," cikk tárgyalja.",{"type":177,"level":178,"id":148,"text":149},{"type":161,"content":469},[470],"Az OTLP szép tulajdonsága, hogy a backend választása a végére marad. Amit a szolgáltatók saját dokumentációjában ellenőriztem:",{"type":272,"head":472,"rows":479},[473,475,477],[474],"Eszköz",[476],"Hogyan fogad OpenTelemetryt",[478],"Jó tudni",[480,487,494,501],[481,483,485],[482],"Langfuse",[484],"OTLP-végpont a \u002Fapi\u002Fpublic\u002Fotel címen basic authtal, HTTP\u002FJSON és HTTP\u002Fprotobuf, gRPC nincs. Leképezi a gen_ai attribútumokat, az OpenInference-et és a saját langfuse attribútumait",[486],"LLM-specifikus funkciók a tetejére (prompt-kapcsolás, scoring, költségkövetés), saját szerveren futtatható. A repó MIT licencű, kivéve az ee könyvtárakat, amelyek külön licenc alatt vannak",[488,490,492],[489],"Arize Phoenix",[491],"OpenTelemetryre épül, az OpenInference konvenciókat használja, amelyek az OTel-t egészítik ki, helyi kollektor a \u002Fv1\u002Ftraces címen",[493],"Nyílt forráskódú és saját üzemeltetésű, Elastic License 2.0 alatt. Az Arize AX a menedzselt változat, erős kísérletekhez és evalokhoz",[495,497,499],[496],"Datadog LLM Observability",[498],"OTLP HTTP\u002Fprotobuf felett dd-api-key fejléccel, az OpenTelemetry 1.37 vagy újabb gen_ai alakot várja",[500],"A gen_ai attribútum nélküli spanokat eldobja, a dokumentáció szerint néhány percbe telik, mire a trace-ek megjelennek. A legjobb, ha már Datadogon vagy",[502,504,506],[503],"Honeycomb",[505],"OTLP gRPC, HTTP\u002Fprotobuf és HTTP\u002FJSON felett, API-kulcs fejléccel és EU-végponttal",[507],"Általános trace-backend: az általam olvasott ingest-dokumentáció nem említ GenAI-specifikusat, a nézeteket magad építed",{"type":161,"content":509},[510],"Az ajánlásom: instrumentálj OpenTelemetryvel és egy saját vékony segédréteggel, exportálj egy általad irányított pipeline-lépésen át, például egy OpenTelemetry Collectoron (kézenfekvő hely a kitakarásnak, a samplingnek és a költség-dúsításnak), a backendet pedig a hosztolási modell és az alapján válaszd, mit üzemeltet már a csapatod. Ha az adatrezidencia számít, egy saját üzemeltetésű Langfuse vagy Phoenix védhető meg a legkönnyebben. Ha már fizetsz egy általános observability platformért, nézd meg, mennyire jól jeleníti meg a gen_ai spanokat, mielőtt újabb eszközt adsz hozzá. Más szolgáltatókat, például a Grafana-stacket, nem ellenőriztem, és szándékosan kihagyom.",{"type":177,"level":178,"id":151,"text":152},{"type":161,"content":513},[514],"Ebben a sorrendben haladnék:",{"type":368,"ordered":516,"items":517},true,[518,520,522,524,526,528,530,532,534],[519],"Válaszd ki az OTLP-backendet, és tegyél közé egy általad irányított pipeline-lépést. A kitakarást és a samplinget ott végezd.",[521],"Telepítsd az instrumentációt a providerhez vagy a frameworkhöz, rögzítsd a verzióját, és vess össze egy valódi exportált spant a conventions-szel (az OTEL_SEMCONV_STABILITY_OPT_IN változóval együtt).",[523],"Adj futásonként egy invoke_agent gyökér-spant, a saját eszközeidhez pedig kézi execute_tool spanokat.",[525],"Minden modell-spanen állítsd be a modellt, a providert, a token-használatot, a finish reasont és a hibatípust, és add hozzá az ügynökverziót, a release-t és egy pszeudonim beszélgetésazonosítót.",[527],"Élesben kapcsold ki a tartalomrögzítést, élesítés előtt kapcsold be. Döntsd el a külső tárolós utat a megjelölt futásokra.",[529],"Építs három dashboardot: modell- és eszközhívások futásonként (p50, p95), tokenek és számolt költség ügynökverziónként, hiba- és időtúllépési arány eszközönként.",[531],"Add hozzá a sampling-szabályt: minden hiba, kiugró érték és megbukott eval, a többiből egy kis rész.",[533],"Írd az eval-eredményeket gen_ai.evaluation.result eseményként az értékelt spanekre, és táplálj vissza megbukott trace-eket a tesztkészletbe.",[535],"Adj hozzá egy golden-file tesztet, amely elbukik, ha az instrumentáció kimenetének alakja megváltozik.",{"type":161,"content":537},[538,539,543],"Ha harness-szel dolgozol, ugyanez az instrumentáció ott is megtérül, lásd a ",{"tag":171,"to":540,"children":541},"\u002Fblog\u002Fharness-engineering-coding-agents",[542],"harness engineering kódoló ügynököknek"," cikket.",{"type":177,"level":178,"id":154,"text":155},{"type":161,"content":546},[547],"Ne építs mély, egyedi analitikát egy Development státuszú szabvány pontos attribútumneveire. A fogalmakra építs: spanek fája token-számokkal, kimenetekkel és pontszámokkal, a fogalom és az attribútumnév közötti leképezést pedig tartsd egy helyen. A conventions tovább fog mozogni, a backendek pedig felzárkóznak. Az a csapat, amely minden futást trace-el, és meg tudja válaszolni, hogy „mit csinált ez a futás és mibe került”, előrébb jár annál, amely arra vár, hogy a szabvány megszilárduljon.",{"type":177,"level":178,"id":157,"text":158},{"type":368,"ordered":516,"items":550},[551,555,558,561,564,567,570,573,576,579,582,585,588,591,594,597,600],[552],{"tag":553,"href":37,"children":554},"a",[36],[556],{"tag":553,"href":40,"children":557},[39],[559],{"tag":553,"href":43,"children":560},[42],[562],{"tag":553,"href":46,"children":563},[45],[565],{"tag":553,"href":49,"children":566},[48],[568],{"tag":553,"href":52,"children":569},[51],[571],{"tag":553,"href":55,"children":572},[54],[574],{"tag":553,"href":58,"children":575},[57],[577],{"tag":553,"href":61,"children":578},[60],[580],{"tag":553,"href":64,"children":581},[63],[583],{"tag":553,"href":67,"children":584},[66],[586],{"tag":553,"href":70,"children":587},[69],[589],{"tag":553,"href":73,"children":590},[72],[592],{"tag":553,"href":76,"children":593},[75],[595],{"tag":553,"href":79,"children":596},[78],[598],{"tag":553,"href":82,"children":599},[81],[601],{"tag":553,"href":85,"children":602},[84],[604,705,760,814],{"slug":605,"published":5,"minutes":6,"category":7,"tags":606,"keywords":611,"about":622,"sources":632,"cover":699,"og":700,"expertise":88,"locales":701,"lang":92,"title":702,"description":703,"coverAlt":704},"fine-tuning-vs-rag-vs-prompting",[607,608,609,610],"Fine-tuning","RAG","Prompting","Distillation",[612,613,614,615,616,617,618,619,620,621],"fine-tuning vs RAG","prompting vs RAG vs fine-tuning","when to fine-tune an LLM","RAG or fine-tuning","SFT vs DPO vs RFT","reinforcement fine-tuning","LLM distillation","OpenAI fine-tuning shutdown","fine-tuning decision tree","fine-tune for knowledge",[623,626,629],{"name":624,"url":625},"Fine-tuning (deep learning)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FFine-tuning_(deep_learning)",{"name":627,"url":628},"Retrieval-augmented generation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRetrieval-augmented_generation",{"name":630,"url":631},"Knowledge distillation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKnowledge_distillation",[633,636,639,642,645,648,651,654,657,660,663,666,669,672,675,678,681,684,687,690,693,696],{"title":634,"url":635},"OpenAI community: OpenAI self-serve fine-tuning availability (wind-down announcement)","https:\u002F\u002Fcommunity.openai.com\u002Ft\u002Fopenai-s-self-serve-fine-tuning-availability\u002F1380481",{"title":637,"url":638},"Tessl: OpenAI is shutting down self-serve fine-tuning","https:\u002F\u002Ftessl.io\u002Fblog\u002Fopenai-shutting-fine-tuning-signals-for-enterprise-ai",{"title":640,"url":641},"OpenAI API docs: Model optimization","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fmodel-optimization",{"title":643,"url":644},"OpenAI API docs: Supervised fine-tuning","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fsupervised-fine-tuning",{"title":646,"url":647},"OpenAI API docs: Direct preference optimization","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Fdirect-preference-optimization",{"title":649,"url":650},"OpenAI API docs: Reinforcement fine-tuning","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Freinforcement-fine-tuning",{"title":652,"url":653},"OpenAI API docs: Fine-tuning best practices","https:\u002F\u002Fdevelopers.openai.com\u002Fapi\u002Fdocs\u002Fguides\u002Ffine-tuning-best-practices",{"title":655,"url":656},"OpenAI Cookbook: Choosing between SFT, DPO and RFT","https:\u002F\u002Fdevelopers.openai.com\u002Fcookbook\u002Fexamples\u002Ffine_tuning_direct_preference_optimization_guide",{"title":658,"url":659},"Google Cloud: Introduction to tuning (Gemini)","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Fmodels\u002Ftune-models",{"title":661,"url":662},"Google Cloud: About supervised fine-tuning for Gemini models","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Fmodels\u002Fgemini-supervised-tuning",{"title":664,"url":665},"Google Cloud: About preference tuning for Gemini models","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Fmodels\u002Fgemini-preference-tuning",{"title":667,"url":668},"Google Cloud: Reward functions for reinforcement learning fine-tuning","https:\u002F\u002Fdocs.cloud.google.com\u002Fgemini-enterprise-agent-platform\u002Fmodels\u002Ftuning\u002Freinforcement-tuning\u002Freinforcement-tuning-job\u002Freward-functions",{"title":670,"url":671},"Google Cloud: Supervised and distillation fine-tuning for open models","https:\u002F\u002Fdocs.cloud.google.com\u002Fvertex-ai\u002Fgenerative-ai\u002Fdocs\u002Fmodels\u002Fopen-model-tuning",{"title":673,"url":674},"AWS: Fine-tuning for Claude 3 Haiku in Amazon Bedrock is now generally available","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Faws\u002Ffine-tuning-for-anthropics-claude-3-haiku-model-in-amazon-bedrock-is-now-generally-available\u002F",{"title":676,"url":677},"AWS: Amazon Bedrock now supports reinforcement fine-tuning","https:\u002F\u002Faws.amazon.com\u002Fabout-aws\u002Fwhats-new\u002F2025\u002F12\u002Fbedrock-reinforcement-fine-tuning-66-base-models",{"title":679,"url":680},"AWS: Amazon Bedrock Model Distillation (preview announcement)","https:\u002F\u002Faws.amazon.com\u002Fblogs\u002Faws\u002Fbuild-faster-more-cost-efficient-highly-accurate-models-with-amazon-bedrock-model-distillation-preview\u002F",{"title":682,"url":683},"AWS: Bedrock reinforcement fine-tuning adds open-weight models","https:\u002F\u002Faws.amazon.com\u002Fabout-aws\u002Fwhats-new\u002F2026\u002F02\u002Famazon-bedrock-reinforcement-fine-tuning-openai",{"title":685,"url":686},"Microsoft Foundry blog: What is new in Foundry fine-tuning, April 2026","https:\u002F\u002Fdevblogs.microsoft.com\u002Ffoundry\u002Fwhats-new-in-foundry-finetune-april-2026\u002F",{"title":688,"url":689},"Microsoft: Announcing new fine-tuning models and techniques in Azure AI Foundry","https:\u002F\u002Fazure.microsoft.com\u002Fen-us\u002Fblog\u002Fannouncing-new-fine-tuning-models-and-techniques-in-azure-ai-foundry\u002F",{"title":691,"url":692},"Ovadia et al.: Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs","https:\u002F\u002Farxiv.org\u002Fabs\u002F2312.05934",{"title":694,"url":695},"Gekhman et al.: Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations?","https:\u002F\u002Farxiv.org\u002Fabs\u002F2405.05904",{"title":697,"url":698},"Hu et al.: LoRA: Low-Rank Adaptation of Large Language Models","https:\u002F\u002Farxiv.org\u002Fabs\u002F2106.09685","\u002Fimages\u002Fblog\u002Ffine-tuning-vs-rag-vs-prompting\u002Fcover.webp","\u002Fimages\u002Fblog\u002Ffine-tuning-vs-rag-vs-prompting\u002Fog.jpg",[90,91,92],"Prompting vs RAG vs fine-tuning vs distillation: döntési útmutató 2026-ra","Fine-tuning vs RAG vs prompting: mit változtat meg mindegyik (tudás, viselkedés, formátum), mennyibe kerül, ki kínál 2026-ban SFT-t, DPO-t és RFT-t, plusz döntési fa.","Ábra: döntési folyamat a letesztelt promptól a hiányzó tényekhez használt retrievalig, a viselkedést javító felügyelt fine-tuningig és a költségcsökkentő, kisebb modellbe történő distillationig.",{"slug":706,"published":707,"updated":5,"minutes":708,"category":7,"tags":709,"keywords":714,"about":725,"sources":735,"cover":754,"og":755,"expertise":88,"locales":756,"lang":92,"title":757,"description":758,"coverAlt":759},"artificial-analysis-leaderboard-claude-opus-5-5","2026-09-28",8,[710,711,712,713],"Claude Opus 5.5","Artificial Analysis","LLM benchmarks","LLM cost",[715,716,710,717,718,719,720,721,722,723,724],"Claude Opus 5.5 benchmark","Claude Opus 5.5 pricing","Artificial Analysis Intelligence Index","AI model leaderboard","Opus 5.5 benchmark","Opus 5.5 vs GPT-6 Astra","LLM cost per task","reasoning effort setting","Opus 5.5 pricing","best LLM September 2026",[726,729,732],{"name":727,"url":728},"Claude (language model)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FClaude_(language_model)",{"name":730,"url":731},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",{"name":733,"url":734},"Benchmark (computing)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBenchmark_(computing)",[736,739,742,745,748,751],{"title":737,"url":738},"Artificial Analysis: Claude Opus 5.5 takes the top spot on the Artificial Analysis Intelligence Index (22 September 2026)","https:\u002F\u002Fartificialanalysis.ai\u002Farticles\u002Fclaude-opus-5-5",{"title":740,"url":741},"Artificial Analysis: Claude Opus 5.5 (max) model page","https:\u002F\u002Fartificialanalysis.ai\u002Fmodels\u002Fclaude-opus-5-5",{"title":743,"url":744},"Artificial Analysis: Claude Opus 5.5 (medium) model page","https:\u002F\u002Fartificialanalysis.ai\u002Fmodels\u002Fclaude-opus-5-5-medium",{"title":746,"url":747},"Artificial Analysis: Claude Opus 5 (max) model page","https:\u002F\u002Fartificialanalysis.ai\u002Fmodels\u002Fclaude-opus-5",{"title":749,"url":750},"OfficeChai: Claude Opus 5.5 creates a 5-point lead over GPT-6 Astra","https:\u002F\u002Fofficechai.com\u002Fai\u002Fclaude-opus-5-5-creates-5-point-lead-over-gpt-6-astra-jumps-to-top-spot-on-artificial-analysis-intelligence-index\u002F",{"title":752,"url":753},"Claude API docs: Models overview, context windows and prices (as of September 2026)","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fmodels\u002Foverview","\u002Fimages\u002Fblog\u002Fartificial-analysis-leaderboard-claude-opus-5-5\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fartificial-analysis-leaderboard-claude-opus-5-5\u002Fog.jpg",[90,91,92],"Claude Opus 5.5 az Artificial Analysis élén, de az igazi hír a medium effort","A Claude Opus 5.5 az 1. a 211 modellből az Artificial Analysisnél, 58 ponttal. Medium efforttal hozza az Opus 5 szintjét, 1,34 $ helyett 5,86 $ feladatonként.","Vízszintes sávok az Intelligence Index pontszámaival: Claude Opus 5.5 max effort mellett 58, GPT-6 Astra és Claude Fable 5.1 53, Opus 5 51, Opus 5.5 medium effort mellett 51",{"slug":761,"published":762,"minutes":763,"category":7,"tags":764,"keywords":770,"about":780,"sources":789,"cover":808,"og":809,"expertise":88,"locales":810,"lang":92,"title":811,"description":812,"coverAlt":813},"jev-typed-decisions-llm-routing","2026-09-27",10,[765,766,767,768,769],"LLM routing","Classification","Calibration","OpenRouter","Human in the loop",[771,772,773,774,775,776,777,778,779],"llm routing","llm classification","calibrated confidence llm","typed llm output","jev model","openrouter decisions api","ai triage of code review findings","how to route low-confidence llm answers to a human","llm classifier vs structured output",[781,784,787],{"name":782,"url":783},"Calibration (statistics)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCalibration_(statistics)",{"name":785,"url":786},"Statistical classification","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FStatistical_classification",{"name":768,"url":788},"https:\u002F\u002Fopenrouter.ai\u002F",[790,793,796,799,802,805],{"title":791,"url":792},"OpenRouter: Jev documentation","https:\u002F\u002Fopenrouter.ai\u002Fdocs\u002Fguides\u002Fcommunity\u002Fjev",{"title":794,"url":795},"OpenRouter: What is Jev?","https:\u002F\u002Fopenrouter.ai\u002Fblog\u002Finsights\u002Fwhat-is-jev\u002F",{"title":797,"url":798},"OpenRouter: How to use Jev","https:\u002F\u002Fopenrouter.ai\u002Fblog\u002Ftutorials\u002Fhow-to-use-jev\u002F",{"title":800,"url":801},"Guo et al.: On Calibration of Modern Neural Networks","https:\u002F\u002Farxiv.org\u002Fabs\u002F1706.04599",{"title":803,"url":804},"Claude API: Structured outputs","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fstructured-outputs",{"title":806,"url":807},"AI SDK: Generating structured data","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-core\u002Fgenerating-structured-data","\u002Fimages\u002Fblog\u002Fjev-typed-decisions-llm-routing\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fjev-typed-decisions-llm-routing\u002Fog.jpg",[90,91,92],"Tipizált döntések LLM routingra és triázsra: kalibrált konfidencia Jevvel","Tipizált döntések az LLM routingban: Choice, Score és igen-valószínűség válaszok kalibrált konfidenciával, küszöbökkel és átadással embernek, Jevvel.","Kiszélesítési diagram: egy diff hunk state-ként egy Choice, egy Score és egy Noul kérdést táplál egyetlen decisions hívásban",{"slug":815,"published":762,"minutes":708,"category":7,"tags":816,"keywords":821,"about":828,"sources":833,"cover":852,"og":853,"expertise":88,"locales":854,"lang":92,"title":855,"description":856,"coverAlt":857},"llm-evals-for-product-features",[817,818,819,820],"LLM evals","LLM-as-judge","Error analysis","CI",[817,822,818,823,824,825,826,827],"AI evals","eval-driven development","pass^k vs pass@k","agent evaluation harness","regression eval suite","error analysis LLM",[829,830],{"name":730,"url":731},{"name":831,"url":832},"Software testing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_testing",[834,837,840,843,846,849],{"title":835,"url":836},"Anthropic: Demystifying evals for AI agents (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fdemystifying-evals-for-ai-agents",{"title":838,"url":839},"Hamel Husain: LLM evals FAQ (updated September 2026)","https:\u002F\u002Fhamel.dev\u002Fblog\u002Fposts\u002Fevals-faq\u002F",{"title":841,"url":842},"Shankar et al., Who Validates the Validators? (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2404.12272",{"title":844,"url":845},"Zheng et al., Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.05685",{"title":847,"url":848},"Yao et al., tau-bench: A Benchmark for Tool-Agent-User Interaction (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.12045",{"title":850,"url":851},"Anthropic: Quantifying infrastructure noise in agentic coding evals (2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Finfrastructure-noise","\u002Fimages\u002Fblog\u002Fllm-evals-for-product-features\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-evals-for-product-features\u002Fog.jpg",[90,91,92],"LLM evals termékfunkciókhoz: a valódi trace-ektől a CI kapuig","Az LLM evals teszthalmazzá alakítja a benyomást: hibaelemzés valódi trace-eken, grader választás, validált LLM-as-judge, pass^k és CI kapu.","Pipeline valódi trace-ektől a nyílt kódoláson és a megszámolt hibaforma-taxonómián át a graderekig, a validált judge-ig és a CI kapuig",1791009036576]