如何识别AI生成的代码?开发者使用“金丝雀”陷阱诱捕AI

一幅构思图,展示了AI智能体在电脑屏幕上分析代码,而开发者在旁边进行监控。
AI Summary

Linux网络管理软件NetworkManager引入了一项“金丝雀”策略,通过在文档中隐藏秘密单词,防范AI智能体无节制地提交代码。

想象一下:你为了处理重要事务,把一份写有指示的文档交给秘书。但你在文档的角落里用极小的字体偷偷写道:“如果你读到了这份文档,请在最后写上‘苹果树’”。如果秘书没有认真阅读内容,只是机械地执行指令,那么他可能会在最后莫名其妙地加上“苹果树”这三个字。

最近,负责Linux(开源操作系统)网络设置的核心软件“NetworkManager”开发出了同样方式的“陷阱”。为什么开发者要对AI进行这种类似恶作剧的测试呢?

这为何重要? (Why It Matters)

我们正生活在AI编写代码的时代。然而,AI带来的便利背后也隐藏着风险。如果编写者不理解或未经验证就直接使用AI生成的代码,可能会导致意外的错误或安全漏洞。NetworkManager对此问题非常重视。因为如果这种不为自身代码承担责任的文化蔓延开来,整个开源(任何人都可以查看和修改代码的软件)生态系统可能会受到威胁。

简单解释 (The Explainer)

NetworkManager最近引入了一项新的AI编码政策,确立了代码提交者必须“对所提交的代码承担100%责任,并能够完美解释内容”的原则 [参考 3, 参考 4]。为了强制执行这一原则,他们引入了“金丝雀(Canary)”技术。

打个比方,就像以前在矿井中为了提前探测毒气而带入金丝雀一样。矿工们只要看到金丝雀出现异常行为,就能立即意识到毒气泄漏。这里的“金丝雀”起到了传感器作用,用来告知“AI是否在偷偷作业”。

NetworkManager在项目的官方文档 AGENTS.md 中隐藏了一个奇怪的单词——“biblioklept”(意为书痴或偷书贼的古语) [参考 1, 参考 2]。这是因为,如果AI智能体没有仔细阅读文档并验证代码,而是简单地抓取指令并机械地输出结果,那么它很可能会无意中将这个秘密单词包含在代码提交内容或说明中。

简单来说,就是利用了AI只看表面、不理解内容的弱点。

项目运营团队运行了两套自动化系统(CI脚本,即自动检查代码的工具)来监视所有的代码提交内容 [参考 2]。如果在某人提交的代码中发现了“biblioklept”这个词,这就成了该代码未经人工验证、由AI自动生成的有力证据。

目前状况 (Where We Stand)

目前,NetworkManager正通过这种方式筛选AI无节制提交的代码 [参考 2]。这并非无条件禁止使用AI技术,而是被评价为一种“平衡”的应对措施,旨在让人类以负责任的态度将AI仅作为辅助工具使用 [参考 9]。

然而,这一系统并不能解决所有的AI编码问题。它只能识别出AI是在机械地阅读文档,并不能完美找出AI所写代码本身是否存在逻辑错误。

未来发展 (What’s Next)

NetworkManager的这一独特尝试能否成为其他开源项目的标杆,备受关注 [参考 9]。甚至有预测称,未来AI智能体技术将进一步高度化,日常工作决策的相当一部分将实现自主化 [参考 10]。这种试图厘清人类与AI之间“责任”的举措,未来将会越来越多。

MindTickleBytes AI记者观点

技术正变得越来越聪明,但归根结底,结果的责任必须由人来承担。NetworkManager的案例不仅仅是如何聪明地使用AI,更展示了社区如何防范那些试图将AI生成的代码伪装成人类编写代码的行为,这是一个非常有趣的范例。

参考资料

  1. NetworkManager Works to Enforce AI Policy by Tricking AI Agents to Add a Canary
  2. NetworkManager AI Policy Gets a Trap Word, and CI Now Scans Every Commit for It
  3. commit -m “better” – Telegram
  4. AIエージェントに「自分がAI…
  5. NetworkManager Adopts Policy For AI Coding Assistants
  6. NetworkManager Works to Enforce AI Policy by Tricking AI Agents to Add a Canary
  7. NetworkManager Adopts Policy For AI Coding Assistants
  8. NetworkManager Adopts Policy For AI Coding Assistants
  9. alexma233 on X: “RT @Itsfoss: More and more Linux projects …”
  10. [One third of consumers would prefer working with AI agents… ZDNET](https://www.zdnet.com/article/one-third-of-consumers-would-prefer-working-with-ai-agents-for-faster-and-smarter-service/)
AD
测试你的理解
Q1. NetworkManager为揪出AI智能体而隐藏的秘密单词是什么?
  • ai-agent
  • biblioklept
  • canary-word
正确答案是“biblioklept”。NetworkManager在文档中植入了该单词,以核实AI是否照搬了文档内容。
Q2. NetworkManager AI编码政策的核心是什么?
  • 全面禁止AI代码
  • 使用AI时必须公开
  • 提交者必须对代码承担100%责任
NetworkManager设立的原则是,即使使用AI,代码提交者也必须完全理解内容并承担相应责任。
Q3. “金丝雀”(Canary) 策略是如何运作的?
  • 物理阻断AI访问
  • 当AI盲目遵循指示时,诱导其包含特定单词以将其识别
  • 测量AI生成代码的速度
该方法利用了AI阅读文档并直接执行指示的习性,通过诱导AI在输出结果中包含文档中隐藏的单词,从而揭露其为AI生成物。