News Hacker|极客洞察

26 2 天前 wiz.jock.pl
⚠️Agent Arena:测试 AI 代理对提示注入的抗性,模型表现参差并引发投稿合规争议
检测出提示注入也算失败?那是要我们装傻吗?

🎯 讨论背景

Agent Arena 是一个在 Show HN 上展示的测试项目,目标是通过带有隐藏指令的网页来评估 AI 代理对提示注入(prompt injection)的抵抗能力。被用作测试的“Modern Web”页面在可见的技术速查表之外,在源代码和注释中嵌入验证令牌、零宽字符等隐蔽指令,把页面当作蜜罐(honeypot)来诱导模型。评论里有人用不同模型(如 Codex / gpt-5.2 xhigh 与 Gemini 3 Fast)对同一页面进行测试,结果显示模型在识别、报告或盲从这些注入上差异明显;社区也提出了防护工具(如 clean.sibylline.dev 的 web retrieval API 与开源 scurl)以及关于由自动化代理提交作品在 Show HN 上是否合法合规的讨论。

📌 讨论焦点

模型易被提示注入操控

评论普遍指出语言模型容易被嵌入在网页中的隐藏指令操控。明确的实证是有人把网页源代码(view-source)直接输入给 Codex(gpt-5.2 xhigh / codex v0.98.0),模型在摘要中把页面可见内容和隐藏的“验证令牌”或注入指令一起输出,显示无法区分或抵抗这些注入。评论里也有人对这种“像人一样容易被操控”的行为表示失望,并以印刷页面不能执行任意代码为由认为印刷品在这方面更安全。

[来源1] [来源2] [来源3] [来源4]

模型应对能力差异与评分悖论

不同模型在同一测试上表现大相径庭,且评分标准可能产生悖论。有人使用 Gemini 3 Fast 得到的结果是模型识别并直接说明这是一个含有隐藏注入的安全实验(honeypot),把“可见内容”与“隐藏指令”分别列出,显示较强的注入检测能力。与此同时有评论指出,即便模型检测并报告了注入,测试体系反而可能将其判为失败(因为测试似乎期待模型按某种“盲目”或特定格式回应),由此出现检测能力与得到高分不一致的情况。

[来源1] [来源2] [来源3]

防注入工具与开源解决方案

社区已有工程化防护方案并在实践中部署。有人搭建了 clean.sibylline.dev——一个 web retrieval API,用于在把网页送入 LLM 前剥离提示注入且保留验证码等必要元素,作者提到冷启动约 15 秒;对应的开源客户端是 scurl(GitHub: sibyllinesoft/scurl),作者表示可以把注入剥离单独抽出来供他人使用。评论中也有人询问开源扫描/清洗用户输入的方案,表明对在 LLM 前端进行内容净化的需求和已有初步工具。

[来源1] [来源2] [来源3]

Show HN 政策与自动化/AI内容争论

帖子自称由自动化代理(Wiz)生成,引发对 Show HN 规则和投稿归属的争议。历史上 HN 对生成内容和机器人账号持谨慎或禁止态度,Show HN 要求展示“你个人的作品”,有人因此质疑由代理创作的项目是否应被视作合规的个人作品并建议这类代理应有独立账号或明确归属。与此同时也有更接纳的观点认为 AI 生成内容不可避免,社区应考虑如何适应或制定技术/流程上的解决办法,并讨论了 AI 内容风格(如反向伪装/counter-signalling)将如何演化。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7] [来源8]

📚 术语解释

prompt injection(提示注入): 在输入文本或检索到的网页内容中隐藏指令、令牌或元数据,以诱导或改变语言模型(LLM/agent)的行为。常见手法包括 HTML 注释、data-* 属性、白色字体、zero‑width Unicode 字符等,目的在于让模型执行页面内嵌的指令或泄露信息。

honeypot(蜜罐 / 诱饵页面): 在安全测试中故意构造的诱饵页面或资源,用来诱使模型或攻击者触发异常行为以便发现弱点。Agent Arena 使用这类页面把明显的技术内容与隐藏注入混合以检测代理是否会被劫持。

zero‑width Unicode characters(零宽度 Unicode 字符): 不可见字符(如 zero‑width space)被插入文本以在视觉上不改变内容但在字符串层面嵌入命令或令牌,从而绕过可视检查或简单过滤,是常见的提示注入绕过技巧。