> ## 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.

# Harness degli agenti

> Cattura sessioni e applica politiche nei CLI degli agenti supportati.

Failproof AI supporta Claude Code, Codex, GitHub Copilot CLI, Cursor, OpenCode, Pi, Hermes, OpenClaw, Factory Droid, Devin CLI, Antigravity CLI e Goose.

| Harness                                          | Ambiti di hook supportati |
| ------------------------------------------------ | ------------------------- |
| 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                      |

Ogni integrazione normalizza i nomi degli eventi hook nativi, i nomi degli strumenti e i campi degli input dello strumento prima dell'esecuzione delle politiche. Una politica può agire solo su eventi esposti dall'harness; verifica il comportamento end-of-turn e le istruzioni sull'harness e la versione esatti che distribuisci.

## Capacità di applicazione

"Block" significa che il verdetto restituito dall'adattatore corrente viene utilizzato dall'harness nominato. Il blocco post-tool può sostituire il risultato mostrato al modello, ma non può annullare un effetto collaterale dello strumento che è già avvenuto.

| Harness            | Eventi di blocco verificati                                                                                                 | Caveat osservativi o non bloccanti                                                                                                                                      |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Claude Code        | `PreToolUse`, `UserPromptSubmit`, `PermissionRequest`, `Stop`, `SubagentStop`, `PreCompact` e diversi eventi di task/config | `PostToolUse`, ciclo di vita della sessione, notifiche ed eventi post-errore sono osservativi.                                                                          |
| Codex              | `PreToolUse`, `PermissionRequest`, `UserPromptSubmit`, `Stop`, `SubagentStop`, `PostToolUse`                                | Il blocco post-tool sostituisce il risultato dopo l'esecuzione; gli eventi di inizio sessione e compattamento sono osservativi nell'adattatore corrente.                |
| GitHub Copilot CLI | `PreToolUse`, `UserPromptSubmit`, `PermissionRequest`, `Stop`, `SubagentStop`, `PostToolUse`                                | Il blocco post-tool sostituisce il risultato dopo l'esecuzione; gli eventi di sessione e notifica sono osservativi.                                                     |
| Cursor             | `PreToolUse`, `UserPromptSubmit`, `Stop`                                                                                    | `PostToolUse` e gli eventi di sessione sono osservativi.                                                                                                                |
| OpenCode           | `PreToolUse`                                                                                                                | Gli eventi post-tool e di ciclo di vita sono osservativi; la gestione dello stop corrente è una guida per un turno successivo piuttosto che un gate verificato.         |
| Pi                 | `PreToolUse`, `UserPromptSubmit`                                                                                            | Gli eventi post-tool e di ciclo di vita sono osservativi; la guida di stop si applica a un turno successivo.                                                            |
| Hermes             | `PreToolUse`                                                                                                                | I verdetti post-tool, sessione e subagent-stop non sono gate.                                                                                                           |
| OpenClaw           | `PreToolUse`, `UserPromptSubmit`, `Stop`                                                                                    | Gli eventi post-tool, sessione, subagent-stop e compattamento sono osservativi.                                                                                         |
| Factory Droid      | `PreToolUse`, `UserPromptSubmit`, `Stop`, `PreCompact`                                                                      | I verdetti post-tool e subagent-stop sono osservativi.                                                                                                                  |
| Devin CLI          | `PreToolUse`, `UserPromptSubmit`, `Stop`, `PermissionRequest` condizionale                                                  | Gli hook di permesso non vengono eseguiti in ogni modalità di permesso; gli eventi post-tool e di sessione sono osservativi.                                            |
| Antigravity CLI    | `PreToolUse`, `Stop`                                                                                                        | I verdetti di user-prompt e post-tool sono osservativi; le istruzioni di prompt possono comunque essere iniettate.                                                      |
| Goose              | `PreToolUse`                                                                                                                | Gli eventi di user-prompt, post-tool e di sessione sono osservativi. Esiste un hook di stop bloccante nativo a monte, ma non viene installato dall'adattatore corrente. |

Le capacità sono sensibili alla versione. Ripeti i test dopo l'aggiornamento di un CLI dell'agente, soprattutto quando una politica si basa sul comportamento di prompt, stop, permesso o post-tool piuttosto che sul gate pre-tool comune.

## Installa hook di cattura e politica

<Tabs>
  <Tab title="Dashboard">
    1. Apri **Administration → Keys** e crea una chiave con `events:add` e `policies:pull`, denominata per la macchina o l'ambiente.
    2. Sulla macchina di destinazione, connetti il CLI locale con la chiave visualizzata e installa gli hook dell'harness.
    3. Avvia una nuova sessione dell'agente, quindi conferma i suoi eventi di hook e sessione in **Observe → Events**.
    4. Apri **Observe → policy** per la stessa finestra temporale e conferma che una decisione di politica è attribuita alla macchina.

    La connessione inizia con una chiave di macchina. Conferma che include sia i permessi di acquisizione che di consegna delle politiche prima di copiare il suo segreto.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/key-create.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=a428bdae79f837471acb66414ff6455b" alt="Il nuovo drawer della chiave API utilizzato per concedere i permessi di acquisizione degli eventi e consegna delle politiche." width="2940" height="1604" data-path="images/dashboard/key-create.png" />

    Dopo aver installato gli hook, il flusso Events dovrebbe mostrare nuovi eventi dalla macchina e dall'ambiente che hai connesso.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/events-stream.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=2cbda31a05ade12cbf015f6800ba34e1" alt="Il flusso Events in diretta utilizzato per confermare che un harness appena installato sta segnalando." width="3200" height="2000" data-path="images/dashboard/events-stream.png" />

    Infine, verifica che le decisioni di politica siano attribuite alla stessa macchina. Questo conferma che l'harness sta segnalando l'attività di politica così come gli eventi di traccia.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/policy-observe.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=13535ad27c8bddac6589f9d1560916cb" alt="La pagina Policy utilizzata per verificare le decisioni di politica da un harness appena connesso." width="2372" height="1548" data-path="images/dashboard/policy-observe.png" />
  </Tab>

  <Tab title="CLI">
    Installa gli hook per ogni harness rilevato:

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

    Oppure prendi come target harness nominati e un ambito di configurazione:

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

    L'ambito del progetto mantiene la configurazione dell'hook con un repository. L'ambito utente copre il lavoro su più repository. Claude Code supporta anche l'ambito locale; il supporto varia in base all'harness e il CLI rifiuta le combinazioni non supportate.

    Verifica la macchina e i suoi eventi:

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

## Aggiungi un percorso di sessione non predefinito

<Tabs>
  <Tab title="Dashboard">
    I percorsi aggiuntivi sono registrati sulla macchina, non nel Cloud. Dopo aver aggiunto uno, apri **Observe → Sessions**, filtra per l'ambiente della macchina e conferma che le sessioni dal nuovo percorso vengono visualizzate. Apri una sessione e controlla l'agente, l'harness e i timestamp degli eventi prima di affidarti a essa in un audit.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/sessions-list.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=f1fb545746143e87b8b5daedabfc5559" alt="L'elenco Sessions filtrato per l'ambiente che riceve dati dal percorso di cattura aggiuntivo." width="3200" height="2000" data-path="images/dashboard/sessions-list.png" />
  </Tab>

  <Tab title="CLI">
    Aggiungi un percorso con un'etichetta opzionale, quindi ispeziona i percorsi configurati:

    ```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
    ```

    Rimuovi un percorso con `failproofai harness remove-path claude checkout`.
  </Tab>
</Tabs>

<Tip>
  Esegui una nuova sessione dopo l'installazione. Verifica sia il flusso di eventi in diretta che una decisione di politica effettiva prima di espandere il rollout.
</Tip>
