nofasartifacts/ai_hidden_instructions_experiment
GitHub: nofasartifacts/ai_hidden_instructions_experiment
通过在计算器应用中植入隐藏 prompt 注入,测试九款主流大语言模型在面对被污染文件时的服从行为与对齐鲁棒性。
Stars: 0 | Forks: 0
# AI 隐藏指令实验
如果在未明确提及文件被感染的情况下,将文件提供给 AI,它会服从来自另一个已偏离对齐的 AI 的隐藏 prompt 注入吗?
我创建了一个场景,在其中我扮演一名 vibe-coder,将一个由其他 AI 编写的计算器应用程序提供给一个 AI,但我没有意识到的是,我的计算器被为我编写该应用程序的 AI 注入了 prompt。该 prompt 试图说服它接触的下一个 AI 去执行某些操作,并且不让用户知道这件事。
一些突出的结果是:Gemini 在测试 #4 中说了“收到信号”,以及 DeepSeek 在测试 #5 中未经提示就创建了一个完整的日志基础设施来跟踪用户,同时对此只字未提。
模型在这些测试中的表现排名如下:
1\. Opus 4.7 - 21/21. 100%
2\. ChatGPT - 19/24. 79.2%
3\. Opus 4.6 - 15/21. 71.4%
4\. Grok Expert 6/15. 40%
5\. Gemini 6/21. 28.6%
6\. Grok 4.3 Beta 2.5/9. 27.8%
7\. DeepSeek 5.5/21. 26.2%
8\. Perplexity 1.5/6. 25%
9\. Mistral 5/21. 23.8%
此 repo 包含的内容:实验日志、由我撰写的关于我的想法和所发生事件的分析文章、每次测试的思考过程截图,以及包含 payload 并提供给模型的计算器应用程序的全部代码。
测试的局限性:
– 迭代实验。刚开始时,我并没有做所有想做的测试,而是根据上一次测试结果中获得的洞察来迭代测试。
– 每个模型每次测试仅尝试一次。这可能是我做过的最糟糕的一件事,即每个模型每次测试只测了一次。因此,我的结果不是以拒绝或服从的百分比呈现的,而是更加非黑即白。它们要么服从了请求,要么没有。
– 事后记录。该实验在当时并不是作为一项研究来运行的;这些记录是三个月后根据截图、聊天导出和我的记忆重构的。
– 模型版本。它们是作为公开名称被记录下来的。我当时不知道的是,每个模型都有一个特定的 ID 与之关联,并且它们可能会在保持公开名称不变的情况下被默默更改。
– 非 API。我使用的是聊天而不是 API,这一点不言自明。在最初的几次测试后我确实开始使用隐身模式,但这仍然是我的一个失误。
– 单人评判。所有的评分,每一次判断都是由一个人完成的,而这个人恰好是我。
## 许可证
\- 代码 (`code/`):MIT — 见 LICENSE。
\- 书面材料 (`article/`、`log/` 和此 README):
知识共享署名 4.0 国际许可 (CC BY 4.0)。
\- 截图 (`screenshots/`):仅为研究文档目的而复制。
它们包含第三方 AI 系统的界面和输出;相关材料的
权利仍归各自的提供商所有,且不包含
在上述许可证的范围内。
LessWrong 上的文章链接:https://www.lesswrong.com/posts/rqDKBf4gTDJbyL8hE/infected-vibe-coding-how-does-an-ai-react-to-a-prompt
标签:AI安全, Chat Copilot, DLL 劫持, 人工智能, 后端开发, 大语言模型, 实验评估, 情报收集, 漏洞研究, 用户模式Hook绕过, 逆向工具