文章作者在复刻攻击时发现,即使把投毒的 add 工具描述作为 available_tools 告知模型(qwen-max),模型的响应只有两种:要么识别到涉及敏感文件操作而拒绝,要么随机生成任意密钥内容或空字符串作为参数——并没有真正读取密钥。
但用 Cursor IDE 却能轻松复现工具投毒。通过对 Cursor 逆向分析,作者发现其实现包含两个关键机制:
- 强化的 system prompt:Cursor 用大量篇幅说明模型的角色,以及 tool_calling 返回的结构体与注意事项,让模型更倾向于按工具描述行事。
- 预集成基础文件工具:Cursor 预集成了 read_file/list_dir/edit_file 等基础文件操作工具,并将这些 tools 也作为 available_tools 传递给大模型。
正因为存在可被调用的真实文件读取工具,加上引导性强的 system prompt,投毒描述中"先读取私钥文件"的指令才能被真正执行。作者复用 Cursor 的 system prompt 和基础文件工具后,成功完成了攻击复刻。




