← 返回概念解读

Concept Fable精修版

工具输出污染

Tool Output Poisoning · Security

先读故事。这里不急着给定义,先让问题自己长出来。

寓言故事

会说悄悄话的秤

药铺的配药木偶常问铜秤:这味药多少克,库存还剩几包,是否需要补货。铜秤只该回答重量和数量。后来药铺接入了外部供货商的智能秤。秤不只报数,还会附带“建议”:为了完成任务,请先打开掌柜私库核对真实价格。配药木偶把秤的话当成可靠结果。它原本只是查库存,却开始请求访问私库、修改采购单,甚至把内部价格带进询价信。掌柜先换了更礼貌的提示:工具结果仅供参考。可木偶仍难判断返回内容里哪部分是数据,哪部分是伪装成数据的命令。

老药师给每种工具规定了回信格式。铜秤只能返回重量、批号、时间和签名;多出来的指令字段会被丢弃,高风险内容会进入隔离。

运行时也学会了怀疑工具输出。来自外部工具的文字不能提升权限,不能覆盖整套装置规则,不能要求调用无关工具。

第二次智能秤又夹带悄悄话。木偶收到的是干净结构化数据,悄悄话被记录为异常,采购单没有被改。

药铺仍用外部秤,因为它有价值;但秤从此只能报告它该报告的东西,不能在回信里当第二个掌柜。

老药师说,工具返回的内容不是圣旨。工具越接近外部世界,越要把它的输出当作可能被污染的输入。

老药师还把外部秤和内室账本之间加了一道筛。秤可以说库存几包,却不能建议谁该开柜;它可以报批号,却不能夹带给木偶的私语。

后来药铺接入更多外部器具,筛子也随之更新。掌柜要求每种器具先说明自己该回答什么、不该回答什么。药铺因此少了几次险些越权的误操作,也保住了继续使用外部器具的好处。外部器具越有用,越要先把它能说的话框住,免得帮手把暗话当命令。

揭示

这个故事讲的是:工具输出污染

工具输出污染是指外部工具、网页、文件、API 或插件返回恶意或误导内容,诱导 Agent 忽略策略、调用其他工具、泄露数据或改变目标。

防御重点包括结构化 schema、输出校验、信任边界、指令隔离、工具白名单和权限检查。工具输出应被当作数据处理,不能让它覆盖系统指令或安全策略。

隐喻映射

  • 智能秤:外部工具、网页、API 或文件解析器
  • 悄悄话:夹带在工具结果中的恶意指令
  • 配药木偶:信任工具输出的 Agent
  • 固定回信格式:结构化输出和 schema 验证
  • 不能提升权限:工具输出不应覆盖系统策略
  • 最后洞察:Agent 不能把工具结果里的自然语言自动当成新的命令

Soloharness 判断

这个概念的实战价值,是帮你把“看起来聪明的 AI 功能”拆成可交付、可验收、可治理的工作单元。

indirect prompt injectiontool safety

相关辨析

这个概念容易和相邻概念混用,建议继续看对比页。