> ## Documentation Index
> Fetch the complete documentation index at: https://docs.befailproof.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Agent-Harnesses

> Sitzungen erfassen und Richtlinien in unterstützten Agent-CLIs durchsetzen.

Failproof AI unterstützt Claude Code, Codex, GitHub Copilot CLI, Cursor, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin CLI, Antigravity CLI und Goose.

| Harness                                          | Unterstützte Hook-Bereiche |
| ------------------------------------------------ | -------------------------- |
| Claude Code                                      | User, project, local       |
| Codex, GitHub Copilot CLI, Cursor, OpenCode, Pi  | User, project              |
| Factory Droid, Devin CLI, Antigravity CLI, Goose | User, project              |
| Hermes, OpenClaw                                 | User                       |

Jede Integration normalisiert die nativen Hook-Ereignisnamen, Tool-Namen und Tool-Eingabefelder, bevor Richtlinien ausgeführt werden. Eine Richtlinie kann nur auf Ereignisse reagieren, die der Harness bereitstellt; testen Sie das Verhalten bei Gesprächsende und Anweisungen auf dem genauen Harness und der Version, die Sie einsetzen.

## Durchsetzungsfähigkeit

„Blockieren" bedeutet, dass das zurückgegebene Urteil des aktuellen Adapters vom genannten Harness verarbeitet wird. Post-Tool-Blockierung kann das dem Modell angezeigte Ergebnis ersetzen, kann aber einen bereits eingetretenen Tool-Nebeneffekt nicht rückgängig machen.

| Harness            | Verifizierte blockierende Ereignisse                                                                                                      | Nur-Beobachtungs- oder nicht-blockierende Hinweise                                                                                                                              |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Claude Code        | `PreToolUse`, `UserPromptSubmit`, `PermissionRequest`, `Stop`, `SubagentStop`, `PreCompact` sowie mehrere Task-/Konfigurations-Ereignisse | `PostToolUse`, Sitzungslebenszyklus, Benachrichtigungen und Post-Fehler-Ereignisse sind beobachtend.                                                                            |
| Codex              | `PreToolUse`, `PermissionRequest`, `UserPromptSubmit`, `Stop`, `SubagentStop`, `PostToolUse`                                              | Post-Tool-Blockierung ersetzt das Ergebnis nach der Ausführung; Sitzungsstart- und Compact-Ereignisse sind im aktuellen Adapter beobachtend.                                    |
| GitHub Copilot CLI | `PreToolUse`, `UserPromptSubmit`, `PermissionRequest`, `Stop`, `SubagentStop`, `PostToolUse`                                              | Post-Tool-Blockierung ersetzt das Ergebnis nach der Ausführung; Sitzungs- und Benachrichtigungsereignisse sind beobachtend.                                                     |
| Cursor             | `PreToolUse`, `UserPromptSubmit`, `Stop`                                                                                                  | `PostToolUse` und Sitzungsereignisse sind beobachtend.                                                                                                                          |
| OpenCode           | `PreToolUse`                                                                                                                              | Post-Tool- und Lebenszyklus-Ereignisse sind beobachtend; die aktuelle Stop-Behandlung ist eine Anleitung für einen späteren Gesprächszug, kein verifiziertes Gate.              |
| Pi                 | `PreToolUse`, `UserPromptSubmit`                                                                                                          | Post-Tool- und Lebenszyklus-Ereignisse sind beobachtend; Stop-Anleitung gilt für einen späteren Gesprächszug.                                                                   |
| Hermes             | `PreToolUse`                                                                                                                              | Post-Tool-, Sitzungs- und Subagent-Stop-Urteile sind keine Gates.                                                                                                               |
| OpenClaw           | `PreToolUse`, `UserPromptSubmit`, `Stop`                                                                                                  | Post-Tool-, Sitzungs-, Subagent-Stop- und Compaction-Ereignisse sind beobachtend.                                                                                               |
| Factory Droid      | `PreToolUse`, `UserPromptSubmit`, `Stop`, `PreCompact`                                                                                    | Post-Tool- und Subagent-Stop-Urteile sind beobachtend.                                                                                                                          |
| Devin CLI          | `PreToolUse`, `UserPromptSubmit`, `Stop`, bedingtes `PermissionRequest`                                                                   | Permission-Hooks laufen nicht in jedem Permission-Modus; Post-Tool- und Sitzungsereignisse sind beobachtend.                                                                    |
| Antigravity CLI    | `PreToolUse`, `Stop`                                                                                                                      | User-Prompt- und Post-Tool-Urteile sind beobachtend; Prompt-Anweisungen können dennoch injiziert werden.                                                                        |
| Goose              | `PreToolUse`                                                                                                                              | User-Prompt-, Post-Tool- und Sitzungsereignisse sind beobachtend. Ein nativer blockierender Stop-Hook existiert im Upstream, wird aber vom aktuellen Adapter nicht installiert. |

Die Fähigkeiten sind versionsabhängig. Testen Sie erneut nach einem Upgrade einer Agent-CLI, insbesondere wenn eine Richtlinie auf Prompt-, Stop-, Permission- oder Post-Tool-Verhalten statt auf das übliche Pre-Tool-Gate angewiesen ist.

## Erfassungs- und Richtlinien-Hooks installieren

<Tabs>
  <Tab title="Dashboard">
    1. Öffnen Sie **Administration → Keys** und erstellen Sie einen Schlüssel mit `events:add` und `policies:pull`, benannt nach der Maschine oder Umgebung.
    2. Verbinden Sie auf der Zielmaschine die lokale CLI mit dem angezeigten Schlüssel und installieren Sie die Harness-Hooks.
    3. Starten Sie eine neue Agent-Sitzung und bestätigen Sie deren Hook- und Sitzungsereignisse unter **Observe → Events**.
    4. Öffnen Sie **Observe → policy** für dasselbe Zeitfenster und bestätigen Sie, dass eine Richtlinienentscheidung der Maschine zugeordnet wird.

    Die Verbindung beginnt mit einem Maschinenschlüssel. Stellen Sie sicher, dass er sowohl Ingestion- als auch Richtlinien-Übermittlungsberechtigungen enthält, bevor Sie sein Secret kopieren.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/key-create.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=a428bdae79f837471acb66414ff6455b" alt="Die neue API-Schlüssel-Schublade zum Erteilen von Ereignis-Ingestion- und Richtlinien-Übermittlungsberechtigungen." width="2940" height="1604" data-path="images/dashboard/key-create.png" />

    Nach der Installation der Hooks sollte der Ereignis-Stream neue Ereignisse von der verbundenen Maschine und Umgebung anzeigen.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/events-stream.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=2cbda31a05ade12cbf015f6800ba34e1" alt="Der Live-Ereignis-Stream zur Bestätigung, dass ein neu installierter Harness Daten meldet." width="3200" height="2000" data-path="images/dashboard/events-stream.png" />

    Vergewissern Sie sich abschließend, dass Richtlinienentscheidungen derselben Maschine zugeordnet werden. Dies bestätigt, dass der Harness sowohl Richtlinienaktivitäten als auch Trace-Ereignisse meldet.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/policy-observe.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=13535ad27c8bddac6589f9d1560916cb" alt="Die Richtlinien-Seite zur Überprüfung von Richtlinienentscheidungen eines neu verbundenen Harness." width="2372" height="1548" data-path="images/dashboard/policy-observe.png" />
  </Tab>

  <Tab title="CLI">
    Hooks für alle erkannten Harnesses installieren:

    ```bash theme={null}
    failproofai config \
      --connect https://app.befailproof.ai \
      --token <machine-key>
    failproofai policies --install
    ```

    Oder bestimmte Harnesses und einen Konfigurationsbereich angeben:

    ```bash theme={null}
    failproofai policies --install \
      --cli claude codex cursor \
      --scope user
    ```

    Der Project-Scope hält die Hook-Konfiguration bei einem Repository. Der User-Scope deckt die Arbeit über mehrere Repositories hinweg ab. Claude Code unterstützt zusätzlich den Local-Scope; die Unterstützung variiert je nach Harness, und die CLI lehnt nicht unterstützte Kombinationen ab.

    Maschine und ihre Ereignisse überprüfen:

    ```bash theme={null}
    failproofai config --status
    failproofai flush --wait
    fp events --since 1h --event-type hook_triggered,hook_completed
    ```
  </Tab>
</Tabs>

## Nicht-standardmäßigen Sitzungspfad hinzufügen

<Tabs>
  <Tab title="Dashboard">
    Zusätzliche Pfade werden auf der Maschine registriert, nicht in der Cloud. Öffnen Sie nach dem Hinzufügen eines Pfads **Observe → Sessions**, filtern Sie nach der Umgebung der Maschine und bestätigen Sie, dass Sitzungen aus dem neuen Pfad erscheinen. Öffnen Sie eine Sitzung und überprüfen Sie Agent, Harness und Ereignis-Zeitstempel, bevor Sie ihn für ein Audit verwenden.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/sessions-list.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=f1fb545746143e87b8b5daedabfc5559" alt="Die Sitzungsliste gefiltert nach der Umgebung, die Daten aus dem zusätzlichen Erfassungspfad empfängt." width="3200" height="2000" data-path="images/dashboard/sessions-list.png" />
  </Tab>

  <Tab title="CLI">
    Einen Pfad mit optionalem Label hinzufügen und die konfigurierten Pfade einsehen:

    ```bash theme={null}
    failproofai harness add-path claude checkout=/srv/checkout/.claude
    failproofai harness list claude
    failproofai backfill --since 7d --dry-run
    failproofai backfill --since 7d
    ```

    Einen Pfad mit `failproofai harness remove-path claude checkout` entfernen.
  </Tab>
</Tabs>

<Tip>
  Führen Sie nach der Installation eine neue Sitzung durch. Überprüfen Sie sowohl den Live-Ereignis-Stream als auch eine tatsächliche Richtlinienentscheidung, bevor Sie den Rollout ausweiten.
</Tip>
