Analysen KI für Sicherheit und Compliance
Wer drückt auf Ja: wo KI-Agenten-Tools wirklich fragen, bevor sie handeln
Von ReviewRamble editors ·
Fast jedes Agenten-Tool verspricht, bei dir nachzufragen, bevor es etwas tut, das sich nicht rückgängig machen lässt. Die eigentliche Frage ist, wo diese Prüfung sitzt. Sie kann in den Anweisungen des Agenten stehen, im Client, der den Agenten ausführt, in einem Gateway zwischen dem Agenten und dem, was er steuert, oder nirgends. Nur eine dieser Stellen kann einen Agenten aufhalten, der beschlossen hat, nicht zu fragen, und selbst diese hat eine Hintertür.
Dieser Beitrag liest die Reviews, die wir diese Woche veröffentlicht haben, unter einer einzigen Frage: Wer drückt auf Ja? Er behandelt weder Prüfmodelle noch Filter gegen Prompt-Injection, die unser Leitfaden zu Guardrails für KI-Apps und Agenten abdeckt, noch Sandboxes für Coding-Agenten, die in unserem Fünf-Schichten-Leitfaden stehen. Alle Fakten stammen aus den Reviews und den Projektdokumenten, die sie zitieren; wir haben diese Tools nicht selbst ausgeführt.
Vier Orte, an denen ein Ja leben kann
- Im Prompt. Eine Zeile in einem Skill oder System-Prompt, die dem Modell sagt, zuerst zu fragen. Das Modell liest sie als Ratschlag.
- Im Client. Claude Code, Codex, Cursor und die anderen zeigen vor einem Tool-Aufruf eine Freigabeabfrage. Sie hält, bis jemand sie abschaltet, und die meisten Clients erlauben das.
- In einem Gateway. Ein Programm auf dem Weg zwischen dem Agenten und dem Telefon, dem Konto oder dem Haus, auf das er einwirkt, und das die Aktion zurückhält, bis ein Mensch antwortet. Das ist die einzige Art, an der sich das Modell nicht vorbeireden kann.
- Nirgends. Das Tool tut, was man ihm sagt, und die einzige Prüfung ist die, die im Client gerade eingeschaltet ist.
Der Prompt: eine Bitte, kein Schloss
Agent Autoloop (3.8) ist hier ungewöhnlich offen. Es führt Claude Code oder Codex unbeaufsichtigt über Cron-Jobs und Webhooks aus, und jede Regel kann askFirst tragen, eine Anweisung, vor riskanten Schritten bei dir nachzufragen. Die eigenen Sicherheitshinweise des Projekts sagen, dass askFirst nur eine in den Prompt geschriebene Bitte ist: Der Agent kann sie ignorieren, und der Hub kann ihn nicht aufhalten. Was einen Lauf tatsächlich begrenzt, ist die Zugriffsstufe, die auf die Berechtigungsmodi des Clients abgebildet wird, und die Stufe full entspricht bypassPermissions in Claude Code und danger-full-access in Codex, also keiner Freigabe für irgendetwas.
Google Agent Skills (4.2) zeigt dieselbe Lücke von der anderen Seite. Sein gcloud-Skill sagt, dass IAM-Änderungen, das Aktivieren von APIs und Löschvorgänge deine ausdrückliche Zustimmung brauchen, und weist den Agenten in derselben Datei an, jedem Befehl --quiet anzuhängen, damit gcloud nie an seiner eigenen Bestätigungsabfrage stehen bleibt. Der Skill cloud-run-basics aktiviert APIs, vergibt eine IAM-Rolle und stellt einen öffentlichen Dienst mit --allow-unauthenticated bereit, jeweils mit --quiet. Die eine Abfrage, die ein Programm erzwungen hat, ist entfernt, und übrig bleibt ein Satz, dem das Modell folgen kann oder nicht.
Der Client: die Abfrage, die man abschalten kann
Bei den meisten MCP-Servern ist die Freigabeabfrage des Clients die ganze Sicherheitsgeschichte. X MCP (3.8), der offizielle Server von X, hat auf der Seite von X nichts, das vor einem Post nachfragt; ohne den Nur-Lese-Schalter ist die einzige Prüfung die Abfrage deines Clients, und die meisten Clients lassen sich so einstellen, dass sie wegfällt. Ein Post kostet $0.015 und ein Post mit Link $0.200, ein sich selbst überlassener Agent kostet also Geld und nicht nur Ruf.
Mehrere diese Woche besprochene Tools sind nur eine Einstellung davon entfernt, dass diese Abfrage verschwindet. Die Stufe full von Autoloop ist eine. llama-modchip (3.6) kann Claude Code gegen sein lokales Modell starten, und sein Skript fügt --dangerously-skip-permissions nur hinzu, wenn MODCHIP_CLAUDE_SKIP_PERMS=1 gesetzt ist. Das ist die richtige Voreinstellung, aber eine, die sich leicht ändern lässt. Die Client-Abfrage ist eine echte Kontrolle, doch sie gehört dem, der die Konfiguration bearbeitet, und ein unbeaufsichtigtes Setup entsteht meist genau dadurch, dass man sie abschaltet.
Eine Client-Abfrage beweist auch nicht, wer geantwortet hat. Call Me (3.6) ruft dich an, wenn ein Agent an einer Frage hängt, und gibt deine gesprochene Antwort als Transkript zurück. Ein „Ja, ausliefern“ kommt als reiner Text an, ohne Beleg, dass du es warst, der gehostete Endpunkt hat keine Authentifizierung außer deiner 10-stelligen Nummer, und das Review ist eindeutig: Eine zweite Bestätigung muss aus den Berechtigungseinstellungen des Agenten selbst kommen.
Das Gateway: das, was hält
Pinky (3.6) ist das klarste Gateway, über das wir gelesen haben. Jeder Tipp, den ein Agent auf deinem Telefon macht, läuft hindurch. Ein Tipp auf Bezahlen oder Senden kommt beim Agenten als approval_pending zurück, auf dem Telefon passiert nichts, bis du auf Allow klickst, und keine Antwort innerhalb von 60 Sekunden gilt als Nein. Banking- und Passwortmanager-Apps sind für Agenten unsichtbar, und Einmalcodes erreichen sie als Punkte. Zwei Grenzen zählen. Ab Werk warten nur Zahlungen, Trades und Überweisungen auf dich; Senden, Löschen, Anrufe und Installationen musst du in den Settings einschalten. Und riskante Schaltflächen werden an ihren Beschriftungen in 10 Sprachen erkannt, eine ungewöhnliche Beschriftung kann also durchrutschen. Deshalb gibt es einen Modus, der vor jedem Schritt fragt.
Codex Security (4.1) legt die Grenze in eine Sandbox statt in einen Menschen. Die Validierung läuft nur lesend und ohne Netzwerk; das Patchen, der Schritt, der schreibt, prüft, ob seine Sandbox startet, und verweigert mit SANDBOX_UNAVAILABLE, wenn nicht. Die Option --external-sandbox schaltet diese Durchsetzung ab und überlässt die Isolation deinem Container, und die Deep-Scan-Worker sind nur lesend, aber nach OpenAIs Worten keine isolierte, vom Netz getrennte Umgebung.
Stroq (3.8) sitzt in den Hooks des Agenten und fragt bei Befehlen nach, die Text wiederholen, den der Agent gerade aus einer Seite, einem Issue oder einer Datei gelesen hat, und lehnt curl | sh sofort ab. Sein eigenes README nennt es einen Filter, keine Sandbox: Es vergleicht Text, ein Befehl, den das Modell von Grund auf schreibt, lässt sich also keiner Quelle zuordnen, und bei Codex und Windsurf kann der Hook ablehnen, aber nicht fragen.
Nirgends: Tools, die einfach handeln
HomeMCPBridge (2.8) verbindet einen Agenten mit Apples HomeKit. Sein Tool control_device nimmt einen Gerätenamen und eine Aktion entgegen, und zu den Aktionen gehören das Entriegeln eines Türschlosses und das Öffnen eines Garagentors. Nach unserer Lektüre des Quellcodes gibt es keinen Bestätigungsschritt, keine Positivliste und keine Möglichkeit, Schlösser nur lesbar zu machen. iPhone MCP (3.2) steuert ein echtes iPhone über Apples Spiegelungs-App ohne Bestätigungsschritt, ohne Positivliste für Apps und ohne Nur-Lese-Modus; der eigene Haftungsausschluss nennt ungewollte Nachrichten, gelöschte Daten und Käufe.
Das stärkste Design in dieser Gruppe ist ein Tool, das fehlt. WhatsApp MCP (finereli) (3.8) hat absichtlich kein Sende-Tool, der schlimmste Fehler eines Messaging-Agenten kann also nicht passieren. Das read_only=true von X MCP tut dasselbe auf dem Server: Tools, die posten, Nachrichten senden oder etwas ändern, fallen aus der Liste, und der Server verweigert solche Aufrufe, selbst wenn das Token Schreibrechte hat. Ein fehlendes Tool braucht niemanden, der etwas drückt.
Jedes Gateway hat eine Hintertür
Ein Gateway hält nur, wenn es der einzige Weg hinein ist. Pinkys FAQ sagt es offen: Ein Agent, der Befehle als du ausführen kann, erreicht ein Android-Telefon über adb und umgeht jede Regel. Der Rat lautet, solche Agenten in einer Sandbox ohne Zugriff auf das Telefon laufen zu lassen oder das Telefon an einen anderen Computer anzuschließen und sich dort per HTTP mit Pinky zu verbinden. Das beschreibt Claude Code und Codex in ihrer normalen Einrichtung, für die meisten Leser schützt das Gateway das Telefon also erst nach diesem zusätzlichen Schritt.
Dieselbe Logik gilt auch umgekehrt. Ein Proxy auf dem Weg sieht alles, was durchläuft. billion-context (3.4) sitzt zwischen einem Coding-Agenten und dessen Modell-API, um alten Kontext zusammenzufalten. Das heißt, jeder Prompt und jeder API-Schlüssel läuft hindurch, ohne Authentifizierung, und standardmäßig sucht es alle 3 Minuten auf npm nach einer neueren Version von sich selbst. Bevor du einem Gateway zutraust, Aktionen zurückzuhalten, frag, was es lesen kann und wer seinen Code ändern darf.
Wo das Ja lebt, Tool für Tool
| Tool | Was es tun kann, das bleibt | Wo die Bestätigung lebt | Wie man sie verschärft |
|---|---|---|---|
| Pinky | Bezahlen, senden, löschen auf deinem Telefon | Gateway; standardmäßig nur Zahlungen | Senden und Löschen einschalten; Agenten mit Shell von adb fernhalten |
| Agent Autoloop | Alles, was die Agenten-CLI kann | Berechtigungsmodus des Clients; askFirst ist ein Prompt | Bei edit bleiben; full nur dort, wo unbeaufsichtigt akzeptabel ist |
| Codex Security | Schreibt Patches | Sandbox, außer mit --external-sandbox | Eingebaute Sandbox behalten; jeden Patch lesen |
| Google Agent Skills | Bereitstellen, IAM-Rollen vergeben, APIs aktivieren | Nur der Prompt; --quiet entfernt die von gcloud | Begrenzte Projektrollen, ein Abrechnungsbudget, Client-Freigaben an |
| X MCP | Posts und Articles veröffentlichen | Nur der Client, oder read_only=true | Nur lesend beginnen; ein Ausgabelimit setzen |
| HomeMCPBridge | Schlösser und Garagentore öffnen | Nirgends | Von Agenten fernhalten, die allein laufen |
| Call Me | Überträgt deine gesprochenen Freigaben | Berechtigungseinstellungen des Agenten | Ein gesprochenes Ja als unbestätigt behandeln |
| Stroq | Fragt bei Befehlen nach oder lehnt sie ab | Agenten-Hooks, Textvergleich | Mit einem Container oder separaten Konto kombinieren |
Regeln, die du diese Woche anwenden kannst
- Finde das Ja für jede unumkehrbare Aktion. Notiere für jede Zahlung, jedes Senden, Löschen, Bereitstellen und jede physische Aktion, welches Programm sie zurückhält. Lautet die Antwort „der Prompt sagt, er soll fragen“, zählt das als keine Bestätigung.
- Lieber ein fehlendes Tool als ein bestätigtes. Ein Nur-Lese-Schalter oder ein Server ohne Schreib-Tools schlägt jeden Prompt. Starte X MCP mit read_only=true und wähle Server ohne Senden und Löschen, wenn die Aufgabe Lesen ist.
- Schalte ein, was das Gateway auslässt. Die Voreinstellungen sind eng. Pinky fragt nur vor Zahlungen, bis du Senden, Löschen, Anrufe und Installationen hinzufügst.
- Schließ die Hintertür, bevor du der Vordertür traust. Ein Agent mit Shell erreicht alles, was dein Benutzerkonto erreicht, adb eingeschlossen. Lass ihn in einer Sandbox oder als separaten Benutzer laufen, der das Gerät und die Zugangsdaten, die das Gateway schützt, nicht sieht.
- Durchsuche deine Konfigurationen nach den Schaltern. bypassPermissions, danger-full-access, --dangerously-skip-permissions, --quiet und --external-sandbox entfernen jeweils eine Abfrage. Wisse, wo jeder gesetzt ist und warum.
- Stütze den Prompt mit Grenzen, mit denen ein Modell nicht diskutieren kann. Enge Cloud-Rollen, ein Abrechnungsbudget und ein Ausgabelimit bei kostenpflichtigen APIs greifen weiter, wenn der Agent einen Schritt überspringt.
- Behandle ein Ja aus der Ferne als unbestätigt. Ein Anruf oder eine Chat-Antwort beweist nicht, wer geantwortet hat. Halte Bereitstellungen und Zahlungen hinter einer Freigabe, die an deine eigene Anmeldung gebunden ist.
Der Haken: Die Gateways, die am besten halten, sind die jüngsten. Pinky ist eine Woche alt, Autoloop zehn Tage, Stroq etwa zehn Wochen, und ihre Sicherheitshinweise stammen von den Maintainern, nicht aus einer externen Prüfung. Die ausgereiften Kontrollen, Client-Freigaben und Cloud-Berechtigungen, sind genau die, die Leute abschalten, damit ein Agent unbeaufsichtigt läuft. Kein Tool hier macht es sicher, einen Agenten allein mit deinem Geld oder deiner Haustür zu lassen.
Unser Fazit: Stell jedem Agenten-Setup die Frage, die du einem neuen Mitarbeiter mit Firmenkarte stellen würdest: Wer zeichnet ab, und kann er ohne dich abzeichnen? Lautet die ehrliche Antwort „der Mitarbeiter selbst“, gibt es keine Abzeichnung. Leg das Ja in ein Programm, das der Agent nicht bearbeiten kann, nimm die Tools weg, die die Aufgabe nicht braucht, und heb deine Aufmerksamkeit für die wenigen Klicks auf, die zählen.