Hooks für den KI-Agenten: Schutz vor gefährlichen Befehlen und Leaks
Setz dem Agenten rote Flaggen - dann reißt er dir um drei Uhr nachts nicht dein Projekt ab
Hooks und hookify-Regeln einfach erklärt: wie du dem Agenten einen automatischen Wachmann verpasst, der rm -rf, das Leaken von Secrets und gefährliche Befehle abfängt, bevor sie laufen.
Was ist ein Hook, einfach erklärt
Stell dir vor, du gibst einem Kind die Schlüssel zur Küche. Im Großen und Ganzen macht es seine Sache gut: kocht, spült ab, stapelt die Teller ordentlich. Aber einmal in hundert Durchgängen steckt es in der Hektik die Gabel in die Steckdose oder wirft deinen Pass weg - lag ja eh auf dem Tisch und war im Weg.
Ein KI-Agent funktioniert genau so. In 99 % der Fälle läuft alles glatt. Und im restlichen 1 % führt er seelenruhig einen Befehl aus, der deinen Ordner löscht, dein Passwort in ein öffentliches Repository schiebt oder deine Produktionsdatenbank plattmacht. Und das macht er munter, mit selbstbewusstem Gesicht und dem Satz „Fertig!“.
Damit dieses 1 % nicht passiert, setzt man einen Hook Hook (von engl. hook - „Haken, Abfänger“) ist Code, der automatisch in einem bestimmten Moment auslöst: vor einem Befehl, vor dem Schreiben in eine Datei, am Ende der Antwort des Agenten. Er schafft es, die Aktion zu prüfen, bevor sie passiert ist. - so etwas wie einen Wachmann am Eingang. Vor jeder gefährlichen Aktion stellt er sich hin und sagt: „So, Stopp. Zeig mir mal, was du vorhast“.
Wozu ein Vibecoder Schutz vor gefährlichen Agenten-Aktionen braucht
Du bist Vibecoder. Du wälzt jede Menge Routine auf den Agenten ab - und das ist auch richtig so. Aber Vertrauen ohne Absicherung kostet dich irgendwann Nerven und Daten. Hooks brauchst du, damit du:
- ruhig schläfst - der Agent kann das, was du verboten hast, physisch nicht ausführen;
- nicht dasselbe Verbot in jedem neuen Chat hundertmal wiederholst;
- Fehler im Voraus abfängst, statt um drei Uhr nachts mit einer Tasse kaltem Kaffee die Folgen aufzuräumen;
- nicht versehentlich Passwörter und Schlüssel in den offenen Zugriff schiebst - der Klassiker, an dem sich schon alle die Finger verbrannt haben.
Zwischen „der Agent hat mir drei Tage Arbeit gelöscht“ und „der Agent hat es versucht, aber der Hook hat ihn gestoppt“ liegt eine kleine Textdatei mit einer Regel. Die lernen wir jetzt zu schreiben.
Wie hookify-Regeln funktionieren
Hooks von Hand als Code zu schreiben, ist eine Qual. Deshalb gibt es das Tool hookify hookify - ein einfacher Weg, Hooks in normalem Text zu definieren, ohne Programmieren. Du schreibst die Regel in eine Markdown-Datei: worauf geschaut wird und was gesagt oder getan werden soll. Kein Code. : du legst einfach eine ganz normale Text-Regeldatei an, das war’s. Kein Code.
Jede Regel beantwortet drei Fragen.
WANN schauen - das Ereignis (event)
Der Wachmann sitzt nicht überall gleichzeitig. Du sagst ihm, in welchem Moment er aufwachen soll:
bash- wenn der Agent einen Befehl im Terminal ausführen will (hier fängt manrm -rf,sudound sonstige schwere Geschütze);file- wenn der Agent eine Datei schreibt oder bearbeitet (hier fängt man Passwörter im Code und Debug-Müll);prompt- wenn du selbst dem Agenten etwas geschrieben hast;stop- der Moment, in dem der Agent seine Antwort beendet hat (praktisch für Erinnerungen);all- bei jedem beliebigen Ereignis.
WAS fangen - das Muster (pattern)
Das ist das „Wortporträt“ der gefährlichen Aktion. Technisch gesehen ein Pattern Pattern (regulärer Ausdruck) ist eine Schablone für die Textsuche. Zum Beispiel fängt das Muster „rm ein-oder-mehr-Leerzeichen -rf“ den Löschbefehl, egal wie der Agent ihn schreibt - mit einem Leerzeichen oder mit drei. . Sagen wir, das Muster rm\s+-rf fängt den schaurigen Löschbefehl, selbst wenn der Agent ein zusätzliches Leerzeichen reinklatscht.
WAS tun - die Aktion (action)
Hat der Wachmann einen Übeltäter erwischt, hat er zwei Reaktionsmöglichkeiten:
- warn - warnen und durchlassen. „Hey, willst du das wirklich machen? Na gut, geh durch“. Der Standardmodus.
- block - knallhart blockieren. „Stopp. Ich lass dich nicht durch. Punkt“. Die Aktion wird gar nicht erst ausgeführt.
- Die Aktion ist meist ungefährlich, aber manchmal will man kurz nachdenken.
- Erinnerungen wie „vergiss nicht, die Datei in die .gitignore aufzunehmen“.
- Stil-Kleinigkeiten: „hast ein console.log im Code gelassen - räum das später auf“.
- Befehle, die man nicht rückgängig machen kann: Löschen, Festplatte formatieren.
- Das Schreiben von Secrets (Passwörter, API-Keys) dorthin, wo sie jemand sehen kann.
- Jegliche Aktionen am Produktivserver oder an der Datenbank - hier nur knallharter Stopp.
Wie eine hookify-Regel aussieht
Die Regel selbst ist eine kurze Textdatei. Oben zwischen zwei Linien --- stehen die Einstellungen, darunter die Nachricht, die der Agent sieht, wenn die Regel auslöst. Mehr ist es nicht.
Beschreiben wir mit Worten die Regel „blockiere gefährliches Löschen von Dateien“:
- Name der Regel:
block-rm-rf(den Namen fängt man besser mit einem Verb an:warn-,block-,require-); - aktiviert: ja;
- Ereignis:
bash(wir beobachten Befehle im Terminal); - Aktion:
block(wir blockieren); - Muster: fängt den Löschbefehl
rmmit den Flags-rf; - Nachricht: „Stopp. Das ist ein Löschvorgang ohne Möglichkeit zum Rückgängigmachen. Bestätige manuell, bevor du weitermachst“.
Die Regeldateien liegen im Ordner .claude innerhalb des Projekts. Und genau hier kommt der wichtigste Gedanke der Lektion.
Beispiel: wie ein Hook das Leaken von Secrets abfängt
Du bastelst an deinem ersten Startup. Du bindest ein Zahlungssystem ein, der Agent legt eine Datei .env an und packt den geheimen Schlüssel von Stripe hinein. Fünf Minuten später bittest du „schieb alles auf GitHub“, der Agent macht munter ein git push - und dein Geld-Schlüssel ist jetzt für das ganze Internet sichtbar. Noch ein paar Stunden - und jemand zieht damit seelenruhig dein Limit leer. Glückwunsch, du hast jemandem das Wochenende bezahlt.
Kommt dir das bekannt vor? Und jetzt schau, wie diese Katastrophe mit einer einzigen Regel abgewendet wird.
Du setzt vorher einen Hook: „sobald der Agent etwas Ähnliches wie einen API-Key in die Datei .env schreibt - erinnere mich daran, die .gitignore zu prüfen“. Hier ist der Prompt, der den Agenten bittet, diesen Schutz für dich zu bauen.
Erstelle mir eine hookify-Regel zum Schutz vor dem Leaken von Secrets.
Bedingungen der Regel:
- Ereignis - Schreiben in eine Datei (event file).
- Löst aus, wenn der Dateipfad auf .env endet
UND wenn im neuen Text API_KEY, SECRET oder TOKEN vorkommt.
- Aktion - warnen (warn), nicht blockieren.
- Nachricht an den Agenten: „Du schreibst ein Secret in .env. Prüfe, dass diese
Datei in der .gitignore steht und nicht in ein öffentliches Repository gelangt“.
Leg die Regel in den Ordner .claude des Projekts und erklär mir mit einfachen
Worten, was sie genau macht.
Eine gute Regel gegen eine schlechte
Hooks sind eine mächtige Sache, aber man kann es leicht übertreiben. Hängst du an jeden Pups ein block, wird der Agent zum Gelähmten, der keinen Schritt mehr machen kann. So findest du die Balance.
- Fängt das wirklich Gefährliche: Löschen, Secrets, Produktivserver.
- Das Muster ist präzise: fängt „console.log(“, nicht jedes Wort mit „log“.
- Die Nachricht sagt dem Agenten, was er als Nächstes tun soll, nicht nur „geht nicht“.
- Gefährliches und Unumkehrbares geht auf block, Kleinkram auf warn.
- Zu breites Muster: das Wort „log“ fängt „login“ und „dialog“.
- Alles auf block - der Agent kann nicht arbeiten, du regst dich auf.
- Verbot ohne Erklärung - der Agent versteht nicht, wie er regulär durchkommt.
- Die Regel lebt nur im Chat, nicht in einer Datei - nach dem Neustart ist sie weg.
Häufige Anfängerfehler mit Hooks
- Glauben, dass Worte im Chat reichen. „Ich hab doch gesagt, nicht löschen“ - und der Agent hat es nach der nächsten Kompaktierung vergessen. Das Verbot muss in einer Datei leben.
- Auf alles ein block hängen. Der Agent erstickt, und du schaltest die Hooks im Frust selbst ab. Blockiere nur das Unumkehrbare.
- Zu breites Muster. Du hast das Wort
rmverboten - und der Agent kann das Wort „information“ nicht mehr schreiben. Mach das Muster präzise. - Verbot ohne Tipp „und was jetzt“. Der Agent rennt gegen eine Wand und dreht sich im Kreis. Schreib in die Nachricht, wie man es richtig macht.
- Die
.gitignorefür Secrets ignorieren. Der Hook hat gewarnt, und du hast drübergescrollt. Lies, was der Wachmann sagt. - Nicht prüfen, ob die Regel überhaupt auslöst. Bitte den Agenten, einen ungefährlichen Testbefehl auszuführen, und vergewissere dich, dass der Hook ihn gefangen hat.
TL;DR - если коротко
- Hook - ein Wachmann, der jede Aktion des Agenten prüft, bevor sie ausgeführt wird.
- hookify-Regel - eine Textdatei nach dem Prinzip „machst du das, dann warne oder verbiete ich“.
- Zwei Modi: warn (gewarnt und durchgelassen) und block (Stopp, weiter geht nichts).
- Fängt per Muster: gefährliche Befehle, geheime Schlüssel, Debug-Müll.
- Lebt in einer Datei, nicht im Chat - läuft immer, sogar nach einem Neustart.
- Sag mit Worten, wovor du Angst hast - der Agent baut das Muster selbst, Regex lernen musst du nicht.