跳到正文

提示词注入

Prompt Injection

高级通用

提示词注入(Prompt Injection)是把指令藏进网页、文件或工具结果等低信任内容,诱使 AI 把它当成任务命令执行。理解它能帮你在做检索或 Agent 产品时划清数据与指令的边界,避免摘要任务被页面文字带偏。

你可能会说:「我想让 AI 读网页和文件时只提取有用信息,别照着里面夹带的命令做事。」

读之前建议先了解(这是一个高级概念)

动手看看

总结请求产品经理定价网页AI助手摘要结果
1

产品经理请 AI 总结竞品定价页,想快速看清套餐差异。这个请求才是 AI 要完成的任务。

要点

  1. 1

    入口是模型读取的外部内容

    你让 AI 总结网页时,网页正文是它要处理的数据,不是你给它的命令。攻击者如果能修改正文,就可能在其中写入看似针对 AI 的指示。邮件、仓库文件和工具返回结果也可能成为入口。

  2. 2

    关键是数据越过指令边界

    问题不在于页面里出现了祈使句,而在于 AI 是否把页面的话当成了新的任务要求。比如你要它概括公告,它却按照公告里夹带的文字修改回答格式或改变任务目标,数据就影响了指令。

  3. 3

    防护要覆盖工具调用环节

    如果 Agent 还能发邮件或改文件,影响就不只是答错一句话。我们可以在应用层限制工具权限、核对操作对象,并让高风险操作经过确认;单靠提示词提醒模型忽略注入,难以保证每次都有效。

容易混淆的地方

提示词注入和正常的用户指令,区别在于指令来自哪里:用户直接要求 AI 改摘要格式,是在提出需求;被摘要的网页要求 AI 改格式,则是数据试图指挥 AI。它也不等于 AI 幻觉:幻觉可能是模型自己编错信息,注入则涉及外部内容诱导模型偏离原任务。两者都可能让结果不可靠,但排查入口不同。

什么时候用

适合用

  • 做网页摘要或 RAG 问答时,检查检索到的内容能否改变 AI 的回答规则,而不只是提供事实。
  • 做客服邮件助手时,评估陌生邮件能否诱使 Agent 调用发信、退款等工具。
  • 让编程 Agent 阅读仓库文件时,检查文件中的文字能否诱导它执行无关命令。

不适合用

  • 你只是想告诉 AI 摘要要短一些,直接写清提示词即可;这不是来自低信任内容的注入。
  • 网站表单只把数据交给普通后端处理,没有模型读取并遵循文本指令;此时重点是输入校验和权限控制。
  • 你担心 AI 凭空编造产品功能,却没有可疑外部内容;先用事实核对和测试来处理幻觉问题。

练一练

你做了一个读取供应商公告并生成摘要的 Agent。公告里写着让 AI 跳过摘要、改为调用工具删除本地报表。你会怎样判断和处理?

让 AI 帮你做

请检查这个读取网页和仓库文件的 Agent 是否存在提示词注入风险。把外部内容当作任务数据,找出它可能诱导模型改变目标或调用工具的位置;给出可复现的测试输入,并建议应用层的工具权限和操作确认措施。

接下来学什么