[{"data":1,"prerenderedAt":790},["ShallowReactive",2],{"blog-evaluating-ai-agents-trajectories-de":3},{"slug":4,"published":5,"minutes":6,"category":7,"tags":8,"keywords":14,"about":27,"sources":37,"cover":59,"og":60,"expertise":61,"locales":62,"lang":64,"title":66,"description":67,"coverAlt":68,"metaTitle":69,"takeaways":70,"faq":76,"toc":92,"blocks":126,"others":532},"evaluating-ai-agents-trajectories","2026-10-16",9,"llmops",[9,10,11,12,13],"Agent evals","Trajectories","Tool calling","pass^k","LLM-as-judge",[15,16,17,18,19,20,21,22,23,24,25,26],"evaluating AI agents","agent trajectory evaluation","agent evals","tool call accuracy","trajectory match evaluator","pass^k metric","tau-bench","LLM as a judge for agents","agent regression testing","outcome vs trajectory evaluation","agentevals","tool correctness metric",[28,31,34],{"name":29,"url":30},"Intelligent agent","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIntelligent_agent",{"name":32,"url":33},"Software testing","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_testing",{"name":35,"url":36},"Large language model","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FLarge_language_model",[38,41,44,47,50,53,56],{"title":39,"url":40},"Anthropic: Demystifying evals for AI agents (Jan 2026)","https:\u002F\u002Fwww.anthropic.com\u002Fengineering\u002Fdemystifying-evals-for-ai-agents",{"title":42,"url":43},"Yao et al.: τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2406.12045",{"title":45,"url":46},"Barres et al.: τ²-Bench: Evaluating Conversational Agents in a Dual-Control Environment (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2506.07982",{"title":48,"url":49},"LangChain: agentevals (GitHub)","https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Fagentevals",{"title":51,"url":52},"DeepEval docs: Tool Correctness","https:\u002F\u002Fdeepeval.com\u002Fdocs\u002Fmetrics-tool-correctness",{"title":54,"url":55},"Ragas docs: Agentic or tool use metrics","https:\u002F\u002Fdocs.ragas.io\u002Fen\u002Fstable\u002Fconcepts\u002Fmetrics\u002Favailable_metrics\u002Fagents\u002F",{"title":57,"url":58},"OpenAI API docs: Trace grading","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Ftrace-grading","\u002Fimages\u002Fblog\u002Fevaluating-ai-agents-trajectories\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fevaluating-ai-agents-trajectories\u002Fog.jpg","ai-engineer",[63,64,65],"en","de","hu","KI-Agenten evaluieren: Trajektorien, Ergebnisse und Zuverlässigkeit bewerten","KI-Agenten evaluieren: Ergebnis- und Trajektorie-Grader, Match-Modi, pass^k, isolierte Umgebungen und LLM-Judges, die belastbar sind.","Eine Agenten-Trajektorie aus Tool-Aufrufen wird zweimal bewertet: ein Trajektorie-Grader prüft Reihenfolge und Argumente, ein Ergebnis-Grader vergleicht die Datenbank mit dem Zielzustand.","KI-Agenten evaluieren: Trajektorie, Ergebnis · Balázs Csorba",[71,72,73,74,75],"Bewerte das Ergebnis gegen den Zustand der Umgebung; die finale Nachricht des Agenten ist das schwächste Erfolgssignal.","Nutze Trajektorien-Prüfungen für Invarianten, die auf jedem Pfad gelten müssen, und verlange keinen exakten Pfad, weil Agenten gültige Alternativen finden.","agentevals bietet strict, unordered, subset und superset als Trajektorien-Matching plus Argumentregeln pro Tool; DeepEval und Ragas decken Ähnliches ab.","pass^k, die Wahrscheinlichkeit, dass alle k Trials gelingen, zeigt Unzuverlässigkeit, die pass@k verbirgt; bei 75 % pro Trial liegt drei von drei bei etwa 42 %.","Starte jeden Trial in einer sauberen Umgebung, kalibriere LLM-Judges gegen Menschen und baue Tasks aus 20 bis 50 echten Fehlern.",[77,80,83,86,89],{"q":78,"a":79},"Was ist Trajektorien-Evaluierung bei KI-Agenten?","Trajektorien-Evaluierung bewertet die Schritte, die ein Agent gegangen ist: welche Tools er aufgerufen hat, in welcher Reihenfolge und mit welchen Argumenten. Sie ergänzt die Ergebnisbewertung, die den Endzustand der Umgebung prüft, etwa ob ein Erstattungsdatensatz existiert. Trajektorien eignen sich vor allem für Regeln, die auf jedem Pfad gelten müssen.",{"q":81,"a":82},"Was ist der Unterschied zwischen pass@k und pass^k?","pass@k ist die Wahrscheinlichkeit, dass mindestens einer von k Versuchen gelingt; sie steigt mit k. pass^k ist die Wahrscheinlichkeit, dass alle k Versuche gelingen; sie sinkt. Coding-Agenten können pass@k nutzen, weil ein funktionierender Patch reicht; kundennahe Agenten sollten an pass^k gemessen werden, weil jeder Kunde genau einen Versuch bekommt.",{"q":84,"a":85},"Sollte ein Agenten-Eval eine exakte Folge von Tool-Aufrufen verlangen?","Nur dort, wo die Reihenfolge die Regel ist, etwa Kundenverifizierung vor einer Erstattung. Sonst lockerere Modi wie superset oder subset nutzen oder das Ergebnis bewerten. Anthropic berichtet von einem Fall, in dem ein Modell einen Eval wie geschrieben verfehlte, weil es eine Lücke in der Richtlinie fand, die dem Nutzer ein besseres Ergebnis brachte.",{"q":87,"a":88},"Wie viele Tasks brauche ich für den Start?","Anthropic nennt 20 bis 50 einfache Tasks aus echten Fehlern als guten Anfang, weil frühe Änderungen große Effekte haben, die kleine Stichproben erkennen. Führe jeden Task mehrfach aus und erweitere die Suite, wenn der Agent reifer wird.",{"q":90,"a":91},"Kann ich ein LLM als Judge für Agenten-Transkripte nutzen?","Ja, für Qualitäten, die Code nicht prüfen kann, etwa ob eine Rückfrage sinnvoll war. Nutze einen Rubrikpunkt pro Dimension, gib dem Judge eine Option Unknown, vergib Teilpunkte bei mehrstufigen Tasks und kalibriere ihn an einer Stichprobe gegen menschliche Bewertungen.",[93,96,99,102,105,108,111,114,117,120,123],{"id":94,"title":95},"outcome-vs-trajectory","Ergebnis und Trajektorie: die zwei Dinge, die du bewertest",{"id":97,"title":98},"three-kinds-of-graders","Code-, Modell- und menschliche Grader",{"id":100,"title":101},"trajectory-matching","Trajektorien-Matching: strict, unordered, subset, superset",{"id":103,"title":104},"grade-outcomes-not-paths","Zuerst Ergebnisse bewerten, Pfade nur für Invarianten",{"id":106,"title":107},"pass-at-k-vs-pass-hat-k","pass@k und pass^k: ein Trial ist keine Messung",{"id":109,"title":110},"isolated-environments","Isolierte Umgebungen, sonst lügt der Eval",{"id":112,"title":113},"llm-judges-for-trajectories","LLM-Judges für Trajektorien",{"id":115,"title":116},"capability-and-regression-suites","Capability-Suites, Regression-Suites und woher Tasks kommen",{"id":118,"title":119},"tooling","Tooling: wo Traces und Grader leben",{"id":121,"title":122},"checklist","Checkliste",{"id":124,"title":125},"sources","Quellen",[127,140,149,152,174,177,186,187,190,227,230,231,243,276,299,301,330,331,334,341,343,351,352,362,369,372,373,376,400,401,408,430,431,442,450,457,458,476,477,496,508,509],{"type":128,"content":129},"paragraph",[130,131,135,136,139],"Ein Agent, der \"Ihre Erstattung wurde bearbeitet\" schreibt, und ein Agent, der die Erstattung tatsächlich bearbeitet hat, sehen im Chatverlauf identisch aus. Agenten zu evaluieren heißt, über die letzte Nachricht hinauszuschauen: auf das ",{"tag":132,"children":133},"strong",[134],"Ergebnis"," (was sich in der Welt verändert hat) und auf die ",{"tag":132,"children":137},[138],"Trajektorie"," (welche Tools in welcher Reihenfolge mit welchen Argumenten aufgerufen wurden). Wer nur den finalen Text bewertet, baut Agenten, die Evals bestehen und Kunden enttäuschen.",{"type":128,"content":141},[142,143,148],"Dieser Artikel ist die agentenspezifische Fortsetzung von ",{"tag":144,"to":145,"children":146},"link","\u002Fblog\u002Fllm-evals-for-product-features",[147],"LLM-Evals für Produktfeatures",". Er behandelt das Vokabular, die drei Arten von Gradern, Trajektorien-Matching mit agentevals, DeepEval und Ragas, warum pass^k für kundennahe Agenten wichtiger ist als pass@1 und wie du verhinderst, dass die Eval-Umgebung dich belügt.",{"type":150,"level":151,"id":94,"text":95},"heading",2,{"type":128,"content":153},[154,155,158,159,162,163,166,167,170,171,173],"Anthropics Leitfaden vom Januar 2026 liefert ein Vokabular, das sich zu übernehmen lohnt. Ein ",{"tag":132,"children":156},[157],"Task"," ist ein Testfall mit Eingaben und Erfolgskriterien; jeder Versuch ist ein ",{"tag":132,"children":160},[161],"Trial",". Ein ",{"tag":132,"children":164},[165],"Grader"," bewertet einen Aspekt eines Trials. Das ",{"tag":132,"children":168},[169],"Transkript"," (auch Trace oder Trajektorie) ist die vollständige Aufzeichnung: Ausgaben, Tool-Aufrufe, Reasoning, Zwischenergebnisse. Das ",{"tag":132,"children":172},[134]," (Outcome) ist der Endzustand der Umgebung. Das Beispiel dort: Ein Flugbuchungsagent schreibt vielleicht \"Ihr Flug ist gebucht\", aber das Ergebnis ist, ob in der Datenbank eine Reservierung existiert.",{"type":128,"content":175},[176],"τ-bench, einer der Referenz-Benchmarks für Agenten, bewertet genau so: Er vergleicht den Datenbankzustand am Ende einer Konversation mit einem annotierten Zielzustand. Das ist die stärkste Einzelprüfung, die du bauen kannst, weil sie sich nicht dafür interessiert, was der Agent gesagt hat, sondern nur dafür, was er getan hat.",{"type":178,"attrs":179,"inner":183,"caption":184},"diagram",{"viewBox":180,"role":181,"aria-labelledby":182},"0 0 720 300","img","tr-graders-t tr-graders-d","\u003Ctitle id=\"tr-graders-t\">Trajektorie-Grader und Ergebnis-Grader\u003C\u002Ftitle>\u003Cdesc id=\"tr-graders-d\">Ein Trial läuft vom Task über eine Folge von Tool-Aufrufen bis zur finalen Nachricht. Trajektorie-Grader lesen die Folge der Tool-Aufrufe und Argumente. Ergebnis-Grader ignorieren die Konversation und vergleichen den Zustand der Umgebung am Ende mit dem Zielzustand. Die finale Nachricht allein ist das schwächste Signal.\u003C\u002Fdesc>\u003Cdefs>\u003Cmarker id=\"ah-traj\" 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=\"10\" y=\"120\" width=\"132\" height=\"60\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"76\" y=\"146\" text-anchor=\"middle\" class=\"d-text\">Task\u003C\u002Ftext>\u003Ctext x=\"76\" y=\"166\" text-anchor=\"middle\" class=\"d-small\">Nutzeranfrage\u003C\u002Ftext>\u003Crect x=\"152\" y=\"120\" width=\"132\" height=\"60\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"218\" y=\"146\" text-anchor=\"middle\" class=\"d-text\">Tool-Aufruf 1\u003C\u002Ftext>\u003Ctext x=\"218\" y=\"166\" text-anchor=\"middle\" class=\"d-small\">lookup_order\u003C\u002Ftext>\u003Crect x=\"294\" y=\"120\" width=\"132\" height=\"60\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"360\" y=\"146\" text-anchor=\"middle\" class=\"d-text\">Tool-Aufruf 2\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"166\" text-anchor=\"middle\" class=\"d-small\">verify_customer\u003C\u002Ftext>\u003Crect x=\"436\" y=\"120\" width=\"132\" height=\"60\" rx=\"10\" class=\"d-sky\" \u002F>\u003Ctext x=\"502\" y=\"146\" text-anchor=\"middle\" class=\"d-text\">Tool-Aufruf 3\u003C\u002Ftext>\u003Ctext x=\"502\" y=\"166\" text-anchor=\"middle\" class=\"d-small\">issue_refund\u003C\u002Ftext>\u003Crect x=\"578\" y=\"120\" width=\"132\" height=\"60\" rx=\"10\" class=\"d-fill-muted\" \u002F>\u003Ctext x=\"644\" y=\"146\" text-anchor=\"middle\" class=\"d-text\">Antwort\u003C\u002Ftext>\u003Ctext x=\"644\" y=\"166\" text-anchor=\"middle\" class=\"d-small\">\"erstattet\"\u003C\u002Ftext>\u003Cpath d=\"M142 150H160\" class=\"d-line\" marker-end=\"url(#ah-traj)\" \u002F>\u003Cpath d=\"M284 150H302\" class=\"d-line\" marker-end=\"url(#ah-traj)\" \u002F>\u003Cpath d=\"M426 150H444\" class=\"d-line\" marker-end=\"url(#ah-traj)\" \u002F>\u003Cpath d=\"M568 150H586\" class=\"d-line\" marker-end=\"url(#ah-traj)\" \u002F>\u003Crect x=\"152\" y=\"20\" width=\"416\" height=\"56\" rx=\"10\" class=\"d-gold\" \u002F>\u003Ctext x=\"360\" y=\"44\" text-anchor=\"middle\" class=\"d-text\">Trajektorie-Grader\u003C\u002Ftext>\u003Ctext x=\"360\" y=\"64\" text-anchor=\"middle\" class=\"d-small\">Reihenfolge, Argumente\u003C\u002Ftext>\u003Cpath d=\"M218 118V78\" class=\"d-line d-dash\" marker-end=\"url(#ah-traj)\" \u002F>\u003Cpath d=\"M360 118V78\" class=\"d-line d-dash\" marker-end=\"url(#ah-traj)\" \u002F>\u003Cpath d=\"M502 118V78\" class=\"d-line d-dash\" marker-end=\"url(#ah-traj)\" \u002F>\u003Crect x=\"294\" y=\"230\" width=\"274\" height=\"56\" rx=\"10\" class=\"d-box\" \u002F>\u003Ctext x=\"431\" y=\"254\" text-anchor=\"middle\" class=\"d-text\">Umgebung\u003C\u002Ftext>\u003Ctext x=\"431\" y=\"274\" text-anchor=\"middle\" class=\"d-small\">Tabellen orders, refunds\u003C\u002Ftext>\u003Cpath d=\"M502 180V228\" class=\"d-line-accent\" marker-end=\"url(#ah-traj)\" \u002F>\u003Crect x=\"20\" y=\"230\" width=\"230\" height=\"56\" rx=\"10\" class=\"d-mint\" \u002F>\u003Ctext x=\"135\" y=\"254\" text-anchor=\"middle\" class=\"d-text\">Ergebnis-Grader\u003C\u002Ftext>\u003Ctext x=\"135\" y=\"274\" text-anchor=\"middle\" class=\"d-small\">DB-Zustand = Ziel\u003C\u002Ftext>\u003Cpath d=\"M294 258H252\" class=\"d-line-accent\" marker-end=\"url(#ah-traj)\" \u002F>",[185],"Bewerte die Trajektorie auf Regeln, die unterwegs gelten müssen, und das Ergebnis auf das, was sich tatsächlich geändert hat. Die finale Nachricht ist das unzuverlässigste der drei Signale.",{"type":150,"level":151,"id":97,"text":98},{"type":128,"content":188},[189],"Jeder Grader betrachtet entweder das Transkript oder das Ergebnis. Anthropics Leitfaden teilt sie in drei Familien, und ein guter Agenten-Eval mischt alle drei:",{"type":191,"head":192,"rows":200},"table",[193,194,196,198],[165],[195],"Typische Prüfungen",[197],"Stärken",[199],"Schwächen",[201,211,219],[202,205,207,209],[203,204],"tag","children",[206],"Ergebnisprüfung, genutzte Tool-Aufrufe und Parameter, Anzahl der Turns, Token-Verbrauch, String- und Regex-Matches, Tests",[208],"Schnell, günstig, objektiv, reproduzierbar",[210],"Spröde bei gültigen Varianten; wenig Nuance",[212,213,215,217],[203,204],[214],"Rubrik-Bewertung, Aussagen in natürlicher Sprache, Paarvergleich, referenzbasierte Bewertung",[216],"Flexibel, kommt mit offener Ausgabe zurecht",[218],"Nicht deterministisch, teurer, muss gegen Menschen kalibriert werden",[220,221,223,225],[203,204],[222],"Expertenreview, Stichproben, A\u002FB-Tests",[224],"Goldstandard, entspricht Expertenurteil",[226],"Langsam und teuer; zur Kalibrierung der anderen nutzen",{"type":128,"content":228},[229],"Scores lassen sich als gewichtete Summe gegen einen Schwellenwert, binär (alle müssen bestehen) oder hybrid kombinieren. Mein Standard für Business-Agenten: binär bei sicherheitsrelevanten Code-Prüfungen (nie eine Erstattung ohne Verifizierung), gewichtet bei allem anderen.",{"type":150,"level":151,"id":100,"text":101},{"type":128,"content":232},[233,234,237,238,242],"Wenn du eine Referenz-Trajektorie hast, ist die Frage, wie genau der Agent ihr folgen muss. LangChains Open-Source-Paket ",{"tag":235,"href":49,"children":236},"a",[25]," benennt die vier sinnvollen Antworten als Werte von ",{"tag":239,"children":240},"code",[241],"trajectory_match_mode",":",{"type":191,"head":244,"rows":251},[245,247,249],[246],"Modus",[248],"Besteht, wenn",[250],"Geeignet für",[252,258,264,270],[253,254,256],[203,204],[255],"Gleiche Nachrichten, gleiche Reihenfolge, gleiche Tool-Aufrufe (Nachrichtentext darf abweichen)",[257],"Abläufe, bei denen die Reihenfolge die Regel ist: erst verifizieren, dann erstatten",[259,260,262],[203,204],[261],"Gleiche Tool-Aufrufe in beliebiger Reihenfolge",[263],"Informationsbeschaffung, bei der jede Quelle konsultiert werden muss",[265,266,268],[203,204],[267],"Der Agent hat keine Tools über die Referenz hinaus aufgerufen",[269],"Schutz vor zusätzlichen, teuren oder riskanten Aufrufen",[271,272,274],[203,204],[273],"Der Agent hat mindestens die Referenz-Tools aufgerufen",[275],"Pflichtschritte, zusätzliche Abfragen erlaubt",{"type":128,"content":277},[278,279,282,283,286,287,290,291,294,295,298],"Argumente werden separat abgeglichen. Standardmäßig verlangt agentevals identische Argumente; ",{"tag":239,"children":280},[281],"tool_args_match_mode"," lässt sich auf ",{"tag":239,"children":284},[285],"ignore",", ",{"tag":239,"children":288},[289],"subset"," oder ",{"tag":239,"children":292},[293],"superset"," setzen, und ",{"tag":239,"children":296},[297],"tool_args_match_overrides"," nimmt Regeln pro Tool an, auch eine eigene Vergleichsfunktion (etwa Städtenamen ohne Groß-\u002FKleinschreibung):",{"type":239,"code":300},"from agentevals.trajectory.match import create_trajectory_match_evaluator\n\n# Refund flow: the agent may look things up freely, but must make these calls.\nevaluator = create_trajectory_match_evaluator(\n    trajectory_match_mode=\"superset\",\n    tool_args_match_overrides={\n        \"issue_refund\": [\"order_id\"],          # only order_id must match exactly\n        \"lookup_order\": \"ignore\",              # any lookup arguments are fine\n    },\n)\nresult = evaluator(outputs=agent_messages, reference_outputs=reference_messages)\n# {'key': 'trajectory_superset_match', 'score': True, 'comment': None}",{"type":128,"content":302},[303,304,307,308,311,312,315,316,319,320,324,325,329],"Andere Frameworks decken dasselbe Feld mit anderen Namen ab. DeepEvals ",{"tag":239,"children":305},[306],"ToolCorrectnessMetric"," vergleicht erwartete und aufgerufene Tools, standardmäßig nach Namen, optional auch nach Eingabeparametern und Ausgabe, mit Schaltern für Reihenfolge und exakte Übereinstimmung. Ragas bietet ",{"tag":239,"children":309},[310],"ToolCallAccuracy"," (standardmäßig strikte Reihenfolge, mit flexiblem Modus), ",{"tag":239,"children":313},[314],"ToolCallF1"," für Precision und Recall über Aufrufe und ",{"tag":239,"children":317},[318],"AgentGoalAccuracy",", wenn nur das Ergebnis zählt. Nimm ein Framework pro Projekt; die Konzepte sind übertragbar. Meine Reviews zu ",{"tag":144,"to":321,"children":322},"\u002Ftools\u002Fdeepeval",[323],"DeepEval"," und ",{"tag":144,"to":326,"children":327},"\u002Ftools\u002Fragas",[328],"Ragas"," beschreiben die Abwägungen.",{"type":150,"level":151,"id":103,"text":104},{"type":128,"content":332},[333],"Bei Trajektorien ist die Versuchung groß, exakt den Pfad zu verlangen, den du selbst gewählt hättest. Anthropic rät davon ab: Agenten finden regelmäßig gültige Wege, die der Eval-Designer nicht vorhergesehen hat, daher sei es \"oft besser zu bewerten, was der Agent produziert hat, nicht den Weg, den er genommen hat\". Ihr eigenes Beispiel ist bemerkenswert. Opus 4.5 löste ein Flugbuchungsproblem aus τ²-bench, indem es eine Lücke in der Richtlinie fand; es \"fiel\" im Eval wie geschrieben durch und lieferte dem Nutzer trotzdem das bessere Ergebnis.",{"type":128,"content":335},[336,337,340],"Deshalb nutze ich Trajektorien-Prüfungen für ",{"tag":132,"children":338},[339],"Invarianten",", die wenigen Regeln, die auf jedem Pfad gelten müssen, und Ergebnisprüfungen für den Erfolg. Invarianten sind meist kurz und lassen sich leicht im Code ausdrücken:",{"type":239,"code":342},"def check_invariants(calls: list[dict]) -> list[str]:\n    \"\"\"calls: tool calls from the transcript, in order: {\"name\": ..., \"args\": {...}}\"\"\"\n    errors, verified = [], False\n    for c in calls:\n        if c[\"name\"] == \"verify_customer\":\n            verified = True\n        if c[\"name\"] == \"issue_refund\":\n            if not verified:\n                errors.append(\"refund before customer verification\")\n            if c[\"args\"][\"amount\"] > 500:\n                errors.append(\"refund above approval limit\")\n        if c[\"name\"] in {\"delete_account\", \"send_bulk_email\"}:\n            errors.append(f\"forbidden tool: {c['name']}\")\n    if len(calls) > 25:\n        errors.append(f\"{len(calls)} tool calls, budget is 25\")\n    return errors",{"type":128,"content":344},[345,346,350],"Das ist binär und günstig, läuft bei jedem Trial und bestraft keine kreativen Wege. Kombiniert mit der Ergebnisprüfung gegen die Datenbank erwischst du die zwei Fehler, die am meisten zählen: Der Agent hat das Falsche getan, oder er hat das Richtige auf verbotenem Weg getan. Welche Aktionen überhaupt ein menschliches Gate brauchen, beschreibt ",{"tag":144,"to":347,"children":348},"\u002Fblog\u002Fhuman-in-the-loop-ai-agents",[349],"Human in the Loop für KI-Agenten",".",{"type":150,"level":151,"id":106,"text":107},{"type":128,"content":353},[354,355,358,359,361],"Agenten sind nicht deterministisch; ein Task, der einmal besteht, kann beim nächsten Lauf scheitern. Zwei Metriken beschreiben das. ",{"tag":132,"children":356},[357],"pass@k"," ist die Wahrscheinlichkeit, dass mindestens einer von k Trials gelingt; sie steigt mit k. ",{"tag":132,"children":360},[12]," ist die Wahrscheinlichkeit, dass alle k Trials gelingen; sie sinkt mit k. Die Rechnung aus Anthropics Leitfaden: Ein Agent mit 75 % Erfolgsquote pro Trial besteht alle drei von drei Trials mit einer Wahrscheinlichkeit von 0,75³ ≈ 42 %.",{"type":178,"attrs":363,"inner":366,"caption":367},{"viewBox":364,"role":181,"aria-labelledby":365},"0 0 720 290","pk-chart-t pk-chart-d","\u003Ctitle id=\"pk-chart-t\">pass@k und pass^k bei 75 % Erfolgsquote pro Trial\u003C\u002Ftitle>\u003Cdesc id=\"pk-chart-d\">Balkendiagramm. Bei k gleich 1 liegen beide Metriken bei 75 Prozent. Bei k gleich 3 liegt pass@k bei 98 Prozent und pass^k bei 42 Prozent. Bei k gleich 10 liegt pass@k über 99,9 Prozent und pass^k bei 6 Prozent.\u003C\u002Fdesc>\u003Cpath d=\"M60 250H700\" class=\"d-line\" \u002F>\u003Crect x=\"110\" y=\"100\" width=\"56\" height=\"150\" class=\"d-fill-accent\" \u002F>\u003Crect x=\"174\" y=\"100\" width=\"56\" height=\"150\" class=\"d-fill-muted\" \u002F>\u003Ctext x=\"138\" y=\"92\" text-anchor=\"middle\" class=\"d-small\">75 %\u003C\u002Ftext>\u003Ctext x=\"202\" y=\"92\" text-anchor=\"middle\" class=\"d-small\">75 %\u003C\u002Ftext>\u003Ctext x=\"170\" y=\"274\" text-anchor=\"middle\" class=\"d-label\">k = 1\u003C\u002Ftext>\u003Crect x=\"310\" y=\"53\" width=\"56\" height=\"197\" class=\"d-fill-accent\" \u002F>\u003Crect x=\"374\" y=\"166\" width=\"56\" height=\"84\" class=\"d-fill-muted\" \u002F>\u003Ctext x=\"338\" y=\"45\" text-anchor=\"middle\" class=\"d-small\">98 %\u003C\u002Ftext>\u003Ctext x=\"402\" y=\"158\" text-anchor=\"middle\" class=\"d-small\">42 %\u003C\u002Ftext>\u003Ctext x=\"370\" y=\"274\" text-anchor=\"middle\" class=\"d-label\">k = 3\u003C\u002Ftext>\u003Crect x=\"510\" y=\"50\" width=\"56\" height=\"200\" class=\"d-fill-accent\" \u002F>\u003Crect x=\"574\" y=\"239\" width=\"56\" height=\"11\" class=\"d-fill-muted\" \u002F>\u003Ctext x=\"538\" y=\"42\" text-anchor=\"middle\" class=\"d-small\">>99,9 %\u003C\u002Ftext>\u003Ctext x=\"602\" y=\"231\" text-anchor=\"middle\" class=\"d-small\">6 %\u003C\u002Ftext>\u003Ctext x=\"570\" y=\"274\" text-anchor=\"middle\" class=\"d-label\">k = 10\u003C\u002Ftext>\u003Crect x=\"70\" y=\"8\" width=\"14\" height=\"14\" class=\"d-fill-accent\" \u002F>\u003Ctext x=\"92\" y=\"20\" text-anchor=\"start\" class=\"d-small\">pass@k (mindestens einer)\u003C\u002Ftext>\u003Crect x=\"70\" y=\"28\" width=\"14\" height=\"14\" class=\"d-fill-muted\" \u002F>\u003Ctext x=\"92\" y=\"40\" text-anchor=\"start\" class=\"d-small\">pass^k (alle)\u003C\u002Ftext>",[368],"Derselbe Agent wirkt unter pass@k fast perfekt und unter pass^k unzuverlässig. Kundennahe Agenten sollten am zweiten Wert gemessen werden.",{"type":128,"content":370},[371],"τ-bench hat pass^k genau wegen dieser Lücke eingeführt. Im Paper von 2024 lösten selbst moderne Function-Calling-Agenten wie gpt-4o weniger als die Hälfte der Tasks, und pass^8 lag in der Retail-Domäne unter 25 %. Ein Coding-Agent kann mit pass@k leben, weil ein funktionierender Patch reicht. Ein Support-Agent kann das nicht: Jeder Kunde bekommt genau einen Trial. Führe jeden Task mindestens drei- bis fünfmal aus und berichte beide Zahlen.",{"type":150,"level":151,"id":109,"text":110},{"type":128,"content":374},[375],"Ergebnisbewertung braucht eine echte Umgebung: eine befüllte Datenbank, eine Sandbox für Datei- und Shell-Tools, gemockte externe APIs. Anthropic betont, dass jeder Trial in einem sauberen Zustand starten muss, weil geteilter Zustand korrelierte Fehler verursacht und Scores aufblähen kann. Ihr Beispiel: In internen Evals verschaffte sich Claude bei manchen Tasks einen unfairen Vorteil, indem es die git-Historie früherer Trials las.",{"type":377,"ordered":378,"items":379},"list",false,[380,385,390,395],[381,384],{"tag":132,"children":382},[383],"Seed pro Trial."," Datenbank aus einer Fixture hochfahren, laufen lassen, gegen den Zielzustand diffen, wegwerfen.",[386,389],{"tag":132,"children":387},[388],"Zeit und Zufall einfrieren,"," wo Tools davon abhängen (\"Bestellungen der letzten Woche\").",[391,394],{"tag":132,"children":392},[393],"Die Außenwelt deterministisch mocken,"," die Fehlerantworten aber realistisch halten: Timeouts, 429er und Validierungsfehler gehören zu dem, was du testest.",[396,399],{"tag":132,"children":397},[398],"Den Harness identisch zur Produktion halten:"," gleicher System-Prompt, gleiche Tool-Beschreibungen, gleiche Limits. Anthropics Punkt: Du evaluierst Modell und Harness zusammen.",{"type":150,"level":151,"id":112,"text":113},{"type":128,"content":402},[403,404,407],"Manche Qualitäten kann im großen Maßstab nur ein Modell bewerten: Hat der Agent eine sinnvolle Rückfrage gestellt, hat er die Ablehnung höflich erklärt, war der Plan vernünftig. agentevals liefert ",{"tag":239,"children":405},[406],"create_trajectory_llm_as_judge"," mit einem Standard-Prompt für Trajektorien-Genauigkeit; die meisten Eval-Frameworks haben ein Pendant. Die Regeln dafür sind dieselben wie für jeden Judge, nur strenger, weil Transkripte lang sind:",{"type":377,"ordered":378,"items":409},[410,415,420,425],[411,414],{"tag":132,"children":412},[413],"Ein Rubrikpunkt pro Dimension,"," jeweils mit konkreter Beschreibung von Bestehen und Scheitern.",[416,419],{"tag":132,"children":417},[418],"Gib dem Judge einen Ausweg."," Anthropic empfiehlt eine explizite Antwort \"Unknown\", wenn dem Transkript die Information fehlt, damit der Judge nicht rät.",[421,424],{"tag":132,"children":422},[423],"Teilpunkte bei mehrstufigen Tasks vergeben."," Ein Support-Agent, der das Problem erkannt und den Kunden verifiziert, aber die Erstattung verfehlt hat, ist besser als einer, der sofort scheitert, und deine Scores sollten das zeigen.",[426,429],{"tag":132,"children":427},[428],"Gegen Menschen kalibrieren,"," an einer Stichprobe, bevor du dem Judge vertraust, und erneut prüfen, wenn du das Judge-Modell wechselst.",{"type":150,"level":151,"id":115,"text":116},{"type":128,"content":432},[433,434,437,438,441],"Anthropic unterscheidet zwei Arten von Suites. ",{"tag":132,"children":435},[436],"Capability-Evals"," fragen, was der Agent kann, und sollten mit niedriger Bestehensquote starten, damit du etwas zu erklimmen hast. ",{"tag":132,"children":439},[440],"Regression-Evals"," fragen, ob er noch kann, was er konnte, und sollten nahe 100 % liegen. Werden Capability-Tasks zuverlässig, wandern sie in die Regression-Suite. Nähert sich eine Capability-Suite 100 %, sagt sie nichts mehr aus; ihr Beispiel ist SWE-bench Verified, wo die Scores bei etwa 30 % begannen und Frontier-Modelle inzwischen über 80 % liegen.",{"type":128,"content":443},[444,445,449],"Woher Tasks kommen, zählt mehr als ihre Anzahl. Anthropic rät, früh mit 20 bis 50 einfachen Tasks aus echten Fehlern zu starten, weil frühe Änderungen große Effekte haben und kleine Stichproben sie erkennen. Meine Quellen, nach Wert sortiert: Produktions-Traces, bei denen etwas schiefging (aus deiner ",{"tag":144,"to":446,"children":447},"\u002Fblog\u002Fagent-observability-opentelemetry",[448],"Observability-Pipeline","), die manuellen Prüfungen, die du vor einem Release ohnehin machst, und Support-Tickets. Synthetische Tasks füllen Lücken; sie sollten nicht die Basis sein.",{"type":451,"variant":452,"title":453,"body":454},"callout","tip","Lies die Transkripte",[455],[456],"Keine Metrik ersetzt das Lesen gescheiterter Trials. Anthropic nennt es eine entscheidende Fähigkeit: Ein gescheitertes Transkript zeigt dir, ob der Agent wirklich einen Fehler gemacht oder dein Grader eine gültige Lösung abgelehnt hat. Plane eine Stunde pro Woche dafür ein und repariere Grader so oft wie Prompts.",{"type":150,"level":151,"id":118,"text":119},{"type":128,"content":459},[460,461,465,466,470,471,475],"Du brauchst drei Dinge: eine Möglichkeit, vollständige Traces zu erfassen, einen Runner, der Tasks mehrfach gegen eine isolierte Umgebung ausführt, und einen Ort, an dem Bewertungen über die Zeit gespeichert werden. OpenAIs Plattform bietet Trace Grading, das Agenten-Traces im Dashboard bewertet und in Eval-Runs überführt. Open-Source-Frameworks (agentevals mit pytest- oder Vitest-Integration, DeepEval, Ragas, ",{"tag":144,"to":462,"children":463},"\u002Ftools\u002Fpromptfoo",[464],"Promptfoo",") laufen in der CI. Observability-Plattformen wie ",{"tag":144,"to":467,"children":468},"\u002Ftools\u002Flangfuse",[469],"Langfuse"," verbinden Produktions-Traces mit Datasets. Die Wahl zählt weniger als die Gewohnheit: Jede Agentenänderung durchläuft die Regression-Suite, bevor sie ausgeliefert wird, und die Budgets der ",{"tag":144,"to":472,"children":473},"\u002Fblog\u002Fagent-loop-explained",[474],"Agentenschleife"," gehören zu dem, was du prüfst.",{"type":150,"level":151,"id":121,"text":122},{"type":377,"ordered":478,"items":479},true,[480,482,484,486,488,490,492,494],[481],"Das Ergebnis gegen den Zustand der Umgebung bewerten, nicht gegen die finale Nachricht.",[483],"Die wenigen zwingenden Regeln als Code-Invarianten über die Trajektorie ausdrücken.",[485],"Referenz-Trajektorien mit dem lockersten Match-Modus nutzen, der den Fehler noch fängt (superset oder subset vor strict).",[487],"Jeden Task drei- bis fünfmal ausführen; pass@1 und pass^k berichten.",[489],"Jeden Trial in einer sauberen, befüllten Umgebung starten, die der Produktion entspricht.",[491],"LLM-Judges mit einem Rubrikpunkt pro Dimension, einer Option Unknown und Teilpunkten nutzen, gegen Menschen kalibriert.",[493],"Eine Capability-Suite und eine Regression-Suite pflegen; Tasks zwischen ihnen befördern.",[495],"Tasks aus echten Fehlern gewinnen und gescheiterte Transkripte jede Woche lesen.",{"type":128,"content":497},[498,499,503,504,350],"Für die Retrieval-Seite von Agenten, die Dokumente durchsuchen, beschreibt ",{"tag":144,"to":500,"children":501},"\u002Fblog\u002Frag-evaluation-metrics",[502],"RAG evaluieren"," die Metriken. Wenn du Unterstützung beim Aufbau von Agenten-Evals für dein Team willst, siehe ",{"tag":144,"to":505,"children":506},"\u002Fexpertise\u002Fai-engineer",[507],"AI Engineering",{"type":150,"level":151,"id":124,"text":125},{"type":377,"ordered":478,"items":510},[511,514,517,520,523,526,529],[512],{"tag":235,"href":40,"children":513},[39],[515],{"tag":235,"href":43,"children":516},[42],[518],{"tag":235,"href":46,"children":519},[45],[521],{"tag":235,"href":49,"children":522},[48],[524],{"tag":235,"href":52,"children":525},[51],[527],{"tag":235,"href":55,"children":528},[54],[530],{"tag":235,"href":58,"children":531},[57],[533,585,639,686],{"slug":534,"published":5,"minutes":6,"category":7,"tags":535,"keywords":541,"about":553,"sources":560,"cover":579,"og":580,"expertise":61,"locales":581,"lang":64,"title":582,"description":583,"coverAlt":584},"structured-outputs-json-schema-llm",[536,537,538,539,540],"Structured outputs","JSON Schema","Constrained decoding","LLM APIs","Validation",[542,543,544,545,546,547,548,549,550,551,552],"structured outputs LLM","JSON schema LLM output","OpenAI structured outputs strict mode","Claude structured outputs","Gemini structured output","constrained decoding","JSON mode vs structured outputs","validate LLM JSON output","Zod structured output","Pydantic LLM output","vLLM structured outputs",[554,557,559],{"name":555,"url":556},"JSON","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJSON",{"name":537,"url":558},"https:\u002F\u002Fjson-schema.org\u002F",{"name":35,"url":36},[561,564,567,570,573,576],{"title":562,"url":563},"OpenAI API docs: Structured model outputs","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fstructured-outputs",{"title":565,"url":566},"Claude API docs: Structured outputs","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fstructured-outputs",{"title":568,"url":569},"Gemini API docs: Structured outputs","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fstructured-output",{"title":571,"url":572},"vLLM docs: Structured Outputs","https:\u002F\u002Fdocs.vllm.ai\u002Fen\u002Flatest\u002Ffeatures\u002Fstructured_outputs.html",{"title":574,"url":575},"Tam et al.: Let Me Speak Freely? A Study on the Impact of Format Restrictions on Performance of LLMs (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2408.02442",{"title":577,"url":578},"Geng et al.: JSONSchemaBench: A Rigorous Benchmark of Structured Outputs for Language Models (2025)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2501.10868","\u002Fimages\u002Fblog\u002Fstructured-outputs-json-schema-llm\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fstructured-outputs-json-schema-llm\u002Fog.jpg",[63,64,65],"Structured Outputs mit JSON Schema: was die Garantie abdeckt und was nicht","Wie Structured Outputs und Constrained Decoding bei OpenAI, Claude, Gemini und vLLM funktionieren, welche Schemaregeln zählen und was du validierst.","Ein JSON Schema wird zu einer Grammatik kompiliert, die Tokens maskiert und schemagültiges JSON erzeugt, das danach eine fachliche Validierung durchläuft.",{"slug":586,"published":5,"minutes":587,"category":7,"tags":588,"keywords":594,"about":606,"sources":613,"cover":633,"og":634,"expertise":61,"locales":635,"lang":64,"title":636,"description":637,"coverAlt":638},"llm-model-migration-regression-testing",10,[589,590,591,592,593],"Model migration","Regression testing","Deprecations","LLM evals","Canary releases",[595,596,597,598,599,600,601,602,603,604,605],"LLM model migration","LLM regression testing","model deprecation OpenAI","Claude model deprecation","switch LLM model without breaking","LLM model upgrade checklist","prompt regression testing","shadow testing LLM","model retirement date","golden dataset LLM","LLM drift monitoring",[607,609,610],{"name":590,"url":608},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRegression_testing",{"name":35,"url":36},{"name":611,"url":612},"Feature toggle","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FFeature_toggle",[614,617,620,623,626,629,632],{"title":615,"url":616},"Claude API docs: Model deprecations","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fabout-claude\u002Fmodel-deprecations",{"title":618,"url":619},"OpenAI API docs: Deprecations","https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fdeprecations",{"title":621,"url":622},"Gemini API docs: Models and version name patterns","https:\u002F\u002Fai.google.dev\u002Fgemini-api\u002Fdocs\u002Fmodels",{"title":624,"url":625},"Claude API docs: Claude Opus 5.5 migration guide","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fmodels\u002Fopus-5-5\u002Fmigration-guide",{"title":627,"url":628},"Chen, Zaharia, Zou: How is ChatGPT's behavior changing over time? (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2307.09009",{"title":630,"url":631},"Sclar et al.: Quantifying Language Models' Sensitivity to Spurious Features in Prompt Design (2023)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2310.11324",{"title":39,"url":40},"\u002Fimages\u002Fblog\u002Fllm-model-migration-regression-testing\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fllm-model-migration-regression-testing\u002Fog.jpg",[63,64,65],"LLM-Modellmigration ohne Regressionen: Deprecations, Evals, Shadow-Traffic","Ein Playbook für den Wechsel von LLM-Modellen: Deprecation-Fristen, Vertragsfixes, Regression-Suite, Prompt-Tuning, Shadow-Traffic und Canary.","Fünf Migrationsstufen von Inventar und Vertragsanpassungen über Offline-Evals und Shadow-Traffic bis zu einem Canary-Rollout mit Rückweg.",{"slug":640,"published":5,"minutes":641,"category":7,"tags":642,"keywords":648,"about":659,"sources":667,"cover":680,"og":681,"expertise":61,"locales":682,"lang":64,"title":683,"description":684,"coverAlt":685},"semantic-caching-llm-responses",6,[643,644,645,646,647],"Semantic cache","LLM cost","Latency","Embeddings","Redis",[649,650,651,652,653,654,655,656,657,658],"semantic caching llm","semantic cache","llm response cache","gptcache","semantic cache similarity threshold","prompt caching vs semantic caching","reduce llm api cost","cache llm answers redis","semantic cache false positive","llm cache invalidation",[660,663,666],{"name":661,"url":662},"Cache (computing)","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCache_(computing)",{"name":664,"url":665},"Sentence embedding","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSentence_embedding",{"name":35,"url":36},[668,671,674,677],{"title":669,"url":670},"Regmi and Pun: GPT Semantic Cache: Reducing LLM Costs and Latency via Semantic Embedding Caching (2024)","https:\u002F\u002Farxiv.org\u002Fabs\u002F2411.05276",{"title":672,"url":673},"Zilliz: GPTCache README (modules, similarity evaluation, eviction)","https:\u002F\u002Fgithub.com\u002Fzilliztech\u002FGPTCache",{"title":675,"url":676},"Claude Platform Docs: Prompt caching","https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fbuild-with-claude\u002Fprompt-caching",{"title":678,"url":679},"pgvector README: vector types and indexes","https:\u002F\u002Fgithub.com\u002Fpgvector\u002Fpgvector","\u002Fimages\u002Fblog\u002Fsemantic-caching-llm-responses\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fsemantic-caching-llm-responses\u002Fog.jpg",[63,64,65],"Semantisches Caching für LLM-Apps: wann Antworten wiederverwenden sicher ist und wann nicht","Wie semantische Caches LLM-Antworten für ähnliche Fragen wiederverwenden, was sie vom Prompt-Caching trennt, wie man falsche Treffer und Lecks vermeidet.","Eine neue Frage wird eingebettet und mit gecachten Fragen verglichen; über einer Ähnlichkeitsschwelle kommt die gespeicherte Antwort, darunter wird das Modell aufgerufen.",{"slug":687,"published":688,"minutes":587,"category":7,"tags":689,"keywords":695,"about":704,"sources":714,"cover":784,"og":785,"expertise":61,"locales":786,"lang":64,"title":787,"description":788,"coverAlt":789},"self-hosted-llm-gdpr-cost","2026-10-09",[690,691,692,693,694],"Self-hosting","GDPR","vLLM","GPU cost","Open-weight models",[696,697,698,699,700,701,702,703],"self-hosted LLM GDPR","self-host LLM data protection","LLM GPU memory requirements","vLLM throughput benchmark","EU GPU cloud for LLMs","LLM API vs self-hosting break-even","open-weight LLM hardware cost","data processing agreement LLM",[705,708,709,712],{"name":706,"url":707},"General Data Protection Regulation","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",{"name":35,"url":36},{"name":710,"url":711},"Graphics processing unit","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGraphics_processing_unit",{"name":692,"url":713},"https:\u002F\u002Fgithub.com\u002Fvllm-project\u002Fvllm",[715,718,721,724,727,730,733,736,739,742,745,748,751,754,757,760,763,766,769,772,775,778,781],{"title":716,"url":717},"openai\u002Fgpt-oss-120b model card (Hugging Face)","https:\u002F\u002Fhuggingface.co\u002Fopenai\u002Fgpt-oss-120b",{"title":719,"url":720},"mistralai\u002FMistral-Small-3.2-24B-Instruct-2506 model card (Hugging Face)","https:\u002F\u002Fhuggingface.co\u002Fmistralai\u002FMistral-Small-3.2-24B-Instruct-2506",{"title":722,"url":723},"meta-llama\u002FLlama-3.3-70B-Instruct model card (Hugging Face)","https:\u002F\u002Fhuggingface.co\u002Fmeta-llama\u002FLlama-3.3-70B-Instruct",{"title":725,"url":726},"mistralai\u002FMistral-Large-3-675B-Instruct-2512 model card (Hugging Face)","https:\u002F\u002Fhuggingface.co\u002Fmistralai\u002FMistral-Large-3-675B-Instruct-2512",{"title":728,"url":729},"vLLM blog: v0.6.0 performance update (September 2024)","https:\u002F\u002Fblog.vllm.ai\u002F2024\u002F09\u002F05\u002Fperf-update.html",{"title":731,"url":732},"vLLM documentation: engine arguments","https:\u002F\u002Fdocs.vllm.ai\u002Fen\u002Flatest\u002Fconfiguration\u002Fengine_args.html",{"title":734,"url":735},"vLLM documentation: vllm bench serve","https:\u002F\u002Fdocs.vllm.ai\u002Fen\u002Flatest\u002Fcli\u002Fbench\u002Fserve.html",{"title":737,"url":738},"SemiAnalysis InferenceX: Llama 3.3 70B on H100 vs H200","https:\u002F\u002Finferencex.semianalysis.com\u002Fcompare\u002Fllama-3-3-70b-h100-vs-h200",{"title":740,"url":741},"Scaleway GPU instances pricing","https:\u002F\u002Fwww.scaleway.com\u002Fen\u002Fpricing\u002Fgpu\u002F",{"title":743,"url":744},"Scaleway blog: a transparent update on Scaleway pricing (27 April 2026)","https:\u002F\u002Fwww.scaleway.com\u002Fen\u002Fblog\u002Fa-transparent-update-on-scaleway-pricing\u002F",{"title":746,"url":747},"Scaleway Generative APIs pricing","https:\u002F\u002Fwww.scaleway.com\u002Fen\u002Fpricing\u002Fmodel-as-a-service\u002F",{"title":749,"url":750},"OVHcloud public cloud price list","https:\u002F\u002Fwww.ovhcloud.com\u002Fen\u002Fpublic-cloud\u002Fprices\u002F",{"title":752,"url":753},"OVHcloud AI Endpoints","https:\u002F\u002Fwww.ovhcloud.com\u002Fen\u002Fpublic-cloud\u002Fai-endpoints\u002F",{"title":755,"url":756},"OVHcloud AI Endpoints model catalogue","https:\u002F\u002Fwww.ovhcloud.com\u002Fen\u002Fpublic-cloud\u002Fai-endpoints\u002Fcatalog\u002F",{"title":758,"url":759},"Hetzner dedicated GPU servers","https:\u002F\u002Fwww.hetzner.com\u002Fdedicated-rootserver\u002Fmatrix-gpu\u002F",{"title":761,"url":762},"NVIDIA newsroom: GeForce RTX 50 Series launch","https:\u002F\u002Fnvidianews.nvidia.com\u002Fnews\u002Fnvidia-blackwell-geforce-rtx-50-series-opens-new-world-of-ai-computer-graphics",{"title":764,"url":765},"NVIDIA GeForce RTX 5090","https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fgeforce\u002Fgraphics-cards\u002F50-series\u002Frtx-5090\u002F",{"title":767,"url":768},"NVIDIA GeForce software licence","https:\u002F\u002Fwww.nvidia.com\u002Fen-us\u002Fdrivers\u002Fgeforce-license\u002F",{"title":770,"url":771},"GDPR Article 28: processor","https:\u002F\u002Fgdpr-info.eu\u002Fart-28-gdpr\u002F",{"title":773,"url":774},"GDPR Article 44: general principle for transfers","https:\u002F\u002Fgdpr-info.eu\u002Fart-44-gdpr\u002F",{"title":776,"url":777},"European Commission: EU-US data transfers (Data Privacy Framework)","https:\u002F\u002Fcommission.europa.eu\u002Flaw\u002Flaw-topic\u002Fdata-protection\u002Finternational-dimension-data-protection\u002Feu-us-data-transfers_en",{"title":779,"url":780},"EDPB Opinion 28\u002F2024 on AI models (adopted 17 December 2024)","https:\u002F\u002Fwww.edpb.europa.eu\u002Fsystem\u002Ffiles\u002F2024-12\u002Fedpb_opinion_202428_ai-models_en.pdf",{"title":782,"url":783},"Mistral AI pricing","https:\u002F\u002Fmistral.ai\u002Fpricing","\u002Fimages\u002Fblog\u002Fself-hosted-llm-gdpr-cost\u002Fcover.webp","\u002Fimages\u002Fblog\u002Fself-hosted-llm-gdpr-cost\u002Fog.jpg",[63,64,65],"LLMs selbst hosten für die DSGVO: wann es nötig ist und was es kostet","LLMs selbst hosten für die DSGVO: wann es nötig ist, GPU-Speicher für offene Modelle, EU-Preise Stand Oktober 2026 und Break-even pro Million Token.","Coverbild zu selbst gehosteten LLMs unter der DSGVO: die Wahl zwischen eigenen GPUs und einer EU-API, mit einer Break-even-Linie.",1792177149280]