{"id":69569,"date":"2026-10-29T13:52:50","date_gmt":"2026-10-29T12:52:50","guid":{"rendered":"https:\/\/www.inovex.de\/?p=69569"},"modified":"2026-11-03T09:31:36","modified_gmt":"2026-11-03T08:31:36","slug":"systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/","title":{"rendered":"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">Seit der Markteinf\u00fchrung von <a href=\"https:\/\/openai.com\/de-DE\/index\/chatgpt\/\">ChatGPT<\/a> im Jahr 2022 stehen universelle gro\u00dfe Sprachmodelle (LLMs) einer breiten Masse zur Verf\u00fcgung. Die Verarbeitung nat\u00fcrlicher Sprache ist damit nicht mehr nur Data Scientists und ML-Spezialisten vorbehalten. Dank ihrer F\u00e4higkeit, vielf\u00e4ltige Aufgaben direkt \u201eOut of the Box\u201c zu l\u00f6sen, entf\u00e4llt oft das aufwendige Training spezialisierter Modelle.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Da diese generativen KI-Modelle (GenAI) enorme Rechenkapazit\u00e4ten erfordern, \u00fcbersteigen sie oft die Grenzen klassischer Infrastrukturen. Aus diesem Grund werden sie prim\u00e4r in der Cloud betrieben und \u00fcber REST-Schnittstellen in bestehende Softwareanwendungen integriert.<\/span><!--more--><\/p>\n<p><span style=\"font-weight: 400;\">Daraus ergibt sich jedoch ein h\u00e4ufiger Trugschluss bei der Integration von GenAI: Die Generierung von Inhalten verl\u00e4uft weitaus unvorhersehbarer als bei traditioneller Software. Dadurch wird die \u00dcberpr\u00fcfbarkeit der gesamten Applikation &#8211; oder zumindest der durch LLMs gesteuerten Teilprozesse &#8211; inh\u00e4rent nicht deterministisch.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In der Praxis bedeutet das: Erste manuelle Testl\u00e4ufe m\u00f6gen exzellente Ergebnisse liefern. Doch bei einer gr\u00f6\u00dferen Anzahl an Nutzeranfragen kann ein Agent unerwartet fehlleiten, sich in endlosen Denkschleifen (<\/span><i><span style=\"font-weight: 400;\">Reasoning Loops<\/span><\/i><span style=\"font-weight: 400;\">) verfangen oder die Qualit\u00e4t eines RAG-Systems nach einer minimalen Prompt-Anpassung drastisch einbrechen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Data Science liefert bereits bew\u00e4hrte ML-Methoden zur statistischen Evaluation. Im Folgenden zeigen wir auf, wie sich diese Ans\u00e4tze erfolgreich auf das Zeitalter von GenAI \u00fcbertragen lassen.<\/span><\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_89 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#Anatomie-einer-AI-App-Input-Kontext-und-Parameter\" >Anatomie einer AI App: Input, Kontext und Parameter<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#Observability-Die-Signaltechnik-der-KI\" >Observability: Die Signaltechnik der KI<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#Tracing-mit-OpenTelemetry\" >Tracing mit OpenTelemetry<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#Distributed-Traces-als-Datenstruktur\" >Distributed Traces als Datenstruktur<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#Die-Teststrecke-Vom-Produktions-Trace-zum-strukturierten-Experiment\" >Die Teststrecke: Vom Produktions-Trace zum strukturierten Experiment<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#Das-Ende-des-Vibe-Checks-Warum-wir-experimentieren-muessen\" >Das Ende des Vibe-Checks: Warum wir experimentieren m\u00fcssen<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#Warum-wir-auch-im-Labor-tracen-muessen\" >Warum wir auch im Labor tracen m\u00fcssen<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#Ausblick-Der-TUeV-fuer-unsere-Modelle\" >Ausblick: Der T\u00dcV f\u00fcr unsere Modelle<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Anatomie-einer-AI-App-Input-Kontext-und-Parameter\"><\/span><strong>Anatomie einer AI App: Input, Kontext und Parameter<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Ob es sich bei der KI-basierten Anwendung, die wir entwickeln wollen, um einen autonomen Agenten, ein Retrieval-Augmented Generation (RAG) System oder um eine komplexe Prompt-Kette handelt, ist f\u00fcr unsere Betrachtung zun\u00e4chst zweitrangig. Im Kern l\u00e4sst sich jede dieser Applikationen auf ein grundlegendes Paradigma reduzieren: Ein System, das durch spezifische Stellschrauben (<\/span><i><span style=\"font-weight: 400;\">Parameter<\/span><\/i><span style=\"font-weight: 400;\">) definiert ist und Eingaben (<\/span><i><span style=\"font-weight: 400;\">Inputs<\/span><\/i><span style=\"font-weight: 400;\">) in Ausgaben (<\/span><i><span style=\"font-weight: 400;\">Outputs<\/span><\/i><span style=\"font-weight: 400;\">) \u00fcberf\u00fchrt.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Der entscheidende Unterschied zur klassischen Software liegt in der Beschaffenheit und Verarbeitung dieser Daten:<\/span><\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\n<li style=\"font-weight: 400;\"><b>Input Distribution:<\/b><span style=\"font-weight: 400;\"> Die Inputs stammen nicht aus einem \u00fcberschaubaren Set an Testf\u00e4llen, sondern aus einer breiten, schwer vorhersehbaren Verteilung realer, sprachlich hochvariabler Nutzeranfragen.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Dynamischer Kontext:<\/b><span style=\"font-weight: 400;\"> Zu diesem prim\u00e4ren Input gesellt sich fast immer ein dynamischer Kontext, wie etwa abgerufene Dokumente aus einer Vektordatenbank oder die bisherige Chat-Historie.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Parameter:<\/b><span style=\"font-weight: 400;\"> Wie und welcher Kontext herangezogen wird, diktieren die Parameter der Applikation. Dazu geh\u00f6ren architektonische Entscheidungen (Chunk-Gr\u00f6\u00dfe, Retrieval-Verfahren), Hyperparameter (Temperature), das Basis-Modell und nat\u00fcrlich der System-Prompt.<\/span><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">Wenn dieses Zusammenspiel auf probabilistische Sprachmodelle trifft, offenbart sich die geradezu chaotische Natur generativer KI: Diese Systeme verhalten sich hochgradig nicht-linear und sind extrem sensitiv gegen\u00fcber ihren Anfangsbedingungen. Schon minimale Abweichungen im Input oder im dynamisch geladenen Kontext k\u00f6nnen den Output drastisch ver\u00e4ndern.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Aus dieser hohen Sensitivit\u00e4t wird ersichtlich, dass stichprobenartiges \u00dcberpr\u00fcfen \u2013 analog zum <\/span><i><span style=\"font-weight: 400;\">Vibe Coding<\/span><\/i><span style=\"font-weight: 400;\"> auch als <\/span><i><span style=\"font-weight: 400;\">Vibe Checking<\/span><\/i><span style=\"font-weight: 400;\"> bezeichnet \u2013 nicht mehr ausreicht. Ein zukunftssicherer Entwicklungs-Workflow muss die kontinuierliche, statistische Evaluation von Tag eins an als integralen Bestandteil begreifen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Damit dieser Prozess bildlich anschaulich wird, greifen wir auf die Analogie des Baus einer Bahnverbindung zur\u00fcck. Der erste PoC unserer AI Application stellt dabei das eigentliche Schienensystem dar. Hier verl\u00e4uft der t\u00e4gliche Anwendungsverkehr: Die Eingaben der Benutzer:innen sind vergleichbar mit den verschiedenen Z\u00fcgen, die \u00fcber unsere Strecke rollen.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Observability-Die-Signaltechnik-der-KI\"><\/span><strong>Observability: Die Signaltechnik der KI<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Um ein System kontinuierlich evaluieren zu k\u00f6nnen, m\u00fcssen wir sein Verhalten zur Laufzeit erst transparent und messbar machen. Das Fundament daf\u00fcr bildet das Prinzip der Observability: Wie ver\u00e4ndern sich die Ausgaben des Systems in Abh\u00e4ngigkeit von den eingehenden Nutzeranfragen, dem geladenen Kontext und den gew\u00e4hlten Parametern?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Der operative Schalthebel hierf\u00fcr ist das Zusammenspiel aus Logging und Tracing. Klassisches Logging zeichnet lediglich punktuelle Ereignisse auf \u2013 das greift bei vielschichtigen KI-Architekturen zu kurz. <\/span><b>Tracing<\/b><span style=\"font-weight: 400;\"> hingegen macht den gesamten Ausf\u00fchrungspfad einer Anfrage transparent. Hier werden komplexe Prozesse in eine hierarchische Baumstruktur aus einzelnen Teilschritten (<\/span><i><span style=\"font-weight: 400;\">Spans<\/span><\/i><span style=\"font-weight: 400;\">) aufgeschl\u00fcsselt. Erst Tracing offenbart die exakten Ursache-Wirkungs-Zusammenh\u00e4nge, Latenzen und Kosten jeder einzelnen Entscheidung.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In der Analogie unseres Bahnprojektes ist neben dem Hauptgleis eine weitere Komponente unerl\u00e4sslich, um Katastrophen zu verhindern: die Signaltechnik. Sie macht den Verkehr messbar und verhindert Zusammenst\u00f6\u00dfe auf der Strecke \u2013 beziehungsweise Sicherheitsrisiken wie Halluzinationen, Data Leakage oder Prompt Injections, wie sie in den branchenweiten <a class=\"ng-star-inserted\" href=\"https:\/\/owasp.org\/www-project-top-10-for-large-language-model-applications\/\" target=\"_blank\" rel=\"noopener\">OWASP Top 10 for Large Language Model Applications<\/a> definiert sind.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Ohne Signaltechnik bekommt unsere Bahnstrecke vom Eisenbahn-Bundesamt (EBA) keine Zulassung. Bei AI Applications ist das nicht zwangsl\u00e4ufig der Fall. Erst wenn die Applikation unter <a href=\"https:\/\/artificialintelligenceact.eu\/de\/high-level-summary\/\">Stufe 3 (Hochrisikosystem) des EU AI Acts<\/a> f\u00e4llt, wird die Verwendung gewisser Observability-Mechanismen Pflicht. W\u00e4hrend das Regularium des EBA jedoch strikte Vorgaben enth\u00e4lt, ist der EU AI Act eher offen gehalten. Wie setzen wir diese Anforderungen also in der Praxis um?<\/span><\/p>\n<h3><span class=\"ez-toc-section\" id=\"Tracing-mit-OpenTelemetry\"><\/span><strong>Tracing mit <em>OpenTelemetry<\/em><\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Um die geforderte &#8222;Signaltechnik&#8220; f\u00fcr unsere Bahnstrecke zu etablieren und den Anforderungen von Regulierungsbeh\u00f6rden sowie internen Qualit\u00e4tsanspr\u00fcchen gerecht zu werden, m\u00fcssen wir entlang der Strecke Sensoren installieren. Diese Sensoren erfassen jede Zugbewegung, protokollieren Weichenstellungen und melden Auff\u00e4lligkeiten in Echtzeit an ein zentrales Stellwerk. \u00dcbertragen auf unsere KI-Architektur bedeutet das: Wir m\u00fcssen den Weg der Datenverarbeitung instrumentieren.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Technologisch greift man hierbei auf das Konzept des <\/span><b>Tracings<\/b><span style=\"font-weight: 400;\"> zur\u00fcck. Der etablierte De-facto-Standard hierf\u00fcr ist <\/span><a href=\"https:\/\/opentelemetry.io\/\"><b><em>OpenTelemetry<\/em> (OTel)<\/b><\/a><span style=\"font-weight: 400;\"> \u2013 ein quelloffenes, vendor-neutrales Framework der <a href=\"https:\/\/www.cncf.io\/\">Cloud Native Computing Foundation (CNCF)<\/a>. OTel definiert eine einheitliche Spezifikation, wie Telemetriedaten (Traces, Metrics, Logs) standardisiert generiert, gesammelt und exportiert werden, unabh\u00e4ngig von der verwendeten Programmiersprache oder dem finalen Analyse-Tool. Ein vollst\u00e4ndiger Durchlauf einer Nutzeranfrage \u2013 die gesamte Fahrt unseres Zuges vom Start- zum Zielbahnhof \u2013 wird in diesem Standard als <\/span><i><span style=\"font-weight: 400;\">Trace<\/span><\/i><span style=\"font-weight: 400;\"> bezeichnet. Dieser Trace setzt sich aus einzelnen <\/span><i><span style=\"font-weight: 400;\">Spans<\/span><\/i><span style=\"font-weight: 400;\"> zusammen, welche die isolierten Teilschritte und Knotenpunkte der Informationsverarbeitung repr\u00e4sentieren. Dabei geh\u00f6ren zu jedem <\/span><i><span style=\"font-weight: 400;\">Span<\/span><\/i><span style=\"font-weight: 400;\"> mehrere <\/span><i><span style=\"font-weight: 400;\">Attributes<\/span><\/i><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Betrachten wir dies an einem konkreten Beispiel: einer Retrieval-Augmented Generation (RAG) Pipeline. Ein Nutzer stellt eine Frage, das System sucht in einer Vektordatenbank nach relevantem Kontext und \u00fcbergibt diesen an das LLM, welches die finale Antwort generiert.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Um diesen Ausf\u00fchrungspfad transparent zu machen, instrumentieren wir den Code \u00fcber das OTel-SDK:<\/span><\/p>\n<pre class=\"lang:python decode:true\" title=\"Tracing RAG Beispiel\">from opentelemetry import trace\r\nfrom my_rag_functions import answer_query, get_embedding, retreive_docs\r\n\r\n# Initialize the TracerProvider\r\ntracer = trace.get_tracer(\"my_ai_app\")\r\n\r\n\r\n@tracer.start_as_current_span(\"retrieval H7STPQYOND\")\r\ndef retrieve_documents(query: str, n_docs: int = 10) -&gt; list[str]:\r\n    \"\"\"records a span for retrieval.\"\"\"\r\n    current_span = trace.get_current_span()\r\n\r\n    # set some span attributes\r\n    current_span.set_attribute(\"gen_ai.operation.name\", \"retieval\")\r\n    current_span.set_attribute(\"gen_ai.data_source.id\", \"H7STPQYOND\")\r\n    current_span.set_attribute(\"gen_ai.retreival.top_k\", n_docs)\r\n    current_span.set_attribute(\"gen_ai.retrieval.query.text\", query)\r\n\r\n    # perform the actual operation\r\n    query_embedding = get_embedding(query)\r\n    retrieved_docs = retreive_docs(query_embedding, n_docs=n_docs)\r\n\r\n    # Record the retreived docs\r\n    current_span.add_attribute(\"gen_ai.retrieval.documents\", retrieved_docs)\r\n    return retrieved_docs\r\n\r\n\r\n@tracer.start_as_current_span(\"text_completion gpt-6-astra\")\r\ndef generate_answer(query: str, context: list[str]) -&gt; str:\r\n    \"\"\"Record a span for generating a response based on the context docs.\"\"\"\r\n    current_span = trace.get_current_span()\r\n\r\n    # compile input prompt\r\n    input_message = f\"\"\"{query}\r\n    CONTEXT:\r\n    {\"\\n\\n\".join(context)}\r\n    \"\"\"\r\n\r\n    # set span attributes for the inputs\r\n    current_span.set_attributes(\r\n        {\r\n            \"gen_ai.operation.name\": \"text_completion\",\r\n            \"gen_ai.provider.name\": \"openai\",\r\n            \"gen_ai.request.model\": \"gpt-6-astra\",\r\n            \"gen_ai.request.temperature\": 0.7,\r\n            \"gen_ai.input.messages\": [input_message],\r\n        }\r\n    )\r\n\r\n    answer = answer_query(input_message)\r\n\r\n    # 2. set span attributes for outputs\r\n    current_span.set_attributes(\r\n        {\r\n            \"gen_ai.conversation.id\": answer.session_id,\r\n            \"gen_ai.usage\": {\r\n                \"input_tokens\": answer.input_tokens,\r\n                \"output_tokens\": answer.output_tokens,\r\n            },\r\n            \"gen_ai.output.messages\": answer.output_messages,\r\n        }\r\n    )\r\n    return answer\r\n\r\n\r\ndef rag_pipeline(query: str):\r\n    \"\"\"E2E Rag Pipeline.\"\"\"\r\n    with tracer.start_as_current_span(\"rag_pipeline\"):\r\n        # Step 1: Retrieval\r\n        docs = retrieve_documents(query)\r\n\r\n        # Step 2: Generation\r\n        answer = generate_answer(query, docs)\r\n\r\n        return answer\r\n<\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Distributed-Traces-als-Datenstruktur\"><\/span>Distributed Traces als Datenstruktur<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Moderne LLM-Observability-Frameworks (wie <a href=\"https:\/\/langfuse.com\/\"><em>Langfuse<\/em><\/a>,<a href=\"https:\/\/arize.com\/phoenix\/\"><em> Arize Phoenix<\/em><\/a>, <a href=\"https:\/\/mlflow.org\/\"><em>MLFlow<\/em><\/a> oder spezialisierte Integrationen von <a href=\"https:\/\/www.datadoghq.com\/\"><em>Datadog<\/em><\/a>, um nur ein paar zu nennen) setzen unter der Haube zunehmend exakt auf diesen OTel-Standard, integrieren jedoch entscheidende entwicklerergonomische Vereinfachungen. Statt Traces manuell zu \u00f6ffnen und Attribute einzeln zuzuweisen, gen\u00fcgen in diesen Frameworks oft simple Decorators, die den Boilerplate-Code auf ein Minimum reduzieren und Modellspezifika \u2013 wie Token-Nutzung oder den gew\u00e4hlten System-Prompt \u2013 automatisch erfassen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Doch wie gelangen diese lokalen Aufzeichnungen nun in das Dashboard der Entwickler? Hier entfaltet die standardisierte Architektur von OpenTelemetry ihre St\u00e4rke: Die durch die Code-Erweiterungen (Instrumentierung) generierten Metadaten werden nicht direkt in die Hauptanwendung geschrieben, sondern von einem sogenannten <\/span><b>Exporter<\/b><span style=\"font-weight: 400;\"> im Hintergrund (asynchron) gesendet. Dieser \u00fcbermittelt die Daten an einen <\/span><b>OTel Collector<\/b><span style=\"font-weight: 400;\"> \u2013 quasi das Stellwerk \u2013 welcher die Daten empf\u00e4ngt, filtert und an das gew\u00fcnschte Frontend weiterleitet. Dieses Frontend kann eine spezialisierte GenAI-Plattform, aber auch ein generalistisches Tool wie <a href=\"https:\/\/grafana.com\/\"><em>Grafana<\/em><\/a> sein. Wichtig dabei: Der eigentliche Ablauf der KI-Anwendung wird durch diesen asynchronen Versandprozess nicht verlangsamt.<\/span><\/p>\n<h4>Einheitliches Vokabular: Semantic Conventions<\/h4>\n<p><span style=\"font-weight: 400;\">Damit nicht nur der Transport, sondern auch die Inhalte der Daten hersteller\u00fcbergreifend verstanden werden, definiert die CNCF zus\u00e4tzlich sogenannte <\/span><a href=\"https:\/\/github.com\/open-telemetry\/semantic-conventions-genai\"><b>Semantic Conventions<\/b><\/a><span style=\"font-weight: 400;\"> (semantische Konventionen). Diese geben ein festes Vokabular f\u00fcr die Telemetriedaten vor. Im GenAI-Umfeld ist das essenziell: Wenn Tool A die Eingabe-Tokens <span class=\"lang:default decode:true crayon-inline \">prompt_tokens<\/span>\u00a0 und Tool B sie <span class=\"lang:default decode:true crayon-inline\">input_length<\/span>\u00a0nennt, wird eine zentrale Auswertung unm\u00f6glich. Die Semantic Conventions legen daher fest, dass dieser Wert branchenweit einheitlich beispielsweise unter dem Schl\u00fcssel <span class=\"lang:default decode:true crayon-inline\">genai.usage.input_tokens<\/span>\u00a0protokolliert wird.<\/span><\/p>\n<h4>Von der Blackbox zur auditierbaren Glassbox<\/h4>\n<p><span style=\"font-weight: 400;\">Was auf Code-Ebene nach einer technischen Pflichtaufgabe aussieht, liefert durch diese Standardisierung im Frontend eine immense Detailtiefe. Statt eines simplen &#8222;Status: OK&#8220; wird ein hierarchischer <\/span><i><span style=\"font-weight: 400;\">Trace Tree<\/span><\/i><span style=\"font-weight: 400;\"> visualisiert. F\u00fcr jeden Span wird ein detaillierter Payload (meist im JSON-Format) erfasst.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Um dies greifbar zu machen, betrachten wir einen exemplarischen Payload f\u00fcr den LLM-Aufruf (den zweiten Span unseres Beispiels), der sich an den CNCF-Konventionen orientiert:<\/span><\/p>\n<pre class=\"lang:default decode:true \" title=\"Spans JSON Beispiel\">[\r\n    {\r\n        \"name\": \"rag_pipeline\",\r\n        \"context\": {\r\n            \"trace_id\": \"0x5b8aa5a2d2c872e8321cf37308d69df2\",\r\n            \"span_id\": \"0xf6c109f48195b451\",\r\n            \/\/ ...\r\n        },\r\n        \"parent_id\": null,\r\n        \"start_time\": \"2026-10-20T09:14:02.100876Z\",\r\n        \"end_time\": \"2026-10-20T09:14:03.913102Z\",\r\n        \/\/ ...\r\n    },\r\n    {\r\n        \"name\": \"retrieval H7STPQYOND\",\r\n        \"context\": {\r\n            \"trace_id\": \"0x5b8aa5a2d2c872e8321cf37308d69df2\",\r\n            \"span_id\": \"0x051581bf3cb55c13\",\r\n            \/\/ ...\r\n        },\r\n        \"parent_id\": \"0xf6c109f48195b451\",\r\n        \"start_time\": \"2026-10-20T09:14:02.101234Z\",\r\n        \"end_time\": \"2026-10-20T09:14:02.347981Z\",\r\n        \"attributes\": {\r\n            \"gen_ai.operation.name\": \"retrieval\",\r\n            \"gen_ai.data_source.id\": \"H7STPQYOND\",\r\n            \"gen_ai.retrieval.top_k\": 3,\r\n            \"gen_ai.retrieval.query.text\": \"How many vacation days do new employees get?\",\r\n            \"gen_ai.retrieval.documents\": [\r\n                \"New employees are entitled to 42 vacation days per calendar year ...\",\r\n                \/\/ ...\r\n            ]\r\n        },\r\n        \/\/ ...\r\n    },\r\n    {\r\n        \"name\": \"text_completion gpt-6-astra\",\r\n        \"context\": {\r\n            \"trace_id\": \"0x5b8aa5a2d2c872e8321cf37308d69df2\",\r\n            \"span_id\": \"0x3a1f9c7e5d2b8046\",\r\n            \/\/ ...\r\n        },\r\n        \"parent_id\": \"0xf6c109f48195b451\",\r\n        \"start_time\": \"2026-10-20T09:14:02.348502Z\",\r\n        \"end_time\": \"2026-10-20T09:14:03.912775Z\",\r\n        \"attributes\": {\r\n            \"gen_ai.operation.name\": \"text_completion\",\r\n            \"gen_ai.provider.name\": \"openai\",\r\n            \"gen_ai.request.model\": \"gpt-6-astra\",\r\n            \"gen_ai.request.temperature\": 0.7,\r\n            \"gen_ai.input.messages\": [\r\n                \/\/ ...\r\n            ],\r\n            \"gen_ai.conversation.id\": \"sess_9f3c2a71\",\r\n            \"gen_ai.usage.input_tokens\": 142,\r\n            \"gen_ai.usage.output_tokens\": 38,\r\n            \"gen_ai.output.messages\": [\r\n                \/\/ ...\r\n            ]\r\n        },\r\n        \/\/ ...\r\n    }\r\n]<\/pre>\n<p><span style=\"font-weight: 400;\">Anhand solcher exakt strukturierten Daten k\u00f6nnen wir ablesen:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Welcher dynamische Kontext wurde im Retrieval-Span aus der Datenbank geladen?<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Welcher System-Prompt, welches Modell und welche Hyperparameter wurden verwendet?<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Wie hoch waren Latenz und Token-Verbrauch auf die Millisekunde und den Cent genau?<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Genau hier schlie\u00dft sich der Kreis zur Auditierbarkeit und Vorgaben wie dem EU AI Act: Produziert ein Agent eine Halluzination, missachtet Vorgaben oder generiert toxische Inhalte, l\u00e4sst sich anhand dieser standardisierten Payloads r\u00fcckwirkend l\u00fcckenlos nachvollziehen, ob die Ursache ein irrelevanter Eintrag in der Vektordatenbank, eine fehlerhafte Systemanweisung oder ein Modell-Artefakt war. Die inh\u00e4rente Blackbox der generativen KI wird so \u2013 zumindest auf Prozessebene \u2013 zur auditierbaren Glassbox. Damit ist die Grundvoraussetzung f\u00fcr den professionellen Betrieb geschaffen.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Jedoch ist Tracing noch keine Evaluation, sondern deren notwendige Voraussetzung. Ein Trace zeigt zwar exakt, <\/span><i><span style=\"font-weight: 400;\">wie<\/span><\/i><span style=\"font-weight: 400;\"> die KI zu einem Ergebnis kam, er verr\u00e4t aber nicht, ob die finale Antwort korrekt ist. Um im Bild zu bleiben: Das Stellwerk misst die P\u00fcnktlichkeit des Zuges, kennt aber nicht die Zufriedenheit der Fahrg\u00e4ste.<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Die-Teststrecke-Vom-Produktions-Trace-zum-strukturierten-Experiment\"><\/span><b>Die Teststrecke: Vom Produktions-Trace zum strukturierten Experiment<\/b><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Um aus den gesammelten Rohdaten echte Qualit\u00e4tsmetriken zu destillieren, verlassen die Daten nun die Hauptstrecke und wechseln auf unser parallel verlaufendes Messsystem. Das Fundament f\u00fcr belastbare Experimente sind reale Daten.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Wir greifen also auf unsere via OpenTelemetry gesammelten Produktions-Traces zur\u00fcck und extrahieren daraus hunderte von echten Nutzeranfragen. Um echte Leistungsvergleiche durchf\u00fchren zu k\u00f6nnen, wird dieser Datensatz oft noch mit sogenannten &#8222;Golden Answers&#8220; \u2013 also Menschen gepr\u00fcften, idealen Referenzantworten \u2013 angereichert. Dieser validierte Datensatz bildet fortan unseren Pr\u00fcfstand.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Als Labor f\u00fcr diesen Pr\u00fcfstand k\u00f6nnen wir ein beliebiges Experimentationframework nehmen. Die meisten etablierten Experimentationframeworks haben sich an die GenAI Welt von heute angepasst. In unseren Beispielen nehmen wir <\/span><i><span style=\"font-weight: 400;\">MLflow<\/span><\/i><span style=\"font-weight: 400;\">.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">W\u00e4hrend OTel die Sensorik in der Produktion darstellt, ist <\/span><i><span style=\"font-weight: 400;\">MLflow<\/span><\/i><span style=\"font-weight: 400;\"> die Orchestrierungs-Plattform f\u00fcr den Entwicklungszyklus. Es erlaubt uns, eine neue Konfiguration (etwa ein neues Basis-Modell, eine ver\u00e4nderte Chunk-Gr\u00f6\u00dfe oder einen optimierten System-Prompt) systematisch gegen unseren historischen Datensatz antreten zu lassen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In der Praxis l\u00e4sst sich ein solcher Experimentierbaukasten mit dem richtigen Framework recht leicht aufbauen. So hat zum Beispiel MLFlow einen OTel HTTP Endpoint (\/v1\/traces) an den von g\u00e4ngigen OTel Exportern die Production Traces gesendet werden k\u00f6nnen. Sind die Traces mit GenAI Semantic Conventions angefertigt, kann MLFlow sie direkt erkennen und anzeigen. Im MLFlow UI k\u00f6nnen wir dann die gesammelten Traces filtern, annotieren und zu Evaluationsdatens\u00e4tzen zusammensammeln.\u00a0<\/span><\/p>\n<h2><span class=\"ez-toc-section\" id=\"Das-Ende-des-Vibe-Checks-Warum-wir-experimentieren-muessen\"><\/span><strong>Das Ende des Vibe-Checks: Warum wir experimentieren m\u00fcssen<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Wer LLM-Applikationen ohne einen solchen Experimentierbaukasten entwickelt, tappt unweigerlich in die Regressions-Falle. Ein klassisches Szenario: Ein Nutzer meldet, dass der RAG-Agent eine spezifische Frage falsch beantwortet hat. Der Entwickler passt daraufhin den System-Prompt an, testet die Frage manuell und freut sich \u00fcber das nun korrekte Ergebnis (der sogenannte &#8222;Vibe-Check&#8220;). Was er nicht sieht: Diese minimale Anpassung hat die Applikation f\u00fcr 20 andere, bisher perfekt funktionierende Anfragen unbrauchbar gemacht.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Systematische Experimente eliminieren diesen Blindflug und bieten drei entscheidende Vorteile:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Verhinderung von Regressionen:<\/b><span style=\"font-weight: 400;\"> Jede \u00c4nderung muss sich gegen den historischen Gesamtdatensatz beweisen. Sinkt die Gesamtperformance, geht das Update nicht in Produktion.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Datengetriebene Architektur-Entscheidungen:<\/b><span style=\"font-weight: 400;\"> Lohnt sich der Wechsel von <em>gpt-4o-mini<\/em> auf das teurere <em>gpt-4o<\/em>? Das Experiment liefert harte Zahlen: Sinkt die Fehlerquote signifikant oder steigen prim\u00e4r nur die API-Kosten?<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>L\u00fcckenlose Reproduzierbarkeit:<\/b><span style=\"font-weight: 400;\"> MLflow versioniert nicht nur die Ergebnisse, sondern auch den exakten Code, den Prompt und die Hyperparameter jedes Laufs. Nichts geht mehr verloren, jeder Zustand der Applikation l\u00e4sst sich wiederherstellen.<\/span><\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Warum-wir-auch-im-Labor-tracen-muessen\"><\/span><strong>Warum wir auch im Labor tracen m\u00fcssen<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><span style=\"font-weight: 400;\">Ein h\u00e4ufiger Irrglaube ist, dass Tracing (wie im vorherigen Abschnitt beschrieben) nur f\u00fcr das Monitoring der Live-Produktion relevant sei. Tats\u00e4chlich ist es im Experimentierlabor mindestens genauso kritisch.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Wenn uns unser Pr\u00fcfstand nach einem Durchlauf meldet, dass <\/span><i><span style=\"font-weight: 400;\">Version B<\/span><\/i><span style=\"font-weight: 400;\"> eine 15% h\u00f6here Fehlerrate aufweist als <\/span><i><span style=\"font-weight: 400;\">Version A<\/span><\/i><span style=\"font-weight: 400;\">, haben wir ein Symptom, aber noch keine Diagnose. Genau hier entfaltet das Tracing im Experiment seine St\u00e4rke: Es schafft <\/span><i><span style=\"font-weight: 400;\">Vergleichbarkeit<\/span><\/i><span style=\"font-weight: 400;\">. In der UI k\u00f6nnen wir den Trace einer fehlgeschlagenen Anfrage aus Version B direkt neben den erfolgreichen Trace aus <\/span><i><span style=\"font-weight: 400;\">Version A<\/span><\/i><span style=\"font-weight: 400;\"> legen.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Dabei sehen wir exakt, an welchem Knotenpunkt im Graph die neue Pipeline falsch abgebogen ist. Hat das ver\u00e4nderte Retrieval pl\u00f6tzlich irrelevante Chunks aus der Vektordatenbank geladen? Oder war der Kontext korrekt, aber das LLM hat aufgrund des neuen Prompts halluziniert? Tracing im Experiment liefert die Antwort <\/span><i><span style=\"font-weight: 400;\">vor<\/span><\/i><span style=\"font-weight: 400;\"> dem Rollout.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Zus\u00e4tzlich sind viele Evaluationsmethoden heutzutage LLM-as-a-Judge Verfahren. D.h. die Ausgaben der KI Applikation werden mittels eines anderen Modells \u00fcberpr\u00fcft. Das macht unseren Pr\u00fcfstand allerdings selbst zu einer KI Applikation. Damit wir also garantieren k\u00f6nnen, dass unsere LLM-basierter Richter auch tats\u00e4chlich positive Ergebnisse f\u00fcr Positiv befindet und negative f\u00fcr Negativ, sollten wir die Experimente selbst tracen anhand von Menschen-gepr\u00fcften Referenzjudgements \u00fcberpr\u00fcfen.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Ausblick-Der-TUeV-fuer-unsere-Modelle\"><\/span><strong>Ausblick: Der T\u00dcV f\u00fcr unsere Modelle<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Um in unserer Bahn-Analogie zu bleiben: Wir haben nun ein modernes Gleissystem nebst Signaltechnik und einem modernen Pr\u00fcfstand aufgebaut und beide mitfeinsten Sensoren ausgestattet. Wir k\u00f6nnen exakt messen, wie schnell der Zug f\u00e4hrt und wie viel Strom er verbraucht. Doch wer entscheidet eigentlich, ob die Fahrt angenehm war? Wer pr\u00fcft, ob die Antworten der KI inhaltlich korrekt, sicher und relevant sind?<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Die blo\u00dfe Existenz von Infrastruktur beantwortet noch keine Qualit\u00e4tsfragen. Die genauen Evaluierungsmethoden \u2013 von klassischen heuristischen Textmetriken (wie <a href=\"https:\/\/aclanthology.org\/W04-1013\/\">ROUGE<\/a> oder <a href=\"https:\/\/aclanthology.org\/P02-1040\/\">BLEU<\/a>) \u00fcber RAG-spezifische Frameworks (wie <a href=\"https:\/\/docs.ragas.io\/en\/latest\/\">RAGAS<\/a>) bis hin zu modernsten Ans\u00e4tzen, bei denen ein m\u00e4chtiges LLM die Antworten eines anderen LLMs bewertet (LLM-as-a-Judge) \u2013 bilden die eigentliche Instanz der Qualit\u00e4tskontrolle. Sie sind die T\u00dcV-Pr\u00fcfer und Fahrgastbefrager unseres Systems und werden im n\u00e4chsten Artikel dieser Serie detailliert beleuchtet.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Seit der Markteinf\u00fchrung von ChatGPT im Jahr 2022 stehen universelle gro\u00dfe Sprachmodelle (LLMs) einer breiten Masse zur Verf\u00fcgung. Die Verarbeitung nat\u00fcrlicher Sprache ist damit nicht mehr nur Data Scientists und ML-Spezialisten vorbehalten. Dank ihrer F\u00e4higkeit, vielf\u00e4ltige Aufgaben direkt \u201eOut of the Box\u201c zu l\u00f6sen, entf\u00e4llt oft das aufwendige Training spezialisierter Modelle. Da diese generativen KI-Modelle [&hellip;]<\/p>\n","protected":false},"author":460,"featured_media":60393,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[],"service":[76,411,431,75],"level":[1280],"coauthors":[{"id":460,"display_name":"Max Vieweg","user_nicename":"mvieweg"},{"id":436,"display_name":"Denise Hartmann","user_nicename":"dhartmann"}],"class_list":["post-69569","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","service-artificial-intelligence","service-data-engineering","service-data-science","service-nlp"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit - inovex GmbH %<\/title>\n<meta name=\"description\" content=\"Warum manuelles Testen bei LLMs nicht reicht und warum mess- und auditierbare Evaluations-Infrastruktur f\u00fcr GenAI-Apps unabdinglich ist.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit - inovex GmbH %\" \/>\n<meta property=\"og:description\" content=\"Warum manuelles Testen bei LLMs nicht reicht und warum mess- und auditierbare Evaluations-Infrastruktur f\u00fcr GenAI-Apps unabdinglich ist.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-29T12:52:50+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-11-03T08:31:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"880\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Max Vieweg, Denise Hartmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines-1024x601.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Max Vieweg\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"14\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Max Vieweg, Denise Hartmann\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/\"},\"author\":{\"name\":\"Max Vieweg\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/0f159b433119271e258ab68daa8e4fb8\"},\"headline\":\"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit\",\"datePublished\":\"2026-10-29T12:52:50+00:00\",\"dateModified\":\"2026-11-03T08:31:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/\"},\"wordCount\":2268,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png\",\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/\",\"name\":\"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit - inovex GmbH %\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png\",\"datePublished\":\"2026-10-29T12:52:50+00:00\",\"dateModified\":\"2026-11-03T08:31:36+00:00\",\"description\":\"Warum manuelles Testen bei LLMs nicht reicht und warum mess- und auditierbare Evaluations-Infrastruktur f\u00fcr GenAI-Apps unabdinglich ist.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png\",\"width\":1500,\"height\":880,\"caption\":\"inovex IT-Security-Assessment\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/0f159b433119271e258ab68daa8e4fb8\",\"name\":\"Max Vieweg\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e97d39105606e6cc4f7732ef88141ae9b5d55442966766986a311b9fa7c0a7ca?s=96&d=retro&r=g092fdda8feef24b121ad617c8d704e03\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e97d39105606e6cc4f7732ef88141ae9b5d55442966766986a311b9fa7c0a7ca?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/e97d39105606e6cc4f7732ef88141ae9b5d55442966766986a311b9fa7c0a7ca?s=96&d=retro&r=g\",\"caption\":\"Max Vieweg\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/mvieweg\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit - inovex GmbH %","description":"Warum manuelles Testen bei LLMs nicht reicht und warum mess- und auditierbare Evaluations-Infrastruktur f\u00fcr GenAI-Apps unabdinglich ist.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/","og_locale":"de_DE","og_type":"article","og_title":"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit - inovex GmbH %","og_description":"Warum manuelles Testen bei LLMs nicht reicht und warum mess- und auditierbare Evaluations-Infrastruktur f\u00fcr GenAI-Apps unabdinglich ist.","og_url":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2026-10-29T12:52:50+00:00","article_modified_time":"2026-11-03T08:31:36+00:00","og_image":[{"width":1500,"height":880,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png","type":"image\/png"}],"author":"Max Vieweg, Denise Hartmann","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines-1024x601.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Max Vieweg","Gesch\u00e4tzte Lesezeit":"14\u00a0Minuten","Written by":"Max Vieweg, Denise Hartmann"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/"},"author":{"name":"Max Vieweg","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/0f159b433119271e258ab68daa8e4fb8"},"headline":"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit","datePublished":"2026-10-29T12:52:50+00:00","dateModified":"2026-11-03T08:31:36+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/"},"wordCount":2268,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png","inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/","url":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/","name":"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit - inovex GmbH %","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png","datePublished":"2026-10-29T12:52:50+00:00","dateModified":"2026-11-03T08:31:36+00:00","description":"Warum manuelles Testen bei LLMs nicht reicht und warum mess- und auditierbare Evaluations-Infrastruktur f\u00fcr GenAI-Apps unabdinglich ist.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/How-to-Use-Mimesis-and-dbt-to-Test-Data-Pipelines.png","width":1500,"height":880,"caption":"inovex IT-Security-Assessment"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/systematische-evaluation-von-llms-und-agenten-von-der-heuristik-zur-messbarkeit\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Systematische Evaluation von LLMs und Agenten \u2013 Von der Heuristik zur Messbarkeit"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/0f159b433119271e258ab68daa8e4fb8","name":"Max Vieweg","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/e97d39105606e6cc4f7732ef88141ae9b5d55442966766986a311b9fa7c0a7ca?s=96&d=retro&r=g092fdda8feef24b121ad617c8d704e03","url":"https:\/\/secure.gravatar.com\/avatar\/e97d39105606e6cc4f7732ef88141ae9b5d55442966766986a311b9fa7c0a7ca?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/e97d39105606e6cc4f7732ef88141ae9b5d55442966766986a311b9fa7c0a7ca?s=96&d=retro&r=g","caption":"Max Vieweg"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/mvieweg\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/69569","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/460"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=69569"}],"version-history":[{"count":6,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/69569\/revisions"}],"predecessor-version":[{"id":71256,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/69569\/revisions\/71256"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/60393"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=69569"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=69569"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=69569"},{"taxonomy":"level","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/level?post=69569"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=69569"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}