Skip to main content
测试版功能。 审计功能以测试版形式发布,我们正在收集早期反馈。 在下一个稳定版本发布之前,检测器目录和报告格式可能会发生变化。 如有任何问题,请提交 issue。
审计功能现在以 /audit 仪表盘页面的形式呈现,而非 CLI 子命令。您可以通过仪表盘导航栏(位于 Policies 和 Projects 之间)访问,或在本地运行 failproofai 时直接访问 http://localhost:8020/audit
failproofai          # 打开仪表盘,然后点击"Audit"
仪表盘会扫描本机上过去的代理 CLI 转录记录(Claude Code、Codex、Copilot、Cursor、OpenCode、Pi、Gemini),并报告代理执行了多少次 failproofai 旨在阻止的操作——包括环境变量检查、强制推送、冗余的 cd <cwd> 前缀、sleep 轮询循环、重复读取刚编辑的文件等。 对于每条转录记录,所有工具调用事件都会通过 39 个内置策略以及 8 个仅审计检测器进行回放,这些检测器可捕获运行时策略尚未覆盖的模式。计数按策略/检测器在所有会话中聚合。

您将获得什么

/audit 页面由六个部分组成:
  1. Identity——根据所有已审计转录记录中的加权信号,将您的代理归类为 8 种原型之一(optimistcowboyexplorergoldfishparanoid architectprecision builderhammerghost)。
  2. Strengths——从扫描中得出的真实数据(干净调用百分比、“0 次凭证泄露”等),以相关 sanitize 策略实际触发为前提。
  3. Score——0 到 100 分,分为 S/A/B/C/D/F 等级,以及启用所有推荐策略后的预计提升分数。
  4. Findings——每条策略的卡片,包含发生的情况、成本、捕获的证据,以及启用相应内置策略的精确命令 failproofai policy add <slug>
  5. Prescribed policies——聚合安装列表,提供一键执行的 failproofai policies --install 命令。
  6. Re-audit reminder——“更好地回来。“通过 api-server 设置 7 天邮件提醒(需要登录;参见 failproofai auth)。

仅审计检测器

这些检测器用于检测尚未在实时中执行的”低效行为”模式。它们仅在审计期间运行,永远不会阻止实时工具调用。
检测器计数内容
redundant-cd-cwdcd <cwd> && … 开头的 Bash 命令,尽管命令已在 cwd 中运行。
prefer-edit-over-read-cat对单个源文件执行 cat/head/tail/less/more——应使用 Read 工具。
prefer-edit-over-sed-awk使用 sed -i / awk … > file 进行原地编辑——应使用 Edit 工具。
prefer-write-over-heredoc使用 Heredoc / 多行 echo > file 写入文件——应使用 Write 工具。
sleep-polling-loop长时间 sleep N(≥ 30 秒)或 while …; sleep …; done 轮询循环。
find-from-rootfind /find /homefind /usr 等——应将范围限制在 cwd 内。
git-commit-no-verifygit commit … --no-verify / -n,跳过钩子。
reread-after-edit在同一会话中对刚刚执行过 Edit/Write 的文件执行 Read

缓存

  • 每条转录记录缓存位于 ~/.failproofai/cache/audit/<sha1>.json,以 (mtime, size, engineVersion, detectorVersion) 为键——当转录记录或策略/检测器代码发生变化时自动失效。每个条目还存储一个 cachedAt 时间戳作为 TTL 元数据(不属于缓存键的一部分);读取时超过 7 天的条目将被拒绝,以防止长期存在的结果超出检测器意图的演变范围。
  • 整体结果缓存位于 ~/.failproofai/audit-dashboard.json(模式 0600)。使仪表盘在导航时能够立即渲染,无需重新运行。同样,读取时超过 7 天 TTL 的结果将被拒绝——此时 /audit 将回退到空状态并提示进行新的运行。点击报告底部附近的 [ re-audit now ] 进行刷新——重新审计会发送 noCache: true,因此它会绕过每条转录记录的缓存并重新扫描所有转录记录,而不是返回缓存结果;运行过程通过顶部固定条带流式传输进度,成功后原位替换结果(无需重新加载页面;重新审计失败时保留之前的报告)。

注意事项

  • 无数据修改。 审计以只读模式回放。warn-repeated-tool-calls 被跳过,否则其每个会话的附属文件将被修改。
  • 工作流策略跳过。 require-*-before-stop 策略仅在 Stop 事件时触发,并通过 execSync 检查实时 git 状态——它们对于”2025 年会发生什么”没有有意义的解释,因此不会出现在审计计数中。
  • 自定义策略跳过。 用户提供的自定义钩子不会被回放(它们可能在原始会话之后已发生变化)。