Zwei Projekte zur Agent-Governance verwenden das Kürzel ACS: der Agent Control Standard von OWASP und die Agent Control Specification, die das Agent Governance Toolkit (AGT) von Microsoft verwendet. Eine Integrationsprüfung sollte mit ihren genauen Versionen beginnen, mit dem Host, der Entscheidungen anwendet, und mit den Nachweisen, die festhalten, was geschehen ist.
Die Namen lassen echte Fragen offen. Eine Freigabe muss einen Host erreichen, der sie anfordern und ihr Ergebnis verarbeiten kann. Eine transformierte Tool-Eingabe muss auf die Aktion angewendet werden, die tatsächlich ausgeführt wird. Ein Ausfall des Entscheidungsdienstes braucht ein definiertes Ergebnis. Diese Details bestimmen, was eine Integration behaupten kann. Dieser Beitrag fixiert beide Verträge mit Stand 26. Oktober 2026, berichtet über einen Lauf der OWASP-Tests für Referenz-Host-Adapter und verlinkt einen versionierten Vergleich. Dieser Beitrag gehört zu einer dreiteiligen Forschungsreihe über die Befugnisse von Agenten, veröffentlicht am 26. Oktober 2026: Stoppnachweise, Richtlinien im Agentengedächtnis und Standards für die Agentenkontrolle.
Die tatsächlichen Verträge fixieren
Am 26. Oktober 2026 weist der veröffentlichte Stand von OWASP das Release 0.1.4 vom 16. Oktober aus. Sein Wire- und Schema-Namespace lautet weiterhin 0.1.0. Das Changelog verzeichnet geänderte Trace-Anforderungen unter diesem Namespace und verlangt, dass Konformitätsaussagen das Release oder den Commit nennen. Eine Handshake-Version allein lässt daher einen Teil des Vertrags unbestimmt. Fixierte Release-Historie.
Die aktuelle Dokumentation von Microsoft spiegelt eine geänderte Struktur wider. AGT nutzt eine Upstream-Laufzeit für Richtlinienentscheidungen und einen separaten Schnittstellenvertrag für die Interzeption, Agent Hooks. Der Host liefert einen vollständigen Snapshot, erhält die Entscheidung der Laufzeit und verantwortet die Durchsetzung. Aktueller ACS-Leitfaden von AGT.
Die OWASP-Referenzbridge fixiert eine ältere AGT-Revision und das Node SDK 0.3.1-beta.0, daher muss ihre Zuordnung vor dem Hintergrund dieser Generation gelesen werden. Der aktuelle AGT-Leitfaden beschreibt drei normalisierte Entscheidungen, allow, deny und transform, und führt Warnungen und Freigabeinformationen daneben mit. Eine Bridge, die nachweislich mit dem älteren Vertrag funktioniert, braucht neue Kompatibilitätsnachweise, bevor sie für den aktuellen stehen kann. Abhängigkeits-Pin der Bridge.
| Element | OWASP Agent Control Standard | AGT / Agent Control Specification |
|---|---|---|
| Release | 0.1.4 (16. Oktober 2026) | Engine-Abhängigkeit 0.4.0-alpha.4 |
| Wire oder Manifest | Wire-, Spezifikations- und Schema-Namespace 0.1.0 | Bestehendes Manifest 0.4.0-alpha.1; Opt-in-Vertrag 0.5.0-alpha.1 |
| Referenzbridge | Fixiert einen älteren AGT-Commit und Node SDK 0.3.1-beta.0 | Nicht zutreffend |
Freigabe und Fehlerfall durch den Host verfolgen
OWASP definiert Entscheidungsarten und fähigkeitsabhängiges Verhalten, darunter Freigabe, Zurückstellung und Modifikation. Verpflichtende Core-Anforderungen stehen neben optionalen Profilen. Die Spezifikation trennt Fehler bei der Zustellung einer Entscheidung von anderen Ergebnissen und definiert ein ausgehandeltes Fehlerverhalten. Fixierter Konformitätsvertrag.
Im aktuellen AGT-Vertrag kann eine Ablehnung Informationen enthalten, die der Host zur Bearbeitung einer Freigabeanfrage nutzt, und eine Transformation verlangt, dass der Host sie validiert und anwendet. Die Entscheidung der Laufzeit ist ein Schritt in diesem Ablauf. Agent Hooks benennt seine Vertrauensgrenze: Der Host gilt als vertrauenswürdig, Kontrollen laufen im Prozess, und die acht Abfangpunkte versprechen keine vollständige Mediation. Agent Hooks.
Ein Integrationsdatensatz sollte die vorgeschlagene Aktion mit der Entscheidung, einer etwaigen menschlichen Freigabe, der letztlich übermittelten Eingabe und dem Ergebnis verbinden. Ändert sich die Eingabe nach der Freigabe, muss der Datensatz zeigen, wie die Anwendung entscheidet, ob die Freigabe noch gilt. Kann ein Host eine erforderliche Kontrolle nicht darstellen, wird sein dokumentiertes Ausweichverhalten Teil der Bewertung.
| Aspekt | OWASP 0.1.4 | Aktuelles AGT |
|---|---|---|
| Entscheidungen | ALLOW, DENY, ASK und DEFER müssen unterstützt werden; MODIFY sollte unterstützt werden, mit definierter Behandlung für Clients, die es nicht anwenden können | allow, deny, transform; warn wird zu allow mit Warnungen; escalate wird zu einem aufhebbaren deny mit Freigabeinformationen |
| Menschliche Freigabe | ASK-Details, Timeout und Freigabefähigkeit haben definiertes Verhalten | Der Host verantwortet die Abwicklung von Freigabeanfragen |
| Zustellfehler | Ausgehandeltes on_decision_failure; Standard: fortfahren mit verpflichtendem Audit | Laufzeitfehler ergeben deny; das Verhalten im Einsatz hängt vom Host ab |
| Abdeckung | Core plus selbst deklarierte optionale Profile | Acht Abfangpunkte; vertrauenswürdiger Host; kein Versprechen vollständiger Mediation |
Was wir ausgeführt haben
Wir haben die OWASP-Referenzimplementierung bei Commit 4cf23d4 ausgecheckt und ihre Suiten für Entscheidungsvalidierung und Fehlerverhalten unverändert mit Bun 1.3.14 ausgeführt. Alle 94 Tests in diesen beiden Dateien bestanden (236 Assertions). Sie prüfen fehlerhafte Modifikationen, abgelaufene Entscheidungen, Zustellfehler, ausdrückliche Ablehnung und das Scheitern beim Aufzeichnen eines Audit-Ereignisses.
Die Tests treffen nützliche Unterscheidungen. Eine abgelaufene Freigabeanfrage kann anders behandelt werden als ein Entscheidungsdienst, der nie geantwortet hat. Eine ausdrückliche Ablehnung unterscheidet sich von einem Transportfehler. Eine Konfiguration, die die Aktion fortfahren lässt, muss trotzdem ihre Audit-Anforderung erfüllen. Ein einzelnes Etikett wie „Fail-Closed“ kann all diese Pfade ohne ihre Bedingungen nicht beschreiben.
Zwei laufzeitabhängige Testdateien konnten ihre native Abhängigkeit nicht laden, die glibc 2.39 voraussetzt; unser Host hat 2.35. Wir haben den fehlgeschlagenen Versuch neben dem erfolgreichen Lauf aufbewahrt. Aus diesen Dateien haben wir keine Live-Ergebnisse einer Policy-Engine erhalten, und die 94 bestandenen Tests belegen weder volle Konformität noch Interoperabilität.
Die Maintainer der Referenz legen außerdem Lücken bei Hook-Abdeckung, Signierung, Authentifizierung und Replay-Schutz offen. Sie gehören zum dokumentierten Umfang der Implementierung, und jede Darstellung, die sie als Beispiel verwendet, sollte sie sichtbar halten. Umfang der Referenzimplementierung.
Das Ergebnis festhalten, das die Nachweise stützen
Die Trace-Änderungen in OWASP 0.1.4 fügen eine nützliche Regel hinzu: Anfrage- und Sitzungskennungen korrelieren und nach einem passenden Ereignis für einen Entscheidungsfehler suchen, bevor eine Entscheidung als durchgesetzt gilt. Das trennt, was der Richtliniendienst entschieden hat, von dem, was der Host abgeschlossen hat.
Der Oktober-Vergleich (auf Englisch) trennt Anforderungen aus den Quellen, Beobachtungen auf Helper-Ebene und Szenarien, die wir nicht ausgeführt haben. Nutzen Sie diese Szenarien für einen Integrationstestplan:
| Szenario | Erforderliche Beobachtung | Diese Prüfung |
|---|---|---|
| Abgelehnter Tool-Aufruf | Der Host verhindert die Übermittlung | Helper-Verhalten und Quellen geprüft; nativer Live-Pfad nicht ausgeführt |
| Freigabe mit anschließend geänderter Eingabe | Die Freigabe ist an die tatsächlich übermittelte Aktion gebunden | Nicht ausgeführt |
| Entscheidungsdienst nicht verfügbar | Gewähltes Fehlerverhalten, resultierende Aktion, Audit-Ereignis | Host-Helper-Tests bestanden; Live-Pfad nicht ausgeführt |
| Abgelaufene Entscheidung | Zeitgrenze und Ausweichergebnis | Host-Helper-Tests bestanden |
| Erneut eingespielte Anfrage | Erkennung von Duplikaten und dokumentierte Behandlung der Anfrage | Fehlender Schutz upstream offengelegt; kein Live-Test |
| Transformation nicht anwendbar | Sicheres Ausweichverhalten und Nachweise | Host-Helper-Tests bestanden |
| Entscheidung aufgezeichnet, Host wendet sie nicht an | Verknüpfte Nachweise zu Entscheidung und Fehler | Trace-Vertrag geprüft; Szenario nicht ausgeführt |
Wie KLA dieselben Fragen behandelt
KLA ist keine Implementierung eines der beiden ACS-Projekte. Zum Vergleich: Die KLA Policy Engine gibt für jede kontrollierte Aktion eines von vier Ergebnissen zurück: allow, warn, require_approval oder block. Schlägt die Auswertung fehl, gibt sie ihre Fail-Closed-Entscheidung zurück, standardmäßig require_approval, und die Lint-Prüfung für Richtlinienpakete weist eine Richtlinie zurück, deren Standardentscheidung Fail-Open ist. Auf dem kontrollierten Tool-Pfad hält eine Freigabeanforderung für einen Tool-Aufruf einen SHA-256-Hash der Argumente fest, für die sie ausgestellt wurde; das betrifft das oben genannte Szenario „Freigabe mit anschließend geänderter Eingabe“.
Die Tests in diesem Beitrag liefen nur gegen die OWASP-Referenzimplementierung und enthalten kein KLA-Ergebnis. Der OWASP-Leitfaden zu agentischen Kontrollen ordnet Laufzeitkontrollen ausführlicher den Nachweisen zu.
Häufig gestellte Fragen
Was unterscheidet OWASP ACS von der Agent Control Specification von Microsoft?
Sie teilen das Kürzel und unterscheiden sich im Vertrag. Der Agent Control Standard von OWASP (Release 0.1.4, Wire-Namespace 0.1.0) definiert ALLOW, DENY, ASK, DEFER und MODIFY mit einem ausgehandelten Fehlerverhalten. Die Agent Control Specification, die Microsoft AGT verwendet, normalisiert Entscheidungen auf allow, deny und transform und überlässt die Abwicklung von Freigabeanfragen und die Durchsetzung einem vertrauenswürdigen Host.
Welche Version sollte eine Konformitätsaussage zur Agentenkontrolle nennen?
Das Release oder den Commit. OWASP 0.1.4 hat die Trace-Anforderungen geändert, ohne den Wire-Namespace 0.1.0 zu ändern, und sein Changelog verlangt, dass Konformitätsaussagen das Release oder den Commit nennen. Für AGT sollten Engine-, Manifest- und Vertragsversion getrennt festgehalten werden.
Besteht die OWASP-Referenzimplementierung ihre Tests?
Am 26. Oktober 2026 bestanden bei Commit 4cf23d4 die beiden von uns ausgeführten Host-Adapter-Suiten 94 von 94 Tests. Zwei laufzeitabhängige Dateien konnten ihre native Abhängigkeit auf einem Host mit glibc 2.35 nicht laden. Diese Ergebnisse decken nur Helper-Verhalten ab und belegen keine Konformität.
Was bedeutet „Fail-Closed“ für eine Agentenkontrolle?
Das hängt vom Fehler ab. Eine abgelaufene Freigabe, eine unbeantwortete Entscheidungsanfrage, eine ausdrückliche Ablehnung und ein Transportfehler können jeweils unterschiedliches Verhalten erfordern. Benennen Sie für jeden Fall die Fehlerklasse, die resultierende Aktion und das Audit-Ereignis.
Die wichtigsten Erkenntnisse
Projektnamen begründen keine Interoperabilität. Fixieren Sie Release- und Wire-Versionen, verfolgen Sie Freigabe und Transformation durch den Host, testen Sie jede Fehlerklasse und prüfen Sie den Trace, bevor Sie Durchsetzung behaupten. Der Oktober-Vergleich bietet einen datierten Ausgangspunkt; aktualisieren Sie ihn, wenn sich eines der Projekte weiterentwickelt.
Die Versionen wurden am 26. Oktober 2026 fixiert. Unser Lauf umfasste 94 Host-Helper-Tests; kein Live-Szenario für Host, Freigabe oder Trace wurde ausgeführt.
