[{"data":1,"prerenderedAt":776},["ShallowReactive",2],{"/de-de/blog/automating-agile-workflows-with-the-gitlab-triage-gem":3,"navigation-de-de":41,"banner-de-de":443,"footer-de-de":453,"blog-post-authors-de-de-GitLab":658,"blog-related-posts-de-de-automating-agile-workflows-with-the-gitlab-triage-gem":672,"blog-promotions-de-de":712,"next-steps-de-de":766},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":28,"isFeatured":12,"meta":29,"navigation":30,"path":31,"publishedDate":20,"seo":32,"stem":36,"tagSlugs":37,"__hash__":40},"blogPosts/de-de/blog/automating-agile-workflows-with-the-gitlab-triage-gem.yml","Automating Agile Workflows With The Gitlab Triage Gem",[7],"gitlab",null,"product",{"slug":11,"featured":12,"template":13},"automating-agile-workflows-with-the-gitlab-triage-gem",false,"BlogPost",{"title":15,"description":16,"authors":17,"heroImage":19,"date":20,"body":21,"category":9,"tags":22,"updatedDate":27},"Automatisiere Agile-Workflows mit dem gem gitlab-triage","In unserer Serie „Erste Schritte mit GitLab“ erfährst du, wie du wiederkehrende Aufgaben – zum Beispiel die Triage von Tickets und Merge Requests – automatisierst und deinen Entwickler(inne)n dadurch wertvolle Zeit sparst.",[18],"GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659525/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25.png","2025-03-13","*Willkommen zu unserer Serie „Erste Schritte mit GitLab“, in der wir Einsteiger(inne)n helfen, die GitLabs DevSecOps-Plattform kennenzulernen.*\n\nIn diesem Beitrag geht es um das gem [`gitlab-triage`](https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage), ein leistungsstarkes Tool, mit dem du Bots erstellen kannst, um deinen Agile-Workflow zu automatisieren.\n\n## Warum solltest du deinen Workflow automatisieren?\n\nEffizienz ist in der Softwareentwicklung ausschlaggebend. Indem du wiederkehrende Aufgaben wie die Triage von Tickets und Merge Requests automatisierst, schaffst du wertvolle Zeit für dein Team, in der es sich auf das Wichtigste konzentrieren kann: tolle Software zu entwickeln.\n\nMit `gitlab-triage` kannst du Folgendes tun:\n\n* **Konsistenz sicherstellen:** Wende Labels an und weise Tickets automatisch anhand vordefinierter Regeln zu.\n* **Reaktionszeit verbessern:** Erhalte sofortiges Feedback zu neuen Tickets und Merge Requests.\n* **Manuellen Aufwand reduzieren:** Mache manuelle Triage und Updates überflüssig.\n* **Produktivität steigern:** Entlaste dein Team, damit es sich auf das Programmieren und auf Innovationen konzentrieren kann.\n\n## Wir stellen vor: das gem `gitlab-triage`\n\nDas gem `gitlab-triage` ist eine Ruby-Bibliothek, mit der du Bots erstellen kannst, die mit deinen GitLab-Projekten interagieren. Diese Bots können automatisch verschiedenste Aktionen durchführen, darunter:\n\n* **Labels zuweisen:** Kategorisiere Tickets und Merge Requests automatisch.\n* **Kommentare verfassen:** Gib Neuheiten bekannt, fordere Informationen an oder hinterlasse Feedback.\n* **Aufgaben zuweisen:** Weise Tickets und Merge Request dem passenden Teammitglied zu.\n* **Abschließen:** Schließe veraltete oder gelöste Tickets und Merge Requests.\n* **Tickets erstellen:** Erstelle neue Tickets basierend auf bestimmten Ereignissen oder Bedingungen.\n* **Und vieles mehr!**\n\nSieh dir das [gem-Repository `gitlab-triage`](https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage) an.\n\n## Einrichtung deines Triage-Bots\n\nRichten wir jetzt deinen ersten Triage-Bot ein und bringen ihn zum Laufen.\n\n1. Installiere das gem. (Hinweis: Der Befehl gem ist verfügbar, wenn die Programmiersprache Ruby installiert ist.)\n\n```bash\ngem install gitlab-triage\n```\n\n2. Rufe dein GitLab-API-Token ab.\n\n* Gehe zu deinen GitLab-[Profileinstellungen](https://gitlab.com/-/profile/preferences).  * Gehe zu **Zugriffstoken**.\n* Erstelle ein neues Token mit dem Geltungsbereich `api`.\n* **Bewahre dein Token sicher auf und lege ein Ablaufdatum dafür fest, sodass es abläuft, wenn du diese Anleitung abgeschlossen hast.**\n\n3. Definiere deine Triage-Richtlinien.\n\nErstelle im Root-Verzeichnis deines Projekts eine Datei mit dem Namen `.triage-policies.yml`. Diese Datei enthält die Regeln, die das Verhalten deines Bots steuern. Hier ist ein einfaches Beispiel:\n\n```yaml\n\n---\n- name: \"Apply 'WIP' label\"\n  condition:\n    draft: true\n  action:\n    labels:\n      - status::wip\n\n- name: \"Request more information on old issue\"\n  condition:\n   date:\n    attribute: updated_at\n    condition: older_than\n    interval_type: months\n    interval: 12\n  action:\n    comment: |\n      {{author}} This issue has been open for more than 12 months, is this still an issue?\n```\n\nDiese Konfiguration definiert zwei Richtlinien:\n\n* Mit der ersten Richtlinie wird das Label `status::wip` allen Tickets zugewiesen, die im Entwurfsstatus sind.\n* Mit der zweiten Richtlinie wird ein Kommentar zu einem Ticket hinzugefügt, in dem angemerkt wird, dass das Ticket in den letzten 12 Monaten nicht aktualisiert wurde.\n\n4. Führe deinen Bot aus.\n\nDu kannst deinen Bot manuell mit dem folgenden Befehl ausführen:\n\n```bash\ngitlab-triage -t \u003Cyour_api_token> -p \u003Cyour_project_id>\n```\n\nErsetze `\u003Cyour_api_token>` mit deinem GitLab-API-Token und `\u003Cyour_project_id>` mit der [ID deines GitLab-Projekts](https://docs.gitlab.com/user/project/working_with_projects/#access-a-project-by-using-the-project-id). Wenn du sehen möchtest, welche Auswirkungen die Aktionen haben, bevor sie tatsächlich ausgeführt hast, kannst du `-n` oder `--dry-run` hinzufügen, um die Richtlinien erst einmal zu testen.\n\n## Automatisierung mit GitLab CI/CD\n\nUm die Ausführung deines Triage-Bots zu automatisieren, integrierst du ihn in [GitLab CI/CD (nur in englischer Sprache verfügbar)](https://about.gitlab.com/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation/). Hier ist ein Beispiel für eine `.gitlab-ci.yml`-Konfiguration:\n\n```yaml\n\ntriage:\n  script:\n    - gem install gitlab-triage\n    - gitlab-triage -t $GITLAB_TOKEN -p $CI_PROJECT_ID\n  only:\n    - schedules\n```\n\nDiese Konfiguration definiert einen Job mit dem Namen „Triage“, der das gem `gitlab-triage` installiert und den Bot mit dem `$GITLAB_TOKEN` (eine vordefinierte [CI/CD-Variable](https://docs.gitlab.com/ci/variables/); Dokumentation nur in englischer Sprache verfügbar) und der Variable `$CI_PROJECT_ID` ausführt. Die Klausel `only: schedules` stellt sicher, dass der Auftrag nur nach einem Zeitplan ausgeführt wird.\n\nUm einen [Zeitplan (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/ci/pipelines/schedules.html) zu erstellen, gehe zu den **CI/CD-Einstellungen** des Projekts und dann zu **Zeitpläne**. Erstelle einen neuen Zeitplan und lege fest, wie häufig dein Bot ausgeführt werden soll (z. B. täglich, stündlich, usw.).\n\n## Erweiterte Triage-Richtlinien\n\n`gitlab-triage` bietet eine Reihe von erweiterten Funktionen, mit denen du ausgefeiltere Triage-Richtlinien erstellen kannst:\n\n* **Reguläre Ausdrücke:** Verwende reguläre Ausdrücke für einen leistungsstarken Musterabgleich.\n* **Zusammenfassungsrichtlinien:** Konsolidiere ähnliche Tickets in ein Übersichtsticket.\n* **Benutzerdefinierte Aktionen:** Definiere mit [Ruby-Codeblöcken](https://gitlab.com/gitlab-org/ruby/gems/gitlab-triage#can-i-customize) benutzerdefinierte Aktionen, um komplexere Abläufe über die GitLab-API auszuführen.\n\nHier sind zwei umfassendere Praxisbeispiele aus dem Triage-Bot, der vom Developer Advocacy Team bei GitLab verwendet wird. Die vollständigen Richtlinien findest du in [dieser Datei](https://gitlab.com/gitlab-da/projects/devrel-bot/-/blob/master/.triage-policies.yml?ref_type=heads).\n\n```yaml\n- name: Issues where DA team member is an assignee outside DA-Meta project i.e. DevRel-Influenced\n  conditions:\n    assignee_member:\n      source: group\n      condition: member_of\n      source_id: 1008\n    state: opened\n    ruby: get_project_id != 18     forbidden_labels:\n      - developer-advocacy\n  actions:       labels:\n      - developer-advocacy\n      - DevRel-Influenced\n      - DA-Bot::Skip\n```\n\nDieses Beispiel zeigt Tickets in einer Gruppe. Dabei werden diejenigen ausgeschlossen, die sich im Projekt mit der ID 18 befinden und die Beauftragte haben, die Mitglieder der Gruppe mit der ID 1008 sind und nicht das Label `developer-advocacy` aufweisen. Mit dieser Richtlinie kann das Developer Advocacy Team bei GitLab Tickets finden, die Mitgliedern des Teams zugewiesen sind, aber nicht im Projekt des Teams enthalten sind. Indem die Labels der Teams hinzugefügt werden, kann das Team Beiträge identifizieren und nachverfolgen, die von Personen außerhalb des Teams gemacht wurden.\n\n```text\n- name: Missing Due Dates\n  conditions:\n    ruby: missing_due_date\n    state: opened\n    labels:\n      - developer-advocacy\n    forbidden_labels:\n      - DA-Due::N/A\n      - DA-Bot::Skip\n      - DA-Status::FYI\n      - DA-Status::OnHold\n      - CFP\n      - DA-Bot::Triage\n  actions:\n    labels:\n      - DA-Bot-Auto-Due-Date\n    comment: |\n      /due #{get_current_quarter_last_date}\n```\n\nDer Bot in diesem zweiten Beispiel sucht nach allen Tickets mit dem Label `developer-advocacy`, die keine Labels aus der Liste der verbotenen Labes enthalten und deren Fälligkeitsdatum überschritten wurde. Er aktualisiert die Fälligkeitstermine automatisch, indem er dem Ticket mit einem Slash-Befehl und einem Datum, das über Ruby generiert wird, einen Kommentar hinzufügt.\n\nDie in den Richtlinien verwendeten Ruby-Skripte werden in einer separaten Datei definiert, wie unten gezeigt. Mit dieser Funktion kannst du flexibel mit Filtern und Aktionen arbeiten. Du siehst, dass Funktionen für verschiedene Ruby-Befehle erstellt werden, die wir in unseren Richtlinien verwendet haben.\n\n```text\nrequire 'json'\nrequire 'date'\nrequire \"faraday\"\nrequire 'dotenv/load'\n\nmodule DATriagePlugin\n  def last_comment_at\n    conn = Faraday.new(\n      url: notes_url+\"?sort=desc&order_by=created_at&pagination=keyset&per_page=1\",\n      headers: {'PRIVATE-TOKEN' => ENV.fetch(\"PRIV_KEY\"), 'Content-Type' => 'application/json' }\n    )\n\n    response = conn.get()\n    if response.status == 200\n      jsonData = JSON.parse(response.body)\n      if jsonData.length > 0\n        Date.parse(jsonData[0]['created_at'])\n      else\n        Date.parse(resource[:created_at])\n      end\n    else\n      Date.parse(resource[:created_at])\n    end\n  end\n\n  def notes_url\n    resource[:_links][:notes]\n  end\n\n  def get_project_id\n    resource[:project_id]\n  end\n\n  def get_current_quarter_last_date()\n    yr = Time.now.year\n    case Time.now.month\n    when 2..4\n      lm = 4\n    when 5..7\n      lm = 7\n    when 8..10\n      lm = 10\n    when 11..12\n      lm = 1\n      yr = yr + 1\n    else\n      lm = 1        end\n\n    return Date.new(yr, lm, -1)   end\n\n  def one_week_to_due_date\n    if(resource[:due_date] == nil)\n      false\n    else\n      days_to_due = (Date.parse(resource[:due_date]) - Date.today).to_i\n      if(days_to_due > 0 && days_to_due \u003C 7)\n        true\n      else\n        false\n      end\n    end\n  end\n\n  def due_date_past\n    if(resource[:due_date] == nil)\n      false\n    else\n      Date.today > Date.parse(resource[:due_date])\n    end\n  end\n\n  def missing_due_date\n    if(resource[:due_date] == nil)\n      true\n    else\n      false\n    end\n  end\n\nend\n\nGitlab::Triage::Resource::Context.include DATriagePlugin\n\n```\nDer Triage-Bot wird mit folgendem Befehl ausgeführt:\n\n```text\n`gitlab-triage -r ./triage_bot/issue_triage_plugin.rb --debug --token $PRIV_KEY --source-id gitlab-com --source groups`  ```\n\n- `-r`: Übergibt eine Datei mit Anforderungen für die Ausführung der Triage. In diesem Fall übergeben wir unsere Ruby-Funktionen.  - `--debug`: Fügt der Ausgabe Debugging-Informationen hinzu.  - `--token`: Wird verwendet, um ein gültiges GitLab-API-Token zu übergeben.  - `--source`: Gibt an, ob die Quellen des Tickets, die durchsucht werden, in einer Gruppe oder einem Projekt liegen.\n- `--source-id`: Übernimmt die ID des ausgewählten Quelltyps – in diesem Fall eine Gruppe.\n\nDas GitLab-Projekt [triage-ops](https://gitlab.com/gitlab-org/quality/triage-ops) ist ein weiteres Praxisbeispiel, das etwas komplexer ist und bei dem du lernen kannst, deinen eigenen Triage-Bot zu erstellen.\n\n## Best Practices\n\n* **Beginne einfach:** Beginne mit grundlegenden Richtlinien und erhöhe die Komplexität schrittweise nach Bedarf. * **Teste gründlich:** Teste deine Richtlinien in einer Staging-Umgebung, bevor du sie in der Produktion bereitstellst.  * **Überwache regelmäßig:** Überwache die Aktivität deines Bots, um sicherzustellen, dass er sich wie erwartet verhält.\n* **Verwende beschreibende Namen:** Gib deinen Richtlinien klare und beschreibende Namen, damit sie einfach gepflegt werden können. * **Achte auf den Umfang deiner Filter:** Vielleicht kommst du in Versuchung, Tickets über Gruppen hinweg zu filtern, die Tausende von Tickets enthalten. Dies kann jedoch die Triage verlangsamen und der Prozess kann aufgrund von Ratenbeschränkungen für die GitLab-API auch fehlschlagen.  * **Priorisiere die Verwendung von Labels für die Triage:** Um unnötige Benachrichtigungen an andere Benuzter(innen) zu vermeiden, sind Labels eine tolle Möglichkeit, eine Triage durchzuführen, ohne Kommentare und Tickets zu überladen.\n\n## Übernimm die Kontrolle über deinen Workflow\n\nMit dem gem `gitlab-triage` kannst du deinen GitLab-Workflow automatisieren und eine ganz neue Effizienz ermöglichen. Erstelle zunächst einen einfachen Traige-Bot und lerne dann nach und nach die fortschrittlicheren Funktionen kennen. Du wirst erstaunt sein, wie viel Zeit und Aufwand du einsparen kannst\\!\n\n## Serie: Erste Schritte mit GitLab\n\nWeitere Artikel in unserer Serie „Erste Schritte mit GitLab“:\n\n- [Benutzerverwaltung](https://about.gitlab.com/de-de/blog/getting-started-with-gitlab-how-to-manage-users/)\n\n- [Projekte in GitLab importieren (nur in englischer Sprache verfügbar)](https://about.gitlab.com/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab/)  - [Projektmanagement](https://about.gitlab.com/de-de/blog/getting-started-with-gitlab-mastering-project-management/)\n",[23,24,9,25,26],"DevSecOps platform","tutorial","agile","CI/CD","2025-04-21","yml",{},true,"/de-de/blog/automating-agile-workflows-with-the-gitlab-triage-gem",{"title":15,"description":16,"ogTitle":15,"ogDescription":16,"noIndex":12,"ogImage":19,"ogUrl":33,"ogSiteName":34,"ogType":35,"canonicalUrls":33},"https://about.gitlab.com/blog/automating-agile-workflows-with-the-gitlab-triage-gem","https://about.gitlab.com","article","de-de/blog/automating-agile-workflows-with-the-gitlab-triage-gem",[38,24,9,25,39],"devsecops-platform","cicd","5AL_XGxla9rm55AbM0H1Rn6tUR2kB3tPNfSGlGlJZPo",{"data":42},{"logo":43,"freeTrial":48,"sales":53,"login":58,"items":63,"search":371,"minimal":406,"duo":424,"pricingDeployment":433},{"config":44},{"href":45,"dataGaName":46,"dataGaLocation":47},"/de-de/","gitlab logo","header",{"text":49,"config":50},"Kostenlose Testversion anfordern",{"href":51,"dataGaName":52,"dataGaLocation":47},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":54,"config":55},"Vertrieb kontaktieren",{"href":56,"dataGaName":57,"dataGaLocation":47},"/de-de/sales/","sales",{"text":59,"config":60},"Anmelden",{"href":61,"dataGaName":62,"dataGaLocation":47},"https://gitlab.com/users/sign_in/","sign in",[64,91,186,191,292,352],{"text":65,"config":66,"cards":68},"Plattform",{"dataNavLevelOne":67},"platform",[69,75,83],{"title":65,"description":70,"link":71},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":72,"config":73},"Erkunde unsere Plattform",{"href":74,"dataGaName":67,"dataGaLocation":47},"/de-de/platform/",{"title":76,"description":77,"link":78},"GitLab Duo Agent Platform","Agentische KI für den gesamten Softwareentwicklungszyklus",{"text":79,"config":80},"Lerne GitLab Duo kennen",{"href":81,"dataGaName":82,"dataGaLocation":47},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":84,"description":85,"link":86},"Gründe, die für GitLab sprechen","Erfahre, warum Unternehmen auf GitLab setzen",{"text":87,"config":88},"Mehr erfahren",{"href":89,"dataGaName":90,"dataGaLocation":47},"/de-de/why-gitlab/","why gitlab",{"text":92,"left":30,"config":93,"link":95,"lists":99,"footer":168},"Produkt",{"dataNavLevelOne":94},"solutions",{"text":96,"config":97},"Alle Lösungen anzeigen",{"href":98,"dataGaName":94,"dataGaLocation":47},"/de-de/solutions/",[100,124,146],{"title":101,"description":102,"link":103,"items":108},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":104},{"icon":105,"href":106,"dataGaName":107,"dataGaLocation":47},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[109,112,115,120],{"text":26,"config":110},{"href":111,"dataGaLocation":47,"dataGaName":26},"/de-de/solutions/continuous-integration/",{"text":76,"config":113},{"href":81,"dataGaLocation":47,"dataGaName":114},"gitlab duo agent platform - product menu",{"text":116,"config":117},"Quellcodeverwaltung",{"href":118,"dataGaLocation":47,"dataGaName":119},"/de-de/solutions/source-code-management/","Source Code Management",{"text":121,"config":122},"Automatisierte Softwarebereitstellung",{"href":106,"dataGaLocation":47,"dataGaName":123},"Automated software delivery",{"title":125,"description":126,"link":127,"items":132},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":128},{"href":129,"dataGaName":130,"dataGaLocation":47,"icon":131},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[133,137,142],{"text":134,"config":135},"Application Security Testing",{"href":129,"dataGaName":136,"dataGaLocation":47},"Application security testing",{"text":138,"config":139},"Schutz der Software-Lieferkette",{"href":140,"dataGaLocation":47,"dataGaName":141},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":143,"config":144},"Software Compliance",{"href":145,"dataGaName":143,"dataGaLocation":47},"/de-de/solutions/software-compliance/",{"title":147,"link":148,"items":153},"Bewertung",{"config":149},{"icon":150,"href":151,"dataGaName":152,"dataGaLocation":47},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[154,158,163],{"text":155,"config":156},"Sichtbarkeit und Bewertung",{"href":151,"dataGaLocation":47,"dataGaName":157},"Visibility and Measurement",{"text":159,"config":160},"Wertstrommanagement",{"href":161,"dataGaLocation":47,"dataGaName":162},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":164,"config":165},"Analysen und Einblicke",{"href":166,"dataGaLocation":47,"dataGaName":167},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":169,"items":170},"GitLab für",[171,176,181],{"text":172,"config":173},"Enterprise",{"href":174,"dataGaLocation":47,"dataGaName":175},"/de-de/enterprise/","enterprise",{"text":177,"config":178},"Kleinunternehmen",{"href":179,"dataGaLocation":47,"dataGaName":180},"/de-de/small-business/","small business",{"text":182,"config":183},"den öffentlichen Sektor",{"href":184,"dataGaLocation":47,"dataGaName":185},"/de-de/solutions/public-sector/","public sector",{"text":187,"config":188},"Preise",{"href":189,"dataGaName":190,"dataGaLocation":47,"dataNavLevelOne":190},"/de-de/pricing/","pricing",{"text":192,"config":193,"link":195,"lists":199,"feature":279},"Ressourcen",{"dataNavLevelOne":194},"resources",{"text":196,"config":197},"Alle Ressourcen anzeigen",{"href":198,"dataGaName":194,"dataGaLocation":47},"/de-de/resources/",[200,233,251],{"title":201,"items":202},"Erste Schritte",[203,208,213,218,223,228],{"text":204,"config":205},"Installieren",{"href":206,"dataGaName":207,"dataGaLocation":47},"/de-de/install/","install",{"text":209,"config":210},"Kurzanleitungen",{"href":211,"dataGaName":212,"dataGaLocation":47},"/de-de/get-started/","quick setup checklists",{"text":214,"config":215},"Lernen",{"href":216,"dataGaLocation":47,"dataGaName":217},"https://university.gitlab.com/","learn",{"text":219,"config":220},"Produktdokumentation",{"href":221,"dataGaName":222,"dataGaLocation":47},"https://docs.gitlab.com/","product documentation",{"text":224,"config":225},"Best-Practice-Videos",{"href":226,"dataGaName":227,"dataGaLocation":47},"/de-de/getting-started-videos/","best practice videos",{"text":229,"config":230},"Integrationen",{"href":231,"dataGaName":232,"dataGaLocation":47},"/de-de/integrations/","integrations",{"title":234,"items":235},"Entdecken",[236,241,246],{"text":237,"config":238},"Kundenerfolge",{"href":239,"dataGaName":240,"dataGaLocation":47},"/de-de/customers/","customer success stories",{"text":242,"config":243},"Blog",{"href":244,"dataGaName":245,"dataGaLocation":47},"/de-de/blog/","blog",{"text":247,"config":248},"Remote",{"href":249,"dataGaName":250,"dataGaLocation":47},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":252,"items":253},"Vernetzen",[254,259,264,269,274],{"text":255,"config":256},"GitLab-Services",{"href":257,"dataGaName":258,"dataGaLocation":47},"/de-de/services/","services",{"text":260,"config":261},"Community",{"href":262,"dataGaName":263,"dataGaLocation":47},"/community/","community",{"text":265,"config":266},"Forum",{"href":267,"dataGaName":268,"dataGaLocation":47},"https://forum.gitlab.com/","forum",{"text":270,"config":271},"Veranstaltungen",{"href":272,"dataGaName":273,"dataGaLocation":47},"/events/","events",{"text":275,"config":276},"Partner",{"href":277,"dataGaName":278,"dataGaLocation":47},"/de-de/partners/","partners",{"backgroundColor":280,"textColor":281,"text":282,"image":283,"link":287},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":284,"config":285},"the source promo card",{"src":286},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":288,"config":289},"Lies die News",{"href":290,"dataGaName":291,"dataGaLocation":47},"/de-de/the-source/","the source",{"text":293,"config":294,"lists":296},"Unternehmen",{"dataNavLevelOne":295},"company",[297],{"items":298},[299,304,310,312,317,322,327,332,337,342,347],{"text":300,"config":301},"Über",{"href":302,"dataGaName":303,"dataGaLocation":47},"/de-de/company/","about",{"text":305,"config":306,"footerGa":309},"Karriere",{"href":307,"dataGaName":308,"dataGaLocation":47},"/jobs/","jobs",{"dataGaName":308},{"text":270,"config":311},{"href":272,"dataGaName":273,"dataGaLocation":47},{"text":313,"config":314},"Geschäftsführung",{"href":315,"dataGaName":316,"dataGaLocation":47},"/company/team/e-group/","leadership",{"text":318,"config":319},"Team",{"href":320,"dataGaName":321,"dataGaLocation":47},"/company/team/","team",{"text":323,"config":324},"Handbuch",{"href":325,"dataGaName":326,"dataGaLocation":47},"https://handbook.gitlab.com/","handbook",{"text":328,"config":329},"Investor Relations",{"href":330,"dataGaName":331,"dataGaLocation":47},"https://ir.gitlab.com/","investor relations",{"text":333,"config":334},"Trust Center",{"href":335,"dataGaName":336,"dataGaLocation":47},"/de-de/security/","trust center",{"text":338,"config":339},"AI Transparency Center",{"href":340,"dataGaName":341,"dataGaLocation":47},"/de-de/ai-transparency-center/","ai transparency center",{"text":343,"config":344},"Newsletter",{"href":345,"dataGaName":346,"dataGaLocation":47},"/company/contact/#contact-forms","newsletter",{"text":348,"config":349},"Presse",{"href":350,"dataGaName":351,"dataGaLocation":47},"/press/","press",{"text":353,"config":354,"lists":355},"Kontakt",{"dataNavLevelOne":295},[356],{"items":357},[358,361,366],{"text":54,"config":359},{"href":56,"dataGaName":360,"dataGaLocation":47},"talk to sales",{"text":362,"config":363},"Support-Portal",{"href":364,"dataGaName":365,"dataGaLocation":47},"https://support.gitlab.com","support portal",{"text":367,"config":368},"Kundenportal",{"href":369,"dataGaName":370,"dataGaLocation":47},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":372,"login":373,"suggestions":380},"Schließen",{"text":374,"link":375},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":376,"config":377},"gitlab.com",{"href":61,"dataGaName":378,"dataGaLocation":379},"search login","search",{"text":381,"default":382},"Vorschläge",[383,385,390,392,397,402],{"text":76,"config":384},{"href":81,"dataGaName":76,"dataGaLocation":379},{"text":386,"config":387},"Code Suggestions (KI)",{"href":388,"dataGaName":389,"dataGaLocation":379},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":26,"config":391},{"href":111,"dataGaName":26,"dataGaLocation":379},{"text":393,"config":394},"GitLab auf AWS",{"href":395,"dataGaName":396,"dataGaLocation":379},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":398,"config":399},"GitLab auf Google Cloud",{"href":400,"dataGaName":401,"dataGaLocation":379},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":403,"config":404},"Warum GitLab?",{"href":89,"dataGaName":405,"dataGaLocation":379},"Why GitLab?",{"freeTrial":407,"mobileIcon":412,"desktopIcon":417,"secondaryButton":420},{"text":408,"config":409},"Kostenlos testen",{"href":410,"dataGaName":52,"dataGaLocation":411},"https://gitlab.com/-/trials/new/","nav",{"altText":413,"config":414},"GitLab-Symbol",{"src":415,"dataGaName":416,"dataGaLocation":411},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":413,"config":418},{"src":419,"dataGaName":416,"dataGaLocation":411},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":201,"config":421},{"href":422,"dataGaName":423,"dataGaLocation":411},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":425,"mobileIcon":429,"desktopIcon":431},{"text":426,"config":427},"Erfahre mehr über GitLab Duo",{"href":81,"dataGaName":428,"dataGaLocation":411},"gitlab duo",{"altText":413,"config":430},{"src":415,"dataGaName":416,"dataGaLocation":411},{"altText":413,"config":432},{"src":419,"dataGaName":416,"dataGaLocation":411},{"freeTrial":434,"mobileIcon":439,"desktopIcon":441},{"text":435,"config":436},"Zurück zur Preisübersicht",{"href":189,"dataGaName":437,"dataGaLocation":411,"icon":438},"back to pricing","GoBack",{"altText":413,"config":440},{"src":415,"dataGaName":416,"dataGaLocation":411},{"altText":413,"config":442},{"src":419,"dataGaName":416,"dataGaLocation":411},{"title":444,"button":445,"config":450},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":446,"config":447},"GitLab Transcend jetzt ansehen",{"href":448,"dataGaName":449,"dataGaLocation":47},"/de-de/events/transcend/virtual/","transcend event",{"layout":451,"icon":452,"disabled":30},"release","AiStar",{"data":454},{"text":455,"source":456,"edit":462,"contribute":467,"config":472,"items":477,"minimal":650},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":457,"config":458},"Quelltext der Seite anzeigen",{"href":459,"dataGaName":460,"dataGaLocation":461},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":463,"config":464},"Diese Seite bearbeiten",{"href":465,"dataGaName":466,"dataGaLocation":461},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":468,"config":469},"Beteilige dich",{"href":470,"dataGaName":471,"dataGaLocation":461},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":473,"facebook":474,"youtube":475,"linkedin":476},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[478,501,556,583,617],{"title":65,"links":479,"subMenu":484},[480],{"text":481,"config":482},"DevSecOps-Plattform",{"href":74,"dataGaName":483,"dataGaLocation":461},"devsecops platform",[485],{"title":187,"links":486},[487,491,496],{"text":488,"config":489},"Tarife anzeigen",{"href":189,"dataGaName":490,"dataGaLocation":461},"view plans",{"text":492,"config":493},"Vorteile von Premium",{"href":494,"dataGaName":495,"dataGaLocation":461},"/de-de/pricing/premium/","why premium",{"text":497,"config":498},"Vorteile von Ultimate",{"href":499,"dataGaName":500,"dataGaLocation":461},"/de-de/pricing/ultimate/","why ultimate",{"title":502,"links":503},"Lösungen",[504,509,512,514,519,524,528,531,534,539,541,543,546,551],{"text":505,"config":506},"Digitale Transformation",{"href":507,"dataGaName":508,"dataGaLocation":461},"/de-de/topics/digital-transformation/","digital transformation",{"text":510,"config":511},"Sicherheit und Compliance",{"href":129,"dataGaName":136,"dataGaLocation":461},{"text":121,"config":513},{"href":106,"dataGaName":107,"dataGaLocation":461},{"text":515,"config":516},"Agile Entwicklung",{"href":517,"dataGaName":518,"dataGaLocation":461},"/de-de/solutions/agile-delivery/","agile delivery",{"text":520,"config":521},"Cloud-Transformation",{"href":522,"dataGaName":523,"dataGaLocation":461},"/de-de/topics/cloud-native/","cloud transformation",{"text":525,"config":526},"SCM",{"href":118,"dataGaName":527,"dataGaLocation":461},"source code management",{"text":26,"config":529},{"href":111,"dataGaName":530,"dataGaLocation":461},"continuous integration & delivery",{"text":159,"config":532},{"href":161,"dataGaName":533,"dataGaLocation":461},"value stream management",{"text":535,"config":536},"GitOps",{"href":537,"dataGaName":538,"dataGaLocation":461},"/de-de/solutions/gitops/","gitops",{"text":172,"config":540},{"href":174,"dataGaName":175,"dataGaLocation":461},{"text":177,"config":542},{"href":179,"dataGaName":180,"dataGaLocation":461},{"text":544,"config":545},"Öffentlicher Sektor",{"href":184,"dataGaName":185,"dataGaLocation":461},{"text":547,"config":548},"Bildungswesen",{"href":549,"dataGaName":550,"dataGaLocation":461},"/de-de/solutions/education/","education",{"text":552,"config":553},"Finanzdienstleistungen",{"href":554,"dataGaName":555,"dataGaLocation":461},"/de-de/solutions/finance/","financial services",{"title":192,"links":557},[558,560,562,564,567,569,571,573,575,577,579,581],{"text":204,"config":559},{"href":206,"dataGaName":207,"dataGaLocation":461},{"text":209,"config":561},{"href":211,"dataGaName":212,"dataGaLocation":461},{"text":214,"config":563},{"href":216,"dataGaName":217,"dataGaLocation":461},{"text":219,"config":565},{"href":221,"dataGaName":566,"dataGaLocation":461},"docs",{"text":242,"config":568},{"href":244,"dataGaName":245,"dataGaLocation":461},{"text":237,"config":570},{"href":239,"dataGaName":240,"dataGaLocation":461},{"text":247,"config":572},{"href":249,"dataGaName":250,"dataGaLocation":461},{"text":255,"config":574},{"href":257,"dataGaName":258,"dataGaLocation":461},{"text":260,"config":576},{"href":262,"dataGaName":263,"dataGaLocation":461},{"text":265,"config":578},{"href":267,"dataGaName":268,"dataGaLocation":461},{"text":270,"config":580},{"href":272,"dataGaName":273,"dataGaLocation":461},{"text":275,"config":582},{"href":277,"dataGaName":278,"dataGaLocation":461},{"title":293,"links":584},[585,587,589,591,593,595,597,601,606,608,610,612],{"text":300,"config":586},{"href":302,"dataGaName":295,"dataGaLocation":461},{"text":305,"config":588},{"href":307,"dataGaName":308,"dataGaLocation":461},{"text":313,"config":590},{"href":315,"dataGaName":316,"dataGaLocation":461},{"text":318,"config":592},{"href":320,"dataGaName":321,"dataGaLocation":461},{"text":323,"config":594},{"href":325,"dataGaName":326,"dataGaLocation":461},{"text":328,"config":596},{"href":330,"dataGaName":331,"dataGaLocation":461},{"text":598,"config":599},"Sustainability",{"href":600,"dataGaName":598,"dataGaLocation":461},"/sustainability/",{"text":602,"config":603},"Vielfalt, Inklusion und Zugehörigkeit",{"href":604,"dataGaName":605,"dataGaLocation":461},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":333,"config":607},{"href":335,"dataGaName":336,"dataGaLocation":461},{"text":343,"config":609},{"href":345,"dataGaName":346,"dataGaLocation":461},{"text":348,"config":611},{"href":350,"dataGaName":351,"dataGaLocation":461},{"text":613,"config":614},"Transparenzerklärung zu moderner Sklaverei",{"href":615,"dataGaName":616,"dataGaLocation":461},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":618,"links":619},"Nimm Kontakt auf",[620,623,628,630,635,640,645],{"text":621,"config":622},"Sprich mit einem Experten/einer Expertin",{"href":56,"dataGaName":57,"dataGaLocation":461},{"text":624,"config":625},"Support",{"href":626,"dataGaName":627,"dataGaLocation":461},"https://support.gitlab.com/hc/en-us/articles/11626483177756-GitLab-Support","get help",{"text":367,"config":629},{"href":369,"dataGaName":370,"dataGaLocation":461},{"text":631,"config":632},"Status",{"href":633,"dataGaName":634,"dataGaLocation":461},"https://status.gitlab.com/","status",{"text":636,"config":637},"Nutzungsbedingungen",{"href":638,"dataGaName":639,"dataGaLocation":461},"/terms/","terms of use",{"text":641,"config":642},"Datenschutzerklärung",{"href":643,"dataGaName":644,"dataGaLocation":461},"/de-de/privacy/","privacy statement",{"text":646,"config":647},"Cookie-Einstellungen",{"dataGaName":648,"dataGaLocation":461,"id":649,"isOneTrustButton":30},"cookie preferences","ot-sdk-btn",{"items":651},[652,654,656],{"text":636,"config":653},{"href":638,"dataGaName":639,"dataGaLocation":461},{"text":641,"config":655},{"href":643,"dataGaName":644,"dataGaLocation":461},{"text":646,"config":657},{"dataGaName":648,"dataGaLocation":461,"id":649,"isOneTrustButton":30},[659],{"id":660,"title":661,"body":8,"config":662,"content":664,"description":8,"extension":28,"meta":667,"navigation":30,"path":668,"seo":669,"stem":670,"__hash__":671},"blogAuthors/en-us/blog/authors/gitlab.yml","Gitlab",{"template":663},"BlogAuthor",{"name":18,"config":665},{"headshot":666,"ctfId":18},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png",{},"/en-us/blog/authors/gitlab",{},"en-us/blog/authors/gitlab","XCBKIcPoCs6zi2oHG7o-bAp52Jhaw8_zGhIJ2jNrEjU",[673,688,701],{"content":674,"config":686},{"title":675,"description":676,"authors":677,"heroImage":680,"date":681,"body":682,"category":9,"tags":683},"GitLab + Amazon: KI-Orchestrierung auf sicherem Fundament","Wie Duo Agent Platform und Amazon Bedrock Datensouveränität, Cloud-Governance und KI-Orchestrierung ohne parallele Infrastruktur vereinen.",[678,679],"Joe Mann","Mark Kriaf","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776362275/ozbwn9tk0dditpnfddlz.png","2026-04-21","Wer GitLab einsetzt und eine ausgereifte AWS-Praxis betreibt, findet in der\nKombination aus Duo Agent Platform und Amazon Bedrock eine passende Ergänzung.\nDas Prinzip ist klar: GitLab übernimmt die Orchestrierungsschicht und\nbeschleunigt den gesamten Software-Lifecycle mit agentischer KI. Bedrock stellt\nim Hintergrund eine sichere, compliance-fähige Foundation-Model-Schicht mit\nKI-Inferenz bereit.\n\nGitLab Duo Agent Platform ermöglicht Planung, Merge-Pipelines, Security\nScanning, Vulnerability Remediation und mehr als Teil bestehender\nGitLab-Workflows. Der GitLab AI Gateway leitet Modell-Anfragen an Bedrock\nweiter – oder an GitLab-verwaltete, Bedrock-gestützte Endpunkte, je nach\nDeployment-Konfiguration. Damit lässt sich auf den IAM-Richtlinien,\nVPC-Grenzen, regionalen Kontrollen und Cloud-Commitments aufbauen, die bereits\nin AWS bestehen.\n\nWer Amazon Bedrock bereits nutzt und KI-Unterstützung innerhalb der bestehenden\nGitLab-Workflows sucht – nicht in einem weiteren eigenständigen Chat-Werkzeug –\nfindet in dieser Kombination die passende Architektur.\n\nDieser Artikel beleuchtet zunächst das Problem, mit dem viele Teams heute\nkonfrontiert sind: KI ist fragmentiert, Datenpfade sind unklar, und\nBedrock-Investitionen werden zu wenig genutzt, wenn KI außerhalb des\nSoftware-Lifecycles operiert. Anschließend werden die Deployment-Optionen für\nGitLab Duo Agent Platform erläutert:\n\n- Integriert mit selbst gehosteten Modellen auf Amazon Bedrock für GitLab\n  Self-Managed-Deployments und selbst gehosteten AI Gateway\n- Integriert mit GitLab-betriebenen Modellen auf Amazon Bedrock (mit\n  GitLab-eigenen Keys) für GitLab Self-Managed-Deployments und\n  GitLab-gehosteten AI Gateway\n- Integriert mit GitLab-betriebenen Modellen auf Amazon Bedrock (mit\n  GitLab-eigenen Keys) für GitLab.com-Instanzen und GitLab-gehosteten\n  AI Gateway\n\nAbschließend wird zusammengefasst, wie dieser Ansatz nicht freigegebene\nKI-Werkzeuge (Shadow AI) und Point-Tool-Sprawl vermeidet, ohne einen parallelen\nTech-Stack für KI-Werkzeuge aufzubauen.\n\n\n## KI überall, Kontrolle nirgends\n\nIrgendwo im Unternehmen nutzen Softwareteams gerade ein KI-Werkzeug, das die\nSicherheitsabteilung nicht freigegeben hat. Prompt-Daten verlassen\nmöglicherweise die eigene Umgebung über einen Pfad, den niemand vollständig\nnachverfolgt hat. Und die Bedrock-Investition des Unternehmens wird zu wenig\ngenutzt, während einzelne Teams separate KI-Werkzeuge auf eigene Rechnung\nbetreiben – Workloads und Cloud-Ausgaben fließen so an Plattformen ab, auf die\nbereits Commitments bestehen.\n\nDas ist kein Personalproblem – es ist ein Architekturproblem. Und es\nmanifestiert sich in nahezu jedem Unternehmen in denselben drei Einschränkungen:\n\n**Operative Fragmentierung.** Jedes Team – manchmal jede einzelne Person –\nwählt das eigene Entwicklungs-Toolset, einschließlich KI-Werkzeuge und\nModellauswahl. Diese Fragmentierung macht eine durchgängige Governance innerhalb\ndes Software-Lifecycles nahezu unmöglich.\n\n**Sicherheit und Datensouveränität.** Wo fließen Prompt- und Code-Daten\ntatsächlich hin? Wer ist Eigentümer der Protokolle?\n\n**Cloud-Ausgabenoptimierung.** Commitments gegenüber zentralen Cloud-Anbietern\nwie AWS werden verwässert, wenn Workloads und KI-Nutzung zu Point-Tools\naußerhalb bestehender Vereinbarungen abwandern.\n\nGitLab Duo Agent Platform und Amazon Bedrock adressieren diese Probleme\ngemeinsam. Die Aufgabenteilung ist eindeutig: Duo Agent Platform verantwortet\ndie Workflow-Orchestrierung mit agentischer KI für die Softwareentwicklung,\nBedrock verantwortet die Inferenzschicht und hostet freigegebene\nFoundation-Modelle, und das Unternehmen behält die vollständige Kontrolle über\ndie Daten- und Richtliniengrenzen, die bereits in AWS definiert wurden. Drei\nAufgaben, drei Verantwortliche, keine Fragmentierung.\n\n\n## GitLab Duo Agent Platform: Die agentische Steuerungsebene\n\nGitLab Duo Agent Platform ist GitLabs agentische KI-Schicht: ein Framework aus\nspezialisierten Agenten und Abläufen, die gleichzeitig und parallel operieren –\nüber traditionelle stufenbasierte Übergaben hinaus – und Arbeit über den\ngesamten Software-Lifecycle hinweg automatisieren. Statt eines einzelnen\nAssistenten, der auf Prompts reagiert, ermöglicht Duo Agent Platform Teams die\nasynchrone Orchestrierung vieler KI-Agenten auf Basis einheitlicher Daten und\nProjektkontexte. Dazu gehören Issues, Merge Requests, Pipelines und Security\nFindings. Lineare Workflows werden so zu koordinierter, kontinuierlicher\nZusammenarbeit zwischen Softwareteams und ihren KI-Agenten – im erforderlichen\nUmfang.\n\nMit dieser Steuerungsebene stellt sich die nächste Frage: Welches KI-Fundament\nsoll diese Agenten antreiben? Für Unternehmen, die GitLab Self-Managed auf AWS\nbetreiben und sicherstellen müssen, dass Inferenz-Traffic, Prompt-Daten und\nProtokolle ebenfalls in der AWS-Umgebung verbleiben – gemeinsam mit den\nSoftware-Lifecycle-Daten – ist Amazon Bedrock als KI-Inferenzschicht die\nnaheliegende Wahl.\n\n\n## Amazon Bedrock: Das vertrauenswürdige KI-Fundament\n\nAmazon Bedrock ist eine vollständig verwaltete, serverlose\nFoundation-Model-Schicht, die vollständig in der AWS-Umgebung des Kunden läuft.\nKundendaten verbleiben im AWS-Account des Kunden. Eingaben und Ausgaben sind\nwährend der Übertragung und im Ruhezustand verschlüsselt, werden nie mit\nModellanbietern geteilt und nie zum Training von Basismodellen verwendet. Bedrock\nverfügt über Compliance-Zertifizierungen für DSGVO und BSI C5, die viele\nAnforderungen regulierter Branchen abdecken. Teams können außerdem eigene\nfeinabgestimmte Modelle über Custom Model Import einbinden und gemeinsam mit\nnativen Bedrock-Modellen über dieselbe Infrastruktur betreiben – ohne separate\nDeployment-Pipelines. Bedrock Guardrails ergänzt konfigurierbare\nSchutzmaßnahmen über alle Modelle hinweg: Content-Filterung,\nHalluzinationserkennung und Schutz sensibler Daten.\n\nGemeinsam konsolidieren GitLab Duo Agent Platform und Bedrock\nDevSecOps-Orchestrierung und KI-Modell-Governance – und helfen dabei, die\nFragmentierung zu vermeiden, die entsteht, wenn Teams KI-Werkzeuge eigenständig\neinführen.\n\n\n## Die passende Deployment-Variante wählen\n\nDie Integration liefert dieselben Kernfunktionen von GitLab Duo Agent Platform,\nunabhängig von der gewählten Deployment-Variante. Was variiert, ist: Wer\nbetreibt GitLab, wer betreibt den AI Gateway, und in welchem Bedrock-Account\nläuft die Inferenz? Die passende Variante hängt davon ab, wo das Unternehmen\nbereits operiert.\n\nDie Integration umfasst drei Hauptkomponenten:\n\n- **GitLab Duo Agent Platform:** Agentische Workflows, eingebettet in den\n  gesamten Software-Lifecycle\n- **AI Gateway (GitLab-verwaltet oder selbst gehostet):** Die\n  Abstraktionsschicht zwischen Duo Agent Platform und dem\n  Foundation-Model-Backend\n- **Amazon Bedrock:** KI-Modell- und Inferenzsubstrat\n\n![Deployment von GitLab und AWS Bedrock](https://res.cloudinary.com/about-gitlab-com/image/upload/v1776362365/udmvmv2efpmwtkxgydch.png)\n\nDie Wahl der Deployment-Variante richtet sich danach, wo das Unternehmen die\nSteuerungshebel platzieren möchte. Die folgenden Varianten sind so konzipiert,\ndass sie Teams dort abholen, wo sie bereits stehen – ob SaaS-first,\nSelf-Managed aus Compliance-Gründen oder vollständig auf AWS mit bestehenden\nBedrock-Investitionen.\n\n| Deployment-Variante | GitLab.com-Instanz mit GitLab-gehostetem AI Gateway und GitLab-betriebenen Bedrock-Modellen | GitLab Self-Managed mit GitLab-gehostetem AI Gateway und GitLab-betriebenen Bedrock-Modellen | GitLab Self-Managed mit selbst gehostetem AI Gateway und kundenbetriebenen Bedrock-Modellen |\n| :---- | :---- | :---- | :---- |\n| **Geeignet wenn:** | Primär auf GitLab.com und kein eigener Betrieb von AI Gateway und Bedrock-Modellen gewünscht | GitLab Self-Managed aus Compliance- und operativen Gründen erforderlich, aber keine eigene Verwaltung der KI-Schicht gewünscht | AWS-zentrierte Umgebung mit bestehender Bedrock-Nutzung und strengen Anforderungen an Datenkontrolle |\n| **Wesentliche Vorteile** | Schnellster Einstieg in Duo Agent Platform-Workflows: GitLab betreibt GitLab.com, den AI Gateway und die integrierten Bedrock-KI-Modelle. | GitLab in der eigenen Umgebung betreiben und Bedrock-Modelle über einen GitLab-verwalteten AI Gateway nutzen – Deployment-Kontrolle kombiniert mit vereinfachtem KI-Betrieb. | GitLab und AI Gateway im eigenen AWS-Account betreiben, bestehende IAM/VPC/Regionen wiederverwenden, Protokolle und Daten in der eigenen Umgebung halten und Bedrock-Nutzung aus bestehenden AWS-Commitments beziehen. |\n\n\n## Praxiseinsatz von GitLab Duo Agent Platform mit Amazon Bedrock\n\nPlattformteams können GitLab Duo Agent Platform mit Amazon Bedrock nutzen, um\nzentral festzulegen, welche Modelle Code-Vorschläge, Sicherheitsanalysen und\nPipeline-Remediation übernehmen. So lassen sich Schutzmaßnahmen und\nProtokollierung zentral durchsetzen, statt einzelnen Teams die eigenständige\nEinführung separater Werkzeuge zu überlassen.\n\nSecurity-Workflows profitieren besonders. GitLab Duo Agent Platform-Agenten\nkönnen Fixes für Security Findings innerhalb von GitLab vorschlagen und\nvalidieren – und so den manuellen Triage-Aufwand reduzieren, den\nEntwicklungsteams sonst außerhalb der Plattform leisten müssten.\n\nFür Unternehmen mit bestehenden AWS-Commitments lässt sich die KI-Nutzung so\nmit bestehenden Cloud-Vereinbarungen in Einklang halten. Separate, ungeplante\nAusgaben entfallen.\n\n\n## Der Kreislauf schließt sich\n\nDie Hindernisse, die Enterprise-KI-Adoption verlangsamen, sind oft nicht\ntechnischer Natur. Sie sind organisatorischer Natur: fragmentiertes Tooling,\nnicht nachverfolgbare Datenflüsse und Cloud-Ausgaben, die sich nie\nkonsolidieren. Diese Probleme können KI-Programme zum Stillstand bringen, selbst\nnachdem Pilotprojekte erfolgreich waren.\n\nGitLab Duo Agent Platform und Amazon Bedrock adressieren jeden dieser Punkte\ndirekt. Plattformteams erhalten konsistente Governance, Auditierbarkeit und\nstandardisierte Pfade für die KI-Nutzung über den gesamten Software-Lifecycle.\nEntwicklungsteams erhalten optimierte, agentische Workflows, die sich nativ in\nGitLab anfühlen. Und AWS-zentrierte Unternehmen können ihre bestehende\nBedrock-Investition erweitern, statt parallel dazu eine separate\nKI-Infrastruktur aufzubauen.\n\nDas Ergebnis ist ein KI-Programm, das skaliert, ohne zu fragmentieren.\nGovernance und Entwicklungsgeschwindigkeit auf demselben Stack, für dieselben\nTeams, unter Richtlinien, die das Unternehmen bereits besitzt.\n\n> Um die passende Deployment-Variante zu identifizieren und GitLab Duo Agent\n> Platform und Amazon Bedrock mit der bestehenden AWS-Strategie in Einklang zu\n> bringen, steht das [GitLab Sales-Team](https://about.gitlab.com/sales/) zur\n> Verfügung – für Architekturberatung und Implementierungsunterstützung.\n> Weitere Informationen bietet auch die\n> [AWS-Partnerseite](https://about.gitlab.com/partners/technology-partners/aws/).\n",[278,684,685],"AWS","AI/ML",{"featured":30,"template":13,"slug":687},"gitlab-amazon-platform-orchestration-on-a-trusted-ai-foundation",{"content":689,"config":699},{"title":690,"description":691,"authors":692,"heroImage":694,"date":695,"body":696,"category":9,"tags":697},"GitLab 18.11: Budgetkontrolle für GitLab Credits – Ausgabelimits und Nutzergrenzen","GitLab 18.11 führt Ausgabelimits und Nutzergrenzen für GitLab Credits ein – für planbare KI-Kosten und reibungslose Budgetgenehmigungen.",[693],"Bryan Rothwell","https://res.cloudinary.com/about-gitlab-com/image/upload/v1776259080/cakqnwo5ecp255lo8lzo.png","2026-04-17","Teams, die GitLab Duo Agent Platform mit On-Demand GitLab Credits nutzen, profitieren von automatisierten Workflows, die früher ganze Sprints beansprucht haben. Mit wachsender Nutzung steigt jedoch der Bedarf an Kostentransparenz – seitens Finance, Procurement und Platform-Teams, die belegen müssen, dass KI-Ausgaben begrenzt, planbar und steuerbar sind.\n\nEine wesentliche Hürde bei der breiteren KI-Einführung ist nicht Skepsis gegenüber der Technologie. Es ist die Unsicherheit bei der Kostenkontrolle. Ohne Ausgabeobergrenzen kann ein arbeitsintensiver Monat zu unerwarteten Kosten führen. Ohne Nutzerlimits können wenige Intensivnutzende das Credit-Kontingent des gesamten Teams aufbrauchen, bevor der Monat endet. Und ohne beides müssen Engineering-Verantwortliche, die Agentic AI weiter ausrollen wollen, aufwändigere Budgetgenehmigungsprozesse durchlaufen.\n\nSeit der [allgemeinen Verfügbarkeit](https://about.gitlab.com/blog/gitlab-duo-agent-platform-is-generally-available/) bietet GitLab Duo Agent Platform bereits Nutzungs-Governance und Transparenz. Mit GitLab 18.11 kommen Verbrauchssteuerung für [GitLab Credits](https://about.gitlab.com/blog/introducing-gitlab-credits/) hinzu: Ausgabeobergrenzen und Budgetlimits, die Organisationen noch mehr Kontrolle und Transparenz über den Credit-Verbrauch geben.\n\n\n## GitLab Credits steuern\n\nGitLab 18.11 führt drei Steuerungsebenen für den GitLab-Credits-Verbrauch ein: eine Ausgabenobergrenze auf Abonnementebene, Nutzerlimits auf individueller Ebene sowie Einblick in den Status und die Durchsetzung beider Limits.\n\n\n### Ausgabenobergrenze auf Abonnementebene\n\nBilling Account Manager können ab sofort eine monatliche Höchstgrenze für den Verbrauch von On-Demand GitLab Credits des gesamten Abonnements festlegen.\n\nFunktionsweise:\n\n* **Limit festlegen** im `Customers Portal` unter den GitLab-Credits-Einstellungen des Abonnements.\n* **Ausgaben automatisch begrenzen.** Erreicht der On-Demand-Verbrauch die Obergrenze, wird der DAP-Zugriff für alle Nutzenden des Abonnements pausiert – bis die nächste monatliche Periode beginnt.\n* **Anpassungen jederzeit möglich.** Das Limit lässt sich innerhalb des Monats anheben oder deaktivieren, um den Zugriff wiederherzustellen.\n\nDas Limit wird monatlich zurückgesetzt; die konfigurierte Grenze gilt so lange, bis sie geändert wird. Da Nutzungsdaten in Intervallen synchronisiert werden – nicht in Echtzeit –, kann nach Erreichen der Obergrenze eine geringe Mehrmenge anfallen, bevor die Durchsetzung greift. Details dazu finden sich in der [GitLab-Credits-Dokumentation](https://docs.gitlab.com/subscriptions/gitlab_credits/).\n\n\n### Nutzerlimits auf individueller Ebene\n\nNicht alle Nutzenden verbrauchen Credits im gleichen Tempo – das ist erwartbar. Problematisch wird es, wenn ein oder zwei Intensivnutzende einen unverhältnismäßig großen Anteil des Kontingents beanspruchen und der Rest des Teams vor Monatsende keinen Zugriff mehr hat.\n\nIndividuelle Nutzerlimits verhindern, dass einzelne Nutzende mehr als ihren fairen Anteil verbrauchen:\n\n* **Einheitliches Nutzerlimit.** Ein gleiches Credit-Limit für alle Nutzenden des Abonnements lässt sich über die GitLab GraphQL API setzen. Anders als die Abonnementobergrenze gilt dieses Limit für den Gesamtverbrauch einer Person über alle Credit-Quellen hinweg.\n* **Individuelle Ausnahmen.** Für differenzierte Limits können über die GraphQL API individuelle Credit-Obergrenzen für bestimmte Nutzende gesetzt werden. So lässt sich beispielsweise Staff Engineers ein höheres Kontingent einräumen, während für das breitere Team ein Standardlimit gilt.\n* **Individuelle Durchsetzung.** Erreicht eine Person ihr Limit, behält sie vollen Zugriff auf GitLab. Lediglich die Duo-Agent-Platform-Nutzung via Credits wird bis zum nächsten Abrechnungszeitraum pausiert. Alle anderen arbeiten unterbrechungsfrei weiter – bis sie ihr eigenes Limit oder die Abonnementobergrenze erreichen, je nachdem, was zuerst eintritt.\n\n\n### Sichtbarkeit und Benachrichtigungen\n\nWird die Abonnementobergrenze erreicht, sendet GitLab eine E-Mail-Benachrichtigung an Billing Account Manager, damit diese reagieren können: das Limit anheben, die nächste Periode abwarten oder Credits umverteilen.\n\nInnerhalb von GitLab können Group Owner (GitLab.com) und Instanz-Administratoren (Self-Managed) einsehen, welche Nutzenden aufgrund ihres individuellen Limits gesperrt wurden, und den Zugriff durch Anpassung der Grenze über die GraphQL API wiederherstellen.\n\n\n## Warum Budgetlimits die KI-Skalierung ermöglichen\n\nKlare Steuerungsmechanismen sind entscheidend, wenn Organisationen ihre KI-Nutzung ausweiten. Drei Gründe:\n\n\n### Planbare KI-Budgets\n\nVerbrauchssteuerung für GitLab Duo Agent Platform macht KI-Ausgaben zu einer planbaren, begrenzten Budgetposition auf Basis von On-Demand GitLab Credits. Das erleichtert sowohl die Budgetfreigabe durch Finance als auch die Planung der quartalsweisen Ausgaben.\n\n\n### Governance und interne Kostenverrechnung\n\nGroße Organisationen müssen KI-Ausgaben häufig internen Budgets, Kostenstellen oder Abteilungsrichtlinien zuordnen. Individuelle Nutzerlimits geben Platform-Teams einen unkomplizierten Mechanismus, Credits fair zuzuweisen und den Verbrauch auf Personenebene nachzuverfolgen. Die API-Konfiguration macht dies auch im Enterprise-Maßstab handhabbar. In Kombination mit den personenbezogenen Verbrauchsdaten aus dem GitLab-Credits-Dashboard lassen sich Verbrauchsmuster nachverfolgen – als Grundlage für interne Kostenverrechnungs- oder Budgetzuweisungsprozesse.\n\n\n### Sicherheit beim Skalieren\n\nViele Kunden starten GitLab Duo Agent Platform zunächst mit einer kleinen Pilotgruppe. Verbrauchssteuerung beseitigt die Risiken, die mit einer Ausweitung auf die gesamte Organisation verbunden sind. Duo Agent Platform lässt sich auf Hunderte oder Tausende von Entwicklungsteams ausrollen – mit der Gewissheit, dass eine harte Ausgabenobergrenze das Budget schützt. Wächst die Nutzung schneller als erwartet, greift das Limit – nicht eine unerwartete Rechnung.\n\n\n## Sitzplatzbasiert vs. verbrauchsbasiert\n\nViele KI-Coding-Tools setzen auf ein sitzplatzbasiertes Preismodell. Eine feste Anzahl von Lizenzen wird zu einem einheitlichen Preis pro Nutzenden erworben. Einfach, aber unflexibel: Der Preis ist derselbe, unabhängig davon, ob jemand das Tool zehnmal täglich nutzt oder gar nicht. Wenn Anbieter zudem Premium-Modelle und verbrauchsabhängige Zusatzkosten auf die Lizenzgebühr aufschlagen, erodiert die Kostentransparenz, die das Lizenzmodell ursprünglich versprochen hat.\n\nGitLab verfolgt einen anderen Ansatz: verbrauchsbasierte Abrechnung mit harten Limits und einem zentralen Governance-Dashboard. Das verbindet die Flexibilität, nur für tatsächliche Nutzung zu zahlen, mit der Budgetplanbarkeit durchgesetzter Ausgabengrenzen.\n\n\n## Anwendungsbeispiele\n\n\n**Beispiel 1: Mittelgroßes SaaS-Unternehmen mit 200 Entwicklungspersonen.** Die Organisation setzt eine Abonnementobergrenze in Höhe des erwarteten On-Demand-Verbrauchs. Die VP of Engineering kann Finance gegenüber zuverlässig zusichern, dass die Duo-Agent-Platform-Ausgaben den genehmigten Betrag nicht überschreiten werden – auch während des Onboardings neuer Teams. Nähert sich die Grenze in der Monatsmitte, erhält der Billing Account Manager eine Benachrichtigung und kann entscheiden: Limit anheben oder die nächste Periode abwarten.\n\n**Beispiel 2: Globales Finanzdienstleistungsunternehmen mit 2.000 Entwicklungspersonen.** Das Unternehmen setzt individuelle Nutzerlimits, um einen fairen Zugang sicherzustellen. Staff Engineers, die an komplexen Refactoring-Projekten arbeiten, erhalten über die API ein höheres individuelles Kontingent; die meisten Entwicklungsteams erhalten ein Standard-Pauschalimit. Einzelne Nutzende können das Gesamtkontingent nicht erschöpfen. Das Platform-Team nutzt die personenbezogenen Verbrauchsdaten im GitLab-Credits-Dashboard für die Nachverfolgung von Verbrauchsmustern und die quartalsweise Budgetplanung.\n\n\n## Erste Schritte\n\nVerbrauchssteuerung ist für GitLab.com- und Self-Managed-Kunden ab GitLab 18.11 verfügbar. Die Konfiguration erfolgt je nach Geltungsbereich und Rolle an unterschiedlichen Stellen.\n\n**Abonnementobergrenze**\n\nBilling Account Manager setzen die Abonnementobergrenze im Customers Portal:\n\n1. Im `Customers Portal` anmelden.\n2. Auf der Abonnementkarte zu den **GitLab Credits**-Einstellungen navigieren.\n3. Die monatliche On-Demand-Credits-Obergrenze aktivieren und den gewünschten Wert eingeben.\n\n**Einheitliches Nutzerlimit**\n\nDas einheitliche Nutzerlimit wird über die GitLab GraphQL API durch Namespace Owner (GitLab.com) oder Instanz-Administratoren (Self-Managed) gesetzt. Details zu verfügbaren Konfigurationsoberflächen finden sich in der [GitLab-Credits-Dokumentation](https://docs.gitlab.com/subscriptions/gitlab_credits/).\n\n**Individuelle Ausnahmen**\n\nFür differenzierte Limits können Namespace Owner (GitLab.com) und Instanz-Administratoren (Self-Managed) individuelle Obergrenzen programmatisch setzen – geeignet für Automatisierungs- und Infrastructure-as-Code-Workflows.\n\n**Verbrauch und Status überwachen**\n\n* **Customers Portal:** Detaillierter Verbrauch und Limitstatus einsehbar.\n* **GitLab.com:** Group Owner können gesperrte Nutzende unter **Einstellungen > GitLab Credits** einsehen.\n* **Self-Managed:** Instanz-Administratoren können Limitstatus und gesperrte Nutzende unter **Admin > GitLab Credits** einsehen.\n\n\n## GitLab Duo Agent Platform – bereit für die Skalierung\n\nVerbrauchssteuerung ist ab sofort in GitLab 18.11 verfügbar. Ausgabelimits setzen, Duo Agent Platform auf weitere Teams ausrollen – und die KI-Ausgaben dabei vollständig im Griff behalten.\n\n> [Mehr über GitLab Credits und Verbrauchssteuerung erfahren](https://docs.gitlab.com/subscriptions/gitlab_credits/).\n",[9,685,698],"news",{"featured":12,"template":13,"slug":700},"gitlab-18-11-budget-guardrails-for-gitlab-credits",{"content":702,"config":710},{"title":703,"description":704,"authors":705,"heroImage":694,"date":695,"body":707,"category":9,"tags":708},"GitLab 18.11: KI-Agenten CI Expert und Data Analyst schließen Entwicklungslücken","Mit GitLab 18.11 stehen zwei neue Agenten bereit – CI Expert für automatisiertes Pipeline-Setup und Data Analyst für direkte SDLC-Datenabfragen.",[706],"Corinne Dent","KI generiert Code schneller, als die Systeme drum herum mithalten können. Mehr Code bedeutet mehr Merge Requests in der Warteschlange, mehr Pipelines, die konfiguriert werden müssen, mehr Fragen zur Delivery, für die niemand Zeit hat – und die meisten Tools, auf die Teams sich stützen, wurden nicht für dieses Tempo entwickelt.\n\nIn GitLab 18.11 adressieren zwei neue Foundational Agents der Duo Agent Platform konkrete Lücken im Entwicklungszyklus, die KI bislang weitgehend unberührt gelassen hat:\n\n* **CI Expert Agent (jetzt in Beta)** schließt die Lücke zwischen dem Schreiben von Code und einer laufenden Pipeline\n* **Data Analyst Agent (jetzt allgemein verfügbar)** schließt die Lücke zwischen dem Ausliefern von Code und der Fähigkeit, grundlegende Fragen zur tatsächlichen Delivery zu beantworten\n\nDiese Problembereiche lassen sich nicht mit einem allgemeinen Assistenten lösen. Ein Tool außerhalb von GitLab kann eine YAML-Datei generieren oder eine Frage beantworten – es hat jedoch keine Kenntnis davon, wie Pipelines historisch performt haben, wo Fehler gehäuft auftreten oder wie die tatsächlichen MR-Durchlaufzeiten aussehen. Dieser Kontext liegt in GitLab. Diese Agenten auch.\n\n\n## Schnelles CI-Setup mit CI Expert Agent\n\nKI beschleunigt das Schreiben von Code erheblich. Den Code in eine laufende Pipeline zu bringen ist etwas, das die meisten Teams Tage oder Wochen später erledigen – wenn überhaupt. Das Blank-Page-Problem liegt nicht mehr im Editor. Es liegt jetzt in der `.gitlab-ci.yml`.\n\nEntwicklungsteams, die CI noch nie konfiguriert haben, wissen nicht, wie Language Detection in YAML aussieht, welche Test-Befehle verwendet werden sollten oder wie das Ergebnis vor dem Push validiert wird. Teams kopieren entweder eine Konfiguration aus einem früheren Projekt, die möglicherweise nicht passt, fügen Beispiele aus der Dokumentation zusammen oder warten auf die eine Person, die es schon einmal gemacht hat. Ist diese Person nicht verfügbar, wird CI zu etwas, das man \"später erledigt\". Aus \"später\" wird \"nie\".\n\nWenn CI dauerhaft ausbleibt, zeigen sich die Folgen im gesamten Entwicklungsprozess: Änderungen werden ohne automatisierte Absicherung ausgeliefert, Regressionen tauchen in der Produktion statt in der Pipeline auf, und Arbeit häuft sich in größeren, riskanteren Batches an. Teams gewöhnen sich mit der Zeit daran, ohne strukturierte Rückkopplung zu arbeiten – auf undokumentiertes Erfahrungswissen angewiesen statt auf einen reproduzierbaren Feedback-Mechanismus, der in jeden Commit integriert ist.\n\nCI Expert Agent, jetzt in Beta verfügbar, beseitigt diese Hürde systematisch. Der Agent analysiert das Repository, erkennt Sprache und Framework und schlägt eine funktionsfähige Build- und Test-Pipeline vor, die auf dem tatsächlichen Repository-Inhalt basiert – mit einer Erklärung jeder Entscheidung in verständlicher Sprache. Das Ziel: eine laufende Pipeline, ohne YAML manuell schreiben zu müssen.\n\nFunktionsumfang von CI Expert Agent:\n\n* Repository-bewusste Pipeline-Generierung erkennt Sprache, Framework und Test-Setup\n* Generiert valide, ausführbare Build- und Test-Konfigurationen\n* Geführter Erstkonfigurations-Ablauf mit verständlicher Erklärung jedes Schritts im Agentic Chat\n* Native GitLab-CI-Semantik ohne Konfigurations-Übersetzung\n\nDa der Agent innerhalb von GitLab läuft und das tatsächliche Pipeline-Verhalten über Zeit beobachtet, kann jede Verbesserung auf der Arbeitsweise der Teams aufbauen – nicht nur auf statischen Beispielen.\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1183458036?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"CI/CD Expert Agent\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n\u003Cbr>\u003C/br>\n\nCI Expert Agent ist verfügbar auf GitLab.com, Self-Managed und Dedicated in den Editionen Free, Premium und Ultimate – mit aktivierter Duo Agent Platform.\n\n\n## SDLC-Daten in natürlicher Sprache abfragen mit Data Analyst Agent\n\nKI hat das Tempo der Code-Auslieferung erhöht. Grundlegende Fragen dazu, wie diese Arbeit verläuft, sind dadurch nicht einfacher zu beantworten – im Gegenteil.\n\nWie lange liegen MRs im Review? Welche Pipelines bremsen Teams aus? Werden Deployment-Ziele tatsächlich erreicht? Diese Fragen ließen sich früher mit einem Blick auf ein Dashboard beantworten. Mit mehr Code, mehr Teams und mehr Komplexität sind die Daten zwar vorhanden – sie liegen in GitLab – der Zugriff erfordert jedoch nach wie vor das Warten auf ein Analytics-Team, eine Dashboard-Anfrage oder die Einarbeitung in GLQL.\n\nData Analyst Agent schließt diese Lücke. Eine Frage in natürlicher Sprache stellen – und eine sofortige Visualisierung im Agentic Chat erhalten. Keine Abfragesprache, keine Dashboard-Anfrage, kein Warten.\n\nDer Agent beantwortet beispielsweise folgende Fragen – je nach Rolle:\n\n* **Engineering Manager:** MR-Durchlaufzeiten, Durchsatz nach Projekt, wo Reviews stocken\n* **Entwicklungsteams:** Beitragsmuster, instabile Tests, die MRs blockieren, Pipeline-Geschwindigkeit\n* **DevOps- und Plattform-Teams:** Pipeline-Erfolgs- und Fehlerquoten, Runner-Auslastung, Deployment-Frequenz\n* **Engineering Leadership:** Deployment-Frequenz über Portfolios hinweg, Projektgesundheitsmetriken, Lead-Time-Vergleiche\n\nMit der allgemeinen Verfügbarkeit in GitLab 18.11 deckt der Agent MRs, Issues, Projekte, Pipelines und Jobs ab – vollständige SDLC-Abdeckung, erweitert gegenüber dem Beta-Umfang. Da Data Analyst Agent direkt auf vorhandene GitLab-Daten zugreift, ist der Kontext stets aktuell – ohne eine separate Datenpipeline pflegen oder ein Drittanbieter-Tool synchron halten zu müssen. Generierte GitLab Query Language-Abfragen lassen sich überall dort kopieren und verwenden, wo GitLab Flavored Markdown unterstützt wird; ein direkter Export zu Work Items und Dashboards ist in Planung.\n\n\u003Ciframe src=\"https://player.vimeo.com/video/1183094817?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" style=\"position:absolute;top:0;left:0;width:100%;height:100%;\" title=\"Data Analyst agent demo\">\u003C/iframe>\u003Cscript src=\"https://player.vimeo.com/api/player.js\">\u003C/script>\n\n\u003Cbr>\u003C/br>\n\nData Analyst Agent ist verfügbar auf GitLab.com, Self-Managed und Dedicated in den Editionen Free, Premium und Ultimate – mit aktivierter Duo Agent Platform.\n\n\n## Eine Plattform, verbundener Kontext\n\nBeide Agenten laufen innerhalb von GitLab und haben Zugriff auf den Code, die Pipelines, Issues und Merge Requests, die dort bereits vorhanden sind. Das unterscheidet plattformnative KI von einem externen Assistenten: Der Kontext ist stets aktuell und wächst mit der Nutzung. CI Expert Agent und Data Analyst Agent sind zwei konkrete Erweiterungen einer Plattform, auf der KI den gesamten Entwicklungszyklus unterstützt – von der Pipeline-Konfiguration über die Auslieferung bis zur Nachverfolgung.\n\n> [GitLab Duo Agent Platform kostenlos testen](https://about.gitlab.com/gitlab-duo/) und diese KI-Agenten direkt im Entwicklungs-Workflow einsetzen.\n",[685,709,9],"features",{"featured":30,"template":13,"slug":711},"ci-expert-and-data-analyst-ai-agents-target-development-gaps",{"promotions":713},[714,728,740,752],{"id":715,"categories":716,"header":718,"text":719,"button":720,"image":725},"ai-modernization",[717],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":721,"config":722},"Get your AI maturity score",{"href":723,"dataGaName":724,"dataGaLocation":245},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":726},{"src":727},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":729,"categories":730,"header":732,"text":719,"button":733,"image":737},"devops-modernization",[9,731],"devsecops","Are you just managing tools or shipping innovation?",{"text":734,"config":735},"Get your DevOps maturity score",{"href":736,"dataGaName":724,"dataGaLocation":245},"/assessments/devops-modernization-assessment/",{"config":738},{"src":739},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":741,"categories":742,"header":744,"text":719,"button":745,"image":749},"security-modernization",[743],"security","Are you trading speed for security?",{"text":746,"config":747},"Get your security maturity score",{"href":748,"dataGaName":724,"dataGaLocation":245},"/assessments/security-modernization-assessment/",{"config":750},{"src":751},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":753,"paths":754,"header":757,"text":758,"button":759,"image":764},"github-azure-migration",[755,756],"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":760,"config":761},"See how GitLab compares to GitHub",{"href":762,"dataGaName":763,"dataGaLocation":245},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":765},{"src":739},{"header":767,"blurb":768,"button":769,"secondaryButton":774},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":770,"config":771},"Kostenlosen Test starten",{"href":772,"dataGaName":52,"dataGaLocation":773},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":54,"config":775},{"href":56,"dataGaName":57,"dataGaLocation":773},1777302586730]