[{"data":1,"prerenderedAt":819},["ShallowReactive",2],{"/de-de/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale":3,"navigation-de-de":46,"banner-de-de":460,"footer-de-de":470,"blog-post-authors-de-de-Susie Bitters":704,"blog-related-posts-de-de-developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale":719,"blog-promotions-de-de":757,"next-steps-de-de":809},{"id":4,"title":5,"authorSlugs":6,"authors":8,"body":10,"category":11,"categorySlug":11,"config":12,"content":16,"date":20,"description":17,"extension":27,"externalUrl":28,"featured":14,"heroImage":19,"isFeatured":14,"meta":29,"navigation":14,"path":30,"publishedDate":20,"rawbody":31,"seo":32,"slug":13,"stem":38,"tagSlugs":39,"tags":44,"template":15,"updatedDate":28,"__hash__":45},"blogPosts/de-de/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale.yml","Entwicklung von GitLab Duo: Wie wir KI-Modelle im großen Maßstab validieren und testen",[7],"susie-bitters",[9],"Susie Bitters","**_Generative KI markiert einen monumentalen Wandel in der Softwareentwicklungsbranche, der es einfacher macht, Software zu entwickeln, sicherer zu machen und sie zu betreiben. Unsere neue Blog-Serie von unseren Produkt- und Entwicklungsteams gibt einen Einblick darin, wie wir die KI-Funktionen erstellen, testen und bereitstellen, die in deinem Unternehmen benötigt werden. Lerne neue Funktionen innerhalb von GitLab Duo kennen und wie sie DevSecOps-Teams dabei helfen, bessere Ergebnisse für Kund(inn)en zu erzielen._**\n\nGitLab schätzt das Vertrauen unserer Kund(inn)en in uns. Ein Teil der Aufrechterhaltung dieses Vertrauens ist die Transparenz darüber, wie wir die hochwertige Funktionalität unserer [GitLab Duo](https://about.gitlab.com/de-de/gitlab-duo-agent-platform/) KI-Funktionen erstellen, bewerten und gewährleisten. Die Funktionen von GitLab Duo basieren auf einer Vielzahl von Modellen, die es uns ermöglichen, eine Vielzahl von Anwendungsfällen zu unterstützen und unseren Kund(inn)en Flexibilität zu bieten. GitLab ist von vornherein nicht an einen einzigen Modellanbieter gebunden. Wir verwenden derzeit Foundation-Modelle von [Google](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/ai_gateway/models/vertex_text.py?ref_type=heads#L86) und [Anthropic](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/ai_gateway/models/anthropic.py?ref_type=heads#L62). Wir wägen jedoch kontinuierlich ab, welche Modelle für die Anwendungsfälle von GitLab Duo geeignet sind. In diesem Artikel geben wir einen Einblick in unseren Validierungsprozess für KI-Modelle.\n\n## Was sind LLMs\n\nUmfangreiche Sprachmodelle (Large language models, LLMs) sind generative KI-Modelle, die viele KI-Funktionen innerhalb der GitLab Plattform unterstützen. LLMs wurden mit riesigen Datensätzen trainiert und prognostizieren das nächste Wort in einer Sequenz basierend auf dem vorhergehenden Kontext. Als Antwort auf eine Eingabe (Prompt) von Benutzer(innen) erzeugen sie Text, der der Antwort eines Menschen ähnelt, indem sie abhängig vom Prompt aus der Wahrscheinlichkeitsverteilung von Wörtern ein Muster wiedergeben.\n\nLLMs ermöglichen es, intelligente Codevorschläge, Konversations-Chatbots, Code-Erklärungen, Analysen von Sicherheitslücken und mehr umzusetzen. Ihre Fähigkeit, für einen bestimmten Prompt unterschiedliche Antworten zu erzeugen, macht eine standardisierte Qualitätsbewertung schwierig. Da LLMs für verschiedene Eigenschaften optimiert werden können, werden so viele unterschiedliche KI-Modelle aktiv entwickelt.\n\n## Testen im großen Maßstab\n\nIm Gegensatz zu herkömmlichen Softwaresystemen, bei denen Ein- und Ausgaben einfacher definiert und getestet werden können, erzeugen LLMs Ausgaben, die oft nuanciert, vielfältig und kontextabhängig sind. Um diese Modelle zu testen, sind umfassende Strategien erforderlich, die die subjektiven und variablen Interpretationen von Qualität sowie die stochastische Natur ihrer Ergebnisse berücksichtigen. Wir können daher die Qualität der Ergebnisse eines LLM nicht individuell oder anekdotisch beurteilen. Stattdessen müssen wir in der Lage sein, das Gesamtmuster des Verhaltens eines LLM zu untersuchen. Um ein Gefühl für diese Muster zu bekommen, müssen wir in großem Maßstab testen. Darunter versteht man den Prozess der Bewertung der Leistung, Zuverlässigkeit und Robustheit eines Systems oder einer Anwendung über eine große und vielfältige Anzahl von Datensätzen und Anwendungsfällen. Unser [Centralized Evaluation Framework (CEF)](https://docs.gitlab.com/development/ai_features/ai_evaluation_guidelines/) verwendet Tausende von Prompts, die mit Dutzenden von Anwendungsfällen verknüpft sind, um signifikante Muster zu identifizieren und das Gesamtverhalten unserer grundlegenden LLMs und der GitLab Duo-Funktionen, in die sie integriert sind, zu bewerten.\n\nTesten im großen Maßstab hilft uns bei der:\n\n- **Gewährleistung von Qualität:** Durch Tests im großen Maßstab können wir die Qualität und Zuverlässigkeit dieser Modelle in einer Vielzahl von Szenarien und Inputs bewerten. Indem wir die Ergebnisse dieser Modelle in großem Maßstab validieren, können wir Muster identifizieren und potenzielle Probleme wie systematische Verzerrungen, Anomalien und Ungenauigkeiten abmildern.\n- **Optimierung der Leistung:** Die Intensivierung der Tests ermöglicht es GitLab, die Leistung und Effizienz von LLMs unter realen Bedingungen zu beurteilen. Dazu gehört die Bewertung von Faktoren wie Ausgabequalität, Latenz und der Kosten für die Optimierung der Bereitstellung und des Einsatzes dieser Modelle in GitLab Duo-Funktionen.\n- **Minderung von Risiken:** Das Testen von LLMs im großen Maßstab trägt dazu bei, die mit der Bereitstellung von LLMs in kritischen Anwendungen verbundenen Risiken zu mindern. Durch gründliche Tests über verschiedene Datensätze und Anwendungsfälle hinweg können wir potenzielle Fehlermodi, Sicherheitslücken und ethische Bedenken identifizieren und diese adressieren und beheben, bevor sie sich auf unsere Kund(inn)en auswirken.\n\nDas Testen von LLMs im großen Maßstab ist unerlässlich, um ihre Zuverlässigkeit und Robustheit für ihre Bereitstellung innerhalb der GitLab-Plattform sicherzustellen. Durch die Investition in umfassende Teststrategien, die verschiedene Datensätze, Anwendungsfälle und Szenarien umfassen, arbeitet GitLab daran, das volle Potenzial von KI-gestützten Workflows auszuschöpfen und gleichzeitig potenzielle Risiken zu mindern.\n\n### Wie wir in großem Maßstab testen\n\nDies sind die notwendigen Schritte, um LLMs in großem Maßstab zu testen.\n\n#### Schritt 1: Erstellen einer Prompt-Bibliothek als Proxy für die Produktion\nWährend andere Unternehmen Kundendaten einsehen und verwenden, um ihre KI-Funktionen zu trainieren, tut GitLab dies derzeit nicht.  Deshalb mussten wir eine umfassende Prompt-Bibliothek entwickeln, die sowohl den Umfang als auch die Aktivität der Produktionsumgebung abbildet.\n\nDiese Prompt-Bibliothek besteht aus Fragen und Antworten. Die Fragen stellen die Art von Abfragen oder Eingaben dar, die wir in der Produktionsumgebung erwarten würden, während die Antworten eine Grundwahrheit darüber darstellen, was unsere ideale Antwort wäre. Diese Referenzantwort könnte auch als Zielantwort formuliert werden. Sowohl die Frage als auch die Antwort können, aber müssen nicht von Menschen generiert werden. Diese Frage-Antwort-Paare geben uns eine Vergleichsbasis und einen Bezugsrahmen, mit dem wir die Unterschiede zwischen Modellen und Funktionen herausarbeiten können. Wenn mehreren Modellen dieselbe Frage gestellt wird und sie unterschiedliche Antworten erzeugen, können wir anhand unserer Referenzantwort feststellen, welches Modell eine Antwort gegeben hat, die unserem Ziel am nächsten kommt, und sie entsprechend bewerten.\n\nAuch hier ist ein zentrales Element einer umfassenden Prompt-Bibliothek, dass sie repräsentativ für die Eingaben ist, die wir in der Produktionsumgebung erwarten. Wir möchten wissen, wie gut die grundlegenden Modelle zu unserem spezifischen Anwendungsfall passen und wie gut unsere Funktionen funktionieren. Es gibt zahlreiche Datensätze mit Benchmark-Prompts, aber diese Datensätze spiegeln möglicherweise nicht die Anwendungsfälle wider, die wir bei GitLab annehmen. Unsere Prompt-Bibliothek ist so konzipiert, dass sie speziell auf die Funktionen und Anwendungsfälle von GitLab zugeschnitten ist.\n\n#### Schritt 2: Leistung des Basismodells\n\nSobald wir eine Prompt-Bibliothek erstellt haben, die die Produktionsaktivitäten genau widerspiegelt, geben wir diese Fragen in [verschiedene Modelle](https://docs.gitlab.com/development/ai_features/ai_evaluation_guidelines/) ein, um zu testen, wie gut sie den Bedürfnissen unserer Kund(inn)en entsprechen. Wir vergleichen jede Antwort mit unserer Grundwahrheit und reihen sie in eine Rangfolge ein, die auf einer Reihe von Metriken basiert, wie zum Beispiel: [Cosine Similarity Score](https://docs.gitlab.com/development/ai_features/glossary/), [Cross Similarity Score](https://docs.gitlab.com/development/ai_features/glossary/),  [LLM Judge](https://docs.gitlab.com/development/ai_features/glossary/), und [Consensus Filtering mit LLM Judge](https://docs.gitlab.com/development/ai_features/glossary/). Diese erste Iteration liefert uns einen Anhaltspunkt dafür, wie gut die einzelnen Modelle abschneiden, und hilft uns bei der Auswahl eines grundlegenden Modells für unsere Einsatzbereiche. Um uns kurz zu fassen, werden wir hier nicht ins Detail gehen, aber du kannst [hier mehr über die Metriken erfahren](https://docs.gitlab.com/development/ai_features/ai_evaluation_guidelines/). Es ist wichtig zu wissen, dass dieses Problem nicht gelöst ist. Die KI-Branche forscht aktiv an neuen Techniken und entwickelt sie weiter. Das Modellvalidierungsteam von GitLab behält die Branche im Auge und arbeitet ständig daran, wie wir die von GitLab Duo verwendeten LLMs prüfen und bewerten.\n\n#### Schritt 3: Funktionsentwicklung\n\nJetzt, da wir eine Grundlage für die Leistung unseres ausgewählten Modells haben, können wir mit den gewonnen Daten unsere Plattform weiterentwickeln. Prompt-Engineering ist zwar sehr populär, aber wenn man sich ausschließlich darauf konzentriert, das Verhalten eines Modells durch Prompting (oder eine andere Technik) zu verändern, ohne es zu validieren, stochert man im Dunkeln und passt sein Prompting sehr wahrscheinlich zu stark an. Man löst vielleicht ein Problem, aber verursacht ein Dutzend andere. Und es würde wahrscheinlich nie auffallen. Wenn wir eine Grundlinie für die Leistung eines Modells festlegen, können wir verfolgen, wie sich das Verhalten im Laufe der Zeit für alle notwendigen Anwendungsfälle verändert. Bei GitLab überprüfen wir die Leistung unserer GitLab Duo Funktionen während der aktiven Entwicklung täglich neu, um sicherzustellen, dass alle Änderungen die Gesamtfunktionalität verbessern.\n\n#### Schritt 4: Iterieren, iterieren, iterieren\n\nUnsere experimentellen Iterationen funktionieren wie folgt: In jedem Durchgang untersuchen wir die Ergebnisse unserer Tests im großen Maßstab, um Muster zu erkennen:\n\n- Was haben unsere schwächsten Bereiche gemeinsam?\n- Verhält sich unsere Funktion für eine bestimmte Metrik oder in einem bestimmten Anwendungsfall ungünstig?\n- Gibt es bei bestimmten Fragen immer wieder dieselben Fehler?\n\nSolche Muster tauchen nur dann auf, wenn wir in großem Maßstab testen, und nur so können wir unsere Experimente optimieren. Auf der Grundlage dieser Muster schlagen wir verschiedene Experimente oder Ansätze vor, um die Leistung in einem bestimmten Bereich und für eine bestimmte Metrik zu verbessern.\n\nTesten im großen Maßstab ist jedoch sowohl teuer als auch zeitaufwendig. Um eine schnellere und kostengünstigere Iteration zu ermöglichen, erstellen wir einen kleineren Datensatz, der als Mini-Proxy fungiert. Die begrenzte Teilmenge wird so gewichtet, dass sie genau die Frage-Antwort-Paare enthält, die wir verbessern möchten. Die erweiterte Teilmenge enthält auch eine Auswahl aller anderen Anwendungsfälle und Bewertungen, um sicherzustellen, dass sich unsere Änderungen nicht nachteilig auf die allgemeine Funktionalität auswirken. Wir nehmen also Änderungen vor und überprüfen sie gegen eine begrenzte Teilmenge der Daten. Wie sieht die neue Antwort im Vergleich zur Ausgangslage aus? Wie verhält es sich mit der Grundwahrheit?\n\nSobald wir einen Prompt gefunden haben, der sich auf den spezifischen Anwendungsfall bezieht, an dem wir gerade mit der begrenzten Teilmenge arbeiten, validieren wir diesen Prompt anhand einer erweiterten Teilmenge von Daten, um sicherzustellen, dass er sich nicht nachteilig auf andere Bereiche auswirkt. Nur wenn wir durch die Validierungsmetriken der Meinung sind, dass der neue Prompt unsere Leistung in unserem Zielbereich verbessert UND die Leistung an anderer Stelle nicht verschlechtert, setzen wir diese Änderung in der Produktionsumgebung um.\n\nDas gesamte Centralized Evaluation Framework wird dann mit dem neuen Prompt ausgeführt und wir überprüfen, ob die Leistung der gesamten Funktionalität gegenüber der Ausgangssituation vom Vortag verbessert wurde. Auf diese Weise stellt GitLab durch ständige Iterationen sicher, dass du im gesamten GitLab-Ökosystem die neueste und beste Leistung der KI-gestützten Funktionen erhältst. So können wir sicherstellen, dass wir gemeinsam immer schneller arbeiten.\n\n### GitLab Duo noch besser machen\n\nWir hoffen, dass wir dir hiermit einen Einblick geben konnten, wie wir die Funktionen von GitLab Duo verantwortungsvoll entwickeln. Dieser Prozess wurde entwickelt, um [GitLab Duo Codevorschläge](https://docs.gitlab.com/user/project/repository/code_suggestions/) und [GitLab Duo Chat](https://docs.gitlab.com/user/gitlab_duo_chat/) allgemein verfügbar zu machen. Wir haben diesen Validierungsprozess auch in unseren Entwicklungsprozess integriert, wenn wir die Funktionen von GitLab Duo weiterentwickeln. Es bedeutet unzählige Versuche und Fehlschläge, und oft macht die Korrektur eines Punkts drei andere kaputt. Aber wir erhalten dabei auch datengestützte Einblicke in diese Auswirkungen und können so sicherstellen, dass GitLab Duo immer besser wird.\n\n> Starte noch heute deine [kostenlose Testversion von GitLab Duo](https://about.gitlab.com/gitlab-duo-agent-platform/#free-trial)!\n\n\u003Cfigure class=video_container>\n\u003Ciframe width=560 height=315 src=\"https://www.youtube-nocookie.com/embed/LifJdU3Qagw?si=A4kl6d32wPYC4168\" title=\"YouTube video player\" frameborder=0 allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen=\"\">\u003C/iframe>\n\u003C/figure>","ai-ml",{"slug":13,"featured":14,"template":15},"developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",true,"BlogPost",{"title":5,"description":17,"authors":18,"heroImage":19,"date":20,"body":10,"category":11,"tags":21},"Unsere Blog-Serie beginnt mit einem Blick hinter die Kulissen, wie wir LLMs evaluieren, sie an Anwendungsfälle anpassen und sie optimieren, um bessere Ergebnisse für die Benutzer(innen) zu erzielen.",[9],"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659856/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25.png","2024-05-09",[22,23,24,25,26],"AI/ML","DevSecOps","DevSecOps platform","features","inside GitLab","yml",null,{},"/de-de/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale","seo:\n  ogTitle: GitLab Duo – Wie wir LLMs validieren & testen\n  ogImage: https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659856/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25.png\n  ogDescription: Unsere Blog-Serie beginnt mit einem Blick hinter die Kulissen,\n    wie wir LLMs evaluieren, sie an Anwendungsfälle anpassen und sie optimieren,\n    um bessere Ergebnisse für die Benutzer(innen) zu erzielen.\n  ogSiteName: https://about.gitlab.com\n  noIndex: false\n  ogType: article\n  ogUrl: https://about.gitlab.com/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale\n  title: GitLab Duo – Wie wir LLMs validieren & testen\n  canonicalUrls: https://about.gitlab.com/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale\n  description: Unsere Blog-Serie beginnt mit einem Blick hinter die Kulissen, wie\n    wir LLMs evaluieren, sie an Anwendungsfälle anpassen und sie optimieren, um\n    bessere Ergebnisse für die Benutzer(innen) zu erzielen.\ncontent:\n  title: 'Entwicklung von GitLab Duo: Wie wir KI-Modelle im großen Maßstab\n    validieren und testen'\n  description: Unsere Blog-Serie beginnt mit einem Blick hinter die Kulissen, wie\n    wir LLMs evaluieren, sie an Anwendungsfälle anpassen und sie optimieren, um\n    bessere Ergebnisse für die Benutzer(innen) zu erzielen.\n  authors:\n    - Susie Bitters\n  heroImage: https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659856/Blog/Hero%20Images/blog-hero-banner-1-0178-820x470-fy25.png\n  date: 2024-05-09\n  body: >-\n    **_Generative KI markiert einen monumentalen Wandel in der\n    Softwareentwicklungsbranche, der es einfacher macht, Software zu entwickeln,\n    sicherer zu machen und sie zu betreiben. Unsere neue Blog-Serie von unseren\n    Produkt- und Entwicklungsteams gibt einen Einblick darin, wie wir die\n    KI-Funktionen erstellen, testen und bereitstellen, die in deinem Unternehmen\n    benötigt werden. Lerne neue Funktionen innerhalb von GitLab Duo kennen und\n    wie sie DevSecOps-Teams dabei helfen, bessere Ergebnisse für Kund(inn)en zu\n    erzielen._**\n\n\n    GitLab schätzt das Vertrauen unserer Kund(inn)en in uns. Ein Teil der\n    Aufrechterhaltung dieses Vertrauens ist die Transparenz darüber, wie wir die\n    hochwertige Funktionalität unserer [GitLab\n    Duo](https://about.gitlab.com/de-de/gitlab-duo-agent-platform/) KI-Funktionen erstellen,\n    bewerten und gewährleisten. Die Funktionen von GitLab Duo basieren auf einer\n    Vielzahl von Modellen, die es uns ermöglichen, eine Vielzahl von\n    Anwendungsfällen zu unterstützen und unseren Kund(inn)en Flexibilität zu\n    bieten. GitLab ist von vornherein nicht an einen einzigen Modellanbieter\n    gebunden. Wir verwenden derzeit Foundation-Modelle von\n    [Google](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/ai_gateway/models/vertex_text.py?ref_type=heads#L86)\n    und\n    [Anthropic](https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/ai_gateway/models/anthropic.py?ref_type=heads#L62).\n    Wir wägen jedoch kontinuierlich ab, welche Modelle für die Anwendungsfälle\n    von GitLab Duo geeignet sind. In diesem Artikel geben wir einen Einblick in\n    unseren Validierungsprozess für KI-Modelle.\n\n\n    ## Was sind LLMs\n\n\n    Umfangreiche Sprachmodelle (Large language models, LLMs) sind generative\n    KI-Modelle, die viele KI-Funktionen innerhalb der GitLab Plattform\n    unterstützen. LLMs wurden mit riesigen Datensätzen trainiert und\n    prognostizieren das nächste Wort in einer Sequenz basierend auf dem\n    vorhergehenden Kontext. Als Antwort auf eine Eingabe (Prompt) von\n    Benutzer(innen) erzeugen sie Text, der der Antwort eines Menschen ähnelt,\n    indem sie abhängig vom Prompt aus der Wahrscheinlichkeitsverteilung von\n    Wörtern ein Muster wiedergeben.\n\n\n    LLMs ermöglichen es, intelligente Codevorschläge, Konversations-Chatbots,\n    Code-Erklärungen, Analysen von Sicherheitslücken und mehr umzusetzen. Ihre\n    Fähigkeit, für einen bestimmten Prompt unterschiedliche Antworten zu\n    erzeugen, macht eine standardisierte Qualitätsbewertung schwierig. Da LLMs\n    für verschiedene Eigenschaften optimiert werden können, werden so viele\n    unterschiedliche KI-Modelle aktiv entwickelt.\n\n\n    ## Testen im großen Maßstab\n\n\n    Im Gegensatz zu herkömmlichen Softwaresystemen, bei denen Ein- und Ausgaben\n    einfacher definiert und getestet werden können, erzeugen LLMs Ausgaben, die\n    oft nuanciert, vielfältig und kontextabhängig sind. Um diese Modelle zu\n    testen, sind umfassende Strategien erforderlich, die die subjektiven und\n    variablen Interpretationen von Qualität sowie die stochastische Natur ihrer\n    Ergebnisse berücksichtigen. Wir können daher die Qualität der Ergebnisse\n    eines LLM nicht individuell oder anekdotisch beurteilen. Stattdessen müssen\n    wir in der Lage sein, das Gesamtmuster des Verhaltens eines LLM zu\n    untersuchen. Um ein Gefühl für diese Muster zu bekommen, müssen wir in\n    großem Maßstab testen. Darunter versteht man den Prozess der Bewertung der\n    Leistung, Zuverlässigkeit und Robustheit eines Systems oder einer Anwendung\n    über eine große und vielfältige Anzahl von Datensätzen und Anwendungsfällen.\n    Unser [Centralized Evaluation Framework\n    (CEF)](https://docs.gitlab.com/development/ai_features/ai_evaluation_guidelines/)\n    verwendet Tausende von Prompts, die mit Dutzenden von Anwendungsfällen\n    verknüpft sind, um signifikante Muster zu identifizieren und das\n    Gesamtverhalten unserer grundlegenden LLMs und der GitLab Duo-Funktionen, in\n    die sie integriert sind, zu bewerten.\n\n\n    Testen im großen Maßstab hilft uns bei der:\n\n\n    - **Gewährleistung von Qualität:** Durch Tests im großen Maßstab können wir\n    die Qualität und Zuverlässigkeit dieser Modelle in einer Vielzahl von\n    Szenarien und Inputs bewerten. Indem wir die Ergebnisse dieser Modelle in\n    großem Maßstab validieren, können wir Muster identifizieren und potenzielle\n    Probleme wie systematische Verzerrungen, Anomalien und Ungenauigkeiten\n    abmildern.\n\n    - **Optimierung der Leistung:** Die Intensivierung der Tests ermöglicht es\n    GitLab, die Leistung und Effizienz von LLMs unter realen Bedingungen zu\n    beurteilen. Dazu gehört die Bewertung von Faktoren wie Ausgabequalität,\n    Latenz und der Kosten für die Optimierung der Bereitstellung und des\n    Einsatzes dieser Modelle in GitLab Duo-Funktionen.\n\n    - **Minderung von Risiken:** Das Testen von LLMs im großen Maßstab trägt\n    dazu bei, die mit der Bereitstellung von LLMs in kritischen Anwendungen\n    verbundenen Risiken zu mindern. Durch gründliche Tests über verschiedene\n    Datensätze und Anwendungsfälle hinweg können wir potenzielle Fehlermodi,\n    Sicherheitslücken und ethische Bedenken identifizieren und diese adressieren\n    und beheben, bevor sie sich auf unsere Kund(inn)en auswirken.\n\n\n    Das Testen von LLMs im großen Maßstab ist unerlässlich, um ihre\n    Zuverlässigkeit und Robustheit für ihre Bereitstellung innerhalb der\n    GitLab-Plattform sicherzustellen. Durch die Investition in umfassende\n    Teststrategien, die verschiedene Datensätze, Anwendungsfälle und Szenarien\n    umfassen, arbeitet GitLab daran, das volle Potenzial von KI-gestützten\n    Workflows auszuschöpfen und gleichzeitig potenzielle Risiken zu mindern.\n\n\n    ### Wie wir in großem Maßstab testen\n\n\n    Dies sind die notwendigen Schritte, um LLMs in großem Maßstab zu testen.\n\n\n    #### Schritt 1: Erstellen einer Prompt-Bibliothek als Proxy für die\n    Produktion\n\n    Während andere Unternehmen Kundendaten einsehen und verwenden, um ihre\n    KI-Funktionen zu trainieren, tut GitLab dies derzeit nicht.  Deshalb mussten\n    wir eine umfassende Prompt-Bibliothek entwickeln, die sowohl den Umfang als\n    auch die Aktivität der Produktionsumgebung abbildet.\n\n\n    Diese Prompt-Bibliothek besteht aus Fragen und Antworten. Die Fragen stellen\n    die Art von Abfragen oder Eingaben dar, die wir in der Produktionsumgebung\n    erwarten würden, während die Antworten eine Grundwahrheit darüber\n    darstellen, was unsere ideale Antwort wäre. Diese Referenzantwort könnte\n    auch als Zielantwort formuliert werden. Sowohl die Frage als auch die\n    Antwort können, aber müssen nicht von Menschen generiert werden. Diese\n    Frage-Antwort-Paare geben uns eine Vergleichsbasis und einen Bezugsrahmen,\n    mit dem wir die Unterschiede zwischen Modellen und Funktionen herausarbeiten\n    können. Wenn mehreren Modellen dieselbe Frage gestellt wird und sie\n    unterschiedliche Antworten erzeugen, können wir anhand unserer\n    Referenzantwort feststellen, welches Modell eine Antwort gegeben hat, die\n    unserem Ziel am nächsten kommt, und sie entsprechend bewerten.\n\n\n    Auch hier ist ein zentrales Element einer umfassenden Prompt-Bibliothek,\n    dass sie repräsentativ für die Eingaben ist, die wir in der\n    Produktionsumgebung erwarten. Wir möchten wissen, wie gut die grundlegenden\n    Modelle zu unserem spezifischen Anwendungsfall passen und wie gut unsere\n    Funktionen funktionieren. Es gibt zahlreiche Datensätze mit\n    Benchmark-Prompts, aber diese Datensätze spiegeln möglicherweise nicht die\n    Anwendungsfälle wider, die wir bei GitLab annehmen. Unsere Prompt-Bibliothek\n    ist so konzipiert, dass sie speziell auf die Funktionen und Anwendungsfälle\n    von GitLab zugeschnitten ist.\n\n\n    #### Schritt 2: Leistung des Basismodells\n\n\n    Sobald wir eine Prompt-Bibliothek erstellt haben, die die\n    Produktionsaktivitäten genau widerspiegelt, geben wir diese Fragen in\n    [verschiedene\n    Modelle](https://docs.gitlab.com/development/ai_features/ai_evaluation_guidelines/)\n    ein, um zu testen, wie gut sie den Bedürfnissen unserer Kund(inn)en\n    entsprechen. Wir vergleichen jede Antwort mit unserer Grundwahrheit und\n    reihen sie in eine Rangfolge ein, die auf einer Reihe von Metriken basiert,\n    wie zum Beispiel: [Cosine Similarity\n    Score](https://docs.gitlab.com/development/ai_features/glossary/),\n    [Cross Similarity\n    Score](https://docs.gitlab.com/development/ai_features/glossary/),  [LLM\n    Judge](https://docs.gitlab.com/development/ai_features/glossary/),\n    und [Consensus Filtering mit LLM\n    Judge](https://docs.gitlab.com/development/ai_features/glossary/).\n    Diese erste Iteration liefert uns einen Anhaltspunkt dafür, wie gut die\n    einzelnen Modelle abschneiden, und hilft uns bei der Auswahl eines\n    grundlegenden Modells für unsere Einsatzbereiche. Um uns kurz zu fassen,\n    werden wir hier nicht ins Detail gehen, aber du kannst [hier mehr über die\n    Metriken\n    erfahren](https://docs.gitlab.com/development/ai_features/ai_evaluation_guidelines/).\n    Es ist wichtig zu wissen, dass dieses Problem nicht gelöst ist. Die\n    KI-Branche forscht aktiv an neuen Techniken und entwickelt sie weiter. Das\n    Modellvalidierungsteam von GitLab behält die Branche im Auge und arbeitet\n    ständig daran, wie wir die von GitLab Duo verwendeten LLMs prüfen und\n    bewerten.\n\n\n    #### Schritt 3: Funktionsentwicklung\n\n\n    Jetzt, da wir eine Grundlage für die Leistung unseres ausgewählten Modells\n    haben, können wir mit den gewonnen Daten unsere Plattform weiterentwickeln.\n    Prompt-Engineering ist zwar sehr populär, aber wenn man sich ausschließlich\n    darauf konzentriert, das Verhalten eines Modells durch Prompting (oder eine\n    andere Technik) zu verändern, ohne es zu validieren, stochert man im Dunkeln\n    und passt sein Prompting sehr wahrscheinlich zu stark an. Man löst\n    vielleicht ein Problem, aber verursacht ein Dutzend andere. Und es würde\n    wahrscheinlich nie auffallen. Wenn wir eine Grundlinie für die Leistung\n    eines Modells festlegen, können wir verfolgen, wie sich das Verhalten im\n    Laufe der Zeit für alle notwendigen Anwendungsfälle verändert. Bei GitLab\n    überprüfen wir die Leistung unserer GitLab Duo Funktionen während der\n    aktiven Entwicklung täglich neu, um sicherzustellen, dass alle Änderungen\n    die Gesamtfunktionalität verbessern.\n\n\n    #### Schritt 4: Iterieren, iterieren, iterieren\n\n\n    Unsere experimentellen Iterationen funktionieren wie folgt: In jedem\n    Durchgang untersuchen wir die Ergebnisse unserer Tests im großen Maßstab, um\n    Muster zu erkennen:\n\n\n    - Was haben unsere schwächsten Bereiche gemeinsam?\n\n    - Verhält sich unsere Funktion für eine bestimmte Metrik oder in einem\n    bestimmten Anwendungsfall ungünstig?\n\n    - Gibt es bei bestimmten Fragen immer wieder dieselben Fehler?\n\n\n    Solche Muster tauchen nur dann auf, wenn wir in großem Maßstab testen, und\n    nur so können wir unsere Experimente optimieren. Auf der Grundlage dieser\n    Muster schlagen wir verschiedene Experimente oder Ansätze vor, um die\n    Leistung in einem bestimmten Bereich und für eine bestimmte Metrik zu\n    verbessern.\n\n\n    Testen im großen Maßstab ist jedoch sowohl teuer als auch zeitaufwendig. Um\n    eine schnellere und kostengünstigere Iteration zu ermöglichen, erstellen wir\n    einen kleineren Datensatz, der als Mini-Proxy fungiert. Die begrenzte\n    Teilmenge wird so gewichtet, dass sie genau die Frage-Antwort-Paare enthält,\n    die wir verbessern möchten. Die erweiterte Teilmenge enthält auch eine\n    Auswahl aller anderen Anwendungsfälle und Bewertungen, um sicherzustellen,\n    dass sich unsere Änderungen nicht nachteilig auf die allgemeine\n    Funktionalität auswirken. Wir nehmen also Änderungen vor und überprüfen sie\n    gegen eine begrenzte Teilmenge der Daten. Wie sieht die neue Antwort im\n    Vergleich zur Ausgangslage aus? Wie verhält es sich mit der Grundwahrheit?\n\n\n    Sobald wir einen Prompt gefunden haben, der sich auf den spezifischen\n    Anwendungsfall bezieht, an dem wir gerade mit der begrenzten Teilmenge\n    arbeiten, validieren wir diesen Prompt anhand einer erweiterten Teilmenge\n    von Daten, um sicherzustellen, dass er sich nicht nachteilig auf andere\n    Bereiche auswirkt. Nur wenn wir durch die Validierungsmetriken der Meinung\n    sind, dass der neue Prompt unsere Leistung in unserem Zielbereich verbessert\n    UND die Leistung an anderer Stelle nicht verschlechtert, setzen wir diese\n    Änderung in der Produktionsumgebung um.\n\n\n    Das gesamte Centralized Evaluation Framework wird dann mit dem neuen Prompt\n    ausgeführt und wir überprüfen, ob die Leistung der gesamten Funktionalität\n    gegenüber der Ausgangssituation vom Vortag verbessert wurde. Auf diese Weise\n    stellt GitLab durch ständige Iterationen sicher, dass du im gesamten\n    GitLab-Ökosystem die neueste und beste Leistung der KI-gestützten Funktionen\n    erhältst. So können wir sicherstellen, dass wir gemeinsam immer schneller\n    arbeiten.\n\n\n    ### GitLab Duo noch besser machen\n\n\n    Wir hoffen, dass wir dir hiermit einen Einblick geben konnten, wie wir die\n    Funktionen von GitLab Duo verantwortungsvoll entwickeln. Dieser Prozess\n    wurde entwickelt, um [GitLab Duo\n    Codevorschläge](https://docs.gitlab.com/user/project/repository/code_suggestions/)\n    und [GitLab Duo Chat](https://docs.gitlab.com/user/gitlab_duo_chat/)\n    allgemein verfügbar zu machen. Wir haben diesen Validierungsprozess auch in\n    unseren Entwicklungsprozess integriert, wenn wir die Funktionen von GitLab\n    Duo weiterentwickeln. Es bedeutet unzählige Versuche und Fehlschläge, und\n    oft macht die Korrektur eines Punkts drei andere kaputt. Aber wir erhalten\n    dabei auch datengestützte Einblicke in diese Auswirkungen und können so\n    sicherstellen, dass GitLab Duo immer besser wird.\n\n\n    > Starte noch heute deine [kostenlose Testversion von GitLab\n    Duo](https://about.gitlab.com/gitlab-duo-agent-platform/#free-trial)!\n\n\n    \u003Cfigure class=video_container>\n\n    \u003Ciframe width=560 height=315\n    src=\"https://www.youtube-nocookie.com/embed/LifJdU3Qagw?si=A4kl6d32wPYC4168\"\n    title=\"YouTube video player\" frameborder=0 allow=\"accelerometer; autoplay;\n    clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n    allowfullscreen=\"\">\u003C/iframe>\n\n    \u003C/figure>\n  category: ai-ml\n  tags:\n    - AI/ML\n    - DevSecOps\n    - DevSecOps platform\n    - features\n    - inside GitLab\nconfig:\n  slug: developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale\n  featured: true\n  template: BlogPost\n",{"ogTitle":33,"ogImage":19,"ogDescription":17,"ogSiteName":34,"noIndex":35,"ogType":36,"ogUrl":37,"title":33,"canonicalUrls":37,"description":17},"GitLab Duo – Wie wir LLMs validieren & testen","https://about.gitlab.com",false,"article","https://about.gitlab.com/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale","de-de/blog/developing-gitlab-duo-how-we-validate-and-test-ai-models-at-scale",[40,41,42,25,43],"aiml","devsecops","devsecops-platform","inside-gitlab",[22,23,24,25,26],"4RDyhasGS09Vdi1sEihvbxqH5TEbgTTAxfi3vuOyTIk",{"data":47},{"logo":48,"freeTrial":53,"sales":58,"login":63,"items":68,"search":378,"minimal":412,"duo":430,"switchNav":439,"pricingDeployment":450},{"config":49},{"href":50,"dataGaName":51,"dataGaLocation":52},"/de-de/","gitlab logo","header",{"text":54,"config":55},"Kostenlose Testversion anfordern",{"href":56,"dataGaName":57,"dataGaLocation":52},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":59,"config":60},"Vertrieb kontaktieren",{"href":61,"dataGaName":62,"dataGaLocation":52},"/de-de/sales/","sales",{"text":64,"config":65},"Anmelden",{"href":66,"dataGaName":67,"dataGaLocation":52},"https://gitlab.com/users/sign_in/","sign in",[69,96,193,198,299,359],{"text":70,"config":71,"cards":73},"Plattform",{"dataNavLevelOne":72},"platform",[74,80,88],{"title":70,"description":75,"link":76},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":77,"config":78},"Die Plattform erkunden",{"href":79,"dataGaName":72,"dataGaLocation":52},"/de-de/platform/",{"title":81,"description":82,"link":83},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":84,"config":85},"Lerne GitLab Duo kennen",{"href":86,"dataGaName":87,"dataGaLocation":52},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":89,"description":90,"link":91},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":92,"config":93},"Mehr erfahren",{"href":94,"dataGaName":95,"dataGaLocation":52},"/de-de/why-gitlab/","why gitlab",{"text":97,"left":14,"config":98,"link":100,"lists":104,"footer":175},"Produkt",{"dataNavLevelOne":99},"solutions",{"text":101,"config":102},"Alle Lösungen anzeigen",{"href":103,"dataGaName":99,"dataGaLocation":52},"/de-de/solutions/",[105,130,153],{"title":106,"description":107,"link":108,"items":113},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":109},{"icon":110,"href":111,"dataGaName":112,"dataGaLocation":52},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[114,118,121,126],{"text":115,"config":116},"CI/CD",{"href":117,"dataGaLocation":52,"dataGaName":115},"/de-de/solutions/continuous-integration/",{"text":81,"config":119},{"href":86,"dataGaLocation":52,"dataGaName":120},"gitlab duo agent platform - product menu",{"text":122,"config":123},"Quellcodeverwaltung",{"href":124,"dataGaLocation":52,"dataGaName":125},"/de-de/solutions/source-code-management/","Source Code Management",{"text":127,"config":128},"Automatische Softwarebereitstellung",{"href":111,"dataGaLocation":52,"dataGaName":129},"Automated software delivery",{"title":131,"description":132,"link":133,"items":138},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":134},{"href":135,"dataGaName":136,"dataGaLocation":52,"icon":137},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[139,143,148],{"text":140,"config":141},"Anwendungssicherheitstests",{"href":135,"dataGaName":142,"dataGaLocation":52},"Application security testing",{"text":144,"config":145},"Schutz der Software-Lieferkette",{"href":146,"dataGaLocation":52,"dataGaName":147},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":149,"config":150},"Software-Compliance",{"href":151,"dataGaName":152,"dataGaLocation":52},"/de-de/solutions/software-compliance/","software compliance",{"title":154,"link":155,"items":160},"Auswertung",{"config":156},{"icon":157,"href":158,"dataGaName":159,"dataGaLocation":52},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[161,165,170],{"text":162,"config":163},"Sichtbarkeit und Auswertung",{"href":158,"dataGaLocation":52,"dataGaName":164},"Visibility and Measurement",{"text":166,"config":167},"Wertstrommanagement",{"href":168,"dataGaLocation":52,"dataGaName":169},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":171,"config":172},"Analysen und Einblicke",{"href":173,"dataGaLocation":52,"dataGaName":174},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":176,"items":177},"GitLab für",[178,183,188],{"text":179,"config":180},"Enterprise",{"href":181,"dataGaLocation":52,"dataGaName":182},"/de-de/enterprise/","enterprise",{"text":184,"config":185},"Kleinunternehmen",{"href":186,"dataGaLocation":52,"dataGaName":187},"/de-de/small-business/","small business",{"text":189,"config":190},"Öffentlicher Sektor",{"href":191,"dataGaLocation":52,"dataGaName":192},"/de-de/solutions/public-sector/","public sector",{"text":194,"config":195},"Preise",{"href":196,"dataGaName":197,"dataGaLocation":52,"dataNavLevelOne":197},"/de-de/pricing/","pricing",{"text":199,"config":200,"link":202,"lists":206,"feature":286},"Ressourcen",{"dataNavLevelOne":201},"resources",{"text":203,"config":204},"Alle Ressourcen anzeigen",{"href":205,"dataGaName":201,"dataGaLocation":52},"/de-de/resources/",[207,240,258],{"title":208,"items":209},"Erste Schritte",[210,215,220,225,230,235],{"text":211,"config":212},"Installieren",{"href":213,"dataGaName":214,"dataGaLocation":52},"/de-de/install/","install",{"text":216,"config":217},"Kurzanleitungen",{"href":218,"dataGaName":219,"dataGaLocation":52},"/de-de/get-started/","quick setup checklists",{"text":221,"config":222},"Lernen",{"href":223,"dataGaLocation":52,"dataGaName":224},"https://university.gitlab.com/","learn",{"text":226,"config":227},"Produktdokumentation",{"href":228,"dataGaName":229,"dataGaLocation":52},"https://docs.gitlab.com/","product documentation",{"text":231,"config":232},"Best-Practice-Videos",{"href":233,"dataGaName":234,"dataGaLocation":52},"/de-de/getting-started-videos/","best practice videos",{"text":236,"config":237},"Integrationen",{"href":238,"dataGaName":239,"dataGaLocation":52},"/de-de/integrations/","integrations",{"title":241,"items":242},"Entdecken",[243,248,253],{"text":244,"config":245},"Kundenerfolge",{"href":246,"dataGaName":247,"dataGaLocation":52},"/de-de/customers/","customer success stories",{"text":249,"config":250},"Blog",{"href":251,"dataGaName":252,"dataGaLocation":52},"/de-de/blog/","blog",{"text":254,"config":255},"Remote",{"href":256,"dataGaName":257,"dataGaLocation":52},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":259,"items":260},"Vernetzen",[261,266,271,276,281],{"text":262,"config":263},"GitLab Services",{"href":264,"dataGaName":265,"dataGaLocation":52},"/de-de/services/","services",{"text":267,"config":268},"Community",{"href":269,"dataGaName":270,"dataGaLocation":52},"/community/","community",{"text":272,"config":273},"Forum",{"href":274,"dataGaName":275,"dataGaLocation":52},"https://forum.gitlab.com/","forum",{"text":277,"config":278},"Veranstaltungen",{"href":279,"dataGaName":280,"dataGaLocation":52},"/events/","events",{"text":282,"config":283},"Partner",{"href":284,"dataGaName":285,"dataGaLocation":52},"/de-de/partners/","partners",{"background":287,"textColor":288,"text":289,"image":290,"link":294},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":291,"config":292},"The Source Promo-Karte",{"src":293},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":295,"config":296},"Aktuelles",{"href":297,"dataGaName":298,"dataGaLocation":52},"/de-de/the-source/","the source",{"text":300,"config":301,"lists":303},"Unternehmen",{"dataNavLevelOne":302},"company",[304],{"items":305},[306,311,317,319,324,329,334,339,344,349,354],{"text":307,"config":308},"Über",{"href":309,"dataGaName":310,"dataGaLocation":52},"/de-de/company/","about",{"text":312,"config":313,"footerGa":316},"Karriere",{"href":314,"dataGaName":315,"dataGaLocation":52},"/jobs/","jobs",{"dataGaName":315},{"text":277,"config":318},{"href":279,"dataGaName":280,"dataGaLocation":52},{"text":320,"config":321},"Geschäftsführung",{"href":322,"dataGaName":323,"dataGaLocation":52},"/company/team/e-group/","leadership",{"text":325,"config":326},"Team",{"href":327,"dataGaName":328,"dataGaLocation":52},"/company/team/","team",{"text":330,"config":331},"Handbuch",{"href":332,"dataGaName":333,"dataGaLocation":52},"https://handbook.gitlab.com/","handbook",{"text":335,"config":336},"Investor Relations",{"href":337,"dataGaName":338,"dataGaLocation":52},"https://ir.gitlab.com/","investor relations",{"text":340,"config":341},"Trust Center",{"href":342,"dataGaName":343,"dataGaLocation":52},"/de-de/security/","trust center",{"text":345,"config":346},"AI Transparency Center",{"href":347,"dataGaName":348,"dataGaLocation":52},"/de-de/ai-transparency-center/","ai transparency center",{"text":350,"config":351},"Newsletter",{"href":352,"dataGaName":353,"dataGaLocation":52},"/company/contact/#contact-forms","newsletter",{"text":355,"config":356},"Presse",{"href":357,"dataGaName":358,"dataGaLocation":52},"/press/","press",{"text":360,"config":361,"lists":362},"Kontakt",{"dataNavLevelOne":302},[363],{"items":364},[365,368,373],{"text":59,"config":366},{"href":61,"dataGaName":367,"dataGaLocation":52},"talk to sales",{"text":369,"config":370},"Support-Portal",{"href":371,"dataGaName":372,"dataGaLocation":52},"https://support.gitlab.com","support portal",{"text":374,"config":375},"Kundenportal",{"href":376,"dataGaName":377,"dataGaLocation":52},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":379,"login":380,"suggestions":387},"Schließen",{"text":381,"link":382},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":383,"config":384},"gitlab.com",{"href":66,"dataGaName":385,"dataGaLocation":386},"search login","search",{"text":388,"default":389},"Vorschläge",[390,392,397,399,404,409],{"text":81,"config":391},{"href":86,"dataGaName":81,"dataGaLocation":386},{"text":393,"config":394},"Codevorschläge (KI)",{"href":395,"dataGaName":396,"dataGaLocation":386},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":115,"config":398},{"href":117,"dataGaName":115,"dataGaLocation":386},{"text":400,"config":401},"GitLab auf AWS",{"href":402,"dataGaName":403,"dataGaLocation":386},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":405,"config":406},"GitLab auf Google Cloud",{"href":407,"dataGaName":408,"dataGaLocation":386},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":89,"config":410},{"href":94,"dataGaName":411,"dataGaLocation":386},"Why GitLab?",{"freeTrial":413,"mobileIcon":418,"desktopIcon":423,"secondaryButton":426},{"text":414,"config":415},"Kostenlos testen",{"href":416,"dataGaName":57,"dataGaLocation":417},"https://gitlab.com/-/trials/new/","nav",{"altText":419,"config":420},"GitLab-Symbol",{"src":421,"dataGaName":422,"dataGaLocation":417},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":419,"config":424},{"src":425,"dataGaName":422,"dataGaLocation":417},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":208,"config":427},{"href":428,"dataGaName":429,"dataGaLocation":417},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":431,"mobileIcon":435,"desktopIcon":437},{"text":432,"config":433},"Mehr über GitLab Duo erfahren",{"href":86,"dataGaName":434,"dataGaLocation":417},"gitlab duo",{"altText":419,"config":436},{"src":421,"dataGaName":422,"dataGaLocation":417},{"altText":419,"config":438},{"src":425,"dataGaName":422,"dataGaLocation":417},{"button":440,"mobileIcon":445,"desktopIcon":447},{"text":441,"config":442},"/Option",{"href":443,"dataGaName":444,"dataGaLocation":417},"#contact","switch",{"altText":419,"config":446},{"src":421,"dataGaName":422,"dataGaLocation":417},{"altText":419,"config":448},{"src":449,"dataGaName":422,"dataGaLocation":417},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":451,"mobileIcon":456,"desktopIcon":458},{"text":452,"config":453},"Zurück zur Preisübersicht",{"href":196,"dataGaName":454,"dataGaLocation":417,"icon":455},"back to pricing","GoBack",{"altText":419,"config":457},{"src":421,"dataGaName":422,"dataGaLocation":417},{"altText":419,"config":459},{"src":425,"dataGaName":422,"dataGaLocation":417},{"title":461,"button":462,"config":467},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":463,"config":464},"GitLab Transcend jetzt ansehen",{"href":465,"dataGaName":466,"dataGaLocation":52},"/de-de/events/transcend/virtual/","transcend event",{"layout":468,"icon":469,"disabled":14},"release","AiStar",{"data":471},{"text":472,"source":473,"edit":479,"contribute":484,"config":489,"items":494,"minimal":695},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":474,"config":475},"Quelltext der Seite anzeigen",{"href":476,"dataGaName":477,"dataGaLocation":478},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":480,"config":481},"Diese Seite bearbeiten",{"href":482,"dataGaName":483,"dataGaLocation":478},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":485,"config":486},"Beteilige dich",{"href":487,"dataGaName":488,"dataGaLocation":478},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":490,"facebook":491,"youtube":492,"linkedin":493},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[495,540,591,633,660],{"title":194,"links":496,"subMenu":511},[497,501,506],{"text":498,"config":499},"Tarife anzeigen",{"href":196,"dataGaName":500,"dataGaLocation":478},"view plans",{"text":502,"config":503},"Vorteile von Premium",{"href":504,"dataGaName":505,"dataGaLocation":478},"/de-de/pricing/premium/","why premium",{"text":507,"config":508},"Vorteile von Ultimate",{"href":509,"dataGaName":510,"dataGaLocation":478},"/de-de/pricing/ultimate/","why ultimate",[512],{"title":360,"links":513},[514,516,518,520,525,530,535],{"text":59,"config":515},{"href":61,"dataGaName":62,"dataGaLocation":478},{"text":369,"config":517},{"href":371,"dataGaName":372,"dataGaLocation":478},{"text":374,"config":519},{"href":376,"dataGaName":377,"dataGaLocation":478},{"text":521,"config":522},"Status",{"href":523,"dataGaName":524,"dataGaLocation":478},"https://status.gitlab.com/","status",{"text":526,"config":527},"Nutzungsbedingungen",{"href":528,"dataGaName":529,"dataGaLocation":478},"/terms/","terms of use",{"text":531,"config":532},"Datenschutzerklärung",{"href":533,"dataGaName":534,"dataGaLocation":478},"/de-de/privacy/","privacy statement",{"text":536,"config":537},"Cookie-Einstellungen",{"dataGaName":538,"dataGaLocation":478,"id":539,"isOneTrustButton":14},"cookie preferences","ot-sdk-btn",{"title":97,"links":541,"subMenu":550},[542,546],{"text":543,"config":544},"DevSecOps-Plattform",{"href":79,"dataGaName":545,"dataGaLocation":478},"devsecops platform",{"text":547,"config":548},"KI-unterstützte Entwicklung",{"href":86,"dataGaName":549,"dataGaLocation":478},"ai-assisted development",[551],{"title":552,"links":553},"Themen",[554,558,563,568,573,576,581,586],{"text":115,"config":555},{"href":556,"dataGaName":557,"dataGaLocation":478},"/de-de/topics/ci-cd/","cicd",{"text":559,"config":560},"GitOps",{"href":561,"dataGaName":562,"dataGaLocation":478},"/de-de/topics/gitops/","gitops",{"text":564,"config":565},"DevOps",{"href":566,"dataGaName":567,"dataGaLocation":478},"/de-de/topics/devops/","devops",{"text":569,"config":570},"Versionskontrolle",{"href":571,"dataGaName":572,"dataGaLocation":478},"/de-de/topics/version-control/","version control",{"text":23,"config":574},{"href":575,"dataGaName":41,"dataGaLocation":478},"/de-de/topics/devsecops/",{"text":577,"config":578},"Cloud-nativ",{"href":579,"dataGaName":580,"dataGaLocation":478},"/de-de/topics/cloud-native/","cloud native",{"text":582,"config":583},"KI für das Programmieren",{"href":584,"dataGaName":585,"dataGaLocation":478},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":587,"config":588},"Agentische KI",{"href":589,"dataGaName":590,"dataGaLocation":478},"/de-de/topics/agentic-ai/","agentic ai",{"title":592,"links":593},"Lösungen",[594,597,599,604,608,611,614,617,619,621,623,628],{"text":140,"config":595},{"href":135,"dataGaName":596,"dataGaLocation":478},"Application Security Testing",{"text":127,"config":598},{"href":111,"dataGaName":112,"dataGaLocation":478},{"text":600,"config":601},"Agile Entwicklung",{"href":602,"dataGaName":603,"dataGaLocation":478},"/de-de/solutions/agile-delivery/","agile delivery",{"text":605,"config":606},"SCM",{"href":124,"dataGaName":607,"dataGaLocation":478},"source code management",{"text":115,"config":609},{"href":117,"dataGaName":610,"dataGaLocation":478},"continuous integration & delivery",{"text":166,"config":612},{"href":168,"dataGaName":613,"dataGaLocation":478},"value stream management",{"text":559,"config":615},{"href":616,"dataGaName":562,"dataGaLocation":478},"/de-de/solutions/gitops/",{"text":179,"config":618},{"href":181,"dataGaName":182,"dataGaLocation":478},{"text":184,"config":620},{"href":186,"dataGaName":187,"dataGaLocation":478},{"text":189,"config":622},{"href":191,"dataGaName":192,"dataGaLocation":478},{"text":624,"config":625},"Bildungswesen",{"href":626,"dataGaName":627,"dataGaLocation":478},"/de-de/solutions/education/","education",{"text":629,"config":630},"Finanzdienstleistungen",{"href":631,"dataGaName":632,"dataGaLocation":478},"/de-de/solutions/finance/","financial services",{"title":199,"links":634},[635,637,639,641,644,646,648,650,652,654,656,658],{"text":211,"config":636},{"href":213,"dataGaName":214,"dataGaLocation":478},{"text":216,"config":638},{"href":218,"dataGaName":219,"dataGaLocation":478},{"text":221,"config":640},{"href":223,"dataGaName":224,"dataGaLocation":478},{"text":226,"config":642},{"href":228,"dataGaName":643,"dataGaLocation":478},"docs",{"text":249,"config":645},{"href":251,"dataGaName":252,"dataGaLocation":478},{"text":244,"config":647},{"href":246,"dataGaName":247,"dataGaLocation":478},{"text":254,"config":649},{"href":256,"dataGaName":257,"dataGaLocation":478},{"text":262,"config":651},{"href":264,"dataGaName":265,"dataGaLocation":478},{"text":267,"config":653},{"href":269,"dataGaName":270,"dataGaLocation":478},{"text":272,"config":655},{"href":274,"dataGaName":275,"dataGaLocation":478},{"text":277,"config":657},{"href":279,"dataGaName":280,"dataGaLocation":478},{"text":282,"config":659},{"href":284,"dataGaName":285,"dataGaLocation":478},{"title":300,"links":661},[662,664,666,668,670,672,674,679,684,686,688,690],{"text":307,"config":663},{"href":309,"dataGaName":302,"dataGaLocation":478},{"text":312,"config":665},{"href":314,"dataGaName":315,"dataGaLocation":478},{"text":320,"config":667},{"href":322,"dataGaName":323,"dataGaLocation":478},{"text":325,"config":669},{"href":327,"dataGaName":328,"dataGaLocation":478},{"text":330,"config":671},{"href":332,"dataGaName":333,"dataGaLocation":478},{"text":335,"config":673},{"href":337,"dataGaName":338,"dataGaLocation":478},{"text":675,"config":676},"Nachhaltigkeit",{"href":677,"dataGaName":678,"dataGaLocation":478},"/sustainability/","Sustainability",{"text":680,"config":681},"Vielfalt, Inklusion und Zugehörigkeit",{"href":682,"dataGaName":683,"dataGaLocation":478},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":340,"config":685},{"href":342,"dataGaName":343,"dataGaLocation":478},{"text":350,"config":687},{"href":352,"dataGaName":353,"dataGaLocation":478},{"text":355,"config":689},{"href":357,"dataGaName":358,"dataGaLocation":478},{"text":691,"config":692},"Transparenzerklärung zu moderner Sklaverei",{"href":693,"dataGaName":694,"dataGaLocation":478},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":696},[697,699,702],{"text":526,"config":698},{"href":528,"dataGaName":529,"dataGaLocation":478},{"text":700,"config":701},"Cookies",{"dataGaName":538,"dataGaLocation":478,"id":539,"isOneTrustButton":14},{"text":531,"config":703},{"href":533,"dataGaName":534,"dataGaLocation":478},[705],{"id":706,"title":9,"body":28,"config":707,"content":709,"description":28,"extension":27,"meta":714,"navigation":14,"path":715,"seo":716,"stem":717,"__hash__":718},"blogAuthors/en-us/blog/authors/susie-bitters.yml",{"template":708},"BlogAuthor",{"name":9,"config":710},{"headshot":711,"linkedin":712,"ctfId":713},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664195/Blog/Author%20Headshots/susiebittersheadshot.png","https://www.linkedin.com/in/susie-bitters-33268410/","7yiomgeGp9k4a4srjDU1QK",{},"/en-us/blog/authors/susie-bitters",{},"en-us/blog/authors/susie-bitters","oXfcK-Cd6FO2mDuWYTMXFhcY16XNSSAcyheiVIWVd2k",[720,733,746],{"content":721,"config":731},{"title":722,"description":723,"authors":724,"heroImage":726,"date":727,"body":728,"category":11,"tags":729},"GitLab und Anthropic: Governed AI für die Unternehmensentwicklung","GitLab vertieft die Anthropic-Integration – KI-Governance, Auditierbarkeit und Cloud-Flexibilität für regulierte Unternehmen und den öffentlichen Sektor.",[725],"Stuart Moncada","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776457632/llddiylsgwuze0u1rjks.png","2026-04-28","Für Führungskräfte in Unternehmen und im öffentlichen Sektor ist die Spannung\nvertraut: Softwareteams müssen mit KI schneller werden, während Sicherheits-,\nCompliance- und regulatorische Anforderungen weiter steigen. GitLab vertieft\ndie Integration mit Anthropic Claude, sodass Unternehmen Zugang zu neu\nveröffentlichten Claude-Modellen innerhalb von GitLabs intelligenter\nOrchestrierungsplattform erhalten – dort, wo Governance, Compliance und\nAuditierbarkeit bereits verankert sind.\n\nClaude treibt Funktionen der gesamten GitLab Duo Agent Platform als\nStandardmodell an – für Anwendungsfälle von Code-Generierung und -Review bis\nhin zu agentischem Chat und Vulnerability Resolution. Wer GitLab Duo bereits\nnutzt, hat bereits erlebt, wie Duo-Agenten Workflows über den gesamten Software\nDevelopment Lifecycle (SDLC) automatisieren.\n\nDas beschleunigt die Integration von Claudes Fähigkeiten in GitLab, erweitert\ndie Deployment-Optionen für Unternehmen und unterstreicht, was GitLab als\nPlattform für Softwareentwicklung grundlegend unterscheidet: Governance,\nCompliance und Auditierbarkeit, die in jede KI-Interaktion eingebaut sind.\n\n> \"GitLab Duo hat beschleunigt, wie unsere Teams Software planen, bauen und\n> ausliefern. Die Kombination aus Anthropics Claude und GitLabs Plattform\n> bedeutet, dass wir leistungsfähigere KI erhalten, ohne zu ändern, wie wir\n> arbeiten oder wie sie kontrolliert wird.\"\n>\n> – Mans Booijink, Operations Manager, Cube\n\n\n## Der entscheidende Unterschied: Governed AI\n\nBei GitLab sind Governance-Kontrollen und Auditing in den SDLC eingebaut. Wenn\nClaude über die GitLab Duo Agent Platform eine Codeänderung vorschlägt, durchläuft\ndieser Vorschlag denselben Merge-Request-Prozess, dieselben Freigaberegeln,\ndasselbe Security Scanning und denselben Audit-Trail wie jede andere Änderung.\nKI erhält keine Ausnahme von den bestehenden Kontrollen. Sie operiert innerhalb\ndieser Kontrollen.\n\nJe weiter GitLab in die agentische Softwareentwicklung vordringt – bei der KI\nklar definierte Aufgaben autonom übernimmt – desto wichtiger wird die\nGovernance-Schicht. Ein KI-Agent, der einen Merge Request öffnen, eine\nSchwachstelle beheben oder einen Service refaktorieren kann, muss auditierbar\nund zuordenbar sein und denselben Richtliniendurchsetzungen unterliegen wie ein\nmenschlicher Entwickler. Diese Anforderung ist eine architektonische Entscheidung,\ndie GitLab von Beginn an getroffen hat – und die umso bedeutsamer wird, je mehr\nVerantwortung KI-Agenten übernehmen.\n\n\n## Deployment-Flexibilität für Unternehmen\n\nDie Integration erweitert auch, wie Unternehmen über GitLab auf die neuesten\nClaude-Modelle zugreifen. Claude ist innerhalb von GitLab über Google Cloud\nVertex AI und AWS Bedrock verfügbar – Unternehmen können KI-Workloads über die\nHyperscaler-Commitments und Cloud-Governance-Frameworks leiten, die bereits\nbestehen. Kein separater Anbietervertrag, keine neuen Fragen zur Datenresidenz.\nDie bestehende GCP- oder AWS-Beziehung ist der Einstiegspunkt.\n\nGitLab ist jetzt auch im [Claude Marketplace](https://claude.com/platform/marketplace)\nverfügbar. Kunden können dort GitLab Credits erwerben und auf bestehende\nAnthropic-Ausgaben-Commitments anrechnen – KI-Ausgaben konsolidieren und die\nBeschaffung von GitLab neben Anthropic-Investitionen vereinfachen.\n\n\n## Auf dem Weg in eine agentische Zukunft\n\nGitLabs Vision für agentische Softwareentwicklung – bei der KI definierte\nAufgaben autonom über Planung, Coding, Testing, Security und Deployment hinweg\nübernimmt – setzt Modelle mit starkem Reasoning, Zuverlässigkeit und\nSicherheitseigenschaften voraus. Und sie setzt eine Plattform voraus, auf der\ndiese autonomen Aktionen vollständig kontrolliert werden.\n\nAgentische Workflows erfordern Modelle mit starkem Reasoning, Zuverlässigkeit\nund Sicherheitseigenschaften – Kriterien, die die Auswahl und Integration von\nKI-Modellpartnern bei GitLab leiten. GitLabs Governance-Framework stellt sicher,\ndass Unternehmen bei zunehmendem KI-Einsatz in der Entwicklung vollständige\nTransparenz und Kontrolle darüber behalten, was diese Agenten tun, wann sie es\ntun und wie Änderungen nachverfolgt werden.\n\n\n## Was das für GitLab-Kunden bedeutet\n\nWer GitLab Duo Agent Platform bereits einsetzt, erhält Zugang zu Claude-Modellen\nund tieferer KI-Unterstützung über den gesamten Software Development Lifecycle –\ninnerhalb des Governance-Frameworks, auf das bereits vertraut wird.\n\nWer KI-gestützte Softwareentwicklungsplattformen evaluiert, sollte nicht zwischen\nfortschrittlichen KI-Fähigkeiten und Unternehmenskontrolle wählen müssen. Diese\nstrategische Integration ist darauf ausgelegt, beides zu liefern.\n\n> Mehr über GitLab Duo Agent Platform erfahren?\n> [Demo anfragen oder kostenlose Testversion starten](https://about.gitlab.com/de-de/gitlab-duo-agent-platform/).\n",[22,730,285],"product",{"featured":14,"template":15,"slug":732},"gitlab-and-anthropic-governed-ai-for-enterprise-development",{"content":734,"config":744},{"title":735,"description":736,"authors":737,"heroImage":739,"date":740,"body":741,"category":11,"tags":742},"glab CLI: Strukturierter GitLab-Zugriff für KI-Agenten","Das GitLab CLI (glab) gibt KI-Agenten strukturierten Zugriff auf Projekte via MCP. Tutorial: Code-Reviews und Issue-Triage mit glab beschleunigen.",[738],"Kai Armstrong","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776347152/unw3mzatkd5xyfbzcnni.png","2026-04-27","Wenn Teams GitLab Duo, Claude, Cursor und andere KI-Assistenten einsetzen,\nläuft ein wachsender Teil des Entwicklungs-Workflows über einen KI-Agenten,\nder im eigenen Auftrag handelt – Issues liest, Merge Requests prüft, Pipelines\nausführt und dabei hilft, schneller zu liefern. Die meisten Entwickler(innen) nutzen\n`glab` bereits vom Terminal aus, um mit GitLab zu interagieren. Beides zu\nkombinieren ist der naheliegende nächste Schritt.\n\nDas Problem: Ohne die richtigen Werkzeuge rät ein KI-Agent im Wesentlichen,\nwenn es um GitLab-Projekte geht. Er könnte die Details eines Issues\nhalluzinieren, den er nie gesehen hat, einen Merge Request auf Basis veralteter\nTrainingsdaten zusammenfassen statt anhand seines tatsächlichen Zustands – oder\nverlangen, dass Kontext manuell aus einem Browser-Tab kopiert und in ein\nChat-Fenster eingefügt wird, bevor überhaupt begonnen werden kann. Jede dieser\nUmgehungslösungen ist Reibung: Sie verlangsamt die Arbeit, eröffnet\nFehlermöglichkeiten und setzt eine harte Obergrenze dafür, was der Agent\ntatsächlich leisten kann. Das GitLab CLI (`glab`) ändert das, indem es Agenten\neine direkte, zuverlässige Schnittstelle zu Projekten gibt.\n\nMit `glab` ruft der Agent das Benötigte direkt von GitLab ab, handelt darauf\nund meldet das Ergebnis zurück – sodass weniger Zeit damit verbracht wird,\nInformationen weiterzugeben, und mehr Zeit für die eigentliche Arbeit bleibt.\n\nIn diesem Tutorial wird gezeigt, wie `glab` KI-Agenten strukturierten,\nzuverlässigen Zugriff auf GitLab-Projekte ermöglicht – und wie das einen\nschnelleren, leistungsfähigeren Entwicklungs-Workflow freischaltet.\n\n\n## KI-Agent über MCP mit GitLab verbinden\n\nDer direkteste Weg, KI-Workflows deutlich leistungsfähiger zu machen, besteht\ndarin, dem KI-Agenten nativen Zugriff auf `glab` über das Model Context\nProtocol ([MCP](https://about.gitlab.com/topics/ai/model-context-protocol/))\nzu geben.\n\nMCP ist ein offener Standard, der KI-Werkzeugen ermöglicht, externe Fähigkeiten\nzur Laufzeit zu entdecken und zu nutzen. Nach der Verbindung kann der\nKI-Assistent Issues lesen, Merge Requests kommentieren, Pipeline-Status prüfen\nund zurück in GitLab schreiben – ohne etwas aus der UI zu kopieren oder auch\nnur einen einzigen API-Aufruf selbst zu schreiben.\n\nEinstieg mit:\n\n```shell\n# MCP-Server von glab starten\nglab mcp serve\n```\n\nSobald der MCP-Client konfiguriert ist, kann die KI Fragen wie *„Was ist der\nStatus meiner offenen MRs?\"* oder *„Gibt es fehlgeschlagene Pipelines auf\nmain?\"* beantworten, indem sie GitLab direkt abfragt – nicht durch Scraping der\nWeb-UI, nicht durch veraltete Trainingsdaten. Die\n[vollständige Setup-Dokumentation](https://docs.gitlab.com/cli/) enthält\nKonfigurationsschritte für Claude Code, Cursor und andere Editoren.\n\nEin wichtiges Detail: `glab` fügt automatisch `--output json` hinzu, wenn es\nüber MCP aufgerufen wird – für jeden Befehl, der das unterstützt. Der Agent\nerhält saubere, strukturierte Daten, ohne dass über Ausgabeformate nachgedacht\nwerden muss. Und da `glab` das offizielle MCP SDK verwendet, bleibt es\nkompatibel, wenn sich das Protokoll weiterentwickelt.\n\nWir haben bewusst entschieden, *welche* Befehle über MCP zugänglich sind.\nBefehle, die interaktive Terminalausgabe erfordern, sind absichtlich\nausgeschlossen – der Agent bleibt nie in einem Wartezustand für Eingaben, die\nnie kommen. Was zugänglich ist, funktioniert zuverlässig im Agenten-Kontext.\n\n\n## KI am Code-Review beteiligen\n\nDie meisten Entwickler(innen) haben einen Rückstand an MRs, die auf Review warten.\nDas ist einer der zeitintensivsten Teile der Arbeit – und einer der besten\nAnsatzpunkte für KI. Mit `glab` beobachtet der Agent die Review-Queue nicht\nnur, sondern arbeitet sie gemeinsam durch.\n\n### Genau sehen, was noch offen ist\n\nEinstieg mit:\n\n```shell\nglab mr view 2677 --comments --unresolved --output json\n```\n\nDieser Befehl gibt den vollständigen MR zurück: Metadaten, Beschreibung und\njede ungelöste Diskussion als einzelnes strukturiertes JSON-Payload. Das gibt\nder KI alles, was sie braucht: welche Threads offen sind, was der Reviewer\nangefragt hat und in welchem Kontext. Kein Tab-Wechsel, kein manuelles Kopieren\neinzelner Kommentare.\n\n```json\n{\n  \"id\": 2677,\n  \"title\": \"feat: add OAuth2 support\",\n  \"state\": \"opened\",\n  \"author\": { \"username\": \"jdwick\" },\n  \"labels\": [\"backend\", \"needs-review\"],\n  \"blocking_discussions_resolved\": false,\n  \"discussions\": [\n    {\n      \"id\": \"3107030349\",\n      \"resolved\": false,\n      \"notes\": [\n        {\n          \"author\": { \"username\": \"dmurphy\" },\n          \"body\": \"This error handling will swallow panics — consider wrapping with recover()\",\n          \"created_at\": \"2026-03-14T09:23:11.000Z\"\n        }\n      ]\n    },\n    {\n      \"id\": \"3107030412\",\n      \"resolved\": false,\n      \"notes\": [\n        {\n          \"author\": { \"username\": \"sreeves\" },\n          \"body\": \"Token refresh logic needs a test for the expired token case\",\n          \"created_at\": \"2026-03-14T10:05:44.000Z\"\n        }\n      ]\n    }\n  ]\n}\n```\n\nStatt jeden Thread selbst durchzulesen, lässt sich der Agent fragen:\n*„Was muss ich in MR 2677 noch beheben?\"* – und erhält eine priorisierte\nZusammenfassung mit Änderungsvorschlägen. Das alles aus einem einzigen Befehl.\n\n### Den Kreislauf programmatisch schließen\n\nSobald der KI geholfen hat, das Feedback zu adressieren, kann sie Diskussionen\nauflösen:\n\n```shell\n# Alle Diskussionen auflisten – strukturiert, bereit für den Agenten\nglab mr note list 456 --output json\n\n# Diskussion auflösen, sobald das Feedback adressiert wurde\nglab mr note resolve 456 3107030349\n\n# Wieder öffnen, wenn etwas erneut geprüft werden muss\nglab mr note reopen 456 3107030349\n```\n\n```json\n[\n  {\n    \"id\": 3107030349,\n    \"body\": \"This error handling will swallow panics — consider wrapping with recover()\",\n    \"author\": { \"username\": \"dmurphy\" },\n    \"resolved\": false,\n    \"resolvable\": true\n  },\n  {\n    \"id\": 3107030412,\n    \"body\": \"Token refresh logic needs a test for the expired token case\",\n    \"author\": { \"username\": \"sreeves\" },\n    \"resolved\": false,\n    \"resolvable\": true\n  }\n]\n```\n\nNote-IDs sind direkt in der GitLab-UI und der API sichtbar – kein zusätzlicher\nLookup nötig. Der Agent kann die vollständige Liste durcharbeiten, jeden Fix\nprüfen und dabei auflösen.\n\n\n## Mit der KI effektiver über Code sprechen\n\nAuch ohne laufenden MCP-Server gibt es eine einfachere Umstellung, die einen\ngroßen Unterschied macht: `glab` einsetzen, um der KI bessere Informationen zu\nliefern.\n\nBeim letzten Mal, als ein KI-Assistent bei der Issue-Triage oder beim Debuggen\neiner fehlgeschlagenen Pipeline geholfen hat, wurde wahrscheinlich etwas Text\naus der GitLab-UI kopiert und in den Chat eingefügt. Das ist es, womit der\nAgent tatsächlich arbeitet:\n\n```text\nopen issues: 12 • milestone: 17.10 • label: bug, needs-triage ...\n```\n\nIm Vergleich dazu, was er mit `glab` erhält:\n\n```json\n[\n  {\n    \"iid\": 902,\n    \"title\": \"Pipeline fails on merge to main\",\n    \"labels\": [\"bug\", \"needs-triage\"],\n    \"milestone\": { \"title\": \"17.10\" },\n    \"assignees\": []\n  },\n  ...\n]\n```\n\nStrukturiert, typisiert, vollständig – keine Mehrdeutigkeit, kein\nInterpretationsaufwand beim Parsen. Das ist der Unterschied zwischen einem\nAgenten, der handeln kann, und einem, der Rückfragen stellen muss.\n\nMit dem MCP-Server passiert das automatisch: `glab` fügt `--output json` für\njeden Befehl hinzu, der das unterstützt. Beim direkten Arbeiten im Terminal\neinfach das Flag selbst ergänzen:\n\n```shell\n# Offene Issues für Triage abrufen\nglab issue list --label \"needs-triage\" --output json\n\n# Pipeline-Status prüfen\nglab ci status --output json\n\n# Vollständige MR-Details abrufen\nglab mr view 456 --output json\n```\n\nDie JSON-Ausgabe wurde in letzten Releases erheblich erweitert. Sie deckt jetzt\nCI-Status, Milestones, Labels, Releases, Schedules, Cluster-Agenten, Work\nItems, MR-Genehmiger, Repository-Mitwirkende und mehr ab. Was `glab` abrufen\nkann, kann die KI sauber verarbeiten.\n\n### Ein echter Workflow\n\n```shell\n$ glab issue list --label \"needs-triage\" --milestone \"17.10\" \\\n--output json\n```\n\n```text\nAgent: I found 2 unassigned bugs in the 17.10 milestone that need triage:\n1. #902 — Pipeline fails on merge to main (opened 5 days ago)\n2. #903 — Auth token not refreshing on expiry (opened 4 days ago)\nBoth are unassigned. Want me to draft triage notes and suggest assignees based on recent commit history?\n```\n\n\n## Der Agent ist keineswegs auf eingebaute Befehle beschränkt\n\nDie nativen Befehle von `glab` decken die gängigsten Workflows ab – aber der\nAgent ist nicht darauf beschränkt. Über `glab api` hat er authentifizierten\nZugriff auf die vollständige GitLab REST- und GraphQL-API-Oberfläche, mit\nderselben Session, ohne zusätzliche Credentials oder Konfiguration.\n\nDas ist ein wesentlicher Unterschied. Die meisten CLI-Werkzeuge beschränken\nsich auf das, was ihre Befehle abbilden. Mit `glab` gilt: Wenn GitLabs API es\nunterstützt, kann der Agent es tun – immer aus einem vertrauenswürdigen,\nauthentifizierten Kontext heraus.\n\nEin praktisches Beispiel: nur die Liste der geänderten Dateien in einem MR\nabrufen, bevor entschieden wird, welche Diffs vollständig geladen werden:\n\n```shell\n# Geänderte Dateipfade abrufen – leichtgewichtig, noch kein Diff-Inhalt\nglab api \"/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/diffs?per_page=100\" \\\n| jq '.[].new_path'\n\n# Dann nur die spezifische Datei laden, die der Agent benötigt\nglab api \"/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/diffs?per_page=100\" \\\n| jq '.[] | select(.new_path == \"path/to/file.go\")'\n```\n\n```text\n\"internal/auth/token.go\"\n\"internal/auth/token_test.go\"\n\"internal/oauth/refresh.go\"\n```\n\nFür alles, was die REST API nicht abdeckt (Epics, bestimmte Work-Item-Abfragen,\nkomplexe projektübergreifende Daten), bietet `glab api graphql` die vollständige\nGraphQL-Schnittstelle:\n\n```shell\nglab api graphql -f query='\n{\n  project(fullPath: \"gitlab-org/gitlab\") {\n    mergeRequest(iid: \"12345\") {\n      title\n      reviewers { nodes { username } }\n    }\n  }\n}'\n```\n\n```json\n{\n  \"data\": {\n    \"project\": {\n      \"mergeRequest\": {\n        \"title\": \"feat: add OAuth2 support\",\n        \"reviewers\": {\n          \"nodes\": [\n            { \"username\": \"dmurphy\" },\n            { \"username\": \"sreeves\" }\n          ]\n        }\n      }\n    }\n  }\n}\n```\n\nEin einziger, authentifizierter Einstiegspunkt zu allem, was GitLab\nbereitstellt – ohne Token-Jonglieren, separate API-Clients oder\nKonfigurationsaufwand.\n\n\n## Was als Nächstes kommt – und Feedback\n\nZwei Verbesserungen, an denen aktiv gearbeitet wird, werden `glab` für\nAgenten-Workflows noch nützlicher machen:\n\n**Auf Agenten abgestimmter Hilfetext.** Heute ist die `--help`-Ausgabe für\nMenschen am Terminal geschrieben. Sie wird aktualisiert, um für jeden\ninteraktiven Befehl die nicht-interaktive Alternative anzuzeigen, Befehle mit\n`--output json`-Unterstützung zu kennzeichnen und Hilfe generell zu einer\nnützlichen Ressource für Agenten zu machen, die Fähigkeiten zur Laufzeit\nentdecken – nicht nur für Menschen.\n\n**Besser maschinenlesbare Fehlermeldungen.** Wenn heute etwas schiefläuft,\nerhalten Agenten dieselben menschenlesbaren Fehlermeldungen wie\nTerminal-Nutzende. Das wird geändert: Fehler im JSON-Modus geben strukturierte\nAusgaben zurück, die dem Agenten die Informationen liefern, die er braucht, um\nFehler sauber zu behandeln, intelligent zu wiederholen oder den richtigen\nKontext zurückzugeben.\n\nBeide Punkte sind in aktiver Entwicklung. Wer `glab` bereits mit einem\nKI-Werkzeug einsetzt, ist genau die Zielgruppe, deren Erfahrungen uns\ninteressieren.\n\n* **Welche Reibungspunkte gibt es?** Befehle, die sich in Agenten-Kontexten\n  nicht gut verhalten, Fehlermeldungen ohne Handlungsanleitung, Lücken in der\n  JSON-Ausgabe. Feedback ist willkommen.\n\n* **Welche Workflows wurden erschlossen?** Reale Nutzungsmuster helfen dabei,\n  Prioritäten für die weitere Entwicklung zu setzen.\n\nDie Diskussion findet im\n[Feedback-Issue](https://gitlab.com/gitlab-org/cli/-/issues/8177) statt –\ndort wird die Roadmap für Agenten-Freundlichkeit gestaltet, und Beiträge haben\ndort den direktesten Einfluss. Wer eine spezifische Lücke gefunden hat,\nkann ein [Issue öffnen](https://gitlab.com/gitlab-org/cli/-/issues/new). Wer\neinen Fix im Sinn hat: Beiträge sind willkommen. Details unter\n[CONTRIBUTING.md](https://gitlab.com/gitlab-org/cli/-/blob/main/CONTRIBUTING.md).\n\nDas GitLab CLI stand schon immer dafür, Entwickler(inne)n mehr Kontrolle über ihren\nWorkflow zu geben. Da KI ein immer größerer Teil der täglichen Arbeit wird,\nbedeutet das, `glab` zur bestmöglichen Schnittstelle zwischen KI-Werkzeugen\nund GitLab-Projekten zu machen. Wir stehen am Anfang – und freuen uns darauf,\nden nächsten Teil gemeinsam zu gestalten.\n",[22,730,743],"tutorial",{"featured":14,"template":15,"slug":745},"give-your-ai-agent-direct-structured-gitlab-access-with-glab-cli",{"content":747,"config":755},{"title":748,"description":749,"authors":750,"heroImage":739,"date":752,"body":753,"category":11,"tags":754},"GitHubs neue Copilot-Richtlinie: Was regulierte Unternehmen jetzt prüfen müssen","Warum GitLabs Datenverwaltungsansatz strukturell anders ist – und was GitHubs neue Copilot-Richtlinie für regulierte Unternehmen bedeutet.",[751],"Allie Holland","2026-04-20","GitHub hat kürzlich angekündigt, wie Interaktionsdaten von Copilot-Nutzenden\nkünftig verwendet werden. Ab dem 24. April 2026 werden Daten aus Copilot Free,\nPro und Pro+ standardmäßig zum Training von KI-Modellen genutzt, sofern\nNutzende nicht aktiv widersprechen. Betroffen sind Eingaben, Ausgaben,\nCode-Snippets und zugehöriger Kontext. Copilot Business und Enterprise sind\naufgrund bestehender Vertragskonditionen ausgenommen.\n\nFür Unternehmen in regulierten Branchen wirft diese Änderung Fragen auf, die\nüber individuelle Entwicklerpräferenzen weit hinausgehen. Sie zwingt zu einer\ngrundlegenden Prüfung, die Führungskräfte aus Engineering und IT-Sicherheit\njedem KI-Anbieter in ihrem Stack stellen sollten: Werden unsere Daten für\nKI-Training verwendet?\n\nGitLabs Antwort lautet: Nein. GitLab trainiert KI-Modelle nicht mit\nKundendaten – auf keiner Preisstufe. KI-Anbieter sind vertraglich verpflichtet,\nKundeneingaben und -ausgaben nicht für eigene Zwecke zu verwenden. Das\n[GitLab AI Transparency Center](https://about.gitlab.com/de-de/ai-transparency-center/)\nmacht diese Zusage prüfbar. Eine zentrale Dokumentation zeigt, welche Modelle\nwelche Funktionen betreiben, wie Daten verarbeitet werden, welche\nUnterauftragsverarbeiter beteiligt sind und wie lange Daten gespeichert werden.\nDas AI Transparency Center dokumentiert außerdem den Compliance-Status jeder\nFunktion – einschließlich der Bestätigung, dass GitLabs aktuelle KI-Funktionen\nnicht als Hochrisikosysteme im Sinne des EU AI Act eingestuft werden. Diesen\nStandard hat GitLab-CEO Bill Staples\n[wiederholt bekräftigt](https://www.linkedin.com/posts/williamstaples_gitlab-1810-agentic-ai-now-open-to-even-activity-7443280763715985408-aHxf)\n– er spiegelt GitLabs Unternehmensmission und das\n[Trust Center](https://trust.gitlab.com/) wider.\n\n\n## Was die Richtlinienänderung tatsächlich bedeutet\n\nGitHub gibt zudem an, dass die Daten mit verbundenen Unternehmen – darunter\nMicrosoft – für KI-Entwicklungszwecke geteilt werden können.\n\nQuellcode zählt häufig zum sensibelsten geistigen Eigentum eines Unternehmens.\nEr kann proprietäre Geschäftslogik abbilden, interne Systemarchitekturen\noffenlegen oder Datenflüsse berühren, die strengen Aufbewahrungs- und\nZugriffsrichtlinien unterliegen. Wenn dieser Code einen KI-Assistenten\ndurchläuft und zum Training von Modellen verwendet wird, die auch Wettbewerbern\ndienen, werden Anbieterdatenpraktiken zu einem konkreten IP-Risiko. Regulierte\nBranchen weltweit – von Finanzdienstleistungen über Gesundheitswesen bis zum\nöffentlichen Sektor – operieren unter Compliance-Anforderungen, die genau\ndiesen Punkt adressieren: dokumentierte, prüfbare Kontrolle über den Umgang\nDritter mit sensiblen Daten.\n\nEine Anbieterrichtlinie, die Datenstandardeinstellungen ändert, ein aktives\nWiderspruchsrecht erfordert und je nach Vertragsstufe unterschiedliche\nSchutzstandards bietet, erzeugt genau die Art unkontrollierbarer Variablen,\ndie Compliance-Teams nicht akzeptieren können. Der\n[Digital Operational Resilience Act (DORA)](https://eur-lex.europa.eu/eli/reg/2022/2554/oj/eng)\n– seit Januar 2025 für europäische Finanzinstitute verbindlich – macht dies\nexplizit: Wesentliche Änderungen an IT-Drittanbieterbeziehungen erfordern\ndokumentierte Bewertung und Nachverfolgung.\n\n\n## Was regulierte Unternehmen von KI-Anbietern tatsächlich benötigen\n\nRegulierte Unternehmen diskutieren nicht mehr grundsätzlich, ob KI in\nEntwicklungs-Workflows eingesetzt werden soll. Der Fokus liegt darauf, dies so\nzu tun, dass es gegenüber Aufsichtsbehörden, Vorständen und Kunden vertretbar\nist. Dabei sind branchenübergreifend konsistente Anforderungen sichtbar\ngeworden.\n\n**Vertragliche Klarheit.** Regulierte Unternehmen benötigen spezifische,\ndokumentierte und bedingungslose Zusagen darüber, was mit ihren Daten geschieht\n– nicht etwas, das je nach Vertragsstufe variiert oder eine Handlung vor einem\nStichtag erfordert.\n\n**Prüfbarkeit.** IT-Risikomanagement-Frameworks verlangen von Unternehmen, die\neingesetzten KI-Systeme zu verstehen und zu validieren: die Trainingsdaten\nhinter diesen Modellen und die beteiligten Drittparteien. Anbieter, die diese\nFragen nicht beantworten können, erzeugen Dokumentationsrisiken für die\nOrganisationen, die sich auf sie stützen.\n\n**Trennung von Anbieterinteressen.** Wenn ein KI-Anbieter Modelle auf Basis\nvon Kundennutzungsdaten trainiert, werden Code und Workflows zu Eingaben für\nein System, das auch Wettbewerbern dient. Für Institutionen mit proprietären\nHandelsalgorithmen, Underwriting-Modellen oder Betrugserkennungssystemen ist\ndas ein konkretes IP-Risiko.\n\n\n## GitLabs Position zur KI-Datenverwaltung\n\nGitLab verwendet Kundendaten nicht zum Training von KI-Modellen. Diese Zusage\ngilt auf jeder Preisstufe; KI-Anbieter sind vertraglich verpflichtet, Eingaben\nund Ausgaben, die mit GitLab-Kunden verbunden sind, nicht für eigene Zwecke zu\nverwenden.\n\nDies ist eine bewusste architektonische und richtlinienbezogene Entscheidung –\nkein Merkmal einer bestimmten Preisstufe. Wie GitLabs\n[Beitrag zur Enterprise-Unabhängigkeit](https://about.gitlab.com/de-de/blog/why-enterprise-independence-matters-more-than-ever-in-devsecops/)\nfesthält, ist Datenverwaltung zu einem \"zunehmend kritischen Faktor bei\nUnternehmensentscheidungen\" geworden – getrieben durch nationale und regionale\nDatenschutzgesetze und wachsende Bedenken hinsichtlich der Kontrolle über\nsensibles geistiges Eigentum.\n\nGitLab ist cloud-neutral und modell-neutral und unterstützt\nSelf-Hosted-Deployments ohne kommerzielle Bindung an einen einzelnen\nCloud-Anbieter oder ein Large Language Model. Diese Unabhängigkeit ist für\nregulierte Unternehmen relevant, die Risiken durch Anbieterkonzentration\nbewerten. Der\n[AI Continuity Plan](https://handbook.gitlab.com/handbook/product/ai/continuity-plan/)\ndokumentiert, wie Anbieterveränderungen gehandhabt werden – einschließlich\nwesentlicher Änderungen daran, wie KI-Anbieter Kundendaten behandeln. Er ist\neine direkte Antwort auf die Governance-Anforderungen unter Frameworks wie\n[DORA](https://handbook.gitlab.com/handbook/legal/dora/).\n\n\n## Die Governance-Lücke, die KI-Teams schließen müssen\n\nGitHubs Richtlinienaktualisierung macht deutlich: Für Unternehmen in\nregulierten Branchen ist das genaue Verständnis des Datenumgangs eines\nKI-Werkzeugs eine Voraussetzung für dessen Einsatz. Das bedeutet, Anbietern\nklare, dokumentierte Antworten auf folgende Fragen abzuverlangen:\n\n1. Werden unsere Daten zum Training von KI-Modellen verwendet?\n2. Wer sind Ihre KI-Modell-Unterauftragsverarbeiter?\n3. Was geschieht, wenn ein Anbieter seine Datenpraktiken ändert?\n4. Lässt sich ein Deployment realisieren, das alle KI-Verarbeitung innerhalb\n   der eigenen Infrastruktur hält?\n5. Welche Haftungsübernahme wird für KI-generierte Ausgaben angeboten?\n\nAnbieter, die diese Fragen klar beantworten und die Antworten in prüfbarer\nForm dokumentieren, sind Anbieter, auf die sich aufbauen lässt.\n**Wer das nicht kann, schafft Compliance-Risiken bei jedem Policy-Update.**\nWenn ein Anbieter Datenpraktiken mit 30 Tagen Ankündigungsfrist ändern kann,\nist das kein partnerschaftlicher Rahmen für regulierte Unternehmen – das ist\nein strukturelles Compliance-Risiko.\n\n> Mehr zu GitLabs Ansatz für KI-Governance im\n> [GitLab AI Transparency Center](https://about.gitlab.com/de-de/ai-transparency-center/).\n",[22,730],{"featured":35,"template":15,"slug":756},"github-copilots-new-policy-for-ai-training-is-a-governance-wake-up-call",{"promotions":758},[759,772,783,795],{"id":760,"categories":761,"header":762,"text":763,"button":764,"image":769},"ai-modernization",[11],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":765,"config":766},"Get your AI maturity score",{"href":767,"dataGaName":768,"dataGaLocation":252},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":770},{"src":771},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":773,"categories":774,"header":775,"text":763,"button":776,"image":780},"devops-modernization",[730,41],"Are you just managing tools or shipping innovation?",{"text":777,"config":778},"Get your DevOps maturity score",{"href":779,"dataGaName":768,"dataGaLocation":252},"/assessments/devops-modernization-assessment/",{"config":781},{"src":782},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":784,"categories":785,"header":787,"text":763,"button":788,"image":792},"security-modernization",[786],"security","Are you trading speed for security?",{"text":789,"config":790},"Get your security maturity score",{"href":791,"dataGaName":768,"dataGaLocation":252},"/assessments/security-modernization-assessment/",{"config":793},{"src":794},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":796,"paths":797,"header":800,"text":801,"button":802,"image":807},"github-azure-migration",[798,799],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":803,"config":804},"See how GitLab compares to GitHub",{"href":805,"dataGaName":806,"dataGaLocation":252},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":808},{"src":782},{"header":810,"blurb":811,"button":812,"secondaryButton":817},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":813,"config":814},"Kostenlosen Test starten",{"href":815,"dataGaName":57,"dataGaLocation":816},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":59,"config":818},{"href":61,"dataGaName":62,"dataGaLocation":816},1777493572692]