Skill 精选 可动手 重点 10月22日 周四 #agent-skills#coding#safety

Trail of Bits 开源补丁插件:修完 bug 还要证明没改坏别的

安全公司 Trail of Bits 10 月 21 日发布两个 Agent 插件:patching-bugs 负责复现已报告的 bug、开发并测试修复,并对每个补丁运行 regression-hunt;regression-hunt 检查一次改动是否破坏了原本正常、受支持的行为。两者都收录在其 skills 插件市场仓库中。

patching-bugs 用三臂证明验收补丁,再做回归排查
  1. 1Reproduce在原代码上复现 bug,应失败
  2. 2Patch打补丁后同一检查应通过
  3. 3Revert撤回补丁后应再次失败
  4. 4regression-hunt检查补丁是否破坏原有行为
固定结构的步骤输出后一步核验前一步,而非信任其总结

流程据 Trail of Bits 博客描述整理

插件 patching-bugs / regression-hunt CC-BY-SA-4.0 仓库 →
适用:Claude CodeCodex

能做什么

  • 复现已报告的 bug,开发修复并测试
  • 对补丁做回归分析,追踪改动影响到的真实接口
  • 在运行中的部署上复现候选回归,并用全新上下文的 Agent 重放证明
  • 由裁决步骤按回归标准排除误报、不完整修复和原有 bug

好在哪里

  • 三臂证明让「修好了」有可复现的证据,而不是 Agent 的自述
  • 举证责任在 Agent:没有可运行的 PoC 就不下结论
  • 公开了误报率对比及其 95% 置信区间(14% 到 38%),也承认部分已知回归仍无法确认

安装 / 启用

/plugin marketplace add trailofbits/skills
/plugin menu

codex plugin marketplace add trailofbits/skills
codex plugin list
codex plugin add <plugin-name>@trailofbits

要点

  • patching-bugs 采用「三臂证明」:原代码复现失败、打补丁后通过、撤回补丁后再次失败
  • 每一步按固定结构输入输出,后续步骤可以核验前一步的工作,而不是只看它的总结;拿不出可运行 PoC 的结论记为「无法判定」
  • Trail of Bits 复查自己 130 多个已合并 PR,确认了 21 个回归;regression-hunt 的误报比基线 Codex 提示少 25%
  • 可放置 THREAT_MODEL.md、PATCHING_GUIDELINES.md 或 AGENTS.md 定制;注意 regression-hunt 会在运行中的部署上复现回归,宜指向测试环境
为什么值得关注

适合让编码 Agent 修 bug、又担心它顺手改坏其他功能的维护者;即使不装插件,「三臂证明」本身也是验收 AI 补丁的好标准。

配套实验

已验证 检查 3/3 通过 GitHub Actions 实际运行 · Python 3.12.15 · 耗时 不到 0.1s
用三臂证明和回归检查验收 AI 补丁

受 Trail of Bits patching-bugs / regression-hunt 插件启发,用一个金额解析函数演示:两个候选补丁都能修好报告的 bug 并通过三臂证明(原代码失败、补丁通过、撤回后失败),但只有加上既有行为的回归检查,才能拦下顺手破坏负数解析的那个补丁。

结论只看 bug 是否修好会接受补丁 A;加上回归检查后只接受补丁 B

…

== 补丁 B ==
  原代码: 复现检查失败(期望失败)✓
  打补丁: 复现检查通过(期望通过)✓
  撤回补丁: 复现检查失败(期望失败)✓
  三臂证明:成立
  回归:0 个
  结论:可接受

[PASS] 两个补丁都通过三臂证明
[PASS] 补丁 A 被回归检查拦下(负数解析被破坏)
[PASS] 补丁 B 没有回归

RESULT: 只看 bug 是否修好会接受补丁 A;加上回归检查后只接受补丁 B
python main.py 查看代码与内网复现步骤 →

来源

Esc
↑ ↓ 选择Enter 打开

分享图

1080 × 1350,适合发到群聊或朋友圈
分享图预览

键盘快捷键

j / k
下一条 / 上一条
o
展开或收起当前条目
Enter
打开当前条目详情
c
复制当前条目链接
s
收藏 / 取消收藏当前条目
/ 或 ⌘K
搜索
1 2 3
切换密度:标题 / 摘要 / 完整
t
切换主题
?
显示本帮助