人工智能撰写了拉取请求。你如何确认它确实有效?

发布日期:2026-06-03 10:00:27   浏览量 :4
发布日期:2026-06-03 10:00:27  
4

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

人工智能代理现在会发起大量拉取请求。大多数都没问题。但有些会暗中作弊,让检查状态变绿:它们删除失败的测试、削弱断言条件、将出错的调用包裹在空的 catch 块中以便让错误消失。差异对比看起来已完成。每天快速浏览四十个代理生成的拉取请求的审查员,靠肉眼是发现不了这些问题的。

swarm audit 正是一款能发现此类问题的命令行工具。我负责维护它。它对人工智能编写的代码执行三项任务,全部离线运行,无需应用程序接口密钥。

1. 识破作弊行为

十一项检查会读取拉取请求的差异对比,并标记出捷径模式:删除了测试却没有相应的代码变更、函数被重命名而调用者仍使用旧名称、错误被空的 catch 块吞没、模拟了一个在任何清单文件中都不存在的包、在变更的行上丢弃了类型检查器的抑制标记,等等。

检测效果是经过量化衡量的,而非仅仅声称。在三百个真实合并的拉取请求中各隐藏一个已知的作弊手段,运行审计器,统计检出数量:二百五十四次,约占百分之八十五,只需一条命令即可复现。

最重要的检出发生在真实代码上。在两个已合并的 Cloudflare 拉取请求中,它标记出了一个重命名操作,该操作导致两个调用者指向了一个失效的函数,以及一个将所有错误都丢弃的空 catch {} 块。Semgrep(二百一十条规则)和 ESLint 的安全规则均未标记这些问题,因为它们旨在搜寻诸如注入或密钥泄露之类的危险代码,而删除测试不属于危险代码,而是缺失代码。审计器还会指明编写该拉取请求的代理:在一次实时获取中,它将作者标记为 Devin。发现的问题仅作为建议提供,因此它只会报告问题,除非你明确要求,否则不会阻止你的合并操作。

2. 证明变更符合规范

第二种模式在变更被接受之前运行。你提供一个明确的目标。它将该目标编译为一组机器可验证的义务契约:构建通过、测试通过、覆盖率保持、指定函数具有正确的签名、属性成立、性能不退化。系统会生成候选补丁,只有满足所有义务的补丁才会被接纳。对抗性证伪器会在补丁生效前积极尝试将其破坏。

在一个新项目中,它将一个目标编译为两项义务,验证了这两项义务,确认合并后没有任何退化,并且在此过程中消耗的令牌数为零。开启门禁模式后,它就成为一项强制合并规则:任何删除测试的差异对比都将导致非零退出码,且永远无法合并。

3. 为满足合规要求提供文档

如果你根据欧盟《人工智能法案》或美国网络安全和基础设施安全局的人工智能软件物料清单指南发布或采购人工智能编写的代码,有人就会要求提供人工智能参与情况的记录。该工具会生成一份这样的记录:一份符合其规范的 CycloneDX 1.6 机器学习软件物料清单和一份 SPDX 3.0 人工智能配置文件,外加一个哈希链式证据账本,其中任何条目的篡改都会破坏链条。它随附了与欧盟《人工智能法案》附录四以及美国网络安全和基础设施安全局最低要素要求的映射关系。

试用

git clone https://github.com/moonrunnerkc/swarm-orchestrator
cd swarm-orchestrator && npm install && npm run build

npm run benchmarks:oracle   # 约85%的检出率
node dist/src/cli.js audit --diff-file benchmarks/real-prs/diffs/cloudflare-workers-sdk/14132.diff --detectors all
swarm init && swarm run --goal "验证此项目能否构建并通过测试"

开源仓库:https://github.com/moonrunnerkc/swarm-orchestrator

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 订阅 数据
回到顶部