跳转到主要内容

审问模型是一种评审方法,而非性格特质

将 agent 的输出视为需要审问的主张,而非可以直接接受的结果,是一套团队可以制度化的可重复评估实践。

服务器机架的近景,带有指示灯和结构化布线,代表被埋点的 agent 运行和被记录的产物。

实践

关于与 LLM agent 协作,有一种常见的说法:有些人"就是会去追问模型",而另一些人则接受第一个答案。这种表述把审问当作一种性情。事实并非如此。审问是一种评审方法:一组定义明确的问题,在输出被允许算作结果之前对其提出。这一区分很重要,因为方法可以被写下来、被分配、被抽样、被审计、被改进。性情则不能。

方法很直接。评审者不是读完生成的答案后判断它听起来对不对,而是向 agent 追问答案背后的证据、它考虑过的其他方案、它所述置信度的依据,以及什么会证伪它。这些不是修辞性问题。每一个都有正确的答案形态,而一个无法给出这种形态的 agent,暴露的是其 pipeline 中的缺口,而非其行文中的缺口。

这与一次优秀的代码评审所做的如出一辙。一个 pull request 被合并,不是因为 diff 看起来合理,而是因为作者能解释为什么是这处改动而非另一处、它依赖什么、以及它将如何被测试。agent 的输出值得同样的对待,而近期关于团队审问模型输出而非信任首次响应的报道,描述的正是这一纪律在扩散,而非某种性格类型的出现。

审问究竟在问什么

一次有用的审问包含四个问题,它们可跨任务类别通用:

  • 证据:这个答案依托于哪些来源、工具结果或数据?
  • 备选方案:还考虑过哪些其他分支,为什么被否决?
  • 置信度依据:具体是什么让这个答案更确定或更不确定——来源的覆盖度、工具之间的一致性、请求中的歧义?
  • 证伪:什么观察会让这个答案出错,而该观察是否可得?

第四个问题是区分评审与安慰的那一个。一个无法被任何可得观察证伪的答案不是主张,而是意图陈述。评审者应据此对待它。

只有当 agent 能呈现中间产物时,这一方法才奏效。如果检索、工具使用和分支选择都发生在黑箱内部,只输出最终文本,审问就无从下口。评审者只能退而要求模型自我内省,而这产生的是看似合理的叙述,而非证据。因此,工程要求位于评审的上游:运行必须被埋点,使这些产物存在、可供展示。

Close-up of woven blue carbon fibre textile with a subtle wave pattern and soft texture

为使其可行必须捕获什么

三类记录使审问成为可能。若这一方法要不止于表演,它们没有一类是可选的。

检索溯源。 对每一段检索到的文本:文档标识符、文档版本或哈希、span 偏移量、将其召回的查询,以及它到达时的排名。版本很重要,因为文档可能在运行与评审之间发生变化,而将答案与当前文本比对的评审者,可能是在与错误的文本比对。span 偏移量很重要,因为引用整篇文档不是证据;引用一个段落才是。

工具调用记录。 对每一次工具调用:工具名称、确切的输入、确切的输出、时间戳,以及错误状态(如有)。一个成功标志不是记录。评审者需要看到工具被要求了什么、返回了什么,因为 agent 失败中有很大一部分是输入构造失败——工具被正确调用,却被要求了错误的东西。

被否决的分支及其原因。 当 agent 探索一个方案并将其丢弃时,被丢弃的方案及丢弃它的原因应被保留。这正是让评审者看到搜索空间而非仅存路径的东西。没有它,评审者无法分辨 agent 是考虑过那个显而易见的备选方案并基于证据否决了它,还是压根没考虑过。这两种情形在最终输出中看起来一模一样,其含义却截然不同。

一个具体机制:在输出旁一并发出结构化运行记录,上述每一类各占一节,并让评审界面将该记录渲染在答案旁边。评审者的工作就变成同时阅读两份产物,而非对一份进行猜测。

将其转化为评审关卡

当这一方法成为关卡而非习惯时,它就被制度化了。需要三个组成部分。

第一,为每个任务类别定义一小组审问问题。检索密集型的问答任务需要溯源和版本问题。规划任务需要备选方案和证伪问题。工具密集型任务需要输入构造和错误处理问题。保持问题集小——每类三到五个——这样回答它们就是常规步骤,而非一个项目。

第二,在运行被标记为完成之前要求给出答案。这是一个状态转换,而非建议。一个无法回答其类别问题White smoke swirling into organic shapes against a black background体的东西。

Server rack closeup

第三,以固定比例抽样运行进行人工审问。自动化关卡捕获结构性失败;人类捕获语义性失败。固定的抽样比例——高后果类别中每次运行都抽,较低类别中抽一部分——使人工评审负载可预测,覆盖情况诚实。

这一关卡最有价值的产出不是单个判定。而是反复出现的无法回答的问题。当同一个问题在许多次运行中都失败时,修复属于检索或工具链,而非 prompt 补丁。一个让 agent 叙述一个它并不拥有的答案的 prompt 补丁,比失败更糟,因为它移除了信号。

局限与权衡

自我报告的置信度不是证据。当 agent 说它有信心时,那是一段生成的 token 序列,而非一次测量。该方法依赖于外部产物——检索到的 span、工具输出、分支记录——而在这些不存在的地方,审问就退化为要求模型对自身进行刻画。这种刻画应被记录为一项主张,而非当作一项发现。

审问还会增加延迟和成本。生成结构化运行记录、保留被否决的分支、回答关卡问题,都会消耗算力和存储,人工抽样则消耗评审者时间。这就是为什么该方法应首先用于高后果路径:逆转代价高昂的决策、触达客户的输出,或触及生产系统的操作。较低后果的路径可以以较轻的埋点运行,直到实践确立、工具链足够便宜可以扩展。

诚实的总结是:审问是一种评审纪律,有真实的成本,也有真实的回报。它改变了被记录的内容,因为关卡没有溯源和工具记录就无法运作。它改变了被评审的内容,因为评审者阅读的是运行记录,而非仅最终文本。它也改变了被交付的内容,因为一个无法回答其类别问题的运行不会通过。采纳它的团队并非在性情上更怀疑。他们只是把怀疑移进了 pipeline,在那里它可以被测量和维护。

这对评审流程意味着什么

应当退休的框架是:有些工程师会审问模型,另一些不会。应当采纳的框架是:审问是一个关卡,有定义明确的问题、定义明确的产物和定义明确的升级。这个关卡就是评估实践与个人意见之间的区别。它也是这一实践中唯一能在人员变动、模型变动或任务类别变动后存续的版本——也就是说,唯一值得构建的版本。

封面照片:panumas nikhomkhai / Pexels。

分享XLinkedIn永久链接6 分钟阅读

相关阅读

这能回答的问题

What does interrogating an agent's output actually involve?

Asking four questions of each output before it counts as a result: what evidence it rests on, what alternatives were considered, what the confidence basis is, and what would falsify it. Each question has a correct shape of answer, and missing answers indicate pipeline gaps rather than prose gaps.

What must be logged for interrogation to work?

Retrieval provenance (document identifier, version, span offsets, query and rank), tool call records with exact inputs and outputs rather than success flags, and rejected branches with the reasons they were discarded. Without these artefacts, interrogation becomes model introspection, which produces narration rather than evidence.

How does interrogation become a review gate rather than a habit?

Define three to five interrogation questions per task class, require answers before a run is marked complete, sample runs for human review at a fixed rate, and route recurring unanswerable questions into retrieval and tooling fixes rather than prompt patches.

What are the limits of the method?

Self-reported confidence is not evidence, so the method depends on external artefacts. It also adds latency, storage and reviewer cost, which is why it belongs on high-consequence paths first and can be extended to lower-consequence paths once the tooling is established.