研究想法

代理自主性检查点

日 · 2026-06-11 · Software Intelligence

编码代理团队现在有了几个可以加控制的具体位置:仓库说明的可执行检查、代理拉取请求进入审查前的拒绝门,以及用于 CAD 工作的沙箱化程序动作通道。共同压力来自审查浪费和不安全的自主性,尤其是在代理可以修改仓库、发起拉取请求或操作专业 Windows 软件的工作流里。

3 个想法

仓库代理说明的运行时验证器挂钩

使用编码代理的团队应该把仓库里反复出现的说明改成可执行的、在任务完成前运行的检查。一个实用做法是为每条规则保留三个字段:适用条件、要求的行为、以及代理如何证明自己已经通过。这个挂钩可以在代理宣布任务完成前运行,检查测试命令、禁止修改的文件、临时文件清理、迁移规则,或必须留下的审查说明。

Trace 给出了最清楚的做法:它提取用户更正,把它们改写成原子规则,并在验证器通过前阻止完成。ClawArena 中偏好违规率从分布内的 100.0% 降到 37.6%,分布外降到 2.0%,这个结果对已经把代理说明写成 Markdown 的团队很有参考价值。仓库级研究也提醒了质量问题:说明文件在 148 个项目中的效果不一致,而合并率大幅提升的项目往往有更长、结构更清楚的文件,合并率大幅下降的项目则没有这种特征。一个成本不高的试点是挑出审查者最常重复的五条说明,为每条加一个验证器,连续两周比较代理拉取请求的违规率和审查评论数。

代理 bug 修复拉取请求的审查前拒绝门

接受代理生成 bug 修复的仓库,需要在人工审查前加一道门。这个门应该检查问题是否仍然有效、是否有其他拉取请求已经替代了这个修复、CI 是否通过,以及代理是否说明了所选修复方案和它改动的文件与测试。没有通过门槛的拉取请求,可以在维护者花时间审查前带着明确的拒绝原因返回给代理。

AIDev 的拒绝研究说明了为什么这道门要放在审查前:Copilot、Devin、Cursor 和 Claude 生成的 bug 修复拉取请求中,有 46.41% 被拒绝。最常见的可见原因包括不再活跃、被替代的修复、实现错误、方案不对,以及 CI 失败。仓库可以先用一个 GitHub Action 给可能的拒绝原因打标签,在 CI 和问题状态检查通过前阻止分配审查请求,并要求代理按一个简短分类表修改。成功指标很直接:以后会被关闭且未合并的拉取请求,审查评论更少,同时不要让已合并的修复出现更多误拦截。

CAD 代理任务的沙箱化 COM 脚本

CAD 团队可以在受限的 SolidWorks 或 AutoCAD 任务上测试代理,让代理在一次性 Windows 环境里生成 Python COM 脚本。最有价值的起点是重复性的几何设置、图纸清理、导出,以及跨应用的文件准备,因为 GUI 代理在这些场景里经常在多次点击后丢失状态。脚本应在受限账户下运行,配合 COM 对象和方法的允许列表、执行后的产物比对,以及工程师可以查看的日志。

ComAct 报告说,COM 控制让代理可以语义化地访问专业 Windows 软件,避免一长串脆弱的 GUI 操作。它的 ComCADBench 覆盖了 SolidWorks、Inventor 和 AutoCAD 上的 1,000 个任务,在很多设置里,基于 GUI 的代理几乎没有成功,而基于 COM 的执行高得多。安全边界同样重要,因为同一套代理栈往往依赖网关和工具代理。Obsidian Security 的 LiteLLM 报告展示了一条 CVSS 9.9 的链路,低权限用户可以进入管理员路由并在网关服务器上执行代码;团队应把 LiteLLM 升级到 v1.83.14-stable 或更高版本,把 CAD 自动化凭据分开保存,并阻止模型网关直接接触桌面或文件系统。