Agenten-Aktionen freigeben oder ablehnen
Wenn ein autonomer Agent an einen Punkt gelangt, den er ohne einen Menschen nicht passieren sollte, pausiert er und fragt eine Freigabe an. SupaCloud zeigt diese eine ausstehende Entscheidung als interaktive Freigabe an, die du von jeder Steuerungsoberfläche aus beantworten kannst – dem Web-Terminal, Telegram oder Discord. Der Agent bleibt genau auf dieser Entscheidung blockiert, bis du antwortest (oder seine Timeout-Richtlinie sie für dich auflöst).
Es gibt vier Arten von Freigaben:
| Art | Was es ist | Beispiel |
|---|---|---|
| Tool | Ein gefährlicher Tool-Aufruf, den der Agent ausführen möchte | Ein Bash-Befehl, ein Deploy, eine Migration |
| Frage | Eine offene Frage, die der Agent vor dem Fortfahren stellt | „Welche Umgebung soll ich ansteuern?” |
| Visuell | Eine Vorher/Nachher-Screenshot-Abnahme | Eine UI-Änderung, aufgenommen zur menschlichen Prüfung |
| Modellklassen-Wechsel | Die angeheftete Modellklasse ist erschöpft und SupaCloud möchte auf eine schwächere wechseln | „Premium-Kontingent erschöpft – auf der Standardklasse weitermachen?” |
Zwei davon kann SupaCloud selbst auslösen, nicht der Agent: einen Sicherheits-Halt (ein Tool-Gate, das SupaCloud erzwingt, wenn der Agent nach etwas aus dem Gefahren-Set greift – der Lauf wird unterbrochen und geparkt) und den obigen Modellklassen-Wechsel. Beide erreichen deinen Chat jetzt mit derselben Karte und denselben Buttons; vorher waren sie nur in der Web-Oberfläche sichtbar.


Über das Web-Terminal freigeben
Abschnitt betitelt „Über das Web-Terminal freigeben“Im Web-Terminal unter /cli listest du jeden pausierten Agenten im aktiven
Workspace auf und entscheidest einen anhand seiner kurzen ID.
# Die im Workspace wartenden interaktiven Freigaben auflistentool-approvals
# Eine anhand ihrer (kurzen) Freigabe-ID freigeben oder ablehnen; eine# optionale Notiz wird dem Agenten als deine Begründung / Antwort übergebenapprove-tool <id> [note]reject-tool <id> [note]Die ID wird per Präfix aufgelöst – genauso wie Task-IDs: Ein eindeutiges Präfix entscheidet das Gate; ein mehrdeutiges oder unbekanntes Präfix wird gemeldet, statt geraten.
Du kannst auch interaktive und Workflow-Freigaben zusammen auflisten. Der Filter ist ein einfaches Wort hinter dem Befehl – auf jeder Oberfläche dasselbe:
approvals # beide Quellen, jeweils unter eigener Überschriftapprovals all # dasselbe, nur ausdrücklichapprovals tool # nur die interaktiven Tool-/Frage-/Visuell-/Modellklassen-Gatesapprovals workflow # nur Workflow-Human-GatesDer Befehl ohne Argument beantwortet bereits die ganze Frage – all musst du
also nie tippen. Ein Wort, das der Befehl nicht kennt (approvals wokflow),
wird als unbekannt gemeldet, statt stillschweigend nur die Hälfte der Gates zu
listen. Das Web-Terminal akzeptiert zusätzlich die ältere Schreibweise
--filter=<wort>, approvals --filter=tool ist also derselbe Befehl wie
approvals tool.
Nachdem du einem Task mit follow (oder run) folgst und er pausiert, stellt das
Terminal das Gate inline dar – die Art, den Tool-Namen oder die Frage und etwaige
Vorher/Nachher-Bild-URLs – und wartet dann auf deine nächste Eingabezeile:
approve,yes,yoderokgibt frei. Alles nach dem Verb wird als deine Notiz gesendet.reject,no,noderdenylehnt ab, mit optionaler Begründung.- Bei einem Frage-Gate wird eine reine Freitext-Zeile (ohne Verb) als Antwort behandelt und gibt das Gate frei, wobei dein Text an den Agenten zurückgereicht wird.
Über Telegram oder Discord freigeben
Abschnitt betitelt „Über Telegram oder Discord freigeben“Wenn ein dir gehörender Task pausiert, postet SupaCloud eine Freigabe-Karte in deinen verknüpften Chat – eine Nachricht mit der Art, dem Task-Titel, dem maskierten Detail, etwaigen Vorher/Nachher-Bildvorschauen, einem direkten Link zum Task und Inline-Buttons Freigeben / Ablehnen. Tippe auf einen Button, um zu entscheiden – du tippst nie eine ID ab.
Bei einer Tool-Freigabe führt die Karte mit der Absicht des Agenten – der Beschreibung des Tool-Aufrufs selbst oder dem Sicherheitsgrund, der den Lauf angehalten hat – und zeigt dann den eigentlichen Befehl in Monospace. Ein Shell-Befehl, dessen sämtliche Teile nur lesen, trägt zur Orientierung einen kleinen Hinweis liest nur; die rohe Aufruf-Payload bleibt in einem eingeklappten Zitat einen Tipp entfernt. Nach deiner Entscheidung bleibt die Anfrage in der Karte sichtbar und dein Urteil wird darunter angefügt – die Chat-Historie sagt also weiterhin, was erlaubt oder abgelehnt wurde.
Fragt der Agent etwas, das keine Freigabe ist – eine offene Rückfrage mitten im
Lauf –, enthält der Push die Frage selbst und einen Antworten-Button. Drücke
ihn und schreibe einfach deine Antwort: Sie wird genau diesem Task zugestellt,
weil der Button den Task-Bezug trägt. /intervene <id> <message> funktioniert
weiterhin für Skripte und Automationen, ist aber nicht mehr der einzige Weg vom
Handy aus.
-
Ein pausierter Task pusht die Karte automatisch in den mit dem Task-Eigentümer verknüpften Chat. Tippe Freigeben oder Ablehnen; der Bot antwortet mit einer Bestätigung.
-
Um jederzeit zu prüfen, was wartet:
/approvals # sowohl Human-Gate- als auch interaktive Freigaben/approvals all # dasselbe, nur ausdrücklich/approvals tool # nur die interaktiven Tool-/Frage-/Visuell-/Modellklassen-Gates/approvals workflow # nur Workflow-Human-Gates
-
Dieselbe Karte wird an die verknüpfte Discord-Identität gepostet, mit Buttons Freigeben / Ablehnen. Visuell-Gates betten die Vorher/Nachher-Screenshots inline ein.
-
Ausstehende Freigaben auflisten mit:
/approvals
Die visuelle Vorher/Nachher-Karte
Abschnitt betitelt „Die visuelle Vorher/Nachher-Karte“Eine visuelle Freigabe ist eine Abnahme einer UI-Änderung. Die Karte enthält:
- Die Vorher/Nachher-Screenshots als signierte, zeitlich begrenzte Bild-Links (Telegram zeigt eine Vorschau, Discord bettet sie ein; im Web-Terminal werden sie als URLs ausgegeben).
- Das Maschinen-Urteil, sofern eines lief –
PASS,FAILoder nicht ausgeführt – menschliche Prüfung – gefolgt von den Gründen, die der Prüfer angab, damit du siehst, warum die automatische Prüfung die Änderung als bestanden oder durchgefallen einschätzt, bevor du entscheidest.
Lassen sich die Screenshot-Links nicht erzeugen (das Capture-Serve-Geheimnis ist nicht gesetzt), reduziert sich die Karte auf reinen Text: Sie listet weiterhin auf, was aufgenommen wurde, sowie das Urteil, sodass du stets entscheiden kannst.
Was beim Timeout einer Freigabe passiert
Abschnitt betitelt „Was beim Timeout einer Freigabe passiert“Jede Freigabe trägt eine Timeout-Richtlinie, die festlegt, was geschieht, wenn kein Mensch antwortet:
| Richtlinie | Verhalten | Verwendet für |
|---|---|---|
| Hold | Blockiert für immer, bis ein Mensch entscheidet – nie automatisch aufgelöst | Deploys, Migrationen und jede Aktion, die auf einen Menschen warten muss |
| Deny | Nach einer Frist automatisch abgelehnt, sodass der Agent ohne die Aktion fortfährt | Optionale Fragen und risikoärmere Gates |
Die deny-Fristen sind je nach Art unterschiedlich: Ein Tool wartet 5
Minuten, eine Frage 30 Minuten und eine visuelle Abnahme 1 Stunde. Läuft
ein deny-Gate ab, wird der Agent mit einer Ablehnung entsperrt und fährt fort;
ein hold-Gate wartet einfach.
Wenn sich ein Sicherheits-Halt nicht fortsetzen lässt
Abschnitt betitelt „Wenn sich ein Sicherheits-Halt nicht fortsetzen lässt“Ein Sicherheits-Halt hindert den Agenten immer daran, die markierte Aktion auszuführen. Ob die Entscheidung den Lauf aber fortsetzen kann, hängt vom Agenten ab – und bei zweien davon zusätzlich davon, wie genau dieser Lauf gestartet wurde. Die Karte nennt den Fall in eckigen Klammern hinter dem Gefahrengrund. Lies ihn, bevor du entscheidest:
| Was die Karte ergänzt | Was tatsächlich passiert ist | Dein nächster Schritt |
|---|---|---|
| nichts | Der Agent pausiert und wartet auf dich | Freigeben oder ablehnen – der Lauf geht direkt weiter |
| not resumable … restart the task | Der Agent wurde gestoppt, nicht pausiert | Gate entscheiden, um dein Urteil festzuhalten, dann die Aufgabe neu starten |
| not enforced … the run was NOT stopped | Die Unterbrechung erreichte nichts; der Lauf läuft weiter | Aufgabe abbrechen, wenn sie stoppen muss |
| soft hold … deliberately NOT stopped | SupaCloud hat gefragt, ohne zu stoppen – der einzig verfügbare Stopp hätte einen gesunden Lauf getötet. Die Chat-Karte heißt Agent läuft weiter (nicht pausiert) und bietet nur Erlauben / Ablehnen – keine Immer-Regeln, weil es nichts zu erlauben gibt | Erlauben quittiert den Halt und ändert sonst nichts; Ablehnen bricht die Aufgabe ab |
Eine Karte, deren Gate anderswo entschieden wurde – im Web-Posteingang, auf der anderen Chat-Oberfläche, vom Koordinator, oder weil der Agent endete, bevor jemand entschied – wird an Ort und Stelle bearbeitet: die Knöpfe verschwinden, und eine Zeile darunter sagt, was passiert ist (anderswo entschieden, gilt nicht mehr, abgelaufen). Eine Karte, die noch Knöpfe zeigt, ist ein Gate, das noch offen ist.
Zwei Agenten antworten von Lauf zu Lauf unterschiedlich; der Agentenname allein ist deshalb kein verlässlicher Hinweis:
- Gemini pausiert bei einem Lauf mit API-Schlüssel und wird gestoppt, wenn
er sich per Google OAuth anmeldet – ein OAuth-Lauf läuft über das
Kommandozeilenwerkzeug
agy, das die Unterbrechung nur beenden kann. - opencode pausiert, wenn für den Lauf interaktive Freigaben scharf geschaltet sind, und wird andernfalls gestoppt.
Kann SupaCloud nicht feststellen, welchen der beiden Wege ein Lauf genommen hat, sagt die Karte das (cannot confirm …) und nimmt an, der Lauf sei gestoppt worden. Eine Fortsetzung wird nie versprochen, ohne sie geprüft zu haben – ein Halt mit restart the task kann also gelegentlich ein Lauf sein, der sich tatsächlich hätte fortsetzen lassen, nie umgekehrt.