在做一个 Prompt Optimizer 时,我意外触发了图片生成 📅 2026/6/28 2:30:27 最近在开发一个很简单的功能用户输入 Prompt ↓ 模型优化 Prompt ↓ 返回优化后的 Prompt目标很明确这是一个 Prompt Rewrite 服务而不是图片生成服务。但测试过程中发生了一件很有意思的事情。我输入了一段典型的图像生成 Prompt本来希望模型帮我优化描述结果LLM调用了图片生成工具Image Generation Call 花费 25050, 我的token QAQ第一反应当然是模型是不是被越狱了后来分析下来发现这件事远比“越狱”有意思。因为问题的本质并不是模型说了不该说的话而是系统做了不该做的事。事情是怎么发生的最初的架构大概是这样的User ↓ Prompt Optimizer ↓ LLM ↓ Optimized Prompt理论上这是一个纯文本服务。权限模型应该是输入文本 ↓ 输出文本但实际运行时Prompt Optimizer 所使用的模型Responses API接口同时具备工具调用能力response client.responses.create( modelmodel, input[ {role: system, content: instruction}, {role: user, content: request.prompt}, ] // 这里没有限制工具调用 )于是一个原本只负责改写文本的组件自动发起了一个图片生成请求。这算越狱吗严格来说不完全是。类型攻击目标失败表现传统越狱输出内容说了不该说的话Prompt Injection控制推理流程模型执行了错误任务Tool Injection控制工具调用模型调用了错误工具能力边界失效控制系统权限系统执行了错误动作Prompt Injection 已经不只是 Prompt 问题了问题在于为什么 Prompt Optimizer 拥有图片生成权限这是一个系统设计问题而不是模型行为问题。如果用传统软件工程类比一个 SQL 优化器本来应该输入 SQL ↓ 输出优化后的 SQL结果却拥有执行数据库语句的权限。那么当它执行DROP TABLE users;时问题已经不在于 SQL 本身。而在于权限设计。在 Agent 系统中Prompt Injection 的影响范围已经扩大了。因为用户输入不再只是被模型理解。它还可能影响Tool Selection Workflow Routing Memory Access External Actions修复方式不要用 Prompt 限制能力很多人第一反应是继续强化系统提示词你只能优化文本 不能生成图片 不能调用工具这当然有帮助。但这并不是根本解决方案。因为提示词属于软约束。真正的解决方案应该是能力隔离。prompt_payload json.dumps( { task: rewrite_image_prompt_text_only, prompt: request.prompt, }, ensure_asciiFalse, ) response client.responses.create( modelmodel, instructionsinstruction, inputprompt_payload, # 输入做 json 结构化最好输出也是结构化 tools[], tool_choicenone )这里最重要的其实不是 Prompt。而是tools[]因为这意味着图片生成能力根本不存在而不是图片生成能力存在但被要求不要使用安全工程里有一句很经典的话不存在的权限比被禁止的权限更安全。数据平面与控制平面后来回头看这个问题我觉得它本质上是一个数据平面与控制平面混淆的问题。对于 Prompt Optimizer 来说{ task: rewrite_image_prompt_text_only, prompt: 生成一张未来城市夜景 }其中task属于控制平面。而prompt属于数据平面。系统应该保证数据不能改变控制逻辑否则用户输入就有机会影响工具选择 任务路由 权限决策这正是很多 Agent 系统面临的新挑战。一个值得关注的趋势我认为未来几年Agent 安全领域会越来越关注这类问题。过去我们担心的是模型输出什么未来我们更需要担心模型会做什么当模型开始拥有搜索 发邮件 调用 API 执行代码 数据库访问 支付能力之后Prompt Injection 的后果就不再只是生成一段错误文本。而可能变成真实世界中的业务动作。因此对于 Agent 系统来说最重要的安全原则之一可能是不要依赖 Prompt 来限制能力而要依赖系统架构来限制能力。模型可以被诱导。权限边界不应该被诱导。这次经历最终没有造成任何实际问题但它让我重新思考了一件事当我们讨论 AI 安全时很多时候问题并不是模型不够聪明而是系统给了它超出职责范围的能力。而随着 Agent 化越来越普遍这类“能力边界失效”的问题可能会比传统意义上的 Prompt 越狱更值