Skip to main content
测试版功能。 审计功能作为测试版发布,目的是收集早期反馈。 探测器目录和报告格式可能在下一个稳定版本发布前有所变化。 如发现任何异常,请提交 issue。
审计功能将过去的代理 CLI 记录重新通过 failproofai 的策略引擎进行回放,并在 /audit 仪表板页面上生成一份可共享的可视化报告——包括代理的原型分类、0 至 100 的评分,以及哪些策略能够捕获哪些问题的详细说明。

运行方式

有三种入口——均指向同一份 /audit 报告。

无需安装

npx -y failproofai audit 会自动获取 failproofai、执行扫描,并为你打开仪表板——无需提前安装任何内容。

通过 CLI 运行

failproofai audit 在终端中执行扫描,完成后自动打开 localhost:8020/audit

通过仪表板运行

运行 failproofai 后点击导航栏中的 Audit(位于 Policies 和 Projects 之间),或直接访问 /audit
运行 failproofai audit -h(或 --help)可查看用法说明。审计完全离线运行——无需账户或网络——仪表板会持续提供服务,直到你按下 Ctrl+C 停止。
仪表板会扫描本机上过去的代理 CLI 记录(Claude Code、Codex、Copilot、Cursor、OpenCode、Pi、Gemini),并报告代理执行 failproofai 旨在阻止的操作的频率——包括环境变量检查、强制推送、冗余的 cd <cwd> 前缀、轮询睡眠循环、重复读取刚编辑过的文件等。 针对每条记录,所有工具使用事件都会通过 39 个内置策略以及 8 个仅用于审计的探测器进行重放,后者可捕获运行时策略尚未覆盖的模式。计数会按策略/探测器维度跨所有会话进行聚合。

报告内容

/audit 页面是一个单屏可共享的海报,下方附有四个区块:
  1. 海报 — 代理身份一览:其原型(共 8 种:optimistcowboyexplorergoldfishparanoid architectprecision builderhammerghost)、角色关键词、该原型的稀有程度,以及带有等级区间(Sbottom tier)的 0–100 评分。专为分享设计——可发布到 X 或 LinkedIn,或下载为 PNG。
  2. // strengths — 代理已做得很好的方面,以扫描得出的真实数据呈现(如 clean-tool-call 百分比、0 次推送主干尝试),仅在相关策略记录清白时显示。
  3. // quirks — 漏网之鱼:一份按优先级排序的行为表格,列出 failproofai 本可捕获的行为——最后发生时间漏过的内容(以及应对的内置策略)、严重程度,以及出现频率(new / recurring / N× seen)。
  4. // how to improve — 建议修复清单:每条策略对应一行可直接复制粘贴的 failproofai policy add <slug> 命令,另有一个全部安装按钮,可一次性启用所有建议,并显示执行后的预计评分
  5. // come back better — 养成习惯:设置重新审计的邮件提醒3d / 7d / 14d / 30d)或立即重新审计,并邀请朋友进行他们自己的审计(由 failproof.ai 发送,抄送给你)。提醒和邀请功能需要登录——请参阅 failproofai auth

仅用于审计的探测器

这些探测器用于检测尚未(在运行时)强制执行的”低效行为”模式。它们仅在审计期间运行,不会阻止实时工具调用。

缓存机制

  • 按记录缓存,路径为 ~/.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 年的历史会话中会发生什么”没有实质性的解读意义,因此不会出现在审计计数中。
  • 自定义策略被跳过。 用户提供的自定义 hooks 不会被重放(它们可能在原始会话之后已发生变化)。