Zurück zur Übersicht

Blog

Human-in-the-Loop: Wie das Genehmigungssystem von Tactic Remote Entwicklern die Kontrolle sichert

Das Genehmigungssystem von Tactic Remote fängt Tool-Aufrufe von Claude Code über Hooks ab, leitet sie als Push-Benachrichtigungen an dein iPhone weiter und blockiert die Ausführung, bis du jede Aktion explizit genehmigst oder ablehnst.

Veröffentlicht Tags: security / approvals / architecture / ai-safety
Blog

Weitere Produkt- und Engineering-Updates aus dieser Kategorie.

Kategorie öffnen

KI-Coding-Agenten sind leistungsfähig, aber Macht ohne Aufsicht ist ein Risiko. Tactic Remote wurde um eine zentrale Überzeugung herum gebaut: Entwickler sollten jede relevante Aktion genehmigen, die ein KI-Agent in ihrer Entwicklungsumgebung ausführt. Heute veröffentlichen wir einen detaillierten Einblick in die Funktionsweise des Genehmigungssystems, die Latenzkosten und unsere Pläne für die Zukunft.

Warum Genehmigungen wichtig sind

Claude Code kann Dateien lesen, Dateien schreiben, Shell-Befehle ausführen und mit externen Diensten interagieren. Jede dieser Aktionen hat reale Konsequenzen. Ein missverstandener Prompt kann zu gelöschten Dateien, fehlerhaften Git-Operationen oder unbeabsichtigten API-Aufrufen führen.

Anthropic hat in Claude Code ein Berechtigungssystem integriert, das Benutzer im Terminal zur Genehmigung auffordert. Aber wenn du nicht an deinem Mac bist — unterwegs, in einem Meeting oder einfach in einem anderen Raum — blockieren diese Aufforderungen die Ausführung unbegrenzt. Dein Agent sitzt untätig da und wartet.

Tactic Remote löst dieses Problem, indem jede Genehmigungsaufforderung in Echtzeit an dein iPhone gesendet wird. Du überprüfst die vorgeschlagene Aktion, siehst den vollständigen Kontext und tippst, um zu genehmigen oder abzulehnen. Der Agent setzt seine Arbeit sofort fort. Kein Wechsel zum Mac erforderlich.

Architektur: Hooks und Abfangen

Das Genehmigungssystem basiert auf dem Hook-Mechanismus von Claude Code. Wenn Claude Code einen Tool-Aufruf ausführen will — Dateischreibvorgang, Shell-Befehl oder eine andere Aktion, die eine Berechtigung erfordert — fängt der Tactic Remote Mac Companion das Ereignis vor der Ausführung ab.

Der Ablauf:

  1. Claude Code initiiert einen Tool-Aufruf. Zum Beispiel möchte es rm -rf node_modules && npm install in deinem Projektverzeichnis ausführen.
  2. Der Hook wird ausgelöst. Das Hook-Skript von Tactic Remote erfasst den Tool-Namen, die Argumente und den vollständigen Kontext der vorgeschlagenen Aktion. Dies geschieht synchron — Claude Code ist pausiert und wartet auf die Rückgabe des Hooks.
  3. Der Mac Companion bewertet die Aktion. Er prüft die Aktion gegen konfigurierte Auto-Genehmigungsregeln. Wenn die Aktion einer Regel entspricht (z.B. schreibgeschützte Dateioperationen), gibt er die Genehmigung sofort zurück, ohne das iPhone einzubeziehen.
  4. Wenn manuelle Genehmigung erforderlich ist, wird eine Push-Benachrichtigung gesendet. Die Benachrichtigung enthält den Aktionstyp, eine Zusammenfassung dessen, was Claude tun möchte, und ausreichend Kontext für eine fundierte Entscheidung.
  5. Die iPhone-App zeigt die Genehmigungsanfrage an. Du siehst den vollständigen Befehl oder Datei-Diff, das Arbeitsverzeichnis und den Gesprächskontext, der zu dieser Aktion geführt hat.
  6. Du genehmigst oder lehnst ab. Deine Antwort wird über WebSocket zurück an den Mac Companion gesendet, der das Ergebnis an den Hook zurückgibt und Claude Code entsperrt.

Aus Sicht von Claude Code ist die gesamte Kette synchron. Es hat einen Hook aufgerufen und eine Antwort erhalten. Es weiß nicht, dass die Genehmigung über ein Telefon in einem anderen Netzwerk geleitet wurde.

Was du auf deinem iPhone siehst

Der Genehmigungsbildschirm ist für schnelle, fundierte Entscheidungen konzipiert. Jede Anfrage zeigt:

  • Aktionstyp — Dateischreibvorgang, Shell-Befehl, API-Aufruf oder anderer Tool-Aufruf.
  • Vollständige Nutzlast — der exakte auszuführende Befehl oder der exakte zu schreibende Inhalt. Shell-Befehle werden nicht zusammengefasst oder gekürzt. Datei-Diffs zeigen die konkreten geänderten Zeilen.
  • Arbeitsverzeichnis — wo die Aktion ausgeführt wird, damit du den Umfang einschätzen kannst.
  • Gesprächsauszug — die letzten Austausche, die Claude dazu geführt haben, diese Aktion vorzuschlagen, und dir das "Warum" hinter der Anfrage zeigen.
  • Sitzungsmetadaten — welche tmux-Sitzung, wie lange sie läuft und wie viele Aktionen in dieser Sitzung bereits genehmigt wurden.

Du kannst genehmigen, ablehnen oder mit einer Nachricht ablehnen, die als Feedback an Claude Code zurückgesendet wird.

Performance: Wie schnell sind Genehmigungen?

Wir erfassen die Roundtrip-Zeiten für Genehmigungen über alle Verbindungsmodi. Diese Zahlen repräsentieren die Zeit vom Auslösen des Hooks bis zum Erhalt der Genehmigungsantwort und der Wiederaufnahme der Ausführung.

SzenarioMedianP95
Lokales Netzwerk, App im Vordergrund85ms + menschliche Zeit140ms + menschliche Zeit
Lokales Netzwerk, App im Hintergrund (Push-Benachrichtigung)1.2s + menschliche Zeit2.8s + menschliche Zeit
Cloudflare Tunnel, App im Vordergrund280ms + menschliche Zeit450ms + menschliche Zeit
Cloudflare Tunnel, App im Hintergrund1.8s + menschliche Zeit3.5s + menschliche Zeit

"Menschliche Zeit" ist der dominierende Faktor. In der Praxis antworten die meisten Entwickler innerhalb von 3-8 Sekunden auf Genehmigungsanfragen, wenn sie eine Sitzung aktiv überwachen. Der Systemoverhead ist im Vergleich zur Entscheidungszeit vernachlässigbar.

Entscheidend ist, dass das Genehmigungssystem bei Aktionen, die Auto-Genehmigungsregeln entsprechen, keinen Overhead hinzufügt. Diese umgehen das iPhone vollständig und werden auf dem Mac in unter 5ms abgewickelt.

Auto-Genehmigungsrichtlinien

Nicht jede Aktion erfordert eine manuelle Überprüfung. Das Lesen einer Datei ist in der Regel sicher. Das Ausführen eines Linters ist risikoarm. Tactic Remote unterstützt konfigurierbare Auto-Genehmigungsrichtlinien, mit denen du festlegen kannst, welche Aktionen das iPhone überspringen und automatisch fortfahren.

Aktuelle Richtlinienoptionen:

  • Schreibgeschützte Dateioperationen — cat, read, Dateiauflistung und ähnliche nicht-mutierende Aktionen.
  • Bestimmte Befehlspräfixe — zum Beispiel automatische Genehmigung aller Befehle, die mit npm test oder cargo check beginnen.
  • Verzeichnisbegrenzung — automatische Genehmigung aller Aktionen innerhalb eines bestimmten Verzeichnisses (nützlich für temporäre oder Testverzeichnisse).
  • Tool-Typ-Whitelists — Genehmigung aller Aktionen einer bestimmten Tool-Kategorie.

Richtlinien werden im Mac Companion konfiguriert und zur Sichtbarkeit mit der iPhone-App synchronisiert. Du kannst in der Sitzungsansicht sehen, welche Richtlinien aktiv sind, und sie temporär überschreiben (z.B. bei einem Produktions-Deployment auf "alles manuell genehmigen" umschalten).

Ablehnung mit Feedback

Wenn du eine Aktion ablehnst, kannst du optional eine Nachricht beifügen. Diese Nachricht wird an Claude Code zurückgegeben, als hätte der Benutzer sie im Terminal eingegeben. Claude Code behandelt sie als Orientierung und passt seinen Ansatz an.

Wenn Claude beispielsweise vorschlägt, eine Konfigurationsdatei zu löschen, und du mit "Lösche diese Datei nicht, sie enthält lokale Überschreibungen, die nicht in Git sind" ablehnst, wird Claude das Feedback berücksichtigen und einen alternativen Ansatz finden. Dies schafft eine echte Feedback-Schleife zwischen Entwickler und Agent, selbst wenn sie nicht am selben Rechner sitzen.

Zuverlässigkeitsgarantien

Das Genehmigungssystem ist auf sicheres Versagen ausgelegt:

  • Wenn die WebSocket-Verbindung während einer Genehmigung abbricht, läuft der Hook in ein Timeout und gibt eine Ablehnung zurück. Claude Code erhält ein "Berechtigung verweigert"-Ergebnis und stoppt die Aktion.
  • Wenn das iPhone nicht erreichbar ist (kein Netzwerk, Telefon ausgeschaltet), werden ausstehende Genehmigungen bis zu 10 Minuten auf dem Mac Companion in eine Warteschlange gestellt. Wenn das Telefon innerhalb dieses Zeitfensters wieder verbunden wird, werden die Genehmigungen zugestellt. Nach dem Timeout werden sie automatisch abgelehnt.
  • Wenn der Mac Companion abstürzt, erkennt das Hook-Skript den fehlenden Prozess und gibt eine Ablehnung zurück. Ohne explizite Genehmigung kann Claude Code nicht fortfahren.

Das Standardverhalten ist immer Ablehnung. Das System erfordert eine ausdrückliche Genehmigung, um fortzufahren. Es gibt keinen Zustand, in dem eine unterbrochene Verbindung oder ein abgestürzter Prozess dazu führt, dass eine nicht überprüfte Aktion ausgeführt wird.

Nächste Schritte

Wir arbeiten an mehreren Verbesserungen des Genehmigungssystems:

Granularer Richtlinien-Builder. Eine visuelle Oberfläche in der iPhone-App zum Erstellen von Auto-Genehmigungsrichtlinien ohne Bearbeitung von Konfigurationsdateien. Drag-and-Drop-Regeln mit boolescher Logik: "Shell-Befehle automatisch genehmigen, die git status ODER git diff entsprechen, aber NICHT git push."

Sitzungsbezogene Vertrauenseskalation. Die Möglichkeit, das Vertrauensniveau für eine bestimmte Sitzung temporär zu erhöhen. Zum Beispiel "alle Dateischreibvorgänge in dieser Sitzung für die nächsten 15 Minuten automatisch genehmigen", wenn du ein großes Refactoring aktiv überwachst und nicht jede Datei einzeln genehmigen möchtest.

Genehmigungs-Analytik. Ein Dashboard, das Genehmigungsmuster über die Zeit zeigt — welche Aktionen du am häufigsten genehmigst, welche du am häufigsten ablehnst und Vorschläge für Auto-Genehmigungsrichtlinien basierend auf deinem Verlauf.

Batch-Genehmigungen. Wenn Claude Code eine Reihe zusammenhängender Aktionen vorschlägt (z.B. das Schreiben von 5 Dateien als Teil eines einzelnen Features), die Option, sie als Batch zu prüfen und den gesamten Satz zu genehmigen oder abzulehnen.

Das Genehmigungssystem ist der Kern dessen, was Tactic Remote für echte Entwicklungsarbeit praktikabel macht. Autonome KI-Agenten sind nützlich, aber autonome KI-Agenten mit menschlicher Aufsicht sind vertrauenswürdig. Dieser Unterschied ist wichtig, und wir werden weiter darin investieren.

Tactic Remote ausprobieren

Coding-Agenten vom Smartphone aus steuern

Verbinde dich mit Claude Code, Codex und anderen Agenten auf deinem Mac-, Windows- oder Linux-Rechner. Prüfe den Fortschritt und sende die nächste Anweisung vom iPhone oder iPad.