Zum Hauptinhalt springen
Sofort einsatzbereite Beispiele für häufige Szenarien. Jedes zeigt, wie die Installation funktioniert und was zu erwarten ist.

Hooks für Claude Code einrichten

Failproof AI integriert sich mit Claude Code über dessen Hooks-System. Wenn Sie failproofai policies --install ausführen, werden Hook-Befehle in der settings.json von Claude Code registriert, die bei jedem Tool-Aufruf ausgelöst werden.
1

failproofai installieren

npm install -g failproofai
2

Alle integrierten Richtlinien aktivieren

failproofai policies --install
3

Überprüfen, ob Hooks registriert sind

cat ~/.claude/settings.json | grep failproofai
Sie sollten Hook-Einträge für PreToolUse-, PostToolUse-, Notification- und Stop-Ereignisse sehen.
4

Claude Code starten

claude
Richtlinien werden nun automatisch bei jedem Tool-Aufruf ausgeführt. Versuchen Sie, Claude aufzufordern, sudo rm -rf / auszuführen – der Befehl wird blockiert.

Hooks für das Agents SDK einrichten

Wenn Sie mit dem Agents SDK entwickeln, können Sie dasselbe Hook-System programmgesteuert verwenden.
1

failproofai in Ihrem Projekt installieren

npm install failproofai
2

Hooks in Ihrem Agenten konfigurieren

Übergeben Sie Hook-Befehle beim Erstellen Ihres Agentenprozesses. Die Hooks werden genauso wie in Claude Code ausgelöst – über stdin/stdout JSON:
failproofai --hook PreToolUse   # wird vor jedem Tool aufgerufen
failproofai --hook PostToolUse  # wird nach jedem Tool aufgerufen
3

Eine benutzerdefinierte Richtlinie für Ihren Agenten schreiben

import { customPolicies, allow, deny } from "failproofai";

customPolicies.add({
  name: "limit-to-project-dir",
  description: "Keep the agent inside the project directory",
  match: { events: ["PreToolUse"] },
  fn: async (ctx) => {
    const path = String(ctx.toolInput?.file_path ?? "");
    if (path.startsWith("/") && !path.startsWith(ctx.session?.cwd ?? "")) {
      return deny("Agent is restricted to the project directory");
    }
    return allow();
  },
});
4

Die benutzerdefinierte Richtlinie installieren

failproofai policies --install --custom ./my-agent-policies.js

Destruktive Befehle blockieren

Das häufigste Setup – verhindert, dass Agenten irreversiblen Schaden anrichten.
failproofai policies --install block-sudo block-rm-rf block-force-push block-curl-pipe-sh
Was dies bewirkt:
  • block-sudo – blockiert alle sudo-Befehle
  • block-rm-rf – blockiert das rekursive Löschen von Dateien
  • block-force-push – blockiert git push --force
  • block-curl-pipe-sh – blockiert das Weiterleiten von Remote-Skripten an die Shell

Geheimnis-Leaks verhindern

Verhindert, dass Agenten Anmeldedaten in der Tool-Ausgabe sehen oder weitergeben.
failproofai policies --install sanitize-api-keys sanitize-jwt sanitize-connection-strings sanitize-bearer-tokens
Diese Richtlinien werden bei PostToolUse ausgelöst – nachdem ein Tool ausgeführt wurde, bereinigen sie die Ausgabe, bevor der Agent sie sieht.

Slack-Benachrichtigungen erhalten, wenn Agenten Aufmerksamkeit benötigen

Verwenden Sie den Notification-Hook, um Leerlauf-Benachrichtigungen an Slack weiterzuleiten.
import { customPolicies, allow, instruct } from "failproofai";

customPolicies.add({
  name: "slack-on-idle",
  description: "Alert Slack when the agent is waiting for input",
  match: { events: ["Notification"] },
  fn: async (ctx) => {
    const webhookUrl = process.env.SLACK_WEBHOOK_URL;
    if (!webhookUrl) return allow();

    const message = String(ctx.payload?.message ?? "Agent is waiting");
    const project = ctx.session?.cwd ?? "unknown";

    try {
      await fetch(webhookUrl, {
        method: "POST",
        headers: { "Content-Type": "application/json" },
        body: JSON.stringify({
          text: `*${message}*\nProject: \`${project}\``,
        }),
        signal: AbortSignal.timeout(5000),
      });
    } catch {
      // den Agenten niemals blockieren, wenn Slack nicht erreichbar ist
    }

    return allow();
  },
});
Installation:
SLACK_WEBHOOK_URL=https://hooks.slack.com/... failproofai policies --install --custom ./slack-alerts.js

Agenten auf einem Branch halten

Verhindert, dass Agenten Branches wechseln oder in geschützte Branches pushen.
import { customPolicies, allow, deny } from "failproofai";

customPolicies.add({
  name: "stay-on-branch",
  description: "Prevent the agent from checking out other branches",
  match: { events: ["PreToolUse"] },
  fn: async (ctx) => {
    if (ctx.toolName !== "Bash") return allow();
    const cmd = String(ctx.toolInput?.command ?? "");
    if (/git\s+checkout\s+(?!-b)/.test(cmd)) {
      return deny("Stay on the current branch. Create a new branch with -b if needed.");
    }
    return allow();
  },
});

Tests vor Commits verlangen

Erinnert Agenten daran, vor dem Committen Tests auszuführen.
import { customPolicies, allow, instruct } from "failproofai";

customPolicies.add({
  name: "test-before-commit",
  description: "Remind the agent to run tests before committing",
  match: { events: ["PreToolUse"] },
  fn: async (ctx) => {
    if (ctx.toolName !== "Bash") return allow();
    const cmd = String(ctx.toolInput?.command ?? "");
    if (/git\s+commit/.test(cmd)) {
      return instruct("Run tests before committing. Use `npm test` or `bun test` first.");
    }
    return allow();
  },
});

Ein Produktions-Repository absichern

Committen Sie eine projektbezogene Konfiguration, damit alle Entwickler in Ihrem Team dieselben Richtlinien erhalten. Erstellen Sie .failproofai/policies-config.json in Ihrem Repository:
{
  "enabledPolicies": [
    "block-sudo",
    "block-rm-rf",
    "block-force-push",
    "block-push-master",
    "block-env-files",
    "sanitize-api-keys",
    "sanitize-jwt"
  ],
  "policyParams": {
    "block-push-master": {
      "protectedBranches": ["main", "release", "production"]
    }
  }
}
Dann committen Sie die Datei:
git add .failproofai/policies-config.json
git commit -m "Add failproofai team policies"
Jedes Teammitglied, das failproofai installiert hat, übernimmt diese Regeln automatisch.

Weitere Beispiele

Das Verzeichnis examples/ im Repository enthält:
DateiInhalt
policies-basic.jsGrundlegende Richtlinien – blockiert Schreibzugriffe auf Produktion, Force-Push und weitergeleitete Skripte
policies-notification.jsSlack-Benachrichtigungen bei Leerlauf-Meldungen und Sitzungsende
policies-advanced/index.jsTransitive Imports, asynchrone Hooks, PostToolUse-Ausgabebereinigung, Stop-Ereignisbehandlung