7 Min. Lesezeit

KI-Agenten ändern Feature Flags: jeden Schreibvorgang kontrollieren

KI-Agenten, die Feature Flags ändern, brauchen kontrollierte Schreibvorgänge in der Produktion mit ausdrücklichen Genehmigungen, bedingten Aktualisierungen, Prüfungen durch erneutes Auslesen und dauerhaftem Auditnachweis.

KI-Agenten ändern Feature Flags: jeden Schreibvorgang kontrollieren

KI-Agenten, die Feature Flags ändern, müssen wie Schreibvorgänge in der Produktion behandelt werden, denn genau das sind sie. Ein Flag kann außerhalb der Deployment-Pipeline liegen und innerhalb weniger Sekunden Code für Kunden aktivieren, einen Zahlungsweg unterdrücken, ein Experiment ausweiten oder eine Sicherheitsprüfung abschalten.

Der Fehler, den ich immer wieder sehe, ist der Zugriff eines Agenten auf einen Flag-Anbieter, weil die Aufgabe harmlos klingt: «Aktiviere den neuen Ablauf für interne Nutzer» oder «Setze den Rollout auf null». Die Änderung selbst kann korrekt sein. Gefährlich ist der fehlende Nachweis. Nach einem Ausfall müssen die Beteiligten wissen, was der Agent angefordert hat, wer die Anfrage akzeptiert hat, was der Anbieter getan hat und ob der Endzustand der Anfrage entsprach. Ein Chatverlauf kann diese Aufgabe nicht erfüllen.

Eine Flag-Änderung ist ein Schreibvorgang in der Produktion

Eine Änderung an einem Feature Flag hat operativ denselben Charakter wie das Ändern einer Einstellung in einer Produktionsdatenbank oder einer aktiven Routing-Regel. Der API-Aufruf mag klein sein, seine Wirkung kann jedoch weitreichend und unmittelbar sein.

Wer Flags als harmlose Konfiguration behandelt, erzeugt einen bekannten Fehler. Ein Agent untersucht eine erhöhte Fehlerrate, findet ein Flag am zuletzt eingeführten Feature und setzt es auf false. Das kann Nutzer schützen. Es kann aber auch einen nicht verwandten Codepfad deaktivieren, weil das Flag eine Targeting-Regel statt eines einfachen Booleschen Werts verwendet oder weil der Agent die falsche Umgebung ausgewählt hat. Wenn niemand die genaue angeforderte Änderung und die genehmigende Person benennen kann, diskutiert das Team während des Vorfalls über die Vergangenheit, statt den Dienst wiederherzustellen.

Martin Fowlers Artikel zu Feature Toggles beschreibt eine Unterscheidung, die Teams oft verwischen. Release-Toggles, Experiment-Toggles, betriebliche Toggles und Berechtigungs-Toggles haben unterschiedliche Lebensdauern und ein unterschiedliches Maß an Dynamik. Diese Unterscheidung sollte die Kontrolle einer Agent-Aktion beeinflussen. Ein betrieblicher Toggle, der eine fehlerhafte Integration abschaltet, kann eine schnelle menschliche Genehmigung rechtfertigen. Ein Berechtigungs-Toggle, der den Zugriff auf regulierte Daten verändert, braucht einen deutlich strengeren Weg. Beide einfach «Flag» zu nennen, sagt wenig über das Risiko aus.

Änderungen an Flags umgehen außerdem Kontrollen, die Ingenieure mit Code-Deployments verbinden. Ein Pull Request kann eine Prüfung durch Kollegen zeigen, ein Build Testergebnisse und ein Release die Artefaktversion. Ein Aufruf beim Flag-Anbieter zeigt möglicherweise nur einen Token-Namen und einen Zeitstempel. Wenn ein autonomer Prozess den Token besitzt, kann selbst dieser Name über viele Läufe hinweg identisch sein.

Stelle dieselbe Frage wie vor jedem Schreibvorgang in der Produktion: Welchen genauen Zustand ändert diese Anfrage, in wessen Auftrag geschieht das und wie weisen wir den resultierenden Zustand nach?

Ein Lesezugriff ist etwas anderes. Ein Agent kann ein Flag, seine Umgebung und seine aktuellen Regeln prüfen, um eine Empfehlung vorzubereiten. Ein Schreibzugriff verändert ein externes System. Bündele diese Berechtigungen nicht, nur weil eine Integration das bequem macht.

Absicht, Autorisierung, Ausführung und beobachteten Zustand trennen

Ein einzelnes Ereignis reicht nicht aus, um eine Aktion an einem Feature Flag zu beschreiben. Ein verlässlicher Datensatz enthält vier verschiedene Fakten. Wenn sie zusammenfallen, wird der Fehler verborgen, den du später untersuchen musst.

Die Absicht beschreibt, was der Agent bewirken wollte. Sie sollte eine stabile Flag-ID, Umgebung, den gewünschten Wert oder die Regeländerung, den Grund und den Umfang nennen. Sie muss vor dem Aufruf des Anbieters erfasst werden.

Die Autorisierung zeigt, wer diese Absicht erlaubt hat. Eine menschliche Genehmigung muss an die genaue geplante Änderung gebunden sein, nicht an eine vage Anfrage wie «Lass den Agenten Flags verwalten». Die genehmigende Person braucht genügend Kontext für eine Entscheidung: Zielumgebung, aktueller Zustand, geplanter Zustand, betroffene Gruppe, gegebenenfalls Ablaufzeit sowie die Aufgabe oder der Vorfall, die dazu geführt haben.

Die Ausführung erfasst die ausgehende Anfrage und die Antwort des Anbieters. Das belegt, dass das Gateway die genehmigte Aktion versucht hat. Es beweist nicht, dass der gewünschte Zustand existiert.

Der beobachtete Zustand entsteht, wenn das Flag nach dem Schreibvorgang erneut gelesen wird. So lassen sich fehlerhafte Payloads, Teilaktualisierungen, Standardwerte und Aufrufe an das falsche Projekt oder die falsche Umgebung erkennen. Auch ein erneutes Auslesen hat Grenzen. Zwischengespeicherte SDK-Clients haben die geänderte Konfiguration möglicherweise noch nicht geladen. Außerdem beweist es nicht, dass der Code hinter dem Flag korrekt arbeitet. Diese Fragen gehören in Deployment-Telemetrie und Anwendungsüberwachung.

Diese Unterscheidung ist bei einem Zurücksetzen wichtig. Angenommen, ein Agent fordert checkout_v2=false an, ein Mensch genehmigt die Änderung und der Anbieter meldet Erfolg. Wenn ein zweiter Betreiber das Flag ändert, bevor der Agent es erneut liest, erzählt ein naives Protokoll eine saubere, aber falsche Geschichte. Ein korrekter Datensatz sagt, dass die genehmigte Anfrage an der API-Grenze erfolgreich war, und meldet anschließend den beobachteten Zustand, einschließlich einer Version oder Revision, sofern der Anbieter diese bereitstellt.

Lass kein Freitextfeld diese Angaben ersetzen. «Checkout-Fehler eindämmen» ist nützlicher Kontext. Es ist kein Ziel, kein alter Wert, kein genehmigter neuer Wert und kein Endergebnis.

Vor dem Aufruf des Anbieters einen Änderungsrahmen erfassen

Der Agent sollte eine strukturierte Änderungsanfrage einreichen, statt eine beliebige HTTP-Anfrage an den Flag-Anbieter zu formulieren. Ein fester Rahmen schafft etwas, das eine prüfende Person lesen und ein Gateway validieren kann.

Dieses Beispiel verwendet ein Boolesches Flag, aber dieselbe Struktur gilt für JSON-Konfigurationen, prozentuale Rollouts und Targeting-Regeln. Halte Regeländerungen von Änderungen an einzelnen Werten getrennt. Eine Targeting-Regel kann die Ausspielung viel stärker verändern, als ein einzelner Wert true oder false vermuten lässt.

{
  "request_id": "ffchg_01J8KQ4W6D7P",
  "correlation_id": "incident_INC-1842",
  "operation": "set_boolean_flag",
  "flag": {
    "project": "storefront",
    "environment": "production",
    "name": "checkout_v2"
  },
  "expected": {
    "value": true,
    "revision": "481"
  },
  "requested": {
    "value": false
  },
  "reason": "Reduce checkout failures while payment timeout is investigated",
  "rollback": {
    "value": true,
    "expires_at": "2025-03-08T18:00:00Z"
  }
}

Der Block expected verhindert ein stilles Überschreiben. Er sagt: Führe diese Änderung nur aus, wenn der aktuelle Wert und die Revision noch mit dem übereinstimmen, was der Antragsteller geprüft hat. Wenn ein anderer Mensch oder eine andere Automatisierung das Flag nach der Prüfung durch den Agenten geändert hat, lehne die Anfrage ab und zeige den neuen Zustand. Blindes Wiederholen ist die falsche Reaktion. Der Agent muss erneut fragen, weil seine Grundlage für die Aktion nicht mehr besteht.

Die request_id muss idempotent sein. Netzwerkfehler treten auch dann auf, wenn ein Anbieter die Anfrage bereits erhalten hat, bevor der Aufrufer die Antwort bekommt. Ohne Idempotenz kann ein erneuter Versuch des Agenten doppelte Auditereignisse erzeugen oder eine Prozentregel zweimal anwenden, wenn der Anbieter Aktualisierungen als Patches behandelt. Speichere die Request-ID und liefere bei einer wiederholten Übermittlung das ursprüngliche Ergebnis zurück.

Ein Gateway kann ein Ergebnis in dieser Form zurückgeben:

{
  "request_id": "ffchg_01J8KQ4W6D7P",
  "status": "applied",
  "provider_request_id": "p_9d3ab",
  "authorization": {
    "approver": "[email protected]",
    "approved_at": "2025-03-08T17:18:32Z"
  },
  "observed": {
    "value": false,
    "revision": "482",
    "read_at": "2025-03-08T17:18:35Z"
  }
}

Nimm keine Zugangstokens des Anbieters in diese Datensätze auf. Ein Anforderungsprotokoll mit Zugangsdaten wird irgendwann zu einem zweiten Geheimnisspeicher, meist mit schlechteren Zugriffskontrollen und mehr Kopien.

Eine Genehmigung muss den Schadensumfang beschreiben

Ein Mensch kann eine sichere Änderung nicht allein anhand eines Flag-Namens genehmigen. Namen verändern sich, Flags überleben ihre ursprüngliche Absicht und ein Boolescher Wert kann eine umfangreiche Targeting-Regel hinter einer freundlichen Bezeichnung verbergen.

Die Genehmigungskarte oder Prüfoberfläche sollte die aktuelle Darstellung neben der gewünschten Darstellung zeigen. Bei einem prozentualen Rollout müssen die genauen alten und neuen Prozentsätze, Population oder Segment, ein eventuelles vorausgesetztes Flag und die Umgebung sichtbar sein. Bei einer Regeländerung sollten die vollständigen Regeln vor und nach der Änderung in einer lesbaren kanonischen Form erscheinen. Ein Diff, der eine Klausel auslässt, weil sie sich wiederholt, führt schnell dazu, dass jemand «Mitarbeiter in Region A» versehentlich in «alle Nutzer» verwandelt.

Die genehmigende Person braucht außerdem Grund und Ablaufzeit. Temporäre betriebliche Änderungen werden leicht dauerhaft, weil der Vorfall endet und alle zum nächsten Thema wechseln. Eine Ablaufzeit ist kein magisches Zurücksetzen. Sie gibt einem Betreiber einen geplanten Zeitpunkt zur erneuten Bewertung des Flags und schafft eine sichtbare Verpflichtung im Aktionsdatensatz.

Der Genehmigungsumfang sollte zur Änderung passen, nicht zum Agenten. «Genehmige diesen Prozess für den Rest der Sitzung» kann bei wiederholten Prüfungen oder einer festgelegten Gruppe unkritischer Aktionen sinnvoll sein. Für einen Produktions-Rollout, bei dem jede Aktion eine andere Kundengruppe betrifft, ist dieser Umfang ungeeignet.

Ich würde für jede Produktionsänderung eine eigene Genehmigung verwenden, sobald eine dieser Bedingungen gilt:

  • Die Änderung betrifft eine betriebliche Kontrolle, Zahlungen, Authentifizierung, Autorisierung oder Datenaufbewahrung.
  • Die Anfrage ändert eine Targeting-Regel, ein Segment, eine Voraussetzung oder einen Prozentsatz statt eines einzelnen Booleschen Werts.
  • Die Aktion zielt auf die Produktion oder eine Umgebung mit echtem Kundenverkehr.
  • Der Agent schlägt einen Wert vor, der vom genehmigten Rücksetzungsplan abweicht.

Das ist keine Genehmigung als Ritual. Die Aufgabe des Menschen besteht nicht darin, die Anfrage abzutippen. Er entscheidet, ob der angegebene Umfang und die aktuelle betriebliche Lage den Schreibvorgang rechtfertigen. Wenn die Karte den Umfang verschweigt, kann die Person nur blind zustimmen.

Vermeide eine dauerhafte Genehmigung, die besagt, dass ein Agent «Feature Flags verwalten» darf. Das ist beliebt, weil Unterbrechungen entfallen. Gleichzeitig wird jede spätere Änderung zu einem ungeprüften Schreibvorgang in der Produktion, auch die ungewöhnliche Änderung, die auftritt, während der Agent durch veralteten Kontext oder ein irreführendes Tool-Ergebnis verwirrt ist.

Gleichzeitige Änderungen machen automatisches Zurücksetzen standardmäßig unsicher

Den Aktionsdatensatz prüfen
Prüfe Sallyports verschlüsseltes, hashverkettetes Auditprotokoll offline mit sp audit verify, ohne den Tresor zu entsperren.

Ein Agent darf ein Flag nur zurücksetzen, wenn er nachweisen kann, dass er seine eigene Änderung rückgängig macht. Der häufige Rat «Lass den Agenten bei einem Fehler immer zurücksetzen» ignoriert parallele Betreiber und ist unsicher.

Betrachte diese Abfolge. Um 10:00 Uhr ist der aktuelle Wert true, Revision 481. Der Agent erhält die Genehmigung, ihn auf false zu setzen, und der Anbieter speichert Revision 482. Um 10:06 Uhr sieht ein Bereitschaftstechniker ein anderes Symptom und setzt das Flag bewusst auf true, Revision 483. Um 10:08 Uhr löst die Überwachungsbedingung des Agenten aus und er führt sein geplantes Zurücksetzen auf true aus.

In diesem Fall wirkt der doppelte Wert harmlos. Bei einer Targeting-Regel kann dasselbe Muster jedoch Schaden verursachen. Der Bereitschaftstechniker könnte die Regel geändert haben, um einen Pfad auf einen Mandanten zu beschränken. Der Agent stellt die alte, weitreichende Regel wieder her, weil er sich einen Zustand vor seiner Änderung gemerkt hat. Damit überschreibt er eine bewusste Intervention, ohne sie gesehen zu haben.

Eine Rücksetzungsanfrage sollte die Revision enthalten, die durch die ursprüngliche Aktion entstanden ist, und diesen Zustand als erwarteten Zustand verwenden. Das Gateway sollte das Zurücksetzen nur ausführen, wenn der Anbieter weiterhin diese Revision oder exakt die vom Agenten geschriebene kanonische Konfiguration meldet. Wenn die Bedingung fehlschlägt, soll es needs_review mit der aktuellen Konfiguration zurückgeben. Der Agent darf den Konflikt einem Menschen erklären, aber nicht selbst lösen.

Verwende eine Rücksetzungs-Payload, die ihre ursprüngliche Aktion mitführt:

{
  "request_id": "ffrb_01J8KR0Y8J2M",
  "operation": "rollback_boolean_flag",
  "parent_request_id": "ffchg_01J8KQ4W6D7P",
  "flag": {
    "project": "storefront",
    "environment": "production",
    "name": "checkout_v2"
  },
  "expected": {
    "value": false,
    "revision": "482"
  },
  "requested": {
    "value": true
  }
}

Einige Anbieter stellen keine Revisionen oder bedingten Aktualisierungs-APIs bereit. In diesem Fall lässt sich ein automatisches Zurücksetzen für ein umkämpftes Produktions-Flag nicht sicher genug machen. Lies den Zustand aus, zeige den Unterschied und verlange für die Wiederherstellung eine menschliche Genehmigung. Diese Einschränkung anzuerkennen ist besser, als so zu tun, als würde ein Zeitstempel eine Nebenläufigkeitskontrolle bieten.

Unterscheide außerdem zwischen dem Zurücksetzen eines Feature Flags und der Wiederherstellung von Nutzerdaten. Das Abschalten eines Flags kann die weitere Ausspielung stoppen, aber keine Datenmigrationen, Warteschlangenaufträge oder Datensätze rückgängig machen, die während der Laufzeit des Features entstanden sind. Wenn ein Flag Schreibvorgänge steuert, sollte der Genehmigungskontext dies klar sagen.

Verben, Ziele und Zugangsdaten beschränken

Ein Agent sollte nur eine begrenzte Gruppe von Flag-Aktionen anfordern dürfen, nicht über Administratorrechte beim Anbieter verfügen. Das Provider-Token oder die API-Zugangsdaten müssen außerhalb des Agent-Kontexts bleiben.

Beginne mit einer Liste erlaubter Verben. get_flag und list_flag_metadata sind Lesevorgänge. set_boolean_flag ist ein begrenzter Schreibvorgang. set_rollout_percentage, replace_targeting_rule, create_flag, archive_flag und edit_segment haben jeweils deutlich größere Folgen und sollten getrennte Operationen sein. Biete keinen generischen Aufruf wie PATCH /flags/{id} an und verlasse dich darauf, dass der Agent vorsichtig bleibt. Generische Patch-Endpunkte laden Felder ein, die kein Prüfer erwartet hat.

Beschränke anschließend die Ziele. Binde die Zugangsdaten an ein Projekt und eine Umgebung, sofern der Anbieter diesen Umfang unterstützt. Führe im Aktions-Gateway eine Positivliste von Flag-IDs und Operationen für den jeweiligen Auftrag. Ein Release-Agent, der checkout_v2 besitzt, braucht keinen Zugriff auf jedes Flag der Organisation.

Eine Aktionsanfrage sollte abgewiesen werden, bevor sie den Anbieter erreicht, wenn sie ein nicht genehmigtes Verb, eine unbekannte Umgebung, eine fehlende erwartete Revision oder ein nicht erlaubtes Ziel verwendet. Diese Prüfung muss deterministisch sein. Eine Richtlinie in natürlicher Sprache wie «Nimm nur sichere Änderungen vor» gibt dem Agenten einen Satz zur Interpretation, aber keine Grenze zur Durchsetzung.

Sallyport bewahrt HTTP-Zugangsdaten in seinem verschlüsselten Tresor auf und führt den API-Aufruf aus, ohne das Geheimnis an den Agenten weiterzugeben. Das passt zu diesem Muster, weil der Agent eine Aktion anfordern kann, während die Zugangsdaten auf dem steuernden Mac bleiben.

Halte die Zugangsdaten des Anbieters von der eigenen Identität des Agenten getrennt. Im Auditprotokoll des Anbieters ist möglicherweise nur ein Dienstkonto sichtbar. Dein Aktionsdatensatz kann jedoch die Agent-Sitzung, die Quellaufgabe und die Person identifizieren, die den genauen Schreibvorgang genehmigt hat. Diese Trennung macht auch den Widerruf praktikabel: Du kannst einen einzelnen Agent-Lauf stoppen, ohne Zugangsdaten zu rotieren, die ein legitimer menschlicher Ablauf verwendet.

Lege ein API-Token nicht «nur für den Vorfall» in einer Agent-Konfigurationsdatei ab. Agenten kopieren Kontext leichter als erwartet in Transkripte, Shell-Verläufe, erzeugte Patches und Tool-Argumente. Das spätere Rotieren des Tokens löscht diese Kopien nicht.

Den Kontrollpfad mit Fehlern statt nur mit Erfolgsfällen testen

Erkennen, welcher Prozess schreibt
Die sitzungsbezogene Autorisierung identifiziert einen neuen Agent-Prozess anhand seiner Codesignatur, bevor er den Anbieter aufrufen darf.

Eine Integration für Feature Flags ist erst bereit, wenn du ihr Verhalten bei fehlschlagenden Annahmen geprüft hast. Der Erfolgsweg, Wert lesen, genehmigen, Wert aktualisieren, beweist nur sehr wenig.

Führe einen kontrollierten Test in einer Nicht-Produktionsumgebung durch und erzwinge bewusst diese Ergebnisse:

  1. Ändere das Flag, nachdem der Agent es gelesen hat, und reiche anschließend die ursprüngliche Anfrage ein. Das Gateway muss die veraltete erwartete Revision ablehnen.
  2. Sende dieselbe Request-ID zweimal, nachdem du eine verlorene Antwort simuliert hast. Der zweite Aufruf muss das zuerst aufgezeichnete Ergebnis zurückgeben und darf keine neue Änderung ausführen.
  3. Lehne die Genehmigung ab. Der Anbieter darf keinen Schreibvorgang erhalten, und der Auditdatensatz muss die Ablehnung statt eines unklaren Timeouts zeigen.
  4. Lass einen Menschen das Flag nach der Aktion des Agenten ändern und versuche anschließend ein automatisches Zurücksetzen. Das Zurücksetzen muss zur Prüfung angehalten werden.
  5. Sperre oder widerrufe die Agent-Sitzung während einer ausstehenden Anfrage. Die Aktion muss vor der Verwendung der Zugangsdaten fehlschlagen.

Diese Tests machen ein feines Designproblem sichtbar: Viele Teams protokollieren nur erfolgreiche Änderungen. Fehlgeschlagene und abgelehnte Anfragen sind genauso wichtig. Eine abgelehnte Anfrage zeigt, dass ein Agent einen Umfang versucht hat, den er nicht hatte. Die Ablehnung einer veralteten Schreibanfrage zeigt, dass das System ein Überschreiben verhindert hat. Beide Datensätze erklären, warum sich der Anbieterzustand nicht geändert hat, obwohl ein Betreiber das erwartet hatte.

Teste auch die Kanonisierung. Zwei JSON-Targeting-Regeln können dasselbe bedeuten, obwohl ihre Felder in einer anderen Reihenfolge stehen. Wenn dein Compare-and-Set-Code rohes JSON vergleicht, entstehen falsche Konflikte. Wenn er zu stark normalisiert, kann er einen semantischen Unterschied übersehen. Wähle für das Modell des Anbieters eine kanonische Darstellung, zeichne sie auf und teste sie mit umsortierten Feldern, ausgelassenen Standardwerten und gleichwertigen Segmentverweisen.

Teste schließlich den Fall, dass der Anbieter Erfolg meldet, das erneute Auslesen aber fehlschlägt. Zeichne execution=accepted und observed=unknown auf. Bezeichne die gesamte Anfrage nicht als erfolgreich. Jemand muss den Zustand beim Anbieter prüfen, bevor der Agent eine davon abhängige Änderung vornimmt.

Ein Audit-Trail muss einen strittigen Vorfall überstehen

Jeden Flag-Aufruf sichtbar halten
Sallyport zeichnet einzelne HTTP-Aufrufe in seinem Aktivitätsprotokoll auf, getrennt vom Agent-Lauf, der sie ausgelöst hat.

Ein nützlicher Datensatz zu einem Feature Flag muss eine skeptische Frage beantworten: «Woher wissen wir, dass diese Darstellung der Änderung nachträglich nicht bearbeitet wurde?» Gewöhnliche Anwendungsprotokolle reichen für die Fehlersuche oft aus. Sobald jedoch viele Personen Zugriff auf das Protokollsystem haben, beantworten sie diese Frage selten.

Schreibe unveränderbare Aktionsereignisse mit Sequenznummer, Zeitstempel, Anfrage, Autorisierungsergebnis, Ausführungsergebnis und beobachtetem Zustand. Verknüpfe zusammengehörige Ereignisse über Request-IDs und IDs übergeordneter Anfragen. Eine Hash-Verkettung macht spätere Änderungen sichtbar: Jedes Ereignis enthält einen Digest seines eigenen Inhalts und den Digest des vorherigen Ereignisses. Bei der Prüfung wird die Kette in ihrer Reihenfolge validiert.

Eine Hash-Verkettung macht ein Protokoll nicht wahr. Sie kann nicht beweisen, dass die Person, die eine Anfrage genehmigt hat, sie verstanden hat, und sie kann keine Datensätze wiederherstellen, die nie geschrieben wurden. Sie macht nachträgliches Löschen oder Ändern erkennbar, wenn du die Kette bewahrst und unabhängig prüfst. Das ist die richtige Aussage und bereits nützlicher, als ein Protokoll ohne Beschreibung des Mechanismus «unveränderlich» zu nennen.

Bewahre die native Historie des Flag-Anbieters als zusätzliche Evidenz auf, nicht als einzigen Datensatz. Verknüpfe Provider-Request-IDs, sofern der Anbieter sie bereitstellt. Verknüpfe die correlation_id der Aktion mit einem Vorfall oder einer Deployment-Änderung. Wenn jemand fragt, warum sich ein Flag bewegt hat, solltest du die Entscheidung nachvollziehen können, ohne sie aus Chatnachrichten und menschlicher Erinnerung rekonstruieren zu müssen.

Sallyport projiziert Sitzungs- und einzelne Aufrufdatensätze aus einem verschlüsselten, hashverketteten Auditprotokoll. sp audit verify prüft die Kette offline, ohne einen Tresorschlüssel zu benötigen. So kann ein Team überprüfen, dass sein steuernder Aktionsdatensatz intern konsistent geblieben ist, auch wenn der Tresor gesperrt bleibt.

Überprüfe abgelehnte Aktionen und Konflikte durch veraltete Schreibstände als Teil der normalen Betriebsarbeit. Sie sind kein Rauschen. Eine steigende Zahl von Konflikten kann zeigen, dass mehrere Automatisierungen dieselben Flags verwalten. Wiederholte Anfragen für abgelehnte Ziele können darauf hindeuten, dass der Aufgabenbereich eines Agenten zu weit oder schlecht beschrieben ist.

Den Agenten zuerst einen Änderungsvorschlag erstellen lassen

Das sicherste betriebliche Muster ist einfach: Lass den Agenten prüfen, diagnostizieren und die Änderung entwerfen. Für die Ausführung braucht es anschließend einen kontrollierten Schreibpfad. Der Vorschlag sollte so detailliert sein, dass ein anderer Ingenieur ihn genehmigen kann, ohne das gesamte Agent-Transkript zu lesen.

Verlange für jede Produktionsanfrage, dass der Agent den beobachteten aktuellen Zustand, den exakt gewünschten Zustand, die erwartete Revision, den Grund für die Änderung, mögliche Auswirkungen und die Bedingung für das Zurücksetzen angibt. Wenn er diese Fakten nicht liefern kann, hat er keine Berechtigung zum Schreiben verdient.

Verlange keinen langen Aufsatz. Verlange eine vollständige Anfrage. Der Unterschied ist wichtig. Lange Prosa verbirgt oft, dass der Agent die Zielumgebung nie geprüft oder die aktuelle Regel nie abgerufen hat. Ein strukturierter Rahmen macht die Lücke sofort sichtbar.

Teams, die diese Disziplin einführen, stellen fest, dass viele geplante Änderungen gar nicht ausgeführt werden müssen. Der Agent kann feststellen, dass das Flag bereits den gewünschten Wert hat, dass die fehlerhafte Gruppe nicht zur Regel passt oder dass ein Deployment-Rollback die eigentliche Lösung ist. Erst zu lesen und den erwarteten Zustand aufzuzeichnen verhindert einen rein formalen Schreibvorgang, den der Agent nur zur Erfüllung einer Aufgabe ausführt.

Ein Feature Flag ist eine schnelle Kontrolle über das Verhalten eines laufenden Systems. Gib einem KI-Agenten nur dann Zugriff auf diese Kontrolle, wenn das System seine Anfrage aufzeichnet, die menschliche Entscheidung an die genaue Änderung bindet, veraltete Überschreibungen verhindert und prüft, was der Anbieter gespeichert hat. Alles andere lässt den bequemsten Produktionsschalter an einem Konto hängen, dessen Handlungen niemand vollständig erklären kann.

FAQ

Darf ein KI-Agent Feature Flags in der Produktion ändern?

Eine Änderung an einem Feature Flag verändert das Verhalten für echte Nutzer, auch wenn kein Code ausgerollt wird. Behandle sie wie einen Schreibvorgang an der Produktionskonfiguration: Ziel identifizieren, angeforderten Wert aufzeichnen, einen verantwortlichen Genehmigungsweg verlangen und den resultierenden Zustand prüfen.

Ist das Lesen von Feature Flags genauso riskant wie ihre Änderung?

Mit Leserechten kann ein Agent den Flag-Zustand prüfen und für Analysen verwenden. Schreibrechte erlauben ihm, Datenverkehr, Verhalten, Ausspielung oder einen betrieblichen Abschalter zu verändern. Dafür braucht es unterschiedliche Zugangsdaten, Genehmigungen und Auditdatensätze.

Was sollte ein Auditprotokoll für eine Feature-Flag-Änderung durch einen Agenten enthalten?

Zeichne die Flag-ID, Umgebung, den alten Wert, den angeforderten Wert, Targeting-Regel oder Prozentsatz, die Identität des Antragstellers und der genehmigenden Person, Anforderungszeit, Ausführungszeit, Antwort und beobachteten Endzustand auf. Speichere außerdem ein Idempotenz-Token und eine Korrelations-ID für den Vorfall oder die Aufgabe, die die Änderung ausgelöst hat.

Beweist eine erfolgreiche API-Antwort, dass die Änderung eines Flags funktioniert hat?

Nein. Die Anfrage beschreibt die Absicht, während die Antwort des Anbieters zeigt, was dieser akzeptiert hat. Ein anschließendes Auslesen bestätigt den gespeicherten Zustand, beweist aber noch nicht, dass Clients die neue Konfiguration erhalten haben oder dass die Änderung die beabsichtigte Wirkung auf Nutzer hatte.

Wann sollte jede durch KI ausgelöste Flag-Änderung eine eigene Genehmigung erfordern?

Eine Genehmigung für einen begrenzten Lauf reicht nur dann aus, wenn der Agent eng definierte Änderungen mit geringem Risiko in einer benannten Umgebung durchführen kann. Verlange für jede Änderung eine eigene Genehmigung, wenn Flags den Produktionsverkehr, Sicherheitsverhalten, Abrechnung, Datenschreibvorgänge oder Notfallkontrollen steuern.

Wie beschränke ich die Berechtigungen eines Agenten für Feature Flags?

Gib dem Agenten eine kleine Gruppe erlaubter Operationen statt weitreichender Administratorrechte. Er darf ein gelistetes Flag in einer Umgebung auf einen gelisteten Wert setzen, aber keine Flags erstellen, Targeting-Regeln neu schreiben, Voraussetzungen ändern oder andere Projekte bearbeiten, sofern eine Person diesen Umfang nicht ausdrücklich freigibt.

Kann ein KI-Agent seine eigene Änderung an einem Feature Flag zurücksetzen?

Ja, aber nur, wenn das Zurücksetzen im Voraus festgelegt wurde und gegen den Zustand geprüft wird, den der Agent tatsächlich geändert hat. Das blinde Wiederherstellen eines alten Werts kann eine spätere Änderung durch einen Menschen überschreiben. Deshalb muss das Zurücksetzen eine Versionsprüfung oder eine Compare-and-Set-Bedingung verwenden.

Warum reicht die integrierte Änderungshistorie der Flag-Plattform nicht aus?

Tools für Feature Flags bieten oft eine Änderungshistorie, aber als Akteur ist möglicherweise nur ein gemeinsam genutztes Token zu sehen. Außerdem fehlen häufig der Agent-Prozess, die ursprüngliche Anfrage oder die unabhängige Genehmigung. Führe deshalb einen separaten Aktionsdatensatz, der die angeforderte Änderung mit der genehmigenden Person verknüpft und die Antworten des Anbieters bewahrt.

Wie verknüpfe ich eine Flag-Änderung durch einen Agenten mit einem Vorfall oder Deployment?

Verwende eine stabile Korrelations-ID in der Änderungsanfrage, im Gateway-Datensatz, sofern möglich in den Metadaten des Anbieters, in Deployment-Protokollen und in den Notizen zum Vorfall. So kann ein Betreiber nachvollziehen, warum die Änderung erfolgte, statt nur zu sehen, dass sich ein Wert zu einem bestimmten Zeitpunkt verändert hat.

Was ist der sicherste Weg für einen KI-Programmieragenten, auf eine Feature-Flag-API zuzugreifen?

Mache dem Agenten keine direkten Zugangsdaten für den Anbieter zugänglich. Setze eine kontrollierte Aktionsgrenze vor die API, füge die Zugangsdaten dort ein, verlange bei entsprechendem Risiko eine menschliche Autorisierung und gib dem Agenten nur das Aktionsergebnis zurück.

Sallyport

Sallyport führt API-Aufrufe und SSH-Befehle für Ihren KI-Agenten aus. Die Schlüssel bleiben in einem lokalen Tresor auf Ihrem Mac; Sie geben jeden Lauf frei, und jede Aktion landet in einem versiegelten Journal.

© 2026 Sallyport · Open Source unter Apache-2.0 · Oleg Sotnikov