[{"data":1,"prerenderedAt":21},["ShallowReactive",2],{"blog-post-de-ki-agenten-softwareentwicklung":3},{"slug":4,"lang":5,"title":6,"description":7,"heading":8,"translationKey":9,"date":10,"keywords":11,"readingMinutes":17,"html":18,"alternates":19},"ki-agenten-softwareentwicklung","de","KI-Agenten in der Softwareentwicklung: Nutzen und Kontrolle","Wo KI-Agenten in Planung, Dokumentation, Code Review, Daten und Kommunikation helfen und welche Kontrollen jede Phase der Softwareentwicklung braucht.","KI-Agenten in der Softwareentwicklung: wo sie helfen und wo Kontrolle nötig ist","sdlc-pillar","2026-06-26",[12,13,14,15,16],"KI-Agenten Softwareentwicklung","KI in der Softwareentwicklung","KI-Agenten Governance","MCP Gateway","Softwareentwicklungsprozess KI",7,"\u003Cp>In den meisten Entwicklungsteams hat KI an einer Stelle begonnen: als Coding-Assistent im Editor.\nDas ändert sich gerade. Assistenten wie Claude Code oder Cursor können inzwischen auch in den\nWerkzeugen rund um den Code handeln, also Jira-Tickets anlegen, Pull Requests kommentieren,\nConfluence-Seiten aktualisieren oder eine Zusammenfassung in Slack posten. Technisch möglich macht\ndas vor allem das Model Context Protocol (MCP), ein offener Standard, über den ein KI-Client\nFunktionen in anderen Systemen aufrufen kann.\u003C\u002Fp>\n\u003Cp>Damit verschiebt sich die Frage, die ein Team beantworten muss. Es geht nicht mehr nur darum,\nwelchen Assistenten man einsetzt, sondern darum, was dieser Assistent in jedem einzelnen System\ntun darf und wie man später nachvollzieht, was er getan hat. Dieser Artikel geht die Phasen des\nSoftwareentwicklungsprozesses durch, beschreibt, wo Agenten in jeder Phase sinnvoll sind, und nennt\ndie Kontrolle, auf die es dort am meisten ankommt. Zu jeder Phase gibt es in dieser Serie einen\neigenen, ausführlicheren Artikel.\u003C\u002Fp>\n\u003Ch2>Warum sich der Blick auf den gesamten Prozess lohnt\u003C\u002Fh2>\n\u003Cp>Ein Agent, der in einem lokalen Branch Code schreibt, kann nur begrenzten Schaden anrichten. Ein\nAgent, der zusätzlich Tickets schließt, Pull Requests merged, Dokumentation ändert und E-Mails\nverschickt, hat einen deutlich größeren Wirkungsbereich. Das Risiko entsteht dabei selten durch ein\neinzelnes Werkzeug, sondern durch die Summe der Zugriffe. Diese Zugriffe laufen meist über\npersönliche API-Tokens, die sämtliche Rechte der Person haben, die sie erstellt hat.\u003C\u002Fp>\n\u003Cp>In der Praxis führt das oft zu einem von zwei Ergebnissen. Entweder das Unternehmen sperrt Agenten\naußerhalb des Editors, und der Produktivitätsgewinn geht verloren. Oder einzelne Entwicklerinnen\nund Entwickler binden Agenten auf eigene Faust an, und niemand kann mehr sagen, welcher Agent\nwelches System erreicht. Beides ist keine gute Ausgangslage. Sinnvoller ist es, pro Phase zu\nentscheiden, welche Operationen ein Agent tatsächlich braucht, genau diese freizugeben und jeden\nAufruf zu protokollieren.\u003C\u002Fp>\n\u003Cfigure class=\"post-figure\">\n\u003Csvg viewBox=\"0 0 760 326\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" role=\"img\" aria-labelledby=\"sdlc-map-title\">\n  \u003Ctitle id=\"sdlc-map-title\">Fünf Phasen der Softwareentwicklung, die Werkzeuge jeder Phase und die wichtigste Kontrolle dort, mit einem gemeinsamen Audit-Log über alle Phasen.\u003C\u002Ftitle>\n  \u003Cpath class=\"fig-flow\" d=\"M20 22 H740\"\u002F>\n  \u003Cpath class=\"fig-head\" d=\"M740 17 L750 22 L740 27 Z\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"10\" y=\"40\" width=\"140\" height=\"56\" rx=\"10\"\u002F>\n  \u003Ctext class=\"fig-s\" x=\"80\" y=\"60\" text-anchor=\"middle\">01\u003C\u002Ftext>\n  \u003Ctext class=\"fig-t\" x=\"80\" y=\"80\" text-anchor=\"middle\">Planung\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"10\" y=\"106\" width=\"140\" height=\"86\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h\" x=\"22\" y=\"123\">WERKZEUGE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"80\" y=\"140\" text-anchor=\"middle\">Jira\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"80\" y=\"158\" text-anchor=\"middle\">Azure Boards\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"80\" y=\"176\" text-anchor=\"middle\">Trello\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--muted\" x=\"10\" y=\"202\" width=\"140\" height=\"64\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h fig-c-primary\" x=\"22\" y=\"219\">KONTROLLE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"80\" y=\"238\" text-anchor=\"middle\">Projektbereich\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"80\" y=\"255\" text-anchor=\"middle\">kein freies JQL\u003C\u002Ftext>\n  \u003Cpath class=\"fig-edge fig-edge--faint\" d=\"M80 266 V284\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"160\" y=\"40\" width=\"140\" height=\"56\" rx=\"10\"\u002F>\n  \u003Ctext class=\"fig-s\" x=\"230\" y=\"60\" text-anchor=\"middle\">02\u003C\u002Ftext>\n  \u003Ctext class=\"fig-t\" x=\"230\" y=\"80\" text-anchor=\"middle\">Dokumentation\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"160\" y=\"106\" width=\"140\" height=\"86\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h\" x=\"172\" y=\"123\">WERKZEUGE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"230\" y=\"140\" text-anchor=\"middle\">Confluence\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"230\" y=\"158\" text-anchor=\"middle\">Azure DevOps Wiki\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"230\" y=\"176\" text-anchor=\"middle\">Notion\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--muted\" x=\"160\" y=\"202\" width=\"140\" height=\"64\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h fig-c-primary\" x=\"172\" y=\"219\">KONTROLLE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"230\" y=\"238\" text-anchor=\"middle\">Space und Seite\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"230\" y=\"255\" text-anchor=\"middle\">Versionsprüfung\u003C\u002Ftext>\n  \u003Cpath class=\"fig-edge fig-edge--faint\" d=\"M230 266 V284\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"310\" y=\"40\" width=\"140\" height=\"56\" rx=\"10\"\u002F>\n  \u003Ctext class=\"fig-s\" x=\"380\" y=\"60\" text-anchor=\"middle\">03\u003C\u002Ftext>\n  \u003Ctext class=\"fig-t\" x=\"380\" y=\"80\" text-anchor=\"middle\">Code &amp; Review\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"310\" y=\"106\" width=\"140\" height=\"86\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h\" x=\"322\" y=\"123\">WERKZEUGE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"380\" y=\"140\" text-anchor=\"middle\">GitHub\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"380\" y=\"158\" text-anchor=\"middle\">Azure Repos\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--muted\" x=\"310\" y=\"202\" width=\"140\" height=\"64\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h fig-c-primary\" x=\"322\" y=\"219\">KONTROLLE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"380\" y=\"238\" text-anchor=\"middle\">pro Operation\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"380\" y=\"255\" text-anchor=\"middle\">Mergen aus\u003C\u002Ftext>\n  \u003Cpath class=\"fig-edge fig-edge--faint\" d=\"M380 266 V284\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"460\" y=\"40\" width=\"140\" height=\"56\" rx=\"10\"\u002F>\n  \u003Ctext class=\"fig-s\" x=\"530\" y=\"60\" text-anchor=\"middle\">04\u003C\u002Ftext>\n  \u003Ctext class=\"fig-t\" x=\"530\" y=\"80\" text-anchor=\"middle\">Daten\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"460\" y=\"106\" width=\"140\" height=\"86\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h\" x=\"472\" y=\"123\">WERKZEUGE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"530\" y=\"140\" text-anchor=\"middle\">Databricks\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--muted\" x=\"460\" y=\"202\" width=\"140\" height=\"64\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h fig-c-primary\" x=\"472\" y=\"219\">KONTROLLE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"530\" y=\"238\" text-anchor=\"middle\">nur lesend\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"530\" y=\"255\" text-anchor=\"middle\">Spalten-Allowlist\u003C\u002Ftext>\n  \u003Cpath class=\"fig-edge fig-edge--faint\" d=\"M530 266 V284\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"610\" y=\"40\" width=\"140\" height=\"56\" rx=\"10\"\u002F>\n  \u003Ctext class=\"fig-s\" x=\"680\" y=\"60\" text-anchor=\"middle\">05\u003C\u002Ftext>\n  \u003Ctext class=\"fig-t\" x=\"680\" y=\"80\" text-anchor=\"middle\">Kommunikation\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"610\" y=\"106\" width=\"140\" height=\"86\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h\" x=\"622\" y=\"123\">WERKZEUGE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"680\" y=\"140\" text-anchor=\"middle\">Slack · Teams\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"680\" y=\"158\" text-anchor=\"middle\">Gmail · Outlook\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--muted\" x=\"610\" y=\"202\" width=\"140\" height=\"64\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h fig-c-primary\" x=\"622\" y=\"219\">KONTROLLE\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"680\" y=\"238\" text-anchor=\"middle\">Channel-Bereich\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"680\" y=\"255\" text-anchor=\"middle\">Empfängerregeln\u003C\u002Ftext>\n  \u003Cpath class=\"fig-edge fig-edge--faint\" d=\"M680 266 V284\"\u002F>\n  \u003Crect class=\"fig-box fig-box--primary\" x=\"10\" y=\"284\" width=\"740\" height=\"36\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-h fig-c-primary\" x=\"26\" y=\"306\">EIN AUDIT-LOG ÜBER ALLE PHASEN\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"734\" y=\"306\" text-anchor=\"end\">append-only · Hash-Kette\u003C\u002Ftext>\n\u003C\u002Fsvg>\n\u003Cfigcaption>Die fünf Phasen dieses Artikels, ihre Werkzeuge und die jeweils wichtigste Kontrolle. Ein gemeinsames Audit-Log liegt unter allen Phasen.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\n\u003Ch2>Planung: Backlog, Sprints und Work Items\u003C\u002Fh2>\n\u003Cp>Planungsarbeit ist wiederkehrend und textlastig und eignet sich deshalb gut für Agenten. Typische\nAufgaben sind Tickets aus einem Meeting-Protokoll erstellen, das Backlog pflegen, Issues in den\nnächsten Sprint verschieben oder zusammenfassen, was sich im letzten Sprint geändert hat. Die\nbetroffenen Systeme sind Jira, Azure DevOps Boards und Trello.\u003C\u002Fp>\n\u003Cp>Die wichtigste Kontrolle ist hier der Zugriffsbereich. Ein Agent, der die Sprints eines Teams\nplant, sollte nur das Jira-Projekt dieses Teams sehen und Issues zwischen Backlog und Sprint\nverschieben können, ohne Projekte löschen zu dürfen. In Vordix wird der Jira-Zugriff über den\nProjektschlüssel eingegrenzt, zusätzlich gibt es Allowlists für Issue-Typen, Boards und Sprints.\nVor jeder Sprint- oder Board-Operation prüft Vordix, ob das Board oder der Sprint tatsächlich zu\neinem freigegebenen Projekt gehört. Die Suche akzeptiert nur strukturierte Filter und kein freies\nJQL, sodass ein Agent seine Abfrage nicht selbst ausweiten kann. Details dazu stehen im Artikel\n\u003Ca href=\"\u002Fde\u002Fblog\u002Fki-agent-jira-sprintplanung\">KI-Agent in der Jira-Sprintplanung\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Dokumentation: Confluence und Wikis\u003C\u002Fh2>\n\u003Cp>Dokumentation hinkt dem Code meistens hinterher. Agenten können helfen, indem sie Release Notes\nentwerfen, ein Runbook nach einem Incident aktualisieren oder eine Architekturseite mit dem\nRepository abgleichen. Die betroffenen Systeme sind Confluence, das Azure DevOps Wiki und in manchen\nTeams Notion.\u003C\u002Fp>\n\u003Cp>Entscheidend ist hier, in welche Bereiche ein Agent schreiben darf und ob er löschen kann. Den\ngesamten Confluence-Bestand zu lesen, ist oft vertretbar; Seiten im HR-Bereich umzuschreiben, ist es\nnicht. Vordix grenzt Confluence nach Space und Seite ein. Im Azure DevOps Wiki wird eine Änderung\nabgelehnt, wenn sie auf einer veralteten Seitenversion beruht, sodass ein Agent die Änderung einer\nKollegin nicht unbemerkt überschreiben kann. Mehr dazu in\n\u003Ca href=\"\u002Fde\u002Fblog\u002Fki-dokumentation-confluence-azure-devops-wiki\">KI-Dokumentation in Confluence und im Azure DevOps Wiki\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Code und Review: GitHub und Azure DevOps Repos\u003C\u002Fh2>\n\u003Cp>Hier setzen die meisten Teams bereits KI ein, und hier steht am meisten auf dem Spiel. Für das\nReview eines Pull Requests braucht ein Agent Lesezugriff auf Dateien und Diffs sowie das Recht zu\nkommentieren. Mergen, auf einen geschützten Branch pushen oder einen Deployment-Workflow auslösen\nsind dagegen eigene Operationen mit einem ganz anderen Risiko.\u003C\u002Fp>\n\u003Cp>Die passende Kontrolle ist das Prinzip der minimalen Rechte pro Operation. In Vordix ist jede\nOperation eine eigene Berechtigung: Ein Agent darf zum Beispiel Pull Requests lesen und\nReview-Kommentare schreiben, während das Mergen abgeschaltet bleibt. Der Zugriff wird pro\nRepository eingegrenzt, Branches lassen sich per Allowlist einschränken. Für Operationen, die nur\nnach einer menschlichen Entscheidung laufen sollen, kann ein Admin eine Freigaberegel hinterlegen,\netwa für das Mergen eines Pull Requests. Der Aufruf wird dann angehalten, bis jemand ihn freigibt.\nDas wird pro Operation konfiguriert und ist nicht standardmäßig aktiv. Mehr dazu in\n\u003Ca href=\"\u002Fde\u002Fblog\u002Fki-code-review-berechtigungen-github-azure-devops\">Berechtigungen für KI Code Review auf GitHub und Azure DevOps\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Daten: Databricks und das Data Warehouse\u003C\u002Fh2>\n\u003Cp>Agenten werden nützlicher, wenn sie Fragen mit echten Zahlen beantworten können, zum Beispiel zur\nFehlerrate eines Service nach einem Release. Dafür brauchen sie Zugriff auf die Datenplattform, und\ndort liegen häufig personenbezogene Daten.\u003C\u002Fp>\n\u003Cp>Die Kontrollen betreffen hier Tabellen und Spalten sowie den Umgang mit sensiblen Werten im\nErgebnis. Die Databricks-Anbindung in Vordix ist rein lesend und akzeptiert strukturierte Abfragen\nstatt freiem SQL; Spalten werden pro Tabelle freigegeben. Datenrichtlinien können Werte wie\nE-Mail-Adressen oder IBANs maskieren, pseudonymisieren oder entfernen, bevor das Ergebnis beim Modell\nankommt. Siehe \u003Ca href=\"\u002Fde\u002Fblog\u002Fki-agenten-databricks-datenzugriff\">KI-Agenten und Datenzugriff in Databricks\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Kommunikation: Slack, Teams und E-Mail\u003C\u002Fh2>\n\u003Cp>Am Ende vieler Abläufe steht eine Nachricht: eine Release-Zusammenfassung in einem Slack-Channel,\nein Status in Microsoft Teams, eine E-Mail an einen Kunden. Kommunikationswerkzeuge sind heikel,\nweil eine Nachricht das Team verlässt, bei E-Mail oft sogar das Unternehmen.\u003C\u002Fp>\n\u003Cp>Die Kontrollen sind hier der Channel-Bereich für Chat und Empfängerregeln für E-Mail. Vordix\ngrenzt Slack nach Channel und Teams nach Team und Channel ein. Für Gmail und Outlook können Admins\ndie Empfänger auf eine Allowlist oder auf interne Domains beschränken, die Zahl der Empfänger\nbegrenzen und BCC verbieten. Dieselben Regeln filtern auch, was der Agent lesen darf; E-Mails\naußerhalb der Richtlinie erreichen das Modell also gar nicht erst.\u003C\u002Fp>\n\u003Ch2>Über alle Phasen hinweg: ein gemeinsames Audit-Log\u003C\u002Fh2>\n\u003Cp>Jede Phase hat ihr eigenes Risiko, eine Anforderung haben aber alle gemeinsam: Wenn etwas schiefgeht,\nmuss das Team rekonstruieren können, was passiert ist. Protokolliert jedes Werkzeug die\nAgentenaktivität auf seine eigene Art oder gar nicht, wird daraus eine mühsame Suche über mehrere\nSysteme.\u003C\u002Fp>\n\u003Cp>Ein zentrales Gateway kann jeden Aufruf an einer Stelle festhalten, auch die abgelehnten Aufrufe\nsamt Begründung. In Vordix ist das Audit-Log append-only (Einträge werden nur angehängt) und über eine Hash-Kette gesichert,\nnachträgliche Änderungen fallen also auf. Es lässt sich exportieren oder an ein SIEM-System\n(Security Information and Event Management) streamen. Ein Protokoll, das außerhalb des KI-Anbieters\ngeführt wird, hat außerdem eine andere Beweiskraft als die Aufzeichnungen des Anbieters selbst.\nDarum geht es im Artikel \u003Ca href=\"\u002Fde\u002Fblog\u002Faudit-log-ki-agenten-eu-ai-act\">Audit-Log für KI-Agenten und der EU AI Act\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Ein Kontrollpunkt statt vieler\u003C\u002Fh2>\n\u003Cp>Die beschriebenen Phasen folgen einem gemeinsamen Muster: Agenten brauchen Zugriff auf viele\nSysteme, und jedes System braucht eine andere Art von Grenze. Man kann diese Grenzen in jedem\nWerkzeug einzeln konfigurieren, das Ergebnis lässt sich aber kaum prüfen, weil die Antwort auf die\nFrage „Was darf dieser Agent?“ über ein Dutzend Admin-Oberflächen verteilt ist.\u003C\u002Fp>\n\u003Cfigure class=\"post-figure\">\n\u003Csvg viewBox=\"0 0 760 290\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" role=\"img\" aria-labelledby=\"sdlc-hub-title\">\n  \u003Ctitle id=\"sdlc-hub-title\">KI-Clients verbinden sich mit einem Gateway; dessen Regeln auf Organisations-, Projekt- und Workspace-Ebene entscheiden jeden Aufruf in jeder Phase, und jeder Aufruf landet in einem Audit-Log.\u003C\u002Ftitle>\n  \u003Cpath class=\"fig-flow fig-flow--ai\" d=\"M136 80 C200 80 200 128 260 128\"\u002F>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"16\" y=\"60\" width=\"120\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"76\" y=\"79\" text-anchor=\"middle\">Claude Code\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"76\" y=\"93\" text-anchor=\"middle\">MCP\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow fig-flow--ai\" d=\"M136 140 C200 140 200 128 260 128\"\u002F>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"16\" y=\"120\" width=\"120\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"76\" y=\"139\" text-anchor=\"middle\">Cursor\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"76\" y=\"153\" text-anchor=\"middle\">MCP\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow fig-flow--ai\" d=\"M136 200 C200 200 200 128 260 128\"\u002F>\n  \u003Crect class=\"fig-box fig-box--ai\" x=\"16\" y=\"180\" width=\"120\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"76\" y=\"199\" text-anchor=\"middle\">CI-Job\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"76\" y=\"213\" text-anchor=\"middle\">REST\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow\" d=\"M440 128 C500 128 500 41 548 41\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"548\" y=\"20\" width=\"200\" height=\"42\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"560\" y=\"38\">Planung\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"560\" y=\"54\">Jira · Boards · Trello\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow\" d=\"M440 128 C500 128 500 91 548 91\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"548\" y=\"70\" width=\"200\" height=\"42\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"560\" y=\"88\">Dokumentation\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"560\" y=\"104\">Confluence · Wiki · Notion\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow\" d=\"M440 128 C500 128 500 141 548 141\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"548\" y=\"120\" width=\"200\" height=\"42\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"560\" y=\"138\">Code &amp; Review\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"560\" y=\"154\">GitHub · Azure Repos\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow\" d=\"M440 128 C500 128 500 191 548 191\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"548\" y=\"170\" width=\"200\" height=\"42\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"560\" y=\"188\">Daten\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"560\" y=\"204\">Databricks\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow\" d=\"M440 128 C500 128 500 241 548 241\"\u002F>\n  \u003Crect class=\"fig-box\" x=\"548\" y=\"220\" width=\"200\" height=\"42\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"560\" y=\"238\">Kommunikation\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"560\" y=\"254\">Slack · Teams · E-Mail\u003C\u002Ftext>\n  \u003Cpath class=\"fig-flow\" d=\"M350 220 V240\"\u002F>\n  \u003Crect class=\"fig-box fig-box--primary\" x=\"260\" y=\"36\" width=\"180\" height=\"184\" rx=\"14\"\u002F>\n  \u003Ctext class=\"fig-h fig-c-primary\" x=\"272\" y=\"60\">VORDIX\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"272\" y=\"74\" width=\"156\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"284\" y=\"92\">Organisation\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"284\" y=\"107\">Obergrenze\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"272\" y=\"122\" width=\"156\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"284\" y=\"140\">Projekt\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"284\" y=\"155\">Auswahl\u003C\u002Ftext>\n  \u003Crect class=\"fig-box\" x=\"272\" y=\"170\" width=\"156\" height=\"40\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t\" x=\"284\" y=\"188\">Workspace\u003C\u002Ftext>\n  \u003Ctext class=\"fig-s\" x=\"284\" y=\"203\">Endpunkt\u003C\u002Ftext>\n  \u003Crect class=\"fig-box fig-box--primary\" x=\"290\" y=\"240\" width=\"120\" height=\"36\" rx=\"8\"\u002F>\n  \u003Ctext class=\"fig-t fig-c-primary\" x=\"350\" y=\"263\" text-anchor=\"middle\">Audit-Log\u003C\u002Ftext>\n\u003C\u002Fsvg>\n\u003Cfigcaption>Ein Kontrollpunkt: KI-Clients verbinden sich mit dem Gateway. Dort entscheiden Regeln auf Organisations-, Projekt- und Workspace-Ebene über jeden Aufruf in jeder Phase, und jeder Aufruf wird im Audit-Log festgehalten.\u003C\u002Ffigcaption>\n\u003C\u002Ffigure>\n\n\u003Cp>Ein MCP Gateway setzt einen einzigen Kontrollpunkt zwischen die KI-Clients und die Werkzeuge. Der\nAgent verbindet sich mit dem Gateway, statt für jedes System eigene Tokens zu halten, und das\nGateway entscheidet bei jedem Aufruf. Wie das funktioniert und wann ein Team so etwas wirklich\nbraucht, erklärt der Artikel \u003Ca href=\"\u002Fde\u002Fblog\u002Fwas-ist-ein-mcp-gateway\">Was ist ein MCP Gateway?\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>Trade-offs und Einschränkungen\u003C\u002Fh2>\n\u003Cp>Ein Gateway ist eine zusätzliche Komponente und hat seinen Preis. Es muss betrieben, aktualisiert\nund überwacht werden. Vordix läuft selbst gehostet auf der Infrastruktur des Kunden; die Daten\nbleiben damit im Haus, der Betrieb liegt aber beim Team. Außerdem brauchen Berechtigungen eine\nverantwortliche Person: Ein Gateway macht Zugriffe überprüfbar, entscheidet aber nicht, welche\nZugriffe richtig sind. Schließlich deckt ein Gateway nur die Operationen ab, die es unterstützt. Der\nUmfang unterscheidet sich je nach Werkzeug; die Notion-Anbindung ist zum Beispiel derzeit auf Seiten\nin Datenbanken beschränkt. Vor einer Einführung sollte ein Team daher die benötigten Operationen mit\nder Dokumentation abgleichen.\u003C\u002Fp>\n\u003Ch2>Fazit\u003C\u002Fh2>\n\u003Cp>KI-Agenten wandern aus dem Editor in Planung, Dokumentation, Review, Daten und Kommunikation. Der\nNutzen ist real, die Summe der Zugriffe aber auch. Ein tragfähiger Weg ist, pro Phase zu entscheiden,\nwelche Operationen nötig sind, nur diese freizugeben und jeden Aufruf an einer Stelle zu\nprotokollieren. Die weiteren Artikel dieser Serie betrachten jede Phase im Detail.\u003C\u002Fp>\n\u003Cp>Wenn Sie sehen möchten, wie das für Ihre eigene Toolchain aussieht, können Sie eine Demo anfragen\noder die Vordix-Dokumentation lesen.\u003C\u002Fp>\n",{"de":4,"en":20},"ai-agents-software-development-lifecycle",1790588073423]