Skip to main content
harness 是指你的 agent 实际运行所在的环境。Failproof AI 支持十二种,分为两类:
  • 编码 CLI(10 种)—— Claude Code、Codex、GitHub Copilot CLI、Cursor、OpenCode、Pi、Factory Droid、Devin CLI、Antigravity CLI、Goose
  • 聊天与助手网关(2 种)—— Hermes(Slack、Telegram、cron)、OpenClaw(自托管助手)
无论 agent 在哪个 harness 中运行,策略和会话历史记录均保持一致。一个适配器层会在策略执行之前,将每个 harness 的原生事件名称、工具名称和工具输入字段映射到 29 个标准事件上。 如果 agent 不在上述十二种 harness 中运行,则需直接通过 Python SDK 进行埋点。这是一种不同的契约,值得明确说明:SDK 提供追踪、会话、评估和审计功能,但本身不执行策略。 若要在不安全操作执行前将其拦截,需要在运行时的工具边界处设置执行钩子;请联系我们,我们将为你完成映射。 每个集成在策略运行之前都会对其原生钩子事件名称、工具名称和工具输入字段进行规范化处理。策略只能作用于 harness 暴露的事件;请在你实际部署的 harness 及其版本上测试轮末和指令行为。

执行能力

“拦截”表示当前适配器返回的裁决由指定 harness 消费。工具后拦截可能会替换展示给模型的结果,但无法撤销已发生的工具副作用。 能力与版本相关。升级 agent CLI 后请重新测试,尤其是当策略依赖提示、停止、权限或工具后行为而非通用的工具前门控时。

Hermes 原生插件

Hermes 通过 profile 本地原生插件而非 shell 命令集成。安装过程会将插件复制到每个默认和具名 Hermes profile 中,在该 profile 的 config.yaml 中启用它,并仅迁移遗留的 FailproofAI shell 钩子条目。这样可以避免每次钩子触发时产生进程开销,并让 instruct() 通过 Hermes 的原生阻塞工具结果传达给模型。 第一个匹配的指令会阻止待处理的调用。同一个 API 请求保持阻塞状态;后续模型迭代可能会重试。一个持久化的、profile 级别的账本和每轮次上限可防止建议性指令演变为无限循环。deny() 仍为硬性拦截。运行 failproofai config --status 可检测已禁用、不完整、重复或新增的未配置 profile。

安装捕获和策略钩子

  1. 打开 Administration → Keys,创建一个具有 events:add 和 policies:pull 权限的密钥,并以机器或环境命名。
  2. 在目标机器上,使用显示的密钥连接本地 CLI 并安装 harness 钩子。
  3. 启动一个新的 agent 会话,然后在 Observe → Events 下确认其钩子和会话事件。
  4. 打开同一时间窗口下的 Observe → policy,确认策略决策已归因于该机器。
连接从机器密钥开始。在复制其 secret 之前,请确认它同时包含数据采集和策略分发权限。用于授予事件采集和策略分发权限的新 API 密钥抽屉。安装钩子后,Events 流应显示来自你所连接机器和环境的新事件。用于确认新安装的 harness 正在上报数据的实时 Events 流。最后,验证策略决策是否归因于同一台机器。这可确认 harness 正在同时上报策略活动和追踪事件。用于验证新连接 harness 策略决策的 Policy 页面。

添加非默认会话路径

额外路径在机器上注册,而非在 Cloud 中注册。添加路径后,打开 Observe → Sessions,筛选到该机器的环境,并确认来自新路径的会话已出现。打开一个会话,在将其用于审计之前检查 agent、harness 和事件时间戳。Sessions 列表,已筛选到接收额外捕获路径数据的环境。
安装后运行一个新会话。在扩大推广范围之前,先验证实时事件流和实际的策略决策。