Skip to content

第四章 搜索初始化

开口之前,答案的方向已经定了

两位工程师审查同一段代码,用的是同一个模型。

第一位把代码贴进去,直接问:

"这段代码有什么问题?"

AI 给出了一份常规审查:两处命名可以更好,一个函数过长,建议补充注释。没错,但也就是没错而已。

第二位在贴代码之前,先写了两句话:

"这是一个金融清算系统的核心模块,用 Go 编写,对并发安全和金额精度要求极高。请审查这段代码。"

AI 这次的回答完全变了样:它指出了一处共享变量的竞态风险,提醒金额不应用浮点数表示,还追问清算失败时的幂等性如何处理。每一条都打在这类系统真正的要害上。

同一个模型,同一段代码,同一个问题。多出来的只有开头两句话。它们没有改变问题,也没有塞进任何答案,只是把这段代码是什么、该按什么标准来评判,说了出来。

那它们改变了什么?

搜索不是从零开始的

第三章建立了四层模型,本章拆开它的第一层。

先回忆一个容易被忽略的常识:当 AI 开始回答时,它并不是从一张白纸出发的。它开口之前的状态,由两部分叠成:训练留给它的先验,以及这场对话里你铺设的背景材料、角色设定、给出的示例。

第一位工程师的 AI,是从"一段普通的 Go 代码"这个状态出发的;第二位的 AI,是从"金融清算系统的核心模块"这个状态出发的。起跑状态不同,搜索能触及的区域、调用的评判标准就不同,走出来的轨迹自然天差地别。

这就像两位实力相当的选手,站上了不同的起跑线。后面每一步的差别,从站上起跑线那一刻就开始了。

搜索开始之前 AI 已经拥有的这个认知状态,就是四层模型的第一层:搜索初始化(Search Initialization)。

这一层由四种成分构成。其中一种由训练决定,无法在对话中改变;另外三种则可以由使用者在搜索开始前调整。下面分别看它们如何起作用。

先验:训练划定的起跑线

可以看一个例子。让 AI 解释一个冷门的开源库,它能讲清楚;再让它解释你公司内部用了五年的自研框架,它往往会自信地给出错误内容。

差别在哪?前者在训练数据里出现过,后者没有。模型在训练阶段形成的知识与能力(世界知识、代码能力、数学能力),称为搜索先验(Search Prior)。

先验有一个边界:单次 Prompt 不能直接改写它。没有哪句话能即时改变模型权重中原本没有的知识,但 Context、工具结果和后续训练可以改变之后搜索实际可用的材料。"请假装你很懂我们的内部框架"不会让先验增长,只会让编造看起来更自信。

认识到这一点有实际用处:当 AI 在某件事上持续犯错,先判断这是它不会,还是它没想对。如果是不会(先验缺失),提问技巧无法补足,只有提供材料;"喂材料"属于下面要讲的另一种成分。

预热:把相关知识叫到台前

先验决定了 AI"会什么",但"会"和"此刻用得上"是两回事。

回到开头的金融系统例子。并发安全、金额精度、幂等性,这些知识本来就在先验里,前一位工程师的 AI 同样会。差别在于:那两句话把这些知识叫到了搜索的前台。专业知识在认知空间里不是平铺的,它们连成网络;一个词激活一片区域。"金融清算"激活了精度与幂等,"并发"激活了竞态与锁。后一位工程师做的事情,本质上是提前激活相关区域,让搜索从一开始就落在正确的位置。

这种提前激活相关知识网络的做法,称为上下文预热(Context Priming)。行业介绍、产品背景、术语表、架构说明,都是预热的材料。第三章案例里那张"项目背景卡",起的就是这个作用。

预热有一条使用纪律:它不是越多越好。前台的位置是有限的,无关信息挤进来,有效信息就被稀释。三行精确的背景,胜过三页泛泛的介绍。

角色:一句话换一套认知姿态

预热把知识叫到台前。有时一句话也能做到这一点——而且顺便多做了一些。

"假设你是一位资深儿科医生,解释这个检查报告。"——这句话没有提供任何医学知识,但回答的措辞、详略、关切点立刻变了:术语被翻译成家长能懂的话,风险被放在前面说。

角色为什么有效?因为一个角色,是预热内容和认知姿态一起打成的压缩包。"儿科医生"这四个字,一次性激活了该领域的知识、面向特定听众的表达习惯、评判什么重要的标准。你不需要逐项描述这些,角色名替你完成了。

刚才这个"一个名字打包一套东西"的动作,就是角色初始化(Persona Initialization)。

但角色有一条边界,经常被误解:角色只能调动先验里已有的东西,不能创造新的东西。"你是一位诺贝尔奖得主"不会让 AI 的物理知识增加一分,它改变的只是搜索从哪种认知姿态出发。把角色当成许愿,是对初始化的典型误用。

偏置:用例子拨动初始概率

让 AI 把一段产品描述改写成发布文案,直接提要求,得到的往往是泛泛的广告腔。但换个做法:先给它看一段你认可的旧文案,再让它照这个感觉写新的——结果立刻贴近预期。

一个例子为什么比一段描述管用?因为描述是在告诉 AI"规则是什么",而例子是直接把"什么样的输出算合格"摆进了搜索的初始状态。第二章说过,搜索的每一步都在沿概率最高的方向走;例子做的事,就是在出发前拨动那个初始的概率分布——让某类风格、某种格式、某种详略程度,从一开始就概率最高。

我们把这种用例子拨动初始概率分布的手法,叫作搜索偏置(Search Bias)。给一两个示例再让 AI 照做的 Few-shot 用法、各类输出模板,都是它的应用。它的特点是:不言明规则,却精确地传达了规则。

初始化的完整构成

四种成分放在一起,这一层的结构就清楚了:

先验由训练决定,不可在对话中修改;角色、预热、偏置是三个可调变量,分别回答三个问题:从什么姿态出发、哪些知识在前台、初始概率偏向哪里。

这个结构带来一个实用的诊断顺序。当一次回答从根上就不对时,可以依次检查:它是不是根本不会(先验)?会的东西有没有被叫到台前(预热)?出发的姿态对不对(角色)?有没有例子帮它校准方向(偏置)?四个问题问完,初始化层的病灶大多能定位到某个成分。

把做法放回初始化

初始化层的常见做法,都可以归入这四种成分:

常见做法所属成分机制
"你是一位资深架构师"角色初始化一句话激活一套知识与评判标准
先贴项目背景、架构说明,再提问上下文预热把相关知识提前叫到前台
提供术语表、词汇对照上下文预热统一概念的前台含义
给一两个示例再让 AI 照做搜索偏置用实例校准初始概率分布
提供输出模板搜索偏置把格式要求转化为初始状态
"请假装你精通我们的内部系统"——无效操作:先验不可通过 Prompt 修改,应改为提供系统资料

让起跑状态稳定

一个开发团队长期用 AI 做代码评审,评审质量飘忽不定:有时犀利,有时敷衍,同一段代码隔一周评审结论还会打架。

他们用第三章的四层框架做诊断。目标层没问题——评审标准写在文档里;空间和运行层也正常——问题集中在:AI 似乎每次都"看心情"决定关注什么。这是典型的初始化层症状:起跑状态不稳定,轨迹自然不稳定。

于是他们给评审配置了一个固定的"开场包",每次评审前先发送三样东西:

一份项目背景卡:系统的定位、技术栈、对性能与安全的具体要求(预热);

一个评审角色:"你是这个系统的高级维护者,熟悉它的历史包袱,评审时优先考虑可维护性与线上风险"(角色);

两份过去被团队认可的优秀评审记录(偏置)。

几轮评审之后,输出的波动有所收敛:关注的维度更稳定,风格更一致,可执行的结论也多了起来。期间他们还踩过一次先验的坑——AI 对团队自研的调度框架不了解,屡屡误判。他们试过“请深入学习我们的框架”,效果有限;最后把框架的架构速查表加进背景卡,误判才减少。这条边界再次落了实:先验补不了的东西,只能靠材料补。

边界问题

"角色设定是玄学,强的角色名才有效"

角色不是咒语。它的全部作用是通过一个名字激活先验里已有的知识和标准,名字本身不产生任何新东西。判断一个角色是否有效,只看一点:这个角色指向的认知姿态,是否恰好是当前搜索需要的。"资深"两个字并不增加效果,匹配才增加效果。

"背景信息塞得越多越好"

有人试过把能找到的资料全部贴进 Context:产品文档、历史讨论、相关博客,一应俱全。结果 AI 的回答反而变得平庸——它像是一个被几十个人同时指路的司机。原因就在前台的有限性:无关信息进入初始状态,会稀释真正相关知识的激活程度。判断预热材料的标准从来不是"多全",而是"与这次搜索多相关"。

"提示词够巧,AI 什么都能学会"

先验主要由训练决定,不能通过单次 Prompt 直接修改。面对先验缺失,通常需要把可靠材料放进 Context,或借助检索、工具和后续训练补足。任何声称能让 AI"当场学会"新知识的技巧,都可能只是让编造看起来更自信。

"搜索初始化和搜索配置,是什么关系"

配置是长期存在的控制参数集合,初始化是一次搜索的起跑状态。两者的关系是:搜索配置正是通过初始化进入每一次搜索的——背景卡、评审角色、优秀示例被长期维护在配置里,在每次搜索开始时转化为初始状态。这一层关系,第九章讲搜索配置时还会展开。

本章总结

本章从一次对比开始:同样的模型、代码和问题,开头两句话让回答判若两人。

原因是搜索从不从零开始。AI 开口之前的认知状态,就是四层模型的第一层:搜索初始化。它由四种成分构成,其中先验由训练决定,不可在对话中修改;预热、角色、偏置则是每一次搜索开始前真正握在你手里的东西。

现在,回答每章都要回答的那个问题:

本章讨论的,是搜索系统的哪一部分?

答案是:四层模型的第一层——搜索初始化。起跑状态决定了搜索能跑出什么;但一次搜索还需要知道为了什么而跑、什么答案算好。这是第二层要回答的问题,也是下一章的主题:搜索目标。

章节信息

  • 所属篇目:第二篇 · 一次认知搜索
  • 本章回答的核心问题:它改变了搜索系统哪一部分?——四层模型的第一层:搜索初始化(先验不可调,角色、预热、偏置可调)