[{"data":1,"prerenderedAt":2587},["ShallowReactive",2],{"/de-de/blog/understanding-flows-multi-agent-workflows":3,"navigation-de-de":1808,"banner-de-de":2238,"footer-de-de":2246,"blog-post-authors-de-de-Itzik Gan Baruch":2487,"blog-related-posts-de-de-understanding-flows-multi-agent-workflows":2502,"blog-promotions-de-de":2525,"next-steps-de-de":2577},{"id":4,"title":5,"authors":6,"body":8,"category":1788,"date":1789,"description":1790,"extension":1791,"externalUrl":1792,"faq":1792,"featured":1793,"heroImage":1794,"meta":1795,"navigation":916,"path":1796,"seo":1797,"slug":1799,"stem":1800,"tags":1801,"template":1806,"updatedDate":1792,"__hash__":1807},"blogPosts/de-de/blog/understanding-flows-multi-agent-workflows.md","Flows verstehen: Multi-Agent-Workflows",[7],"Itzik Gan Baruch",{"type":9,"value":10,"toc":1765},"minimark",[11,24,30,64,78,83,86,91,123,126,130,133,220,224,284,288,291,296,432,436,439,453,457,460,465,497,501,509,536,539,543,546,555,561,582,588,606,610,621,626,652,656,662,1527,1533,1536,1551,1555,1558,1562,1565,1602,1605,1609,1612,1629,1632,1636,1639,1658,1661,1665,1685,1689,1697,1701,1742,1745,1752,1761],[12,13,14],"p",{},[15,16,17,18,23],"em",{},"Willkommen zu Teil 4 unseres achtteiligen Leitfadens ",[19,20,22],"a",{"href":21},"/de-de/blog/gitlab-duo-agent-platform-complete-getting-started-guide/","GitLab Duo Agent Platform: Der vollständige Einstiegsleitfaden",", in dem du lernst, KI-Agenten und Workflows in deinem Entwicklungslebenszyklus zu erstellen und bereitzustellen. Folge Tutorials, die dich von deiner ersten Interaktion zu produktionsreifen Automatisierungs-Workflows mit vollständiger Anpassung führen.",[12,25,26],{},[27,28,29],"strong",{},"In diesem Artikel:",[31,32,33,40,46,52,58],"ul",{},[34,35,36],"li",{},[19,37,39],{"href":38},"#einf%C3%BChrung-in-flows","Was sind Flows und wie funktionieren sie?",[34,41,42],{},[19,43,45],{"href":44},"#foundational-flows","Foundational Flows von GitLab",[34,47,48],{},[19,49,51],{"href":50},"#wie-du-custom-flows-erstellst","Custom Flows erstellen",[34,53,54],{},[19,55,57],{"href":56},"#flow-ausf%C3%BChrung","Flow-Ausführung und Orchestrierung",[34,59,60],{},[19,61,63],{"href":62},"#beispiel-custom-flow-yaml","Real-World-Beispiele und Use Cases",[65,66,67],"blockquote",{},[12,68,69,70,77],{},"🎯 Probiere ",[19,71,74],{"href":72,"rel":73},"https://about.gitlab.com/de-de/gitlab-duo-agent-platform/",[],[27,75,76],{},"GitLab Duo Agent Platform"," noch heute aus!",[79,80,82],"h2",{"id":81},"einführung-in-flows","Einführung in Flows",[12,84,85],{},"Flows sind Kombinationen aus einem oder mehreren Agenten, die zusammenarbeiten. Sie orchestrieren mehrstufige Workflows, um komplexe Probleme zu lösen, und werden auf der GitLab-Plattform-Compute ausgeführt.",[12,87,88],{},[27,89,90],{},"Hauptmerkmale von Flows:",[31,92,93,99,105,111,117],{},[34,94,95,98],{},[27,96,97],{},"Multi-Agent-Orchestrierung",": Kombiniere mehrere spezialisierte Agenten",[34,100,101,104],{},[27,102,103],{},"Built-in",": Laufen auf Plattform-Compute, keine zusätzliche Umgebung erforderlich",[34,106,107,110],{},[27,108,109],{},"Event-gesteuert",": Ausgelöst durch Mention, Assignment oder Assign as Reviewer",[34,112,113,116],{},[27,114,115],{},"Asynchron",": Laufen im Hintergrund, während du weiterarbeitest",[34,118,119,122],{},[27,120,121],{},"Vollständige Workflows",": Erledigen End-to-End-Aufgaben von Analyse bis Implementierung",[12,124,125],{},"Denke an Flows als autonome Workflows, die Kontext sammeln, Entscheidungen treffen, Änderungen ausführen und Ergebnisse liefern können, während du dich auf andere Arbeit konzentrierst.",[79,127,129],{"id":128},"flows-vs-agents-den-unterschied-verstehen","Flows vs. Agents: Den Unterschied verstehen",[12,131,132],{},"Agenten arbeiten interaktiv mit dir. Flows arbeiten autonom für dich.",[134,135,136,152],"table",{},[137,138,139],"thead",{},[140,141,142,146,149],"tr",{},[143,144,145],"th",{},"Aspekt",[143,147,148],{},"Agents",[143,150,151],{},"Flows",[153,154,155,169,182,195,208],"tbody",{},[140,156,157,163,166],{},[158,159,160],"td",{},[27,161,162],{},"Interaktion",[158,164,165],{},"Interaktiver Chat",[158,167,168],{},"Autonome Ausführung",[140,170,171,176,179],{},[158,172,173],{},[27,174,175],{},"Wann verwenden",[158,177,178],{},"Fragen, Anleitung und interaktive Aufgabendurchführung",[158,180,181],{},"Autonome mehrstufige Workflows",[140,183,184,189,192],{},[158,185,186],{},[27,187,188],{},"Nutzerbeteiligung",[158,190,191],{},"Aktive Konversation",[158,193,194],{},"Auslösen und Ergebnisse überprüfen",[140,196,197,202,205],{},[158,198,199],{},[27,200,201],{},"Ausführungszeit",[158,203,204],{},"Echtzeit-Antworten",[158,206,207],{},"Hintergrundverarbeitung",[140,209,210,215,218],{},[158,211,212],{},[27,213,214],{},"Komplexität",[158,216,217],{},"Single-Agent-Aufgaben",[158,219,97],{},[79,221,223],{"id":222},"flow-typen-im-überblick","Flow-Typen im Überblick",[134,225,226,242],{},[137,227,228],{},[140,229,230,233,236,239],{},[143,231,232],{},"Typ",[143,234,235],{},"Interface",[143,237,238],{},"Betreuer(in)",[143,240,241],{},"Use Case",[153,243,244,264],{},[140,245,246,255,258,261],{},[158,247,248],{},[27,249,250],{},[19,251,254],{"href":252,"rel":253},"https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/",[],"Foundational",[158,256,257],{},"UI-Aktionen, IDE-Interface",[158,259,260],{},"GitLab",[158,262,263],{},"Software Development, Developer in Issues, Fix CI/CD Pipeline, Convert to GitLab CI/CD, Code Review, SAST False Positive Detection",[140,265,266,275,278,281],{},[158,267,268],{},[27,269,270],{},[19,271,274],{"href":272,"rel":273},"https://docs.gitlab.com/user/duo_agent_platform/flows/custom/",[],"Custom",[158,276,277],{},"Mention, Assign, Assign Reviewer",[158,279,280],{},"Du",[158,282,283],{},"Beispiele: Größere Migration/Modernisierung, Release-Automatisierung, Dependency-Update-Management",[79,285,287],{"id":286},"foundational-flows","Foundational Flows",[12,289,290],{},"Foundational Flows sind produktionsreife Workflows, die von GitLab erstellt und gewartet werden. Sie sind über dedizierte UI-Controls oder IDE-Interfaces zugänglich.",[292,293,295],"h3",{"id":294},"aktuell-verfügbare-foundational-flows","Aktuell verfügbare Foundational Flows",[134,297,298,314],{},[137,299,300],{},[140,301,302,305,308,311],{},[143,303,304],{},"Flow",[143,306,307],{},"Wo verfügbar",[143,309,310],{},"Wie zugreifen",[143,312,313],{},"Am besten für",[153,315,316,336,356,375,394,413],{},[140,317,318,327,330,333],{},[158,319,320],{},[19,321,324],{"href":322,"rel":323},"https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/software_development/",[],[27,325,326],{},"Software Development",[158,328,329],{},"IDEs (VS Code, JetBrains, Visual Studio)",[158,331,332],{},"Flows-Tab in IDE",[158,334,335],{},"Feature-Implementierung, komplexes Refactoring, Multi-File-Änderungen",[140,337,338,347,350,353],{},[158,339,340],{},[19,341,344],{"href":342,"rel":343},"https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/developer/",[],[27,345,346],{},"Developer",[158,348,349],{},"GitLab Web UI",[158,351,352],{},"„Generate MR with Duo\"-Button auf Issues",[158,354,355],{},"Gut definierte Features, Bug-Fixes mit klaren Schritten",[140,357,358,367,369,372],{},[158,359,360],{},[19,361,364],{"href":362,"rel":363},"https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/fix_pipeline/",[],[27,365,366],{},"Fix CI/CD Pipeline",[158,368,349],{},[158,370,371],{},"Failed Pipeline Interface",[158,373,374],{},"Pipeline-Debugging, CI/CD-Konfigurationsprobleme",[140,376,377,386,388,391],{},[158,378,379],{},[19,380,383],{"href":381,"rel":382},"https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/convert_to_gitlab_ci/",[],[27,384,385],{},"Convert to GitLab CI/CD",[158,387,349],{},[158,389,390],{},"„Convert to GitLab CI/CD\"-Button auf Jenkinsfile",[158,392,393],{},"Jenkins zu GitLab CI/CD Migration",[140,395,396,405,407,410],{},[158,397,398],{},[19,399,402],{"href":400,"rel":401},"https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/code_review/",[],[27,403,404],{},"Code Review",[158,406,349],{},[158,408,409],{},"Als Reviewer auf MR zuweisen",[158,411,412],{},"Automatisierter Code Review mit KI-nativer Analyse und Feedback",[140,414,415,424,426,429],{},[158,416,417],{},[19,418,421],{"href":419,"rel":420},"https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/sast_false_positive_detection/",[],[27,422,423],{},"SAST false positive detection",[158,425,349],{},[158,427,428],{},"Security Scan Results",[158,430,431],{},"Automatisches Identifizieren und Filtern von False Positives in SAST-Findings",[79,433,435],{"id":434},"custom-flows","Custom Flows",[12,437,438],{},"Custom Flows sind YAML-definierte Workflows, die du für die spezifischen Anforderungen deines Teams erstellst. Sie laufen in GitLab Runner und können durch GitLab-Events ausgelöst werden.",[65,440,441],{},[12,442,443,446,447,452],{},[27,444,445],{},"🎯 Jetzt ausprobieren:"," ",[19,448,451],{"href":449,"rel":450},"https://gitlab.navattic.com/custom-flows",[],"Interaktive Demo von Custom Flows"," – Erkunde, wie du Custom Flows erstellen und konfigurieren kannst.",[292,454,456],{"id":455},"warum-custom-flows-erstellen","Warum Custom Flows erstellen?",[12,458,459],{},"Custom Flows automatisieren sich wiederholende mehrstufige Aufgaben, die spezifisch für den Workflow deines Teams sind. Anders als Foundational Flows, die allgemeinen Zwecken dienen, sind Custom Flows auf die Prozesse, Tools und Anforderungen deiner Organisation zugeschnitten.",[12,461,462],{},[27,463,464],{},"Häufige Use Cases:",[31,466,467,473,479,485,491],{},[34,468,469,472],{},[27,470,471],{},"Automatisierter Code Review",": Mehrstufiger Review-Prozess (Security Scan → Quality Check → Style Validation)",[34,474,475,478],{},[27,476,477],{},"Compliance Checking",": Überprüfe regulatorische Anforderungen, Lizenz-Compliance oder Sicherheitsrichtlinien bei jedem MR",[34,480,481,484],{},[27,482,483],{},"Dokumentationsgenerierung",": Automatisches Update von API-Docs, README-Dateien oder Changelogs basierend auf Code-Änderungen",[34,486,487,490],{},[27,488,489],{},"Dependency Management",": Wöchentliche Security-Scans, automatisierte Updates und Schwachstellenberichte",[34,492,493,496],{},[27,494,495],{},"Custom Testing",": Spezialisierte Test-Suites für deinen Tech-Stack oder Integrationstests",[292,498,500],{"id":499},"real-world-beispiel","Real-World-Beispiel",[12,502,503,504,508],{},"Ein Fintech-Unternehmen erstellt einen Compliance-Flow, der bei jedem Merge Request läuft. Wenn er durch ",[505,506,507],"code",{},"@compliance-flow"," ausgelöst wird, führt der Flow folgende Schritte aus:",[510,511,512,518,524,530],"ol",{},[34,513,514,517],{},[27,515,516],{},"Security Agent"," scannt Code auf PCI-DSS-Verstöße und prüft auf exponierte sensible Daten.",[34,519,520,523],{},[27,521,522],{},"Code Review Agent"," verifiziert, dass Änderungen sicheren Coding-Standards und Best Practices folgen.",[34,525,526,529],{},[27,527,528],{},"Documentation Agent"," prüft, dass API-Änderungen aktualisierte Dokumentation enthalten.",[34,531,532,535],{},[27,533,534],{},"Summary Agent"," aggregiert Findings und postet einen Compliance-Report mit Pass/Fail-Status.",[12,537,538],{},"Die gesamte Compliance-Überprüfung erfolgt automatisch in 5-10 Minuten und bietet konsistente Checks über alle Merge Requests hinweg.",[292,540,542],{"id":541},"wie-du-custom-flows-auslöst","Wie du Custom Flows auslöst",[12,544,545],{},"Custom Flows können auf mehrere Arten ausgelöst werden:",[12,547,548,551,552],{},[27,549,550],{},"1. Via Mentions in Issues/MRs:","\nErwähne den Flow in einem Kommentar, um ihn auszulösen. Beispiel für einen Dokumentationsgenerierungs-Flow: ",[505,553,554],{},"text @doc-generator Generate API documentation for this feature ",[12,556,557,560],{},[27,558,559],{},"2. Durch Zuweisen des Flows zu einem Issue oder MR:","\nWeise den Flow über eine der folgenden Methoden zu:",[31,562,563,569],{},[34,564,565,568],{},[27,566,567],{},"GitLab UI",": Klicke den „Assign\"-Button auf dem Issue/MR und wähle den Flow",[34,570,571,574,575,578,579],{},[27,572,573],{},"Command",": Verwende den ",[505,576,577],{},"/assign","-Befehl in einem Kommentar. Beispiel: ",[505,580,581],{},"shell /assign @doc-generator ",[12,583,584,587],{},[27,585,586],{},"3. Durch Zuweisen des Flows als Reviewer:","\nWeise den Flow als Reviewer auf einem Merge Request über eine der folgenden Methoden zu:",[31,589,590,595],{},[34,591,592,594],{},[27,593,567],{},": Klicke den „Assign reviewer\"-Button auf dem Merge Request und wähle den Flow",[34,596,597,574,599,578,602,605],{},[27,598,573],{},[505,600,601],{},"/assign_reviewer",[505,603,604],{},"shell /assign_reviewer @doc-reviewer ","\nJede dieser Methoden löst den Flow automatisch aus, um seine Aufgaben auszuführen.",[292,607,609],{"id":608},"wie-du-custom-flows-erstellst","Wie du Custom Flows erstellst",[12,611,612,613,616,617,620],{},"Custom Flows werden über die GitLab UI unter ",[27,614,615],{},"Automate → Flows → New flow"," in deinem Projekt oder über ",[27,618,619],{},"Explore → AI Catalog → Flows → New flow"," erstellt. Du definierst deinen Flow mithilfe einer YAML-Konfiguration, die Komponenten, Prompts, Routing und Ausführungsablauf spezifiziert. Das YAML-Schema ermöglicht es dir, ausgeklügelte Multi-Agent-Workflows mit präziser Kontrolle über Agentenverhalten und Orchestrierung zu erstellen.",[12,622,623],{},[27,624,625],{},"Schlüsselelemente eines Custom Flows:",[31,627,628,634,640,646],{},[34,629,630,633],{},[27,631,632],{},"Components",": Definiere die Agenten und Schritte in deinem Workflow",[34,635,636,639],{},[27,637,638],{},"Prompts",": Konfiguriere KI-Modellverhalten und Anweisungen",[34,641,642,645],{},[27,643,644],{},"Routers",": Steuere den Flow zwischen Komponenten",[34,647,648,651],{},[27,649,650],{},"Toolsets",": Spezifiziere, welche GitLab-API-Tools Agenten verwenden können",[292,653,655],{"id":654},"beispiel-custom-flow-yaml","Beispiel Custom Flow YAML",[12,657,658,661],{},[27,659,660],{},"Hintergrund:"," Dieses Beispiel zeigt einen Feature-Implementierungs-Flow für eine Reisebuchungsplattform. Wenn ein(e) Entwickler(in) ein Issue mit Feature-Anforderungen erstellt, kann dieser Flow ausgelöst werden, um automatisch die Anforderungen zu analysieren, die Codebasis zu überprüfen, die Lösung zu implementieren und einen Merge Request zu erstellen, alles ohne manuelle Intervention.\nHier ist die YAML-Konfiguration:",[663,664,669],"pre",{"className":665,"code":666,"language":667,"meta":668,"style":668},"language-yaml shiki shiki-themes github-light","version: \"v1\"\nenvironment: ambient\ncomponents:\n  - name: \"implement_feature\"\n    type: AgentComponent\n    prompt_id: \"implementation_prompt\"\n    inputs:\n      - from: \"context:goal\"\n        as: \"user_goal\"\n      - from: \"context:project_id\"\n        as: \"project_id\"\n    toolset:\n      - \"get_issue\"\n      - \"get_repository_file\"\n      - \"list_repository_tree\"\n      - \"find_files\"\n      - \"blob_search\"\n      - \"create_file\"\n      - \"create_commit\"\n      - \"create_merge_request\"\n      - \"create_issue_note\"\n    ui_log_events:\n      - \"on_agent_final_answer\"\n      - \"on_tool_execution_success\"\n      - \"on_tool_execution_failed\"\n\nprompts:\n  - name: \"Cheapflights Feature Implementation\"\n    prompt_id: \"implementation_prompt\"\n    unit_primitives: []\n    prompt_template:\n      system: |\n        You are an expert full-stack developer specializing in travel booking platforms, specifically Cheapflights.\n\n        Your task is to:\n        1. Extract the issue IID from the goal (look for \"Issue IID: XX\")\n        2. Use get_issue with project_id={{project_id}} and issue_iid to retrieve issue details\n        3. Analyze the requirements for the flight search feature\n        4. Review the existing codebase using list_repository_tree, find_files, and get_repository_file\n        5. Design and implement the solution following Cheapflights best practices\n        6. Create all necessary code files using create_file (call multiple times for multiple files)\n        7. Commit the changes using create_commit\n        8. Create a merge request using create_merge_request\n        9. Post a summary comment to the issue using create_issue_note with the MR link\n\n        Cheapflights Domain Expertise:\n        - Flight search and booking systems (Amadeus, Sabre, Skyscanner APIs)\n        - Fare comparison and pricing strategies\n        - Real-time availability and inventory management\n        - Travel industry UX patterns\n        - Performance optimization for high-traffic flight searches\n\n        Code Standards:\n        - Clean, maintainable code (TypeScript/JavaScript/Python/React)\n        - Proper state management for React components\n        - RESTful API endpoints with comprehensive error handling\n        - Mobile-first responsive design\n        - Proper timezone handling (use moment-timezone or date-fns-tz)\n        - WCAG 2.1 accessibility compliance\n\n        Flight-Specific Best Practices:\n        - Accurate fare calculations (base fare + taxes + fees + surcharges)\n        - Flight duration calculations across timezones\n        - Search filter logic (price range, number of stops, airlines, departure/arrival times)\n        - Sort algorithms (best value, fastest, cheapest)\n        - Handle edge cases: date line crossing, daylight saving time, red-eye flights\n        - Currency amounts use proper decimal handling (avoid floating point errors)\n        - Dates use ISO 8601 format\n        - Flight codes follow IATA standards (3-letter airport codes)\n\n        Implementation Requirements:\n        - No TODOs or placeholder comments\n        - All functions must be fully implemented\n        - Include proper TypeScript types or Python type hints\n        - Add JSDoc/docstring comments for all functions\n        - Comprehensive error handling and input validation\n        - Basic unit tests for critical functions\n        - Performance considerations for handling large result sets\n\n        CRITICAL - Your final comment on the issue MUST include:\n        - **Implementation Summary**: Brief description of what was implemented\n        - **Files Created/Modified**: List of all files with descriptions\n        - **Key Features**: Bullet points of main functionality\n        - **Technical Approach**: Brief explanation of architecture/patterns used\n        - **Testing Notes**: How to test the implementation\n        - **Merge Request Link**: Direct link to the created MR (format: [View Merge Request](MR_URL))\n\n        IMPORTANT TOOL USAGE:\n        - Extract the issue IID from the goal first (e.g., \"Issue IID: 12\" means issue_iid=12)\n        - Use get_issue with project_id={{project_id}} and issue_iid=\u003Cextracted_iid>\n        - Create multiple files by calling create_file multiple times (once per file)\n        - Use create_commit to commit all files together with a descriptive commit message\n        - Use create_merge_request to create the MR and capture the MR URL from the response\n        - Use create_issue_note with project_id={{project_id}}, noteable_id=\u003Cissue_iid>, and body=\u003Cyour complete summary with MR link>\n        - Make sure to include the MR link in the comment body so users can easily access it\n\n      user: |\n        Goal: {{user_goal}}\n        Project ID: {{project_id}}\n\n        Please complete the following steps:\n        1. Extract the issue IID and retrieve full issue details\n        2. Analyze the requirements thoroughly\n        3. Review the existing codebase structure and patterns\n        4. Implement the feature with production-ready code\n        5. Create all necessary files (components, APIs, tests, documentation)\n        6. Commit all changes with a clear commit message\n        7. Create a merge request\n        8. Post a detailed summary comment to the issue including the MR link\n\n      placeholder: history\n    params:\n      timeout: 300\n\nrouters:\n  - from: \"implement_feature\"\n    to: \"end\"\n\nflow:\n  entry_point: \"implement_feature\"\n","yaml","",[505,670,671,688,699,708,722,733,744,752,766,777,789,799,807,815,823,831,839,847,855,863,871,879,887,895,903,911,918,926,938,947,956,964,976,982,987,993,999,1005,1011,1017,1023,1029,1035,1041,1047,1052,1058,1064,1070,1076,1082,1088,1093,1099,1105,1111,1117,1123,1129,1135,1140,1146,1152,1158,1164,1170,1176,1182,1188,1194,1199,1205,1211,1217,1223,1229,1235,1241,1247,1252,1258,1264,1270,1276,1282,1288,1294,1299,1305,1311,1317,1323,1329,1335,1341,1347,1352,1362,1368,1374,1379,1385,1391,1397,1403,1409,1415,1421,1427,1433,1438,1449,1457,1469,1474,1482,1493,1504,1509,1517],{"__ignoreMap":668},[672,673,676,680,684],"span",{"class":674,"line":675},"line",1,[672,677,679],{"class":678},"shJU0","version",[672,681,683],{"class":682},"sgsFI",": ",[672,685,687],{"class":686},"sYBdl","\"v1\"\n",[672,689,691,694,696],{"class":674,"line":690},2,[672,692,693],{"class":678},"environment",[672,695,683],{"class":682},[672,697,698],{"class":686},"ambient\n",[672,700,702,705],{"class":674,"line":701},3,[672,703,704],{"class":678},"components",[672,706,707],{"class":682},":\n",[672,709,711,714,717,719],{"class":674,"line":710},4,[672,712,713],{"class":682},"  - ",[672,715,716],{"class":678},"name",[672,718,683],{"class":682},[672,720,721],{"class":686},"\"implement_feature\"\n",[672,723,725,728,730],{"class":674,"line":724},5,[672,726,727],{"class":678},"    type",[672,729,683],{"class":682},[672,731,732],{"class":686},"AgentComponent\n",[672,734,736,739,741],{"class":674,"line":735},6,[672,737,738],{"class":678},"    prompt_id",[672,740,683],{"class":682},[672,742,743],{"class":686},"\"implementation_prompt\"\n",[672,745,747,750],{"class":674,"line":746},7,[672,748,749],{"class":678},"    inputs",[672,751,707],{"class":682},[672,753,755,758,761,763],{"class":674,"line":754},8,[672,756,757],{"class":682},"      - ",[672,759,760],{"class":678},"from",[672,762,683],{"class":682},[672,764,765],{"class":686},"\"context:goal\"\n",[672,767,769,772,774],{"class":674,"line":768},9,[672,770,771],{"class":678},"        as",[672,773,683],{"class":682},[672,775,776],{"class":686},"\"user_goal\"\n",[672,778,780,782,784,786],{"class":674,"line":779},10,[672,781,757],{"class":682},[672,783,760],{"class":678},[672,785,683],{"class":682},[672,787,788],{"class":686},"\"context:project_id\"\n",[672,790,792,794,796],{"class":674,"line":791},11,[672,793,771],{"class":678},[672,795,683],{"class":682},[672,797,798],{"class":686},"\"project_id\"\n",[672,800,802,805],{"class":674,"line":801},12,[672,803,804],{"class":678},"    toolset",[672,806,707],{"class":682},[672,808,810,812],{"class":674,"line":809},13,[672,811,757],{"class":682},[672,813,814],{"class":686},"\"get_issue\"\n",[672,816,818,820],{"class":674,"line":817},14,[672,819,757],{"class":682},[672,821,822],{"class":686},"\"get_repository_file\"\n",[672,824,826,828],{"class":674,"line":825},15,[672,827,757],{"class":682},[672,829,830],{"class":686},"\"list_repository_tree\"\n",[672,832,834,836],{"class":674,"line":833},16,[672,835,757],{"class":682},[672,837,838],{"class":686},"\"find_files\"\n",[672,840,842,844],{"class":674,"line":841},17,[672,843,757],{"class":682},[672,845,846],{"class":686},"\"blob_search\"\n",[672,848,850,852],{"class":674,"line":849},18,[672,851,757],{"class":682},[672,853,854],{"class":686},"\"create_file\"\n",[672,856,858,860],{"class":674,"line":857},19,[672,859,757],{"class":682},[672,861,862],{"class":686},"\"create_commit\"\n",[672,864,866,868],{"class":674,"line":865},20,[672,867,757],{"class":682},[672,869,870],{"class":686},"\"create_merge_request\"\n",[672,872,874,876],{"class":674,"line":873},21,[672,875,757],{"class":682},[672,877,878],{"class":686},"\"create_issue_note\"\n",[672,880,882,885],{"class":674,"line":881},22,[672,883,884],{"class":678},"    ui_log_events",[672,886,707],{"class":682},[672,888,890,892],{"class":674,"line":889},23,[672,891,757],{"class":682},[672,893,894],{"class":686},"\"on_agent_final_answer\"\n",[672,896,898,900],{"class":674,"line":897},24,[672,899,757],{"class":682},[672,901,902],{"class":686},"\"on_tool_execution_success\"\n",[672,904,906,908],{"class":674,"line":905},25,[672,907,757],{"class":682},[672,909,910],{"class":686},"\"on_tool_execution_failed\"\n",[672,912,914],{"class":674,"line":913},26,[672,915,917],{"emptyLinePlaceholder":916},true,"\n",[672,919,921,924],{"class":674,"line":920},27,[672,922,923],{"class":678},"prompts",[672,925,707],{"class":682},[672,927,929,931,933,935],{"class":674,"line":928},28,[672,930,713],{"class":682},[672,932,716],{"class":678},[672,934,683],{"class":682},[672,936,937],{"class":686},"\"Cheapflights Feature Implementation\"\n",[672,939,941,943,945],{"class":674,"line":940},29,[672,942,738],{"class":678},[672,944,683],{"class":682},[672,946,743],{"class":686},[672,948,950,953],{"class":674,"line":949},30,[672,951,952],{"class":678},"    unit_primitives",[672,954,955],{"class":682},": []\n",[672,957,959,962],{"class":674,"line":958},31,[672,960,961],{"class":678},"    prompt_template",[672,963,707],{"class":682},[672,965,967,970,972],{"class":674,"line":966},32,[672,968,969],{"class":678},"      system",[672,971,683],{"class":682},[672,973,975],{"class":974},"sD7c4","|\n",[672,977,979],{"class":674,"line":978},33,[672,980,981],{"class":686},"        You are an expert full-stack developer specializing in travel booking platforms, specifically Cheapflights.\n",[672,983,985],{"class":674,"line":984},34,[672,986,917],{"emptyLinePlaceholder":916},[672,988,990],{"class":674,"line":989},35,[672,991,992],{"class":686},"        Your task is to:\n",[672,994,996],{"class":674,"line":995},36,[672,997,998],{"class":686},"        1. Extract the issue IID from the goal (look for \"Issue IID: XX\")\n",[672,1000,1002],{"class":674,"line":1001},37,[672,1003,1004],{"class":686},"        2. Use get_issue with project_id={{project_id}} and issue_iid to retrieve issue details\n",[672,1006,1008],{"class":674,"line":1007},38,[672,1009,1010],{"class":686},"        3. Analyze the requirements for the flight search feature\n",[672,1012,1014],{"class":674,"line":1013},39,[672,1015,1016],{"class":686},"        4. Review the existing codebase using list_repository_tree, find_files, and get_repository_file\n",[672,1018,1020],{"class":674,"line":1019},40,[672,1021,1022],{"class":686},"        5. Design and implement the solution following Cheapflights best practices\n",[672,1024,1026],{"class":674,"line":1025},41,[672,1027,1028],{"class":686},"        6. Create all necessary code files using create_file (call multiple times for multiple files)\n",[672,1030,1032],{"class":674,"line":1031},42,[672,1033,1034],{"class":686},"        7. Commit the changes using create_commit\n",[672,1036,1038],{"class":674,"line":1037},43,[672,1039,1040],{"class":686},"        8. Create a merge request using create_merge_request\n",[672,1042,1044],{"class":674,"line":1043},44,[672,1045,1046],{"class":686},"        9. Post a summary comment to the issue using create_issue_note with the MR link\n",[672,1048,1050],{"class":674,"line":1049},45,[672,1051,917],{"emptyLinePlaceholder":916},[672,1053,1055],{"class":674,"line":1054},46,[672,1056,1057],{"class":686},"        Cheapflights Domain Expertise:\n",[672,1059,1061],{"class":674,"line":1060},47,[672,1062,1063],{"class":686},"        - Flight search and booking systems (Amadeus, Sabre, Skyscanner APIs)\n",[672,1065,1067],{"class":674,"line":1066},48,[672,1068,1069],{"class":686},"        - Fare comparison and pricing strategies\n",[672,1071,1073],{"class":674,"line":1072},49,[672,1074,1075],{"class":686},"        - Real-time availability and inventory management\n",[672,1077,1079],{"class":674,"line":1078},50,[672,1080,1081],{"class":686},"        - Travel industry UX patterns\n",[672,1083,1085],{"class":674,"line":1084},51,[672,1086,1087],{"class":686},"        - Performance optimization for high-traffic flight searches\n",[672,1089,1091],{"class":674,"line":1090},52,[672,1092,917],{"emptyLinePlaceholder":916},[672,1094,1096],{"class":674,"line":1095},53,[672,1097,1098],{"class":686},"        Code Standards:\n",[672,1100,1102],{"class":674,"line":1101},54,[672,1103,1104],{"class":686},"        - Clean, maintainable code (TypeScript/JavaScript/Python/React)\n",[672,1106,1108],{"class":674,"line":1107},55,[672,1109,1110],{"class":686},"        - Proper state management for React components\n",[672,1112,1114],{"class":674,"line":1113},56,[672,1115,1116],{"class":686},"        - RESTful API endpoints with comprehensive error handling\n",[672,1118,1120],{"class":674,"line":1119},57,[672,1121,1122],{"class":686},"        - Mobile-first responsive design\n",[672,1124,1126],{"class":674,"line":1125},58,[672,1127,1128],{"class":686},"        - Proper timezone handling (use moment-timezone or date-fns-tz)\n",[672,1130,1132],{"class":674,"line":1131},59,[672,1133,1134],{"class":686},"        - WCAG 2.1 accessibility compliance\n",[672,1136,1138],{"class":674,"line":1137},60,[672,1139,917],{"emptyLinePlaceholder":916},[672,1141,1143],{"class":674,"line":1142},61,[672,1144,1145],{"class":686},"        Flight-Specific Best Practices:\n",[672,1147,1149],{"class":674,"line":1148},62,[672,1150,1151],{"class":686},"        - Accurate fare calculations (base fare + taxes + fees + surcharges)\n",[672,1153,1155],{"class":674,"line":1154},63,[672,1156,1157],{"class":686},"        - Flight duration calculations across timezones\n",[672,1159,1161],{"class":674,"line":1160},64,[672,1162,1163],{"class":686},"        - Search filter logic (price range, number of stops, airlines, departure/arrival times)\n",[672,1165,1167],{"class":674,"line":1166},65,[672,1168,1169],{"class":686},"        - Sort algorithms (best value, fastest, cheapest)\n",[672,1171,1173],{"class":674,"line":1172},66,[672,1174,1175],{"class":686},"        - Handle edge cases: date line crossing, daylight saving time, red-eye flights\n",[672,1177,1179],{"class":674,"line":1178},67,[672,1180,1181],{"class":686},"        - Currency amounts use proper decimal handling (avoid floating point errors)\n",[672,1183,1185],{"class":674,"line":1184},68,[672,1186,1187],{"class":686},"        - Dates use ISO 8601 format\n",[672,1189,1191],{"class":674,"line":1190},69,[672,1192,1193],{"class":686},"        - Flight codes follow IATA standards (3-letter airport codes)\n",[672,1195,1197],{"class":674,"line":1196},70,[672,1198,917],{"emptyLinePlaceholder":916},[672,1200,1202],{"class":674,"line":1201},71,[672,1203,1204],{"class":686},"        Implementation Requirements:\n",[672,1206,1208],{"class":674,"line":1207},72,[672,1209,1210],{"class":686},"        - No TODOs or placeholder comments\n",[672,1212,1214],{"class":674,"line":1213},73,[672,1215,1216],{"class":686},"        - All functions must be fully implemented\n",[672,1218,1220],{"class":674,"line":1219},74,[672,1221,1222],{"class":686},"        - Include proper TypeScript types or Python type hints\n",[672,1224,1226],{"class":674,"line":1225},75,[672,1227,1228],{"class":686},"        - Add JSDoc/docstring comments for all functions\n",[672,1230,1232],{"class":674,"line":1231},76,[672,1233,1234],{"class":686},"        - Comprehensive error handling and input validation\n",[672,1236,1238],{"class":674,"line":1237},77,[672,1239,1240],{"class":686},"        - Basic unit tests for critical functions\n",[672,1242,1244],{"class":674,"line":1243},78,[672,1245,1246],{"class":686},"        - Performance considerations for handling large result sets\n",[672,1248,1250],{"class":674,"line":1249},79,[672,1251,917],{"emptyLinePlaceholder":916},[672,1253,1255],{"class":674,"line":1254},80,[672,1256,1257],{"class":686},"        CRITICAL - Your final comment on the issue MUST include:\n",[672,1259,1261],{"class":674,"line":1260},81,[672,1262,1263],{"class":686},"        - **Implementation Summary**: Brief description of what was implemented\n",[672,1265,1267],{"class":674,"line":1266},82,[672,1268,1269],{"class":686},"        - **Files Created/Modified**: List of all files with descriptions\n",[672,1271,1273],{"class":674,"line":1272},83,[672,1274,1275],{"class":686},"        - **Key Features**: Bullet points of main functionality\n",[672,1277,1279],{"class":674,"line":1278},84,[672,1280,1281],{"class":686},"        - **Technical Approach**: Brief explanation of architecture/patterns used\n",[672,1283,1285],{"class":674,"line":1284},85,[672,1286,1287],{"class":686},"        - **Testing Notes**: How to test the implementation\n",[672,1289,1291],{"class":674,"line":1290},86,[672,1292,1293],{"class":686},"        - **Merge Request Link**: Direct link to the created MR (format: [View Merge Request](MR_URL))\n",[672,1295,1297],{"class":674,"line":1296},87,[672,1298,917],{"emptyLinePlaceholder":916},[672,1300,1302],{"class":674,"line":1301},88,[672,1303,1304],{"class":686},"        IMPORTANT TOOL USAGE:\n",[672,1306,1308],{"class":674,"line":1307},89,[672,1309,1310],{"class":686},"        - Extract the issue IID from the goal first (e.g., \"Issue IID: 12\" means issue_iid=12)\n",[672,1312,1314],{"class":674,"line":1313},90,[672,1315,1316],{"class":686},"        - Use get_issue with project_id={{project_id}} and issue_iid=\u003Cextracted_iid>\n",[672,1318,1320],{"class":674,"line":1319},91,[672,1321,1322],{"class":686},"        - Create multiple files by calling create_file multiple times (once per file)\n",[672,1324,1326],{"class":674,"line":1325},92,[672,1327,1328],{"class":686},"        - Use create_commit to commit all files together with a descriptive commit message\n",[672,1330,1332],{"class":674,"line":1331},93,[672,1333,1334],{"class":686},"        - Use create_merge_request to create the MR and capture the MR URL from the response\n",[672,1336,1338],{"class":674,"line":1337},94,[672,1339,1340],{"class":686},"        - Use create_issue_note with project_id={{project_id}}, noteable_id=\u003Cissue_iid>, and body=\u003Cyour complete summary with MR link>\n",[672,1342,1344],{"class":674,"line":1343},95,[672,1345,1346],{"class":686},"        - Make sure to include the MR link in the comment body so users can easily access it\n",[672,1348,1350],{"class":674,"line":1349},96,[672,1351,917],{"emptyLinePlaceholder":916},[672,1353,1355,1358,1360],{"class":674,"line":1354},97,[672,1356,1357],{"class":678},"      user",[672,1359,683],{"class":682},[672,1361,975],{"class":974},[672,1363,1365],{"class":674,"line":1364},98,[672,1366,1367],{"class":686},"        Goal: {{user_goal}}\n",[672,1369,1371],{"class":674,"line":1370},99,[672,1372,1373],{"class":686},"        Project ID: {{project_id}}\n",[672,1375,1377],{"class":674,"line":1376},100,[672,1378,917],{"emptyLinePlaceholder":916},[672,1380,1382],{"class":674,"line":1381},101,[672,1383,1384],{"class":686},"        Please complete the following steps:\n",[672,1386,1388],{"class":674,"line":1387},102,[672,1389,1390],{"class":686},"        1. Extract the issue IID and retrieve full issue details\n",[672,1392,1394],{"class":674,"line":1393},103,[672,1395,1396],{"class":686},"        2. Analyze the requirements thoroughly\n",[672,1398,1400],{"class":674,"line":1399},104,[672,1401,1402],{"class":686},"        3. Review the existing codebase structure and patterns\n",[672,1404,1406],{"class":674,"line":1405},105,[672,1407,1408],{"class":686},"        4. Implement the feature with production-ready code\n",[672,1410,1412],{"class":674,"line":1411},106,[672,1413,1414],{"class":686},"        5. Create all necessary files (components, APIs, tests, documentation)\n",[672,1416,1418],{"class":674,"line":1417},107,[672,1419,1420],{"class":686},"        6. Commit all changes with a clear commit message\n",[672,1422,1424],{"class":674,"line":1423},108,[672,1425,1426],{"class":686},"        7. Create a merge request\n",[672,1428,1430],{"class":674,"line":1429},109,[672,1431,1432],{"class":686},"        8. Post a detailed summary comment to the issue including the MR link\n",[672,1434,1436],{"class":674,"line":1435},110,[672,1437,917],{"emptyLinePlaceholder":916},[672,1439,1441,1444,1446],{"class":674,"line":1440},111,[672,1442,1443],{"class":678},"      placeholder",[672,1445,683],{"class":682},[672,1447,1448],{"class":686},"history\n",[672,1450,1452,1455],{"class":674,"line":1451},112,[672,1453,1454],{"class":678},"    params",[672,1456,707],{"class":682},[672,1458,1460,1463,1465],{"class":674,"line":1459},113,[672,1461,1462],{"class":678},"      timeout",[672,1464,683],{"class":682},[672,1466,1468],{"class":1467},"sYu0t","300\n",[672,1470,1472],{"class":674,"line":1471},114,[672,1473,917],{"emptyLinePlaceholder":916},[672,1475,1477,1480],{"class":674,"line":1476},115,[672,1478,1479],{"class":678},"routers",[672,1481,707],{"class":682},[672,1483,1485,1487,1489,1491],{"class":674,"line":1484},116,[672,1486,713],{"class":682},[672,1488,760],{"class":678},[672,1490,683],{"class":682},[672,1492,721],{"class":686},[672,1494,1496,1499,1501],{"class":674,"line":1495},117,[672,1497,1498],{"class":678},"    to",[672,1500,683],{"class":682},[672,1502,1503],{"class":686},"\"end\"\n",[672,1505,1507],{"class":674,"line":1506},118,[672,1508,917],{"emptyLinePlaceholder":916},[672,1510,1512,1515],{"class":674,"line":1511},119,[672,1513,1514],{"class":678},"flow",[672,1516,707],{"class":682},[672,1518,1520,1523,1525],{"class":674,"line":1519},120,[672,1521,1522],{"class":678},"  entry_point",[672,1524,683],{"class":682},[672,1526,721],{"class":686},[12,1528,1529,1532],{},[27,1530,1531],{},"Was dieser Flow macht:"," Dieser Flow orchestriert einen KI-Agenten, um automatisch ein Feature zu implementieren, indem er Issue-Anforderungen analysiert, die Codebasis überprüft, produktionsreifen Code mit Domain-Expertise schreibt und einen Merge Request mit einem detaillierten Summary-Kommentar erstellt.",[12,1534,1535],{},"Für vollständige Dokumentation und Beispiele siehe:",[31,1537,1538,1544],{},[34,1539,1540],{},[19,1541,1543],{"href":272,"rel":1542},[],"Custom Flows Dokumentation",[34,1545,1546],{},[19,1547,1550],{"href":1548,"rel":1549},"https://gitlab.com/gitlab-org/modelops/applied-ml/code-suggestions/ai-assist/-/blob/main/docs/flow_registry/v1.md",[],"Flow Registry Framework (YAML Schema)",[79,1552,1554],{"id":1553},"flow-ausführung","Flow-Ausführung",[12,1556,1557],{},"Flows laufen auf GitLab-Plattform-Compute. Wenn sie durch ein Event (Mention, Assignment oder Button-Click) ausgelöst werden, wird eine Session erstellt und der Flow beginnt mit der Ausführung.",[292,1559,1561],{"id":1560},"verfügbare-umgebungsvariablen","Verfügbare Umgebungsvariablen",[12,1563,1564],{},"Flows haben Zugriff auf Umgebungsvariablen, die Kontext über den Trigger und das GitLab-Objekt bereitstellen:",[31,1566,1567,1575,1583],{},[34,1568,1569,1574],{},[27,1570,1571],{},[505,1572,1573],{},"AI_FLOW_CONTEXT"," – JSON-serialisierter Kontext inklusive MR-Diffs, Issue-Beschreibungen, Kommentaren und Discussion-Threads",[34,1576,1577,1582],{},[27,1578,1579],{},[505,1580,1581],{},"AI_FLOW_INPUT"," – Der Prompt- oder Kommentartext des Nutzers, der den Flow ausgelöst hat",[34,1584,1585,1590,1591,1594,1595,1594,1598,1601],{},[27,1586,1587],{},[505,1588,1589],{},"AI_FLOW_EVENT"," – Der Event-Typ, der den Flow ausgelöst hat (",[505,1592,1593],{},"mention",", ",[505,1596,1597],{},"assign",[505,1599,1600],{},"assign_reviewer",")",[12,1603,1604],{},"Diese Variablen ermöglichen es deinem Flow zu verstehen, was ihn ausgelöst hat, und auf relevante GitLab-Daten zuzugreifen, um seine Aufgabe zu erfüllen.",[292,1606,1608],{"id":1607},"multi-agent-flows","Multi-Agent-Flows",[12,1610,1611],{},"Custom Flows können mehrere Agent-Komponenten enthalten, die sequenziell zusammenarbeiten. Die YAML-Konfiguration des Flows definiert:",[31,1613,1614,1619,1624],{},[34,1615,1616,1618],{},[27,1617,632],{},": Ein oder mehrere Agenten (AgentComponent) oder deterministische Schritte",[34,1620,1621,1623],{},[27,1622,644],{},": Definieren den Flow zwischen Komponenten (z.B. von Komponente A zu Komponente B zu Ende)",[34,1625,1626,1628],{},[27,1627,638],{},": Konfigurieren das Verhalten und Modell jedes Agenten",[12,1630,1631],{},"Beispielsweise könnte ein Code-Review-Flow einen Security Agent, dann einen Quality Agent, dann einen Approval Agent haben, mit Routern, die sie sequenziell verbinden.",[292,1633,1635],{"id":1634},"flow-ausführung-überwachen","Flow-Ausführung überwachen",[12,1637,1638],{},"Um Flows anzuzeigen, die für dein Projekt laufen:",[510,1640,1641,1648,1651],{},[34,1642,1643,1644,1647],{},"Navigiere zu ",[27,1645,1646],{},"Automate → Sessions",".",[34,1649,1650],{},"Wähle eine beliebige Session aus, um mehr Details zu sehen.",[34,1652,1653,1654,1657],{},"Der ",[27,1655,1656],{},"Details","-Tab zeigt einen Link zu den CI/CD-Job-Logs.",[12,1659,1660],{},"Sessions zeigen detaillierte Informationen inklusive Schritt-für-Schritt-Fortschritt, Tool-Aufrufe, Reasoning und Entscheidungsprozess.",[292,1662,1664],{"id":1663},"wann-flows-verwenden","Wann Flows verwenden",[31,1666,1667,1670,1673,1676,1679,1682],{},[34,1668,1669],{},"Komplexe mehrstufige Aufgaben",[34,1671,1672],{},"Hintergrund-Automatisierung",[34,1674,1675],{},"Event-gesteuerte Workflows",[34,1677,1678],{},"Multi-File-Änderungen",[34,1680,1681],{},"Zeitaufwändige Aufgaben",[34,1683,1684],{},"Automatisierte Reviews/Checks",[79,1686,1688],{"id":1687},"was-kommt-als-nächstes","Was kommt als Nächstes?",[12,1690,1691,1692,1696],{},"Du verstehst jetzt Flows, wie man sie erstellt und wann man sie im Vergleich zu Agenten verwendet. Als Nächstes lerne, wie du Agenten und Flows über deine Organisation hinweg entdecken, erstellen und teilen kannst in ",[19,1693,1695],{"href":1694},"/de-de/blog/ai-catalog-discover-and-share-agents/","Teil 5: AI Catalog",". Erkunde den AI Catalog, um verfügbare Flows und Agenten zu durchsuchen, sie zu deinen Projekten hinzuzufügen und deine eigenen Agenten und Flows zu veröffentlichen.",[79,1698,1700],{"id":1699},"ressourcen","Ressourcen",[31,1702,1703,1710,1716,1721,1728,1735],{},[34,1704,1705],{},[19,1706,1709],{"href":1707,"rel":1708},"https://docs.gitlab.com/user/duo_agent_platform/flows/",[],"GitLab Duo Agent Platform Flows",[34,1711,1712],{},[19,1713,1715],{"href":252,"rel":1714},[],"Foundational Flows Dokumentation",[34,1717,1718],{},[19,1719,1543],{"href":272,"rel":1720},[],[34,1722,1723],{},[19,1724,1727],{"href":1725,"rel":1726},"https://docs.gitlab.com/user/duo_agent_platform/flows/execution/",[],"Flow Execution Konfiguration",[34,1729,1730],{},[19,1731,1734],{"href":1732,"rel":1733},"https://docs.gitlab.com/ci/variables/",[],"GitLab CI/CD Variables Guide",[34,1736,1737],{},[19,1738,1741],{"href":1739,"rel":1740},"https://docs.gitlab.com/user/profile/service_accounts/",[],"Service Accounts",[1743,1744],"hr",{},[12,1746,1747,446,1750],{},[27,1748,1749],{},"Nächster:",[19,1751,1695],{"href":1694},[12,1753,1754,446,1757],{},[27,1755,1756],{},"Vorheriger:",[19,1758,1760],{"href":1759},"/de-de/blog/understanding-agents-foundational-custom-external/","Teil 3: Agenten verstehen",[1762,1763,1764],"style",{},"html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":668,"searchDepth":690,"depth":690,"links":1766},[1767,1768,1769,1770,1773,1780,1786,1787],{"id":81,"depth":690,"text":82},{"id":128,"depth":690,"text":129},{"id":222,"depth":690,"text":223},{"id":286,"depth":690,"text":287,"children":1771},[1772],{"id":294,"depth":701,"text":295},{"id":434,"depth":690,"text":435,"children":1774},[1775,1776,1777,1778,1779],{"id":455,"depth":701,"text":456},{"id":499,"depth":701,"text":500},{"id":541,"depth":701,"text":542},{"id":608,"depth":701,"text":609},{"id":654,"depth":701,"text":655},{"id":1553,"depth":690,"text":1554,"children":1781},[1782,1783,1784,1785],{"id":1560,"depth":701,"text":1561},{"id":1607,"depth":701,"text":1608},{"id":1634,"depth":701,"text":1635},{"id":1663,"depth":701,"text":1664},{"id":1687,"depth":690,"text":1688},{"id":1699,"depth":690,"text":1700},"ai","2026-01-14","Vertiefe dich in GitLab Duo Agent Platform Flows. Lerne Foundational Flows kennen, erstelle Custom User-defined Workflows und lerne Flow-Orchestrierungsmuster.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png",{},"/de-de/blog/understanding-flows-multi-agent-workflows",{"noIndex":1793,"title":5,"description":1790,"ogImage":1798},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1752678395/impw8no5tbskr6k2afgu.jpg","understanding-flows-multi-agent-workflows","de-de/blog/understanding-flows-multi-agent-workflows",[1802,1803,1804,1805],"AI","product","features","tutorial","BlogPost","sDyaHhCMpEG84sDc7XpjX72cwwnDMHyW9FPujYdfF7s",{"logo":1809,"freeTrial":1814,"sales":1819,"login":1824,"items":1829,"search":2156,"minimal":2190,"duo":2208,"switchNav":2217,"pricingDeployment":2228},{"config":1810},{"href":1811,"dataGaName":1812,"dataGaLocation":1813},"/de-de/","gitlab logo","header",{"text":1815,"config":1816},"Kostenlose Testversion anfordern",{"href":1817,"dataGaName":1818,"dataGaLocation":1813},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":1820,"config":1821},"Demo anfordern",{"href":1822,"dataGaName":1823,"dataGaLocation":1813},"/de-de/sales/?contact-topic=request-demo","sales",{"text":1825,"config":1826},"Anmelden",{"href":1827,"dataGaName":1828,"dataGaLocation":1813},"https://gitlab.com/users/sign_in/","sign in",[1830,1858,1960,1965,2078,2134],{"text":1831,"config":1832,"menu":1834},"Plattform",{"dataNavLevelOne":1833},"platform",{"type":1835,"columns":1836},"cards",[1837,1843,1850],{"title":1831,"description":1838,"link":1839},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":1840,"config":1841},"Die Plattform erkunden",{"href":1842,"dataGaName":1833,"dataGaLocation":1813},"/de-de/platform/",{"title":76,"description":1844,"link":1845},"Agentische KI für den gesamten Software-Lebenszyklus",{"text":1846,"config":1847},"Lerne GitLab Duo kennen",{"href":1848,"dataGaName":1849,"dataGaLocation":1813},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1851,"description":1852,"link":1853},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":1854,"config":1855},"Mehr erfahren",{"href":1856,"dataGaName":1857,"dataGaLocation":1813},"/de-de/why-gitlab/","why gitlab",{"text":1859,"left":916,"config":1860,"menu":1862},"Produkt",{"dataNavLevelOne":1861},"solutions",{"type":1863,"link":1864,"columns":1868,"feature":1939},"lists",{"text":1865,"config":1866},"Alle Lösungen anzeigen",{"href":1867,"dataGaName":1861,"dataGaLocation":1813},"/de-de/solutions/",[1869,1894,1917],{"title":1870,"description":1871,"link":1872,"items":1877},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":1873},{"icon":1874,"href":1875,"dataGaName":1876,"dataGaLocation":1813},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[1878,1882,1885,1890],{"text":1879,"config":1880},"CI/CD",{"href":1881,"dataGaLocation":1813,"dataGaName":1879},"/de-de/solutions/continuous-integration/",{"text":76,"config":1883},{"href":1848,"dataGaLocation":1813,"dataGaName":1884},"gitlab duo agent platform - product menu",{"text":1886,"config":1887},"Quellcodeverwaltung",{"href":1888,"dataGaLocation":1813,"dataGaName":1889},"/de-de/solutions/source-code-management/","Source Code Management",{"text":1891,"config":1892},"Automatische Softwarebereitstellung",{"href":1875,"dataGaLocation":1813,"dataGaName":1893},"Automated software delivery",{"title":1895,"description":1896,"link":1897,"items":1902},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":1898},{"href":1899,"dataGaName":1900,"dataGaLocation":1813,"icon":1901},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1903,1907,1912],{"text":1904,"config":1905},"Anwendungssicherheitstests",{"href":1899,"dataGaName":1906,"dataGaLocation":1813},"Application security testing",{"text":1908,"config":1909},"Schutz der Software-Lieferkette",{"href":1910,"dataGaLocation":1813,"dataGaName":1911},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":1913,"config":1914},"Software-Compliance",{"href":1915,"dataGaName":1916,"dataGaLocation":1813},"/de-de/solutions/software-compliance/","software compliance",{"title":1918,"link":1919,"items":1924},"Messung",{"config":1920},{"icon":1921,"href":1922,"dataGaName":1923,"dataGaLocation":1813},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[1925,1929,1934],{"text":1926,"config":1927},"Sichtbarkeit und Messung",{"href":1922,"dataGaLocation":1813,"dataGaName":1928},"Visibility and Measurement",{"text":1930,"config":1931},"Wertstrommanagement",{"href":1932,"dataGaLocation":1813,"dataGaName":1933},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":1935,"config":1936},"Analysen und Einblicke",{"href":1937,"dataGaLocation":1813,"dataGaName":1938},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":1940,"type":1863,"items":1941},"GitLab für",[1942,1948,1954],{"text":1943,"config":1944},"Enterprise",{"icon":1945,"href":1946,"dataGaLocation":1813,"dataGaName":1947},"Building","/de-de/enterprise/","enterprise",{"text":1949,"config":1950},"Kleinunternehmen",{"icon":1951,"href":1952,"dataGaLocation":1813,"dataGaName":1953},"Work","/de-de/small-business/","small business",{"text":1955,"config":1956},"Öffentlicher Sektor",{"icon":1957,"href":1958,"dataGaLocation":1813,"dataGaName":1959},"Organization","/de-de/solutions/public-sector/","public sector",{"text":1961,"config":1962},"Preise",{"href":1963,"dataGaName":1964,"dataGaLocation":1813,"dataNavLevelOne":1964},"/de-de/pricing/","pricing",{"text":1700,"config":1966,"menu":1968},{"dataNavLevelOne":1967},"resources",{"type":1863,"link":1969,"columns":1973,"feature":2067},{"text":1970,"config":1971},"Alle Ressourcen anzeigen",{"href":1972,"dataGaName":1967,"dataGaLocation":1813},"/de-de/resources/",[1974,2007,2034],{"title":1975,"items":1976},"Erste Schritte",[1977,1982,1987,1992,1997,2002],{"text":1978,"config":1979},"Installieren",{"href":1980,"dataGaName":1981,"dataGaLocation":1813},"/de-de/install/","install",{"text":1983,"config":1984},"Kurzanleitungen",{"href":1985,"dataGaName":1986,"dataGaLocation":1813},"/de-de/get-started/","quick setup checklists",{"text":1988,"config":1989},"Lernen",{"href":1990,"dataGaLocation":1813,"dataGaName":1991},"https://university.gitlab.com/","learn",{"text":1993,"config":1994},"Produktdokumentation",{"href":1995,"dataGaName":1996,"dataGaLocation":1813},"https://docs.gitlab.com/","product documentation",{"text":1998,"config":1999},"Best-Practice-Videos",{"href":2000,"dataGaName":2001,"dataGaLocation":1813},"/de-de/getting-started-videos/","best practice videos",{"text":2003,"config":2004},"Integrationen",{"href":2005,"dataGaName":2006,"dataGaLocation":1813},"/de-de/integrations/","integrations",{"title":2008,"items":2009},"Entdecken",[2010,2015,2020,2025,2029],{"text":2011,"config":2012},"Kundenerfolge",{"href":2013,"dataGaName":2014,"dataGaLocation":1813},"/de-de/customers/","customer success stories",{"text":2016,"config":2017},"Blog",{"href":2018,"dataGaName":2019,"dataGaLocation":1813},"/de-de/blog/","blog",{"text":2021,"config":2022},"Demo-Hub",{"href":2023,"dataGaName":2024,"dataGaLocation":1813},"/de-de/demo-hub/","demo hub",{"text":2026,"config":2027},"The Source",{"href":2028,"dataGaName":2019,"dataGaLocation":1813},"/de-de/the-source/",{"text":2030,"config":2031},"Remote",{"href":2032,"dataGaName":2033,"dataGaLocation":1813},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":2035,"items":2036},"Vernetzen",[2037,2042,2047,2052,2057,2062],{"text":2038,"config":2039},"GitLab-Services",{"href":2040,"dataGaName":2041,"dataGaLocation":1813},"/de-de/services/","services",{"text":2043,"config":2044},"Beitragen",{"href":2045,"dataGaName":2046,"dataGaLocation":1813},"https://contributors.gitlab.com","contribute",{"text":2048,"config":2049},"Community",{"href":2050,"dataGaName":2051,"dataGaLocation":1813},"/community/","community",{"text":2053,"config":2054},"Forum",{"href":2055,"dataGaName":2056,"dataGaLocation":1813},"https://forum.gitlab.com/","forum",{"text":2058,"config":2059},"Veranstaltungen",{"href":2060,"dataGaName":2061,"dataGaLocation":1813},"/events/","events",{"text":2063,"config":2064},"Partner",{"href":2065,"dataGaName":2066,"dataGaLocation":1813},"/de-de/partners/","partners",{"config":2068,"title":2071,"text":2072,"link":2073},{"background":2069,"textColor":2070},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Neues bei GitLab","Über die neuesten Funktionen und Verbesserungen auf dem Laufenden bleiben.",{"text":2074,"config":2075},"Aktuelle Nachrichten",{"href":2076,"dataGaName":2077,"dataGaLocation":1813},"/de-de/whats-new/","whats new",{"text":2079,"config":2080,"menu":2082},"Unternehmen",{"dataNavLevelOne":2081},"company",{"type":1863,"columns":2083},[2084],{"items":2085},[2086,2091,2097,2099,2104,2109,2114,2119,2124,2129],{"text":2087,"config":2088},"Über",{"href":2089,"dataGaName":2090,"dataGaLocation":1813},"/de-de/company/","about",{"text":2092,"config":2093,"footerGa":2096},"Karriere",{"href":2094,"dataGaName":2095,"dataGaLocation":1813},"/jobs/","jobs",{"dataGaName":2095},{"text":2058,"config":2098},{"href":2060,"dataGaName":2061,"dataGaLocation":1813},{"text":2100,"config":2101},"Geschäftsführung",{"href":2102,"dataGaName":2103,"dataGaLocation":1813},"/company/team/e-group/","leadership",{"text":2105,"config":2106},"Handbuch",{"href":2107,"dataGaName":2108,"dataGaLocation":1813},"https://handbook.gitlab.com/","handbook",{"text":2110,"config":2111},"Investor Relations",{"href":2112,"dataGaName":2113,"dataGaLocation":1813},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":2115,"config":2116},"Trust Center",{"href":2117,"dataGaName":2118,"dataGaLocation":1813},"/de-de/security/","trust center",{"text":2120,"config":2121},"AI Transparency Center",{"href":2122,"dataGaName":2123,"dataGaLocation":1813},"/de-de/ai-transparency-center/","ai transparency center",{"text":2125,"config":2126},"Newsletter",{"href":2127,"dataGaName":2128,"dataGaLocation":1813},"/company/contact/#contact-forms","newsletter",{"text":2130,"config":2131},"Presse",{"href":2132,"dataGaName":2133,"dataGaLocation":1813},"/press/","press",{"text":2135,"config":2136,"menu":2137},"Kontakt",{"dataNavLevelOne":2081},{"type":1863,"columns":2138},[2139],{"items":2140},[2141,2146,2151],{"text":2142,"config":2143},"Vertrieb kontaktieren",{"href":2144,"dataGaName":2145,"dataGaLocation":1813},"/de-de/sales/","talk to sales",{"text":2147,"config":2148},"Support-Portal",{"href":2149,"dataGaName":2150,"dataGaLocation":1813},"https://support.gitlab.com/hc/en-us","support portal",{"text":2152,"config":2153},"Kundenportal",{"href":2154,"dataGaName":2155,"dataGaLocation":1813},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":2157,"login":2158,"suggestions":2165},"Schließen",{"text":2159,"link":2160},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":2161,"config":2162},"gitlab.com",{"href":1827,"dataGaName":2163,"dataGaLocation":2164},"search login","search",{"text":2166,"default":2167},"Vorschläge",[2168,2170,2175,2177,2182,2187],{"text":76,"config":2169},{"href":1848,"dataGaName":76,"dataGaLocation":2164},{"text":2171,"config":2172},"Codevorschläge (KI)",{"href":2173,"dataGaName":2174,"dataGaLocation":2164},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1879,"config":2176},{"href":1881,"dataGaName":1879,"dataGaLocation":2164},{"text":2178,"config":2179},"GitLab auf AWS",{"href":2180,"dataGaName":2181,"dataGaLocation":2164},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":2183,"config":2184},"GitLab auf Google Cloud",{"href":2185,"dataGaName":2186,"dataGaLocation":2164},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":1851,"config":2188},{"href":1856,"dataGaName":2189,"dataGaLocation":2164},"Why GitLab?",{"freeTrial":2191,"mobileIcon":2196,"desktopIcon":2201,"secondaryButton":2204},{"text":2192,"config":2193},"Kostenlos testen",{"href":2194,"dataGaName":1818,"dataGaLocation":2195},"https://gitlab.com/-/trials/new/","nav",{"altText":2197,"config":2198},"GitLab-Symbol",{"src":2199,"dataGaName":2200,"dataGaLocation":2195},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":2197,"config":2202},{"src":2203,"dataGaName":2200,"dataGaLocation":2195},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1975,"config":2205},{"href":2206,"dataGaName":2207,"dataGaLocation":2195},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":2209,"mobileIcon":2213,"desktopIcon":2215},{"text":2210,"config":2211},"Mehr über GitLab Duo erfahren",{"href":1848,"dataGaName":2212,"dataGaLocation":2195},"gitlab duo",{"altText":2197,"config":2214},{"src":2199,"dataGaName":2200,"dataGaLocation":2195},{"altText":2197,"config":2216},{"src":2203,"dataGaName":2200,"dataGaLocation":2195},{"button":2218,"mobileIcon":2223,"desktopIcon":2225},{"text":2219,"config":2220},"/Option",{"href":2221,"dataGaName":2222,"dataGaLocation":2195},"#contact","switch",{"altText":2197,"config":2224},{"src":2199,"dataGaName":2200,"dataGaLocation":2195},{"altText":2197,"config":2226},{"src":2227,"dataGaName":2200,"dataGaLocation":2195},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":2229,"mobileIcon":2234,"desktopIcon":2236},{"text":2230,"config":2231},"Zurück zur Preisübersicht",{"href":1963,"dataGaName":2232,"dataGaLocation":2195,"icon":2233},"back to pricing","GoBack",{"altText":2197,"config":2235},{"src":2199,"dataGaName":2200,"dataGaLocation":2195},{"altText":2197,"config":2237},{"src":2203,"dataGaName":2200,"dataGaLocation":2195},{"title":2239,"button":2240,"config":2244},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":1854,"config":2241},{"href":2242,"dataGaName":2243,"dataGaLocation":1813},"/de-de/gitlab-orbit/","orbit",{"layout":2245,"disabled":1793},"release",{"data":2247},{"text":2248,"source":2249,"edit":2255,"contribute":2260,"config":2265,"items":2270,"minimal":2476},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":2250,"config":2251},"Quelltext der Seite anzeigen",{"href":2252,"dataGaName":2253,"dataGaLocation":2254},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":2256,"config":2257},"Diese Seite bearbeiten",{"href":2258,"dataGaName":2259,"dataGaLocation":2254},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":2261,"config":2262},"Beteilige dich",{"href":2263,"dataGaName":2264,"dataGaLocation":2254},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":2266,"facebook":2267,"youtube":2268,"linkedin":2269},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[2271,2316,2369,2411,2443],{"title":1961,"links":2272,"subMenu":2287},[2273,2277,2282],{"text":2274,"config":2275},"Tarife anzeigen",{"href":1963,"dataGaName":2276,"dataGaLocation":2254},"view plans",{"text":2278,"config":2279},"Vorteile von Premium",{"href":2280,"dataGaName":2281,"dataGaLocation":2254},"/de-de/pricing/premium/","why premium",{"text":2283,"config":2284},"Vorteile von Ultimate",{"href":2285,"dataGaName":2286,"dataGaLocation":2254},"/de-de/pricing/ultimate/","why ultimate",[2288],{"title":2135,"links":2289},[2290,2292,2294,2296,2301,2306,2311],{"text":2142,"config":2291},{"href":2144,"dataGaName":1823,"dataGaLocation":2254},{"text":2147,"config":2293},{"href":2149,"dataGaName":2150,"dataGaLocation":2254},{"text":2152,"config":2295},{"href":2154,"dataGaName":2155,"dataGaLocation":2254},{"text":2297,"config":2298},"Status",{"href":2299,"dataGaName":2300,"dataGaLocation":2254},"https://status.gitlab.com/","status",{"text":2302,"config":2303},"Nutzungsbedingungen",{"href":2304,"dataGaName":2305,"dataGaLocation":2254},"/terms/","terms of use",{"text":2307,"config":2308},"Datenschutzerklärung",{"href":2309,"dataGaName":2310,"dataGaLocation":2254},"/de-de/privacy/","privacy statement",{"text":2312,"config":2313},"Cookie-Einstellungen",{"dataGaName":2314,"dataGaLocation":2254,"id":2315,"isOneTrustButton":916},"cookie preferences","ot-sdk-btn",{"title":1859,"links":2317,"subMenu":2326},[2318,2322],{"text":2319,"config":2320},"DevSecOps-Plattform",{"href":1842,"dataGaName":2321,"dataGaLocation":2254},"devsecops platform",{"text":2323,"config":2324},"KI-unterstützte Entwicklung",{"href":1848,"dataGaName":2325,"dataGaLocation":2254},"ai-assisted development",[2327],{"title":2328,"links":2329},"Themen",[2330,2334,2339,2344,2349,2354,2359,2364],{"text":1879,"config":2331},{"href":2332,"dataGaName":2333,"dataGaLocation":2254},"/de-de/topics/ci-cd/","cicd",{"text":2335,"config":2336},"GitOps",{"href":2337,"dataGaName":2338,"dataGaLocation":2254},"/de-de/topics/gitops/","gitops",{"text":2340,"config":2341},"DevOps",{"href":2342,"dataGaName":2343,"dataGaLocation":2254},"/de-de/topics/devops/","devops",{"text":2345,"config":2346},"Versionskontrolle",{"href":2347,"dataGaName":2348,"dataGaLocation":2254},"/de-de/topics/version-control/","version control",{"text":2350,"config":2351},"DevSecOps",{"href":2352,"dataGaName":2353,"dataGaLocation":2254},"/de-de/topics/devsecops/","devsecops",{"text":2355,"config":2356},"Cloud-nativ",{"href":2357,"dataGaName":2358,"dataGaLocation":2254},"/de-de/topics/cloud-native/","cloud native",{"text":2360,"config":2361},"KI für das Programmieren",{"href":2362,"dataGaName":2363,"dataGaLocation":2254},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":2365,"config":2366},"Agentische KI",{"href":2367,"dataGaName":2368,"dataGaLocation":2254},"/de-de/topics/agentic-ai/","agentic ai",{"title":2370,"links":2371},"Lösungen",[2372,2375,2377,2382,2386,2389,2392,2395,2397,2399,2401,2406],{"text":1904,"config":2373},{"href":1899,"dataGaName":2374,"dataGaLocation":2254},"Application Security Testing",{"text":1891,"config":2376},{"href":1875,"dataGaName":1876,"dataGaLocation":2254},{"text":2378,"config":2379},"Agile Entwicklung",{"href":2380,"dataGaName":2381,"dataGaLocation":2254},"/de-de/solutions/agile-delivery/","agile delivery",{"text":2383,"config":2384},"SCM",{"href":1888,"dataGaName":2385,"dataGaLocation":2254},"source code management",{"text":1879,"config":2387},{"href":1881,"dataGaName":2388,"dataGaLocation":2254},"continuous integration & delivery",{"text":1930,"config":2390},{"href":1932,"dataGaName":2391,"dataGaLocation":2254},"value stream management",{"text":2335,"config":2393},{"href":2394,"dataGaName":2338,"dataGaLocation":2254},"/de-de/solutions/gitops/",{"text":1943,"config":2396},{"href":1946,"dataGaName":1947,"dataGaLocation":2254},{"text":1949,"config":2398},{"href":1952,"dataGaName":1953,"dataGaLocation":2254},{"text":1955,"config":2400},{"href":1958,"dataGaName":1959,"dataGaLocation":2254},{"text":2402,"config":2403},"Bildungswesen",{"href":2404,"dataGaName":2405,"dataGaLocation":2254},"/de-de/solutions/education/","education",{"text":2407,"config":2408},"Finanzdienstleistungen",{"href":2409,"dataGaName":2410,"dataGaLocation":2254},"/de-de/solutions/finance/","financial services",{"title":1700,"links":2412},[2413,2415,2417,2419,2422,2424,2427,2429,2431,2433,2435,2437,2439,2441],{"text":1978,"config":2414},{"href":1980,"dataGaName":1981,"dataGaLocation":2254},{"text":1983,"config":2416},{"href":1985,"dataGaName":1986,"dataGaLocation":2254},{"text":1988,"config":2418},{"href":1990,"dataGaName":1991,"dataGaLocation":2254},{"text":1993,"config":2420},{"href":1995,"dataGaName":2421,"dataGaLocation":2254},"docs",{"text":2016,"config":2423},{"href":2018,"dataGaName":2019,"dataGaLocation":2254},{"text":2425,"config":2426},"Neuerungen",{"href":2076,"dataGaName":2077,"dataGaLocation":2254},{"text":2011,"config":2428},{"href":2013,"dataGaName":2014,"dataGaLocation":2254},{"text":2030,"config":2430},{"href":2032,"dataGaName":2033,"dataGaLocation":2254},{"text":2038,"config":2432},{"href":2040,"dataGaName":2041,"dataGaLocation":2254},{"text":2043,"config":2434},{"href":2045,"dataGaName":2046,"dataGaLocation":2254},{"text":2048,"config":2436},{"href":2050,"dataGaName":2051,"dataGaLocation":2254},{"text":2053,"config":2438},{"href":2055,"dataGaName":2056,"dataGaLocation":2254},{"text":2058,"config":2440},{"href":2060,"dataGaName":2061,"dataGaLocation":2254},{"text":2063,"config":2442},{"href":2065,"dataGaName":2066,"dataGaLocation":2254},{"title":2079,"links":2444},[2445,2447,2449,2451,2453,2455,2460,2465,2467,2469,2471],{"text":2087,"config":2446},{"href":2089,"dataGaName":2081,"dataGaLocation":2254},{"text":2092,"config":2448},{"href":2094,"dataGaName":2095,"dataGaLocation":2254},{"text":2100,"config":2450},{"href":2102,"dataGaName":2103,"dataGaLocation":2254},{"text":2105,"config":2452},{"href":2107,"dataGaName":2108,"dataGaLocation":2254},{"text":2110,"config":2454},{"href":2112,"dataGaName":2113,"dataGaLocation":2254},{"text":2456,"config":2457},"Nachhaltigkeit",{"href":2458,"dataGaName":2459,"dataGaLocation":2254},"/sustainability/","Sustainability",{"text":2461,"config":2462},"Vielfalt, Inklusion und Zugehörigkeit",{"href":2463,"dataGaName":2464,"dataGaLocation":2254},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":2115,"config":2466},{"href":2117,"dataGaName":2118,"dataGaLocation":2254},{"text":2125,"config":2468},{"href":2127,"dataGaName":2128,"dataGaLocation":2254},{"text":2130,"config":2470},{"href":2132,"dataGaName":2133,"dataGaLocation":2254},{"text":2472,"config":2473},"Transparenzerklärung zu moderner Sklaverei",{"href":2474,"dataGaName":2475,"dataGaLocation":2254},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":2477},[2478,2481,2484],{"text":2479,"config":2480},"Terms",{"href":2304,"dataGaName":2305,"dataGaLocation":2254},{"text":2482,"config":2483},"Cookies",{"dataGaName":2314,"dataGaLocation":2254,"id":2315,"isOneTrustButton":916},{"text":2485,"config":2486},"Datenschutz",{"href":2309,"dataGaName":2310,"dataGaLocation":2254},[2488],{"id":2489,"title":7,"body":1792,"config":2490,"content":2492,"description":1792,"extension":2496,"meta":2497,"navigation":916,"path":2498,"seo":2499,"stem":2500,"__hash__":2501},"blogAuthors/en-us/blog/authors/itzik-gan-baruch.yml",{"template":2491},"BlogAuthor",{"name":7,"config":2493},{"headshot":2494,"ctfId":2495},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749658921/Blog/Author%20Headshots/iganbaruch-headshot.jpg","iganbaruch","yml",{},"/en-us/blog/authors/itzik-gan-baruch",{},"en-us/blog/authors/itzik-gan-baruch","bz9VMiTQ1ixvnoxUFk0jiUcnLG3oQsymgXNCqyRqfsk",[2503,2509,2517],{"title":2504,"description":2505,"heroImage":1794,"category":1788,"date":2506,"authors":2507,"slug":2508,"externalUrl":1792},"Wie ich einen Demo-Generator mit Duo Agent Platform baute","So sahen Demos nicht immer aus. Ein Rückblick auf ihre Entwicklung, plus ein Tutorial zum Bau einer eigenen Demo und eines eigenen Agenten.","2026-08-13",[7],"agentic-click-through-demo",{"title":2510,"description":2511,"heroImage":2512,"category":1788,"date":2513,"authors":2514,"slug":2516,"externalUrl":1792},"Governance für agentische KI, MCPs und KI-Code-Assistenten","KI-Agenten schreiben, pushen und deployen, ohne dass jeder Schritt geprüft wird. Ein praktisches Framework für Zugriff, Berechtigungen und Audit-Trails.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1785337625/ifzlc2hyzaxhzmjgyymh.png","2026-07-31",[2515],"Julie Griffin","govern-agentic-ai-mcps-code-assistants",{"title":2518,"description":2519,"heroImage":2520,"category":1788,"date":2521,"authors":2522,"slug":2524,"externalUrl":1792},"Claude Opus 5 auf GitLab: Reasoning für die anspruchsvollsten Aufgaben","Anthropics Claude Opus 5 ist jetzt auf der GitLab Duo Agent Platform verfügbar und bringt tieferes Reasoning für die anspruchsvollsten Aufgaben.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099203/Blog/Hero%20Images/Blog/Hero%20Images/blog-image-template-1800x945%20%2820%29_2bJGC5ZP3WheoqzlLT05C5_1750099203484.png","2026-07-27",[2523],"Brittany Lutz","claude-opus-5-on-gitlab-duo-agent-platform",{"promotions":2526},[2527,2540,2551,2563],{"id":2528,"categories":2529,"header":2530,"text":2531,"button":2532,"image":2537},"ai-modernization",[1788],"Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":2533,"config":2534},"Ermittle deinen KI-Reifegrad",{"href":2535,"dataGaName":2536,"dataGaLocation":2019},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":2538},{"src":2539},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":2541,"categories":2542,"header":2543,"text":2531,"button":2544,"image":2548},"devops-modernization",[1803,2353],"Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":2545,"config":2546},"Ermittle deinen DevOps-Reifegrad",{"href":2547,"dataGaName":2536,"dataGaLocation":2019},"/de-de/assessments/devops-modernization-assessment/",{"config":2549},{"src":2550},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":2552,"categories":2553,"header":2555,"text":2531,"button":2556,"image":2560},"security-modernization",[2554],"security","Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":2557,"config":2558},"Ermittle deinen Sicherheitsreifegrad",{"href":2559,"dataGaName":2536,"dataGaLocation":2019},"/de-de/assessments/security-modernization-assessment/",{"config":2561},{"src":2562},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":2564,"paths":2565,"header":2568,"text":2569,"button":2570,"image":2575},"github-azure-migration",[2566,2567],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Ist dein Team bereit für den Umzug von GitHub nach Azure?","GitHub stellt bereits auf Azure um. Finde heraus, was das für dich bedeutet.",{"text":2571,"config":2572},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":2573,"dataGaName":2574,"dataGaLocation":2019},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":2576},{"src":2550},{"header":2578,"blurb":2579,"button":2580,"secondaryButton":2585},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":2581,"config":2582},"Kostenlosen Test starten",{"href":2583,"dataGaName":1818,"dataGaLocation":2584},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":2142,"config":2586},{"href":2144,"dataGaName":1823,"dataGaLocation":2584},1786803757036]