← Zurück zur Übersicht

Wenn der Agent zu Code wird: Wie Teams selbstgebaute KI-Assistenten versionieren und absichern

Selbstgebaute KI-Agenten in Copilot, Claude Code oder Cursor sind keine persönlichen Einstellungen, sondern Code-Bestandteile – und gehören versioniert, gereviewt und abgesichert wie anderer Code. Mit Augenmaß.

Wer mit GitHub Copilot in VS Code, mit Claude Code oder mit Cursor arbeitet, baut längst eigene kleine Agenten – auch ohne es so zu nennen. Ein Testfall-Ersteller, der aus einer User Story Testfälle ableitet. Ein Doku-Agent, der Änderungen in Release Notes übersetzt. Ein Analyse-Agent, der Auffälligkeiten in strukturierten Daten markiert. Solche Helfer entstehen oft nebenbei: ein paar Zeilen Anweisung, eine angebundene Funktion, fertig.

Genau hier liegt ein blinder Fleck. Diese Helfer fühlen sich wie persönliche Einstellungen an – sind aber Code-Bestandteile. Sie bestimmen, was ein KI-Werkzeug in einem Projekt tut, sie liegen als Dateien im Repository, und sie können auf dieselben Ressourcen zugreifen wie ihre Anwenderin. Wer sie wie beiläufige Einstellungen behandelt, verschenkt Nachvollziehbarkeit – und öffnet ein Sicherheitsrisiko. Die nüchterne Konsequenz: Solche Agenten gehören versioniert, gereviewt und abgesichert wie anderer Code auch.

Was diese Agenten eigentlich sind: Klartext-Dateien im Repo

Der erste Schritt ist, hinzusehen, was man da überhaupt erzeugt. 2026 legen alle großen Werkzeuge diese Konfigurationen als versionierbare Klartext-Dateien ab, meist Markdown mit einem YAML-Kopf:

Alle drei Anbieter empfehlen ausdrücklich, die geteilte Konfiguration einzuchecken: einmal committen, und jede Mitwirkende bekommt denselben Kontext.235 Das persönliche oder lokale Pendant (etwa settings.local.json oder nutzereigene Regeln) bleibt dagegen bewusst außerhalb des Repos. Und „eingecheckt” ist nicht automatisch gelebte Norm: Es gibt reale Fälle, in denen Teams das ungefragte Anlegen solcher Dateien hinterfragen.6 Wo die Dateien aber eingecheckt sind, folgen diese Agenten automatisch dem gewohnten Branch-, Pull-Request- und Tag-Lebenszyklus. Das ist die gute Nachricht – und zugleich der Punkt, an dem die eigentliche Arbeit beginnt.

Versionieren: das Setup lässt sich festschreiben, das Verhalten nicht

Eine Datei im Git zu haben heißt noch nicht, ein reproduzierbares Verhalten zu haben. Bei KI-Agenten klafft hier eine Lücke, die klassische Software nicht kennt.

Das Modell ist Teil der Version – oft unausgesprochen. Drei der genannten Werkzeuge erlauben, ein konkretes Modell in der versionierten Konfiguration festzulegen: Claude-Code-Subagenten über ein model-Feld im Kopf, Copilot-Agenten über eine model-Eigenschaft.31 Wird nichts gesetzt, gilt das jeweils aktuelle Modell. Und Modell-Aliasnamen sind bewegliche Ziele: Ein verkürzter Aliasname ohne Datum (etwa claude-sonnet-4-5) zeigt laut Anthropic auf den jüngsten datierten Snapshot der jeweiligen Minor-Version; erst die datumsfreie kanonische ID ab Claude 4.6 ist selbst ein fest gepinnter Stand und kein Alias.7 Wer einen Aliasnamen in die Konfiguration einträgt, bekommt Modellwechsel ungefragt – belegbar daran, dass zwei ältere Modellstände am 15. Juni 2026 abgeschaltet wurden.8

Anweisungen driften ohne Code-Änderung. Ein bearbeitetes Instruction-File ändert das Verhalten sofort beim Speichern. Hinzu kommt Drift auf Modellseite – schon „Infrastruktur-Updates” können laut Anthropic kleine Verhaltensunterschiede erzeugen, selbst wenn Modell-ID und Gewichte gleich bleiben.7 Der bekannteste dokumentierte Fall von Verhaltens-Drift hinter stabilem Namen stammt von Chen, Zaharia und Zou: Bei einer Testaufgabe fiel die Trefferquote eines großen Modells zwischen März und Juni 2023 von 84 auf 51 Prozent – gleicher Prompt, anderes Update.9

Versionierbar ist das Setup, nicht der Output. Festschreiben lässt sich das Drumherum: Anweisungen, Modell-ID, Werkzeugliste, Berechtigungen. Nicht festschreiben lässt sich das Ergebnis. LLM-Inferenz ist im üblichen Serving-Betrieb nicht bitgenau reproduzierbar – technisch ließe sich Bit-Reproduzierbarkeit zwar mit batch-invarianten Rechenkernen erzwingen, im normalen Produktivbetrieb gilt sie aber nicht.10 Am Sampling-Knopf festmachen lässt sich das ohnehin immer weniger: Bei aktuellen Modellen wie Claude Opus 4.7 und neuer löst das manuelle Setzen von temperature, top_p oder top_k auf einen Nicht-Standardwert inzwischen sogar einen Fehler aus.11 Für QA ist das die entscheidende Einsicht: Einen Agenten sichert man nicht über einen Ausgabevergleich ab, sondern über wiederholt anwendbare Evaluationen und Regressionstests gegen definierte Kriterien – dieselbe Logik, die für jedes nicht-deterministische System gilt.

Geteiltes von Geheimem trennen. Damit Versionierung nicht zum Datenleck wird, ist die Trennung vorgesehen: .claude/settings.json wird eingecheckt und geteilt, .claude/settings.local.json automatisch aus Git ausgeschlossen; Zugangsdaten gehören in den lokalen oder Nutzer-Bereich, nicht in die eingecheckte Konfiguration.4 VS Code und Cursor nutzen dafür Platzhalter-Variablen statt fest eingetragener Geheimnisse.4

Verteilen: vom Kopieren zum gemeinsamen Standard

Solange ein nützlicher Agent per Kopie von Repo zu Repo wandert, gibt es so viele Varianten wie Kopien. Die Werkzeuge bieten inzwischen geteilte Wege: das Repository selbst, Vorlagen-Repos und Kataloge, sowie – in den Unternehmensvarianten – organisationsweite Anweisungen, die zentral gesetzt werden.12

Bemerkenswert ist die Konvergenz auf ein gemeinsames Format: AGENTS.md, eine schlichte Markdown-Datei als „README für Agenten”. Ursprünglich von OpenAI im August 2025 eingeführt, wird sie seit dem 9. Dezember 2025 von der Agentic AI Foundation unter dem Dach der Linux Foundation verwaltet; nach Angaben der AAIF ist sie in über 60.000 Open-Source-Projekten vorhanden – eine Selbstauskunft, und die bloße Präsenz einer Datei ist noch kein Beleg für aktive Nutzung.131415 Nativ unterstützt wird sie unter anderem von Cursor, dem GitHub Copilot Coding Agent und weiteren Werkzeugen. Ein ehrlicher Haken bleibt: Claude Code liest Stand Juni 2026 weiterhin seine eigene CLAUDE.md und unterstützt AGENTS.md nicht nativ – ein offener Feature-Wunsch, der zeigt, dass die Standardisierung noch im Gange ist.16

Governance: reviewen wie Code

Wenn diese Dateien Code sind, sollten sie auch dessen Freigabeprozess durchlaufen. Das Werkzeug dafür existiert und ist allgemein verfügbar – es muss nur auf die richtigen Pfade gezogen werden: Eine CODEOWNERS-Regel auf .github/, .claude/ oder .cursor/ plus eine Branch-Schutzregel „Review durch Code-Owner erforderlich” sorgt dafür, dass kein neuer Subagent und keine geänderte Anweisung ohne Freigabe eines benannten Teams in den Hauptzweig gelangt.1718 Wichtig zur Einordnung: Die Mechanik ist dokumentiert, ihr gezielter Einsatz für Agenten-Dateien ist eine naheliegende Empfehlung, kein vorgeschriebener Hersteller-Prozess. Und der Nutzen skaliert mit der Team-Größe: Je mehr Beitragende, desto eher rechtfertigt ein Review-Gate seinen Aufwand – dazu unten mehr.

Ein Detail mit Tücken: GitHubs Copilot-Code-Review zieht die Anweisungen aus dem Zielzweig des Pull Requests heran, also die bereits gemergte Fassung.19 Wer Review-Regeln über Instruction-Files steuert, muss deren Versionsstand also mitdenken. Auf Organisationsebene kommen weitere Hebel hinzu: Richtlinien und organisationsweite Anweisungen in den Business-/Enterprise-Plänen, zentrale Geräte-Richtlinien in VS Code und erzwungene Einstellungen in Claude Code.12204

Die Sicherheitsfrage: geteilte Konfiguration ist eine Angriffsfläche

Hier wird aus einer Ordnungsfrage eine Risikofrage. Ein eingecheckter Agent kann Werkzeuge aufrufen und Code ausführen – mit den Rechten der Person, die ihn nutzt.

Am deutlichsten zeigt sich das beim Model Context Protocol (MCP), dem verbreiteten Format, um Agenten an Werkzeuge anzubinden. Die MCP-Spezifikation hält ausdrücklich fest, dass das Protokoll Sicherheit nicht erzwingt – Vertrauen, Zustimmung und Rechtebeschränkung liegen beim Betreiber.21 Ein in eine geteilte Konfiguration eingeschleuster Startbefehl ist laut Spezifikation ein realer Angriff, bis hin zum Beispiel, Zugangsschlüssel nach außen zu schicken.22 Anthropic formuliert es für Claude Code unmissverständlich: Die Liste erlaubter MCP-Server steht im eingecheckten Quellcode, und Anthropic „auditiert oder verwaltet keinen MCP-Server” sicherheitstechnisch.23 Auch Skills bündeln nicht nur Anweisungen, sondern ausführbaren Code; die Empfehlung lautet, sie „wie das Installieren von Software” zu behandeln und nur aus vertrauenswürdigen Quellen zu nutzen.24 Dass das kein abstrakter Rat ist, zeigt eine Untersuchung von gut 31.000 öffentlich geteilten Skills: rund 26 Prozent wiesen mindestens eine Schwachstelle auf, solche mit ausführbaren Skripten mehr als doppelt so häufig.25

Dazu kommen subtilere Muster: versteckte Anweisungen in Werkzeugbeschreibungen, die OWASP als „Tool Poisoning” führt; ein einmal freigegebenes Werkzeug, das sein Verhalten später ändert; und vergiftete Repository-Inhalte als indirekter Einschleusungsweg.26 Dass solche Angriffe nicht rein hypothetisch sind, zeigt eine kritische Schwachstelle in einer verbreiteten MCP-Komponente (CVE-2025-6514) – allerdings nur als Proof of Concept (PoC), nicht als breit beobachteter Angriff, und nur unter der Vorbedingung, dass aktiv ein nicht vertrauenswürdiger MCP-Server verbunden wird.27 Und ein offizieller Katalog hilft nur begrenzt: Die MCP-Registry weist Herkunft nach, prüft aber nicht die Sicherheit – ein Eintrag ist keine Freigabe.28 Selbst Schutzmaßnahmen haben Grenzen: Eine Sandbox „reduziert das Risiko, ist aber keine vollständige Isolationsgrenze”, und in der Praxis werden Berechtigungs-Abfragen oft routinemäßig bestätigt.29

Im Großen längst gängig – nur anders verpackt

Was kleine Teams per Repository und Code-Owner-Regel erreichen, betreiben die großen Plattform-Anbieter als kuratierte, zentral verwaltete Strukturen: AWS begründet seine Agent Registry damit, dass Teams bestehende Agenten und Tools entdecken sollen, statt vorhandene Ressourcen neu aufzubauen; Microsoft hat mit Agent 365 seit Mai 2026 einen eigenen, zentral verwalteten Governance-Layer für Agenten allgemein verfügbar gemacht.3031 Das Prinzip ist dasselbe – geprüftes, geteiltes Artefakt statt Einzelkopie –, nur auf Organisationsebene. Für ein kleines Team lässt es sich auf genau zwei Bausteine herunterbrechen: ein gemeinsames Repo und ein Freigabeschritt.

Was kleinere Teams heute tun können

  1. Freigabe erzwingen, ohne Enterprise-Lizenz. Eine CODEOWNERS-Regel auf den Agenten-Pfaden plus „Pull Request erforderlich” und „Review durch Code-Owner” auf dem Hauptzweig – alles allgemein verfügbar.1718
  2. Scope bewusst trennen. Geteilte, eingecheckte Dateien sind reviewbar; persönliche und lokale Konfigurationen sind es nicht. Geheimnisse bleiben lokal.4
  3. Angebundene Werkzeuge klein halten. Nur selbst geschriebene oder klar vertrauenswürdige MCP-Server; Skills und Plugins vor der Nutzung prüfen wie fremde Software.24
  4. Verhalten über Tests absichern, nicht über Ausgabe-Vergleiche. Wiederholbare Evaluationen statt der Annahme, eine eingecheckte Version liefere ein stabiles Ergebnis.10 Aber mit Augenmaß: Evaluationen erben das Nicht-Determinismus-Problem – sie schwanken selbst, kosten Pflege (Gold-Sets) und managen das Risiko, statt es zu beseitigen.

Eine Sache ist dabei wichtig: Dosierung. Bei einem Ein- oder Zwei-Personen-Setup kann ein erzwungenes Review-Gate mehr Reibung erzeugen, als es Nutzen bringt – der Hebel lohnt sich mit wachsender Zahl an Beitragenden. Die vier Punkte sind ein Baukasten, kein Pflichtprogramm.

Die Leitfrage lautet nicht „Wie baue ich diesen Agenten?”, sondern „Behandle ich ihn wie das, was er ist – ein Stück Code, das versioniert, geprüft und abgesichert gehört?”

Grenzen dieser Auswertung

Quellen

  1. Microsoft, „Custom agents in VS Code” (.github/agents/, *.agent.md, Frontmatter inkl. model; vormals „chat modes”), https://code.visualstudio.com/docs/agent-customization/custom-agents, abgerufen am 2026-06-27. 2

  2. GitHub, „Adding repository custom instructions for GitHub Copilot” (.github/copilot-instructions.md, *.instructions.md mit applyTo; „commit once, every contributor gets the same context”), https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-repository-instructions, abgerufen am 2026-06-27. 2

  3. Anthropic, „Create custom subagents” (.claude/agents/, Frontmatter name/description/tools/model; „check them into version control”), https://code.claude.com/docs/en/sub-agents, abgerufen am 2026-06-27. 2 3

  4. Anthropic, „Claude Code settings” (settings.json eingecheckt vs. settings.local.json automatisch gitignored; Zugangsdaten im User-/Local-Scope; Precedence managed > project > user), https://code.claude.com/docs/en/settings, abgerufen am 2026-06-27. 2 3 4 5

  5. Cursor, „Rules” (.cursor/rules/*.mdc, „version-controlled and scoped to your codebase”; .cursorrules legacy), https://cursor.com/docs/rules, abgerufen am 2026-06-27. 2

  6. GitHub Issue pytorch/pytorch #166850 (Diskussion, ob das vom Copilot-Feature unbemerkt erzeugte .github/copilot-instructions.md ins Repo oder in die .gitignore gehört – reale Gegenstimme zum pauschalen „einchecken”), https://github.com/pytorch/pytorch/issues/166850, abgerufen am 2026-06-27.

  7. Anthropic, „Model IDs and versioning” (datierte Aliasnamen zeigen auf den jüngsten Snapshot; datumsfreie IDs ab Claude 4.6 sind gepinnt; Infrastruktur-Updates können kleine Verhaltensunterschiede erzeugen), https://platform.claude.com/docs/en/about-claude/models/model-ids-and-versions, abgerufen am 2026-06-27. 2

  8. Anthropic, „Model deprecations” (Abschaltung claude-sonnet-4-20250514 und claude-opus-4-20250514 am 2026-06-15), https://platform.claude.com/docs/en/about-claude/model-deprecations, abgerufen am 2026-06-27.

  9. Lingjiao Chen, Matei Zaharia, James Zou, „How is ChatGPT’s behavior changing over time?”, arXiv:2307.09009, https://arxiv.org/abs/2307.09009, abgerufen am 2026-06-27. Die genannten 84 % → 51 % beziehen sich auf die in der Abstract-Fassung berichtete Genauigkeit von GPT-4 auf der untersuchten Aufgabe (März vs. Juni 2023); je nach Paper-Fassung und Aufgabenzuschnitt kursiert auch ein engeres Zahlenpaar (97,6 % → 2,4 % bei der reinen Primzahl-Frage) – beide nicht vermischen.

  10. Horace He u. a., Thinking Machines Lab, „Defeating Nondeterminism in LLM Inference” (September 2025; im üblichen Serving keine bitgenaue Reproduzierbarkeit, auch nicht bei temperature=0 – Hauptursache ist Batch-Varianz; mit batch-invarianten Rechenkernen ist Bit-Reproduzierbarkeit aber prinzipiell erreichbar), https://thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference/, abgerufen am 2026-06-27. 2

  11. Anthropic, „Model deprecations” – Abschnitt „API parameter deprecations” („Returns a 400 error when set to a non-default value on Claude Opus 4.7 and later, including Claude Opus 4.8”), https://platform.claude.com/docs/en/about-claude/model-deprecations, abgerufen am 2026-06-27.

  12. GitHub, „Adding organization custom instructions” / „Copilot organization custom instructions are generally available” (org-weite Anweisungen, GA seit 2026-04-02), https://docs.github.com/en/copilot/how-tos/configure-custom-instructions/add-organization-instructions, abgerufen am 2026-06-27. 2

  13. Agentic AI Foundation, „AGENTS.md” (offenes Markdown-Format, „closest file wins”; nach Angaben der AAIF in über 60.000 Projekten vorhanden – Selbstauskunft; Tool-Unterstützung), https://agents.md/, abgerufen am 2026-06-27.

  14. OpenAI, „Agentic AI Foundation” / AGENTS.md (ursprünglich von OpenAI im August 2025 eingeführt, vor Übergabe an die AAIF), https://openai.com/index/agentic-ai-foundation/, abgerufen am 2026-06-27.

  15. Linux Foundation, „Linux Foundation Announces the Formation of the Agentic AI Foundation (AAIF)” (Verwaltung von MCP, goose und AGENTS.md seit 2025-12-09), https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation, abgerufen am 2026-06-27.

  16. GitHub Issue #6235, „Feature Request: Support AGENTS.md”, anthropics/claude-code (offen; Claude Code liest weiterhin CLAUDE.md), https://github.com/anthropics/claude-code/issues/6235, abgerufen am 2026-06-27.

  17. GitHub, „About code owners” (CODEOWNERS in .github/, gitignore-Pfadmuster), https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners, abgerufen am 2026-06-27. 2

  18. GitHub, „Managing a branch protection rule” („Require review from Code Owners”), https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule, abgerufen am 2026-06-27. 2

  19. GitHub, „Using custom instructions” (Copilot Code Review nutzt die Instructions des Zielzweigs; max. 4.000 Zeichen), https://docs.github.com/en/copilot/tutorials/use-custom-instructions, abgerufen am 2026-06-27.

  20. Microsoft, „Manage AI settings in enterprise environments” (Geräte-Richtlinien u. a. chat.mcp.access, chat.agent.enabled), https://code.visualstudio.com/docs/enterprise/ai-settings, abgerufen am 2026-06-27.

  21. Model Context Protocol, Spezifikation 2025-06-18, „Security and Trust & Safety” („MCP itself cannot enforce these security principles at the protocol level”; Annotationen sind „untrusted, unless obtained from a trusted server”), https://modelcontextprotocol.io/specification/2025-06-18, abgerufen am 2026-06-27.

  22. Model Context Protocol, „Security Best Practices” (Token-Passthrough verboten; „Local MCP Server Compromise” mit Exfiltrationsbeispiel), https://modelcontextprotocol.io/specification/2025-06-18/basic/security_best_practices, abgerufen am 2026-06-27.

  23. Anthropic, „Security” (Claude Code) („the list of allowed MCP servers is configured in your source code”; „does not security-audit or manage any MCP server”), https://code.claude.com/docs/en/security, abgerufen am 2026-06-27.

  24. Anthropic, „Agent Skills – Security considerations” („a malicious Skill can … lead to data exfiltration, unauthorized system access”; „Treat like installing software”), https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview, abgerufen am 2026-06-27. 2

  25. „Agent Skills in the Wild: An Empirical Study”, arXiv:2601.10338 (Audit von 31.132 Skills; ~26,1 % mit mindestens einer Schwachstelle; Skills mit ausführbaren Skripten ~2,12× häufiger betroffen), https://arxiv.org/abs/2601.10338, abgerufen am 2026-06-27.

  26. OWASP, „MCP Top 10 (2025) – MCP03:2025 Tool Poisoning”, https://owasp.org/www-project-mcp-top-10/, abgerufen am 2026-06-27.

  27. GitHub Advisory GHSA-6xpm-ggf7-wc3p / CVE-2025-6514 (mcp-remote, CVSS 9.6; Fix in 0.1.16), https://github.com/advisories/GHSA-6xpm-ggf7-wc3p; Entdeckung und Einordnung: JFrog, „Critical RCE Vulnerability in mcp-remote (CVE-2025-6514)” (erstmals praktisch demonstrierte RCE/Proof of Concept, kein beobachteter Massenangriff; Vorbedingung: Verbindung zu einem nicht vertrauenswürdigen MCP-Server), https://jfrog.com/blog/2025-6514-critical-mcp-remote-rce-vulnerability/. Beide abgerufen am 2026-06-27.

  28. Model Context Protocol, „The MCP Registry” (nur Herkunfts-/Namespace-Verifikation, kein Sicherheitsaudit), https://modelcontextprotocol.io/registry/about, abgerufen am 2026-06-27.

  29. Anthropic, „Configure the sandboxed Bash tool”, Abschnitt „Limitations”: „Sandboxing reduces risk but is not a complete isolation boundary”, https://code.claude.com/docs/en/sandboxing; sowie Anthropic Engineering, „How we contain Claude across products” (2026-05-25; zur „approval fatigue”: Nutzer bestätigten in der Telemetrie rund 93 % der Berechtigungs-Abfragen), https://www.anthropic.com/engineering/how-we-contain-claude. Beide abgerufen am 2026-06-27.

  30. Amazon Web Services, „AWS Agent Registry (Preview)” (kuratierter Katalog; Begründung „instead of rebuilding capabilities that already exist”), https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/registry.html, abgerufen am 2026-06-27.

  31. Microsoft, „Microsoft Agent 365 now generally available” (zentral verwalteter, admin-freigegebener Governance-/Control-Layer für Agenten; GA seit 2026-05-01), https://www.microsoft.com/en-us/security/blog/2026/05/01/microsoft-agent-365-now-generally-available-expands-capabilities-and-integrations/, abgerufen am 2026-06-27.

Transparenzhinweis: Dieser Beitrag wurde KI-gestützt erstellt und vor Veröffentlichung redaktionell geprüft.