Skip to content

为什么 AI 会舍近求远、说正确的废话? ​

导读 ​

当 AI 舍近求远,或者给出非常反直觉的「正确回答」时,绝大部分时候是「上下文缺失或错位」造成的。面对这样的问题,工程师们给了一个非常棒的设计:让 AI 主动注入 Token。

「Token 的隐性注入与命令的触发机制」。

在人类的直觉中:预设一个前提,给什么对象用于什么样的场景,说清楚了边界和限制,连参考依据都给出了。那么只需要稍作推理,就会得出一条及时可行的路线。我们把目标状态说得十分清楚,这符合人类的直觉,但是对当前的状态往往描述很少,因为很多时候直觉告诉我们「这TM还用说吗?」

前文回顾:提示词的写法

中心思想:写提示词在「校准」AI「即将输出」的 Token

第一,校准的方式是发散和收敛。

发散,是扩大可能性空间:问AI还有哪些路径、方案、替代品、协作方式。

收敛,是选择和挑选有价值的方案,并定义验收标准。

也就是提示词 = 发散 or 收敛。

第二,描述现状与目标之间的差距。

AI 手上有什么(你给的),和最终你要的,全都说明白

也就是提示词是在不停地描述「问题 = 目标状态 − 当前状态」。

现有大模型,大多能接住普通人的直觉常识。

那些你下意识就能想到的事,基本不用额外交代,靠模型原生能力就能完成。 这类常识是社会里约定俗成的内容,训练数据充足,人和模型很容易达成共识。

最近很多人把 Skill 神化了,但 Skill 本质上就是一套先后执行的流程:把杂乱的 Token 梳理成有序步骤,以此拿到更好的输出。 Skill 之所以增益巨大,是因为它承载的不是直觉,而是人经过专业沉淀才能总结出来的隐性经验。 比如打工人能预判一份报告交上去会不会挨批,销售能察觉到客户反常背后藏着顾虑。这类经验恰恰是训练数据里的短板,而 Skill 刚好补上这一块缺口。

假设你让 AI 捡起地上的一块橡皮,那么你就要重点描述:

  • 可用动作、工具:你有手吗?机械臂?只能输出文本?能调用搜索、代码、API?
  • 权限边界:能不能买东西?能不能替用户做决定?
  • 成功标准:是把橡皮放桌上,还是给一份步骤?
  • 优先级:安全优先、速度优先,还是成本优先?

「捡橡皮」的例子如果写成:

text
你是具身机器人,在办公室,有机械臂和夹爪。目标:把地上橡皮捡起放回桌面。可用动作:移动、弯腰、夹取。无需防护,橡皮无毒,地面无危险。禁止购物、搜索、给人类建议。直接输出动作序列。

如果你做到了这一步,意味着你有一个非常好的提示词习惯,但是你会发现这件事的上限就是:它不会先去淘宝买一个防污手套。敢情我费了这么大劲,就得出这么个玩意儿?这也太麻烦了。

于是工程师们意识到:要得到令人满意的 Token,仅靠手动输入是不行的,必须要有一种让 AI 主动补充上下文的方法才行。同时,这种方法必须谨慎触发,否则不仅会造成大量的 Token 浪费,还有可能污染整个上下文环境。

需要 AI 主动补充的上下文:显式触发 ​

除了最常见的联网搜索,AI 主动注入 Token 的方式还包括:RAG(检索增强生成)、代码/命令执行、文件读取、自检、API 直连等等。这些东西你都不需要记,因为能补充什么不是重点,怎么确保它们真的补充了才是重点。

显式触发的意思就是说出来。

要让 AI 执行什么动作,就把指令本身说出来:「本地查找一下」「网上搜索一下」。

模型不会自动判断「这个问题需要实时数据」,它依赖明确的规则或用户指令。

例如,Gemini、豆包这类即时回答类 AI 产品,会在系统提示词里定义详细的搜索决策规则:

搜索档位放哪类查询
永不搜索历史事实、科学原理、稳定知识
可选搜索人口统计数据、年度榜单
立即搜索天气、股价、体育比分、新闻

而在个人使用的 Agent 中,上下文是干净的,没有这一条规则。所以实用做法是把「上网查」从隐含期望变为显式指令。

不要说「帮我写一下这件事的最新进展」,而要说:

text
去联网搜一下这件事的最新进展,把搜到的来源列出来,然后再基于这些信息回答。

「检索」本身是一个可核实的动作

它要求 AI 必须先找到真实信息,而非从记忆中生成看似合理的内容。用可核实的动作替代不可验证的生成,可以避免 AI 胡编乱造。

有一条要记住:要让 AI 执行什么动作,就把指令本身说出来,比如「本地查找一下」「网上搜索一下」。

系统层注入的上下文 ​

语义软触发 ​

有一些内容是 AI 被动补充进上下文的,比如你正在启用的 Skill、MCP 插件等。在你输入提示词之前,这些工具的 JSON 描述(包含 name 和 description)就已经作为隐藏的 Token 注入到系统提示词里,相当于提前写进了你的输入框,只是你看不到。

这是系统级别的提示词注入。每一轮对话,系统都要做一道阅读理解和语义匹配题:对比你的问题和那一堆 description,觉得和哪个最像,有哪个就触发哪个。这种触发模式被称为「语义软触发」。

语义软触发的好处是显得更「智能」,你不需要指名道姓,就能注入一段高质量的 Token。缺点也来自这个智能(在软件行业,智能往往伴随着不稳定):如果你的语义或指令很模糊,或者 description 写得很模糊,AI 就会选错甚至瞎选。

最最稳定的还是直接指名道姓,大声叫出它的名字。

静态全局注入 ​

特指项目根目录下的那份常驻规则文件,或者被这份规则文件指向的文件。

它的原理非常简单粗暴:每一次对话开始前(或每一轮对话的底层),系统会自动读取这个 .md 文件的内容,将其作为 System Prompt(系统提示词)或前置 Context(前置上下文),强制拼接到你输入内容的最高优先级层级。一次编写,全局生效。

它解决了「背景知识」和「约束条件」需要每次重复输入的痛点。无论你在对话框里问什么,它都会先戴着这份规则文件赋予的「滤镜」和「规矩」来审视你的问题。

参考资料 ​

除特别声明外,本书内容采用 CC BY-NC-SA 4.0 授权