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

# Harnessess de agentes

> Capture sessões e aplique políticas em CLIs de agentes suportados.

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

| Harness                                          | Escopos de hook suportados |
| ------------------------------------------------ | -------------------------- |
| Claude Code                                      | Usuário, projeto, local    |
| Codex, GitHub Copilot CLI, Cursor, OpenCode, Pi  | Usuário, projeto           |
| Factory Droid, Devin CLI, Antigravity CLI, Goose | Usuário, projeto           |
| Hermes, OpenClaw                                 | Usuário                    |

Cada integração normaliza os nomes de eventos de hook nativos, nomes de ferramentas e campos de entrada de ferramentas antes que as políticas sejam executadas. Uma política só pode agir sobre eventos que o harness expõe; teste o comportamento de fim de turno e de instrução no harness e na versão exatos que você irá implantar.

## Capacidade de aplicação

"Bloquear" significa que o veredicto retornado pelo adaptador atual é consumido pelo harness indicado. O bloqueio pós-ferramenta pode substituir o resultado exibido ao modelo, mas não pode desfazer um efeito colateral de ferramenta que já ocorreu.

| Harness            | Eventos de bloqueio verificados                                                                                                     | Ressalvas de apenas-observação ou não-bloqueio                                                                                                                               |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Claude Code        | `PreToolUse`, `UserPromptSubmit`, `PermissionRequest`, `Stop`, `SubagentStop`, `PreCompact` e vários eventos de tarefa/configuração | `PostToolUse`, ciclo de vida da sessão, notificações e eventos pós-falha são observacionais.                                                                                 |
| Codex              | `PreToolUse`, `PermissionRequest`, `UserPromptSubmit`, `Stop`, `SubagentStop`, `PostToolUse`                                        | O bloqueio pós-ferramenta substitui o resultado após a execução; eventos de início de sessão e compactação são observacionais no adaptador atual.                            |
| GitHub Copilot CLI | `PreToolUse`, `UserPromptSubmit`, `PermissionRequest`, `Stop`, `SubagentStop`, `PostToolUse`                                        | O bloqueio pós-ferramenta substitui o resultado após a execução; eventos de sessão e notificação são observacionais.                                                         |
| Cursor             | `PreToolUse`, `UserPromptSubmit`, `Stop`                                                                                            | `PostToolUse` e eventos de sessão são observacionais.                                                                                                                        |
| OpenCode           | `PreToolUse`                                                                                                                        | Eventos pós-ferramenta e de ciclo de vida são observacionais; o tratamento de parada atual é uma orientação para um turno posterior, não um bloqueio verificado.             |
| Pi                 | `PreToolUse`, `UserPromptSubmit`                                                                                                    | Eventos pós-ferramenta e de ciclo de vida são observacionais; a orientação de parada se aplica a um turno posterior.                                                         |
| Hermes             | `PreToolUse`                                                                                                                        | Veredictos pós-ferramenta, de sessão e de parada de subagente não são bloqueios.                                                                                             |
| OpenClaw           | `PreToolUse`, `UserPromptSubmit`, `Stop`                                                                                            | Eventos pós-ferramenta, de sessão, de parada de subagente e de compactação são observacionais.                                                                               |
| Factory Droid      | `PreToolUse`, `UserPromptSubmit`, `Stop`, `PreCompact`                                                                              | Veredictos pós-ferramenta e de parada de subagente são observacionais.                                                                                                       |
| Devin CLI          | `PreToolUse`, `UserPromptSubmit`, `Stop`, `PermissionRequest` condicional                                                           | Os hooks de permissão não são executados em todos os modos de permissão; eventos pós-ferramenta e de sessão são observacionais.                                              |
| Antigravity CLI    | `PreToolUse`, `Stop`                                                                                                                | Veredictos de prompt do usuário e pós-ferramenta são observacionais; instruções de prompt ainda podem ser injetadas.                                                         |
| Goose              | `PreToolUse`                                                                                                                        | Eventos de prompt do usuário, pós-ferramenta e de sessão são observacionais. Um hook de parada de bloqueio nativo existe upstream, mas não é instalado pelo adaptador atual. |

As capacidades são sensíveis à versão. Refaça os testes após atualizar um CLI de agente, especialmente quando uma política depende de comportamento de prompt, parada, permissão ou pós-ferramenta em vez do bloqueio pré-ferramenta comum.

## Instalar hooks de captura e política

<Tabs>
  <Tab title="Dashboard">
    1. Abra **Administração → Chaves** e crie uma chave com `events:add` e `policies:pull`, nomeada para a máquina ou ambiente.
    2. Na máquina de destino, conecte a CLI local com a chave exibida e instale os hooks do harness.
    3. Inicie uma nova sessão de agente e confirme seus eventos de hook e sessão em **Observe → Events**.
    4. Abra **Observe → policy** para a mesma janela de tempo e confirme que uma decisão de política está atribuída à máquina.

    A conexão começa com uma chave de máquina. Confirme que ela inclui permissões de ingestão e entrega de políticas antes de copiar o segredo.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/key-create.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=a428bdae79f837471acb66414ff6455b" alt="O drawer de nova chave de API usado para conceder permissões de ingestão de eventos e entrega de políticas." width="2940" height="1604" data-path="images/dashboard/key-create.png" />

    Após instalar os hooks, o stream de Events deve exibir novos eventos da máquina e do ambiente conectados.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/events-stream.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=2cbda31a05ade12cbf015f6800ba34e1" alt="O stream de Events ao vivo usado para confirmar que um harness recém-instalado está reportando." width="3200" height="2000" data-path="images/dashboard/events-stream.png" />

    Por fim, verifique se as decisões de política estão atribuídas à mesma máquina. Isso confirma que o harness está reportando atividade de política, além dos eventos de rastreamento.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/policy-observe.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=13535ad27c8bddac6589f9d1560916cb" alt="A página Policy usada para verificar decisões de política de um harness recém-conectado." width="2372" height="1548" data-path="images/dashboard/policy-observe.png" />
  </Tab>

  <Tab title="CLI">
    Instale hooks para todos os harnesses detectados:

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

    Ou direcione harnesses específicos e um escopo de configuração:

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

    O escopo de projeto mantém a configuração de hooks junto ao repositório. O escopo de usuário cobre o trabalho em múltiplos repositórios. Claude Code também suporta escopo local; o suporte varia por harness e a CLI rejeita combinações não suportadas.

    Verifique a máquina e seus eventos:

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

## Adicionar um caminho de sessão não padrão

<Tabs>
  <Tab title="Dashboard">
    Caminhos extras são registrados na máquina, não na nuvem. Após adicionar um, abra **Observe → Sessions**, filtre pelo ambiente da máquina e confirme que as sessões do novo caminho aparecem. Abra uma sessão e verifique o agente, o harness e os timestamps de eventos antes de utilizá-la em uma auditoria.

    <img src="https://mintcdn.com/exosphere/WgPwQzedeDNwJBTy/images/dashboard/sessions-list.png?fit=max&auto=format&n=WgPwQzedeDNwJBTy&q=85&s=f1fb545746143e87b8b5daedabfc5559" alt="A lista de Sessions filtrada para o ambiente que recebe dados do caminho de captura adicional." width="3200" height="2000" data-path="images/dashboard/sessions-list.png" />
  </Tab>

  <Tab title="CLI">
    Adicione um caminho com um rótulo opcional e inspecione os caminhos configurados:

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

    Remova um caminho com `failproofai harness remove-path claude checkout`.
  </Tab>
</Tabs>

<Tip>
  Execute uma nova sessão após a instalação. Verifique tanto o stream de eventos ao vivo quanto uma decisão de política real antes de expandir o rollout.
</Tip>
