心 智 七 篇 · Seven Mental Models
篇 VII · 心智模型

符号与联结

Symbols & Connectionism
§ 01

两条路

因果纪律需要载体。上一章结尾指出了一个困境:逻辑系统天生适合表达因果结构——因果图编码方向,do 算子区分观察和干预,反事实推理有精确的数学定义。但它需要人类预先编码,不会自己发现。神经网络天生适合从数据中发现模式,但它发现的是相关性,不是因果性。

一个擅长结构但不擅长发现。一个擅长发现但不擅长结构。

这个困境不新。它是人工智能领域最古老的路线分歧。

两条路,不可互还 两条路,不可互还

符号的承诺

1975 年,Newell 和 Simon 在图灵奖演讲中提出了物理符号系统假说(Physical Symbol System Hypothesis):一个物理符号系统拥有智能行动的充分必要手段。

注意措辞的力度——不是”可能有用”,不是”值得探索”,而是”充分且必要”。这是一个可证伪的科学声称:符号操纵不仅足以实现智能,而且是实现智能的唯一途径。

这个假说在封闭域兑现了承诺。专家系统能在严格定义的知识边界内做出专家级判断。定理证明器能推导人类数学家难以完成的形式化证明。规划系统能在给定初始状态和目标状态后搜索出合法的行动序列。

这些成就不是玩具。它们展示了符号系统真正的核心优势——也是几十年后仍然不可替代的优势:

结构可保证。 符号系统的推理过程是形式化的。每一步推导都可以被检查、被验证、被追溯。一个逻辑推理链要么有效要么无效,没有”大概率有效”这回事。

组合可预测。 符号可以按照精确的语法规则组合。如果 A 和 B 各自是合法的表达式,A ∧ B 的语义由组合规则唯一确定。不存在”把两个合法表达式组合起来得到一个意外结果”的风险。

约束可执行。 你可以在符号系统中声明”X 必须是整数""Y 的取值范围是 [0, 1]""如果 A 则不许 B”,系统会严格遵守。约束不是建议——是硬性规则。

符号的代价

但封闭域之外,符号系统撞上了一面墙。

知识获取瓶颈。 专家系统需要知识工程师把领域专家头脑中的知识提取出来,编码成规则。但专家的大部分知识是隐性的——他们知道该怎么做,却说不清为什么。一个医生能在几秒内做出诊断,但让他写出完整的决策规则,他会发现自己的判断中有大量无法形式化的”直觉”。

组合爆炸。 搜索空间随问题维度指数级增长。国际象棋每步大约有 35 种合法走法,往前看 10 步就是 35^10 ≈ 2.7 × 10^15 种可能。启发式搜索可以修剪搜索空间,但修剪本身依赖人类编码的领域知识——又回到了知识获取瓶颈。

感知和常识。 识别一张照片里有什么、理解一句日常对话暗含的常识——这些人类轻松完成的任务,在符号框架下极其困难。不是因为原理上不可能,而是因为感知和常识涉及的知识量和模糊性超出了人工编码的上限。

PSSH 的”充分性”在封闭域可以争论,但它的”必要性”——符号操纵是智能的唯一途径——已经被经验反驳了。不使用显式符号操纵的系统,在越来越多的任务上展示出了真实的智能行为。

一个仍在进行的辩论

PSSH 的必要性是少数派观点,但仍有严肃的辩护者,特别是在形式验证和可解释 AI 领域。他们的论点不是”神经网络不能做这些事”,而是”在安全关键场景下,你需要可验证的推理保证,而只有符号系统能提供这种保证”。这个论点的重心不在”智能需要符号”,而在”可信赖的智能需要符号”。

联结的承诺

另一条路从一个截然不同的起点出发。

1986 年,Rumelhart、McClelland 和 PDP 研究组在《并行分布式处理》中提出了联结主义的核心主张:认知过程可以建模为简单单元组成的网络中的激活模式,知识不存储在显式规则中,而是分布在连接权重里。

没有规则,没有符号,没有程序员预先编码的知识结构。只有一个巨大的参数空间,一个简单的学习目标,和大量的数据。网络从数据中自己学出内部表征。

联结系统的核心优势恰好覆盖了符号系统的死角:

泛化与模式识别。 你不需要告诉网络”猫有尖耳朵、胡须和竖瞳”——给它足够多的标注图片,它自己从像素中提取出区分猫和狗的特征。这些特征往往是人类命名不出来的——不是”胡须”或”耳朵形状”这样的语义概念,而是低层纹理和高层结构的复杂组合。

容噪与优雅退化。 符号系统面对噪声输入倾向于崩溃性失败——一条规则的前提不满足,整条推理链断裂。联结系统面对噪声输入倾向于优雅退化——输出质量平滑地下降,而不是突然归零。

从数据中发现。 这是联结系统最根本的优势。符号系统需要人类先发现结构再编码进去。联结系统从原始数据中自己发现结构——或者至少发现某种在操作上等价于结构的东西。

联结的代价

但联结系统也有自己的墙。

可解释性。 一个神经网络为什么做出这个判断?答案是:因为几十亿个参数的特定组合在给定输入下产生了这个激活模式。这不是人类能理解的”解释”。

组合可靠性。 符号系统的一个核心优势是系统性——Fodor 和 Pylyshyn 在 1988 年的经典论文中指出:任何能思考”John loves Mary”的系统必然能思考”Mary loves John”。这种组合性是符号系统的结构保证。联结系统能否真正拥有这种组合性,三十多年后仍有争论。2024 年的实证研究发现,LLM 的组合能力随规模增长而增强,但指令微调有时反而会削弱它——组合性在联结系统中是一种涌现属性,不是结构保证。

形式化约束。 你无法在一个标准的神经网络中声明”输出必须是有效的 JSON”或”这个值不能为负”,然后指望它像符号系统一样严格遵守。网络的输出是概率分布的采样结果,不是约束求解的精确解。

Bitter Lesson 说了什么——和没说什么

2019 年,Rich Sutton 写了一篇短文——《苦涩的教训》。他回顾了七十年 AI 研究的一个反复出现的模式:

在国际象棋领域,研究者花了大量精力让计算机理解棋局的战略结构——控制中心、兵形弱点、王的安全。1997 年击败卡斯帕罗夫的 Deep Blue 仍然依赖专家编码的评估函数,但它的决定性优势来自大规模搜索——每秒评估两亿个局面。搜索的力量压过了知识编码的力量。

在围棋领域,同样的故事推迟了二十年重演。AlphaGo 虽然最初从人类棋谱中学习,但它的决定性优势来自自我对弈和蒙特卡洛树搜索——把海量算力灌进了学习过程。到 AlphaGo Zero,连人类棋谱这个起点都不需要了。

在语音识别、计算机视觉领域,同样的模式。人类知识的精心编码短期有效,但长期被能吸收更多算力的通用方法超越。

这个模式是真实的。Yousefi 和 Collins 2024 年对 CVPR 二十年论文的回顾分析进一步验证了它在计算机视觉领域的持续性。

但 Sutton 的论证经常被简化为一条教条:“永远不要编码人类知识,暴力 scaling 碾压一切。“这是一个稻草人。

Sutton 实际论证的是:在他讨论的那些领域,能吸收更多算力的方法最终胜出了不能吸收的方法。这是一个关于 scaling 轨迹的历史观察。他没有说人类知识毫无价值——他说的是,在算力指数级增长的条件下,依赖固定人类知识的方法会被依赖 scaling 的方法追上并超越。

Bitter Lesson 的边界

这个模式是否推广到所有领域——比如安全关键系统、科学发现——仍然是一个有严肃研究者在两边辩论的开放问题。OpenReview 上 2025 年的一篇综合分析(“From Bitter to Better Lessons”)提出了一个折中立场:专家知识不应该被视为 scaling 的对手,而应该被视为可以注入学习系统的数据。这把”编码知识 vs scaling”的二元对立消解为一个连续谱。

不可还原

两条路各自有不可替代的能力,也各自有不可修补的短板。关键洞察不是”谁更强”,而是”它们做的不是同一件事”。

符号系统的结构保证、组合可预测性、约束可执行性——这些不是因为神经网络还不够强大才需要的权宜之计。它们是一种特定的计算能力:对离散结构的精确操纵。无论神经网络变得多强大,你都不能从一个概率分布中”采样”出形式化证明的正确性保证。

神经网络的模式发现、泛化能力、从数据中自主学习——这些也不是因为符号系统还不够完备才需要的替代品。它们是另一种特定的计算能力:从高维连续空间中提取统计结构。无论符号系统变得多精巧,你都不能从一组人工编码的规则中”推导”出训练数据里未被预见的模式。

两种能力不可互相还原。

Minsky 和 Papert 在 1969 年试图证明联结系统不行——他们证明了单层感知器的数学局限性,但对多层网络的推测被证明是错的。Searle 在 1980 年用中文房间论证符号操纵不等于理解——这个论证至今有严肃的辩护者和反对者,但双方的争论实际上在于”理解”的定义,不在于两种系统的操作能力。

这些哲学争论很重要,但对工程师来说,有一个更迫切的问题。

如果两种表征各自覆盖对方做不到的能力区间,那今天坐在两者交汇点上的那个东西——大语言模型——到底算哪边?


延伸阅读

  • Rich Sutton, “The Bitter Lesson” (2019) — 七十年 AI 研究最具争议的三页纸。值得读的不只是论点本身,还有它引发的回应——特别是那些试图把”知识 vs 算力”的二元对立消解为连续谱的反驳。

概念与实体

本文涉及的核心概念与实体,在项目知识库中有更详细的资料:

  • 物理符号系统 — Newell & Simon 1975 年提出的核心假说,本文分析的起点
  • 系统性 — Fodor & Pylyshyn 的组合性论证,联结系统面临的核心挑战
  • 苦涩的教训 — Sutton 的历史观察:能吸收算力的方法最终胜出
  • Allen Newell — PSSH 共同提出者,符号 AI 的奠基人之一
  • Rich Sutton — 强化学习奠基人,Bitter Lesson 作者
§ 02

奇怪的中间物

如果符号系统和联结系统是两种不可互相还原的能力,那大语言模型算哪边?

答案是:两边都不完全算,但两边都沾了一点。这使它成了人工智能历史上最奇怪的存在。

符号介质上的联结架构

LLM 训练在自然语言上——人类发明的最古老、最普遍的符号系统。它的输入是 token 序列,输出也是 token 序列。从接口层面看,它在操纵符号。

但从内部看,它做的是纯联结主义的计算:注意力加权、残差流、非线性激活、分布式向量运算。没有任何一步是”取出一个符号,查找一条规则,执行一次推导”。每一步都是高维连续空间中的矩阵运算。

这种双重性不是偶然的。它源于 LLM 的训练目标:预测下一个 token。为了在这个目标上做得更好,模型必须在某种程度上”理解”自然语言的结构——语法、语义、语用、世界知识。但它”理解”这些结构的方式不是符号操纵,而是在参数空间中编码出某种能够在统计上近似这些结构的东西。

内部涌现的类符号结构

近年来的实证研究开始揭示这个”某种东西”具体长什么样。以下发现来自多个独立研究组,均已被复现或在同行评审会议上发表:

概念对应方向。 线性表征假说——目前最有影响力的关于 LLM 内部表征的理论框架——指出,语言模型中的高层概念对应激活空间中的线性方向。Park、Choe 和 Veitch 在 2024 年用反事实理论对此做了形式化:他们证明了一种非欧几何内积的存在,在这个内积下,因果可分离的概念自然正交。这不是”碰巧发现的”——它有数学结构。

空间和时间的编码。 Gurnee 和 Tegmark 在 Llama-2 中发现了编码地理空间坐标和历史时间顺序的线性表征,在从 7B 到 70B 的模型规模上稳定存在。模型内部有”空间神经元”和”时间神经元”——对不同提示措辞具有鲁棒性的、编码世界结构的参数。

跨语言共享的语义空间。 Anthropic 2025 年的 circuit tracing 研究在 Claude 内部追踪了从输入到输出的计算路径。发现:问”small 的反义词”,无论用英语、法语还是中文,模型内部激活的是同一组概念特征——先激活”小”和”对立”,再触发”大”,最后翻译成提问语言输出。不是三种独立的翻译,而是一个跨语言共享的语义层。

百万级可解释特征。 同样是 Anthropic 的工作,使用稀疏自编码器从 Claude 3 Sonnet 中提取出了数百万个可解释的单语义特征——包括抽象概念如”欺骗”、“谄媚”、“偏见”。多个独立研究组(Anthropic、Google DeepMind、EleutherAI)用不同的方法在不同的模型上复现了类似结果。

这些发现共同画出一幅图:LLM 内部确实形成了某种有结构的表征。不是随机的参数噪声,不是”统计拼贴”可以打发的。它们有几何形状(线性方向)、有跨模态的稳定性(跨语言共享)、有层次组织(从低层特征到高层概念)。

但它不是符号系统

如果就此下结论说”LLM 实现了符号 AI 的目标”,那就错了。这些类符号结构有三个关键限制:

不可访问。 LLM 的 API 给你的是 token——一串符号。模型内部可能”知道” Dallas 在 Texas、Texas 的首府是 Austin,而且可能是通过两步独立的知识拼接得到的——Anthropic 的 circuit tracing 直接观察到了这种多步推理的内部路径。但你看到的只有最终输出的 token 序列。你无法检查中间步骤的可靠性,无法在内部表征上施加约束,无法用它来做形式化验证。这不是当前技术的局限——这是 API 的架构事实。内部激活不是接口契约的一部分。

不稳定。 同一概念的特征激活依赖上下文。同一个事实查询在不同的对话背景下可能激活不同的特征组合,导致不同的推理路径和不同的答案。研究报告了同一推理任务在不同运行间最高 10% 的精度波动。符号系统没有这个问题——一条规则在任何上下文下的行为都是相同的。

不可靠地组合。 “模型内部有一个方向代表概念 X”不等于”模型能可靠地把 X 和 Y 组合起来”。2025 年的研究发现,LLM 在需要形式化组合推理的代码翻译任务上系统性地失败——恰恰因为它缺乏符号系统那种结构保证的组合性。

方法论的边界

这些实证发现本身也有边界。因果干预实验——用于验证发现的表征是否真正参与计算——可能将模型的激活推出训练分布,产生伪影。这意味着我们观察到的”结构”可能部分是探测方法引入的,而不完全是模型本身具有的。这些发现是目前最好的证据,但不是最终定论。

争论本身说明什么

Othello-GPT 的故事把这个张力演绎得最清楚。

2022 年,Li 等人训练了一个只在 Othello 棋谱字符序列上学习的 GPT 模型——它的训练数据只有”e3 d6 c4 f5…”这样的着手序列,没有棋盘图像,没有规则描述。然后他们发现模型内部涌现出了棋盘状态的非线性表征。2023 年,Neel Nanda 证明了一种更简单的线性表征也存在。

这看起来像是联结主义的胜利——模型从纯序列数据中自己发现了棋盘的空间结构。

但 2024 年,MATS 研究团队的机制分析给出了不同的解读:模型实际使用的算法不是一个统一的棋盘状态模型,而是一组独立的局部启发式规则——每条规则只关注棋盘的一小部分区域。

2025 年,Yuan 和 Søgaard 把实验扩展到七个不同架构的 LLM,发现所有模型都达到了高达 99% 的棋盘状态识别准确率——但在预测完整棋局序列时表现显著下降。

这个争论不需要被解决。它精确地刻画了 LLM 内部表征的性质:

  • 真实但局部——探针确实能检测到与真实状态高度一致的表征
  • 有结构但不完整——表征有几何形状,但不构成全局连贯的模型
  • 可探测但不可依赖——你能用研究工具找到它们,但不能在工程中把它们当作可靠的计算单元

??? info “三种”世界模型”的含义”

"世界模型"这个词在不同语境下有三种截然不同的含义:

- **强义**:一个连贯的、可更新的、支持反事实推理的因果模型(机器人学家和规划领域使用的含义)
- **表征义**:内部状态与真实状态变量系统性地共变(Li 等人和 Gurnee & Tegmark 测试的含义)
- **功能义**:能预测假设性行动的后果(规划任务需要的含义)

目前的证据支持表征义——LLM 确实发展出了与世界状态共变的内部表征。强义和功能义尚未被证实,且面对的反例更多(例如 LLM 在需要持续状态追踪的任务上的失败)。把这三种含义混为一谈,会让"LLM 有世界模型"这个判断看起来比实际证据支持的更强。

对 harness 工程师意味着什么

你面对的模型是一个奇怪的中间物:联结主义架构操纵着符号介质,内部涌现出了类符号的结构,但这些结构在你能触及的接口上不可见。

你能施加约束的唯一界面,是 token 进出的那个接口。

模型内部可能有一个方向代表”这段 JSON 的结构”,但你不能用那个方向来验证输出的结构正确性。模型内部可能有一个多步推理路径从问题到答案,但你不能检查那条路径的每一步是否可靠。

你能做的,是在 token 进出的边界上,用一种表征(符号化的结构约束)去塑造另一种表征(神经网络的概率分布)的行为。

这不是一个临时的工程妥协。这是两种表征之间的结构性关系——你在做翻译。


延伸阅读

  • Anthropic, “On the Biology of a Large Language Model” (2025) — 用 circuit tracing 直接在 Claude 3.5 Haiku 内部追踪了十种行为的计算路径。不是关于”模型能做什么”的评测,而是关于”模型怎么做”的解剖——读完后你对”LLM 内部有结构”这个判断会有非常具体的直觉。

概念与实体

本文涉及的核心概念与实体,在项目知识库中有更详细的资料:

  • 线性表征假说 — LLM 内部表征的核心理论框架:概念对应激活空间中的线性方向
  • Othello 世界模型假说 — 三代实验的证据链和争论:连贯模型 vs 启发式包
  • 亚概念层 — Smolensky 的三层分析框架:联结主义计算运作的正确描述层次
  • 机制可解释性 — 拆解神经网络内部运作的研究方法和最新进展
§ 03

翻译层

LLM 内部的类符号结构对你不可见,而你的系统需要结构化的、可验证的、可组合的输出。

中间发生了什么?

翻译发生了。

你已经在做翻译

拆开一个典型的 LLM agent 系统,看看里面的信号流。

你写了一个 prompt template,把结构化的任务描述(变量名、条件逻辑、格式要求)编码成自然语言文本,喂给模型。这是一次翻译——从符号表征到神经网络能处理的序列表征。

模型处理完毕,输出一串 token。你用 JSON parser 解析它,提取出结构化数据,校验字段类型和取值范围,然后把结果传递给下游系统。这是另一次翻译——从神经网络输出的序列表征回到符号表征。

两次翻译,一进一出。每一次调用都经过这个循环。

但这只是最表层的翻译。深入看,harness 工程师做的每一件事几乎都是在两种表征之间转换:

工具 Schema。 当你为一个函数定义 JSON Schema——指定参数名、类型、枚举值、必填字段——你在写一份符号契约。OpenAI 的 strict mode 将这份契约编译成上下文无关文法(CFG),在 token 生成的每一步屏蔽不符合语法的 token。Anthropic 的结构化输出将 schema 编译成语法,“在推理过程中主动限制 token 生成”。这不是比喻——这是字面意义上的符号语法在 token 级别控制神经输出。

结构化输出与约束解码。 Outlines、Guidance、XGrammar、llguidance——这些工具做的是同一件事:把形式语法(正则表达式、上下文无关文法、JSON Schema)施加在神经网络的概率分布上。在每一步解码时,计算哪些 token 是当前语法状态允许的,屏蔽其余的。形式语言理论(符号世界的产物)直接嵌入了推理过程(联结世界的领地)。

Prompt Template。 一个带有变量插槽、条件分支、循环展开的 prompt 模板,本质上是一个生成自然语言文本的符号程序。它的输入是结构化数据,输出是神经网络的输入序列。Jinja2 模板引擎不关心语义——它做的是纯粹的字符串操纵,纯粹的符号处理。

代码生成与执行。 当 LLM 生成一段 Python 代码并在沙箱中执行,这是最显式的神经-符号管道。模型用联结计算产出了一个符号制品(源代码),然后这个制品在一个完全确定性的环境(解释器)中运行。两个世界在这里交接得最干净:模型的不确定性在代码生成阶段,但一旦代码被写出,后续的执行是精确的。

编排状态机。 LangGraph 用有向图建模 agent 的控制流:节点是处理步骤,边是带谓词的状态转移,全局状态是一个结构化的字典。这是教科书级别的符号控制流——有限状态机包裹着神经计算。

检索增强生成(RAG)。 查询构造、索引查找、过滤条件——这些是符号操作。查找结果被注入 prompt——进入神经计算。最终输出再被解析为结构化数据——回到符号世界。三段式翻译。

一种已被分类但未被命名的模式

2020 年,Henry Kautz 在 AAAI 大会上提出了神经符号集成的六类分类法。六种类型按耦合程度排列,从最松到最紧:

类型名称描述
Type 1Symbolic Neural标准神经网络,输入输出是符号(token in, token out)
Type 2Symbolic[Neural]符号系统调度神经组件
Type 3Neural | Symbolic神经感知喂入符号推理器
Type 4Neural: Symbolic → Neural符号系统生成神经网络的训练数据
Type 5Neural{Symbolic}符号规则内嵌于神经架构
Type 6Neural[Symbolic]符号推理嵌入神经网络内部

生产环境中占主导的是 Type 2 和 Type 4。Type 2 就是上面列举的所有 harness 工程——符号系统(schema、状态机、语法约束)调度神经组件(LLM)。Type 4 就是合成数据管道——用符号化的规则生成训练数据来改善神经网络的行为。

Type 5 和 Type 6——把符号推理直接嵌入神经架构内部——仍然主要是学术研究。核心瓶颈是联合训练问题:怎么对离散的符号操作做梯度下降?这在数学上没有通用解。

这意味着当前的实际做法和可预见的未来做法都是 Type 2:两个系统保持各自的计算方式,通过一个接口层交互。

那个接口层就是 harness。

翻译层

这个模式在文献中有很多名字。框架开发者叫它 orchestration。中间件工程师叫它 middleware。学术文献叫它 symbolic scaffolding。

但没有人把这些叫法统一起来,也没有人说出那个最直接的描述:你在 harness 层做的每一件事——定义工具 schema、编写 prompt 模板、解析结构化输出、管理对话状态、验证执行结果——都是同一种工作。

你在两种表征之间做翻译。

从符号到联结:把结构化的约束、任务描述、工具定义编码成 token 序列,让神经网络能处理。

从联结到符号:把神经网络输出的 token 序列解析为结构化数据,让确定性系统能消费。

Harness 不是”胶水代码”。它不是”把 API 调用串起来的管道”。它是两种根本不同的表征方式之间的翻译层——一种擅长结构但不擅长发现的表征,和一种擅长发现但不擅长结构的表征之间的双向转换器。

这个角色是结构性的,不是偶然的。只要你使用的模型是联结架构(神经网络),而你的系统需要符号性质的保证(结构正确性、类型安全、约束满足),你就需要一个翻译层。模型变强不会消除这个需求——它会改变翻译的难度和可靠性,但不会消除翻译本身。


延伸阅读

  • Henry Kautz, “The Third AI Summer” (AAAI 2020 Engelmore Memorial Lecture) — 神经符号集成的六类分类法。在这个分类的视角下重新审视你的 harness 代码,你会发现自己一直在做 Type 2 集成——只是从来没人这么叫它。

概念与实体

本文涉及的核心概念与实体,在项目知识库中有更详细的资料:

  • 神经符号 AI — 两种计算范式集成的研究领域,Kautz 六类分类法的上下文
  • 约束解码 — 将形式语法施加在神经网络概率分布上的推理时技术
  • 结构化输出 — OpenAI/Anthropic 的 schema 编译与语法约束实现
  • Harness Engineering — 本文命名的翻译层角色的工程上下文
§ 04

翻译的代价

翻译层不是免费的基础设施。每一次在两种表征之间转换,都有一个代价——有时候小到可以忽略,有时候大到能摧毁系统。

如果你熟悉电气工程,“阻抗失配”这个概念会帮助理解:当信号从一种传输介质进入另一种传输介质,如果两者的特性阻抗不匹配,信号会被反射、衰减、失真。越是高频的信号——越精细的信息——受到的影响越大。

符号表征和联结表征之间的翻译也有类似的特征。“把这段话总结一下”是一个低频信号——即使翻译有损耗,输出通常还是可用的。“按照这个 JSON Schema 返回一个嵌套结构,每个字段都必须是正确的枚举值”是一个高频信号——任何一个 token 的偏差都会导致整个结构无效。

五种代价,每一种都有来自生产系统的证据。

Schema 违反

这是最直观的翻译损耗:你给模型一份符号契约(JSON Schema),模型输出的 token 序列不符合契约。

在 OpenAI 引入 structured outputs 之前,模型在复杂提取任务上的 schema 违反率约在 8-12% 之间(取决于任务复杂度和评估基准)。Strict mode 将这个数字降到了 0.1% 以下——跨越了近两个数量级。

但它不是免费的。Strict mode 的工作原理是把 schema 编译成形式语法(OpenAI 使用上下文无关文法,其他工具如 Outlines 使用有限状态机),在每一步解码时屏蔽当前语法状态不允许的 token。这需要额外的推理时间来维护语法状态,需要工程复杂度来处理 schema 编译,还有一个更微妙的代价——后面会讲到。

换句话说,神经系统的输出空间远大于符号约束允许的空间。压缩这个空间需要在推理时间和工程复杂度上付出。

语义漂移

符号约束写在 system prompt 或工具定义里,位于上下文的开头。但 LLM 的注意力不是均匀的。

Chroma 在 2025 年测试了 18 个前沿模型,发现每一个模型都在上下文变长时出现性能退化。Du 等人的一项独立研究进一步表明,即使把无关的 token 替换成空白字符——物理上没有干扰信息——模型性能仍然下降了 14% 到 85%。这说明退化不完全是因为干扰信息的竞争,而是注意力本身在长上下文中的稀释。

Lost-in-the-middle 效应进一步恶化了这个问题:位于上下文中段的信息被检索的概率显著低于头尾。当对话足够长时,system prompt 中精心编写的工具使用规则和输出格式要求会逐渐”褪色”。

说到底,符号约束在上下文中也只是文本——它和对话内容、检索结果、用户输入共同竞争有限的注意力资源。约束不是被”取消”了,而是被”稀释”了。

工具幻觉

当模型需要调用工具时,它面对的是一组用自然语言描述的函数签名和参数 schema。它需要选择正确的函数,填入正确的参数值。

研究发现模型在这个翻译环节的失败是多样的:它会编造不存在的工具名称,捏造 schema 中没有定义的参数。NESTFUL 基准测试发现,GPT-4o 在嵌套 API 调用序列上的完全匹配准确率只有 28%——不到三成。

另一项针对 agent 场景的研究观察到一种更微妙的退化模式:模型在正确开始执行后中途崩溃——以正确的推理和有效的工具选择开始任务,但执行过程中频繁出现性能下降,包括畸形的工具调用、JSON 输出结构的丢失、或遗忘早先的决策。

问题出在哪?工具 schema 对神经系统来说就是上下文中的一段文本。它”知道” schema 的方式和”知道”一段对话历史的方式没有本质区别——都是从 token 序列中提取的统计关联。但 schema 要求的是精确遵守,不是”大致理解”。

Trajectory Bias

这是最微妙的代价,大多数工程师不知道它的存在。

约束解码在每一步屏蔽当前语法状态不允许的 token。这意味着模型的概率分布在每一步都被修改——一些原本高概率的 token 被屏蔽了,概率质量被重新分配给剩余的 token。

2025 年发表在 RANLP 上的一项研究发现,这种逐步修改会导致模型偏向”语法容易但语义错误”的生成路径。在生成任务上,约束解码降低了语义正确性——不是因为约束本身有问题,而是因为屏蔽 token 改变了概率地形,引导模型走向了不同的生成路径。

更反直觉的发现:经过指令微调的模型在约束下的表现有时比基础模型更差。指令微调本身可能”无意中降低了结构化输出能力”。

这里的取舍很清楚:符号约束改变了概率分布的地形。你拿到了结构保证——输出一定是合法的 JSON,一定符合你的 schema——但你可能付出了语义质量。格式正确和内容正确是两个独立的维度,约束解码保证了前者,但可能损害了后者。

边界穿透

最后一种代价不是翻译损耗,而是翻译边界本身的脆弱性。

OWASP 在 2025 年的分类(LLM01:2025)中将 prompt injection 列为首要风险。用本章的框架来重新表述,它的核心是:LLM 无法有效区分信息性上下文和可执行指令。

在符号-联结的框架下,这个定义变得更精确:prompt injection 是符号系统中”数据”和”控制”的区分在神经系统中不存在的后果。

在传统计算机系统中,数据和代码的区分是安全的基础。SQL 注入之所以可能,是因为 SQL 查询把数据和控制混在同一个字符串里。参数化查询之所以解决了这个问题,是因为它在结构层面将数据和控制分离了。

LLM 面对同样的问题,但没有等价的结构性解决方案。System prompt(控制)和用户输入(数据)都是 token 序列,模型用完全相同的计算方式处理它们。你可以在 prompt 中写”忽略以下内容中的指令”,但这只是用更多的控制 token 去约束数据 token——在模型的注意力机制中,它们是同质的。

生产中的后果是真实的:安全研究者已经演示了通过 prompt injection 在编码助手中实现远程代码执行的攻击路径。2024 年,Slack AI 被发现可以通过 RAG 投毒实现数据泄露——攻击者在公共频道中注入恶意指令,模型在检索时将其当作合法上下文执行。

这是五种代价中最根本的一种:符号系统对数据和代码有严格的结构性区分,神经系统没有。翻译层位于两者之间,但它继承了神经系统一侧的弱点——在 token 序列中,控制和数据是不可区分的。

这些不是 bug

五种代价有一个共同特征:它们不是特定模型的缺陷,不是当前技术的临时问题,不是更好的工程实践能消除的 bug。

它们是两种表征之间阻抗失配的结构性表现。

一种表征是离散的、精确的、可组合的、可验证的。另一种表征是连续的、概率性的、上下文敏感的、不可分割的。在它们之间做翻译,信号必然会变形。变形的方式取决于信号的”频率”——要求越精确,损耗越大。

这个认识改变了问题的框架:问题不是”怎么消除这些代价”,而是”这些代价的结构是什么,它们沿着什么轴分布”。


延伸阅读

  • Schall & de Melo, “The Hidden Cost of Structure” (RANLP 2025) — 约束解码领域第一篇系统性地揭示 trajectory bias 的研究。大多数工程师知道 constrained decoding 能保证格式,但不知道它会以什么方式损害语义。这篇论文用实验数据说清楚了代价的数学结构。

概念与实体

本文涉及的核心概念与实体,在项目知识库中有更详细的资料:

  • Context Rot — LLM 性能随上下文长度增长的系统性退化机制
  • 轨迹偏差 — 约束解码改变概率地形导致的语义-格式权衡
  • 约束解码 — 形式语法施加于神经输出的推理时技术
  • LLM 安全 — 包括 prompt injection 在内的 LLM 安全攻防
§ 05

张力轴

五种代价看起来各不相同——schema 违反是格式问题,语义漂移是注意力问题,工具幻觉是理解问题,trajectory bias 是概率问题,边界穿透是安全问题。

但回看它们各自的结构,一个模式浮现出来。

同一根轴

Schema 违反发生在约束不够严格的时候。加上 strict mode——编译 schema 为形式语法,在每步屏蔽非法 token——违反率从 8-12% 降到 0.1% 以下。问题看似解决了。

但 trajectory bias 恰好是 strict mode 带来的。约束越严格,屏蔽的 token 越多,概率地形的变形越大,模型被引导到语法容易但语义错误的路径上的风险越高。

语义漂移发生在符号约束(system prompt、工具定义)在长上下文中被”稀释”的时候。一个本能的反应是加更多的提醒——在对话中间插入约束重述。但更多的约束 token 意味着更多的注意力竞争——你在用更多的符号来对抗符号的稀释,而注意力是零和的。

工具幻觉发生在模型对符号接口的”理解”不够精确的时候——它把 schema 当作普通文本理解,而不是当作精确契约遵守。

边界穿透发生在数据和控制的符号区分在神经系统中根本不存在的时候——这不是约束能解决的问题,因为约束本身也是 token。

五种代价是同一根轴上不同位置的症状。

张力轴

符号约束的严格性 ←——————→ 神经生成的自由度

约束越严格,结构保证越强——输出格式一定合法、类型一定正确、取值一定在范围内。但神经系统的能力空间被压缩:屏蔽的 token 越多,模型能走的路径越少,trajectory bias 越显著。

约束越宽松,神经系统越自由——模型能充分利用它的概率分布来寻找最优的语义路径。但输出的结构可靠性下降:schema 违反、工具幻觉、格式错误的概率上升。

这根轴的两端不是”好”和”坏”——是两种不同的代价。

不是一个待解决的问题

一个自然的期待是:模型变强了,这根轴会消失。未来的模型会同时做到格式正确和内容正确,不需要在两者之间取舍。

模型变强确实会让这根轴上的”可用区间”变宽。三年前,让 GPT-3.5 输出合法 JSON 需要大量的 prompt 工程和重试逻辑。GPT-4o 的 strict mode 把 schema 违反率降到了 0.1% 以下。这是真实的进步——可用区间确实在扩大。

但张力轴本身不会消失。

原因不在于模型不够强大,而在于张力的来源是两种表征之间的结构性差异。符号表征是离散的——一个 JSON 字段要么是有效的枚举值,要么不是。联结表征是连续的——概率分布不知道”有效”和”无效”的边界在哪里。只要你需要从连续的概率空间中采样出符合离散约束的输出,你就在做一次表征转换。只要做转换,就有损耗。

Trajectory bias 是这个不可消除性的最清晰证据。它不是模型的”能力不足”——它是在推理时改变概率分布的必然数学后果。只要你屏蔽了任何一个 token,你就改变了条件概率,你就改变了后续所有 token 的生成路径。这不是可以通过训练更好的模型来修复的——这是约束解码的数学结构。

更强的模型会让 trajectory bias 的影响更小(因为模型的”正确路径”有更高的初始概率,屏蔽不太可能的 token 对它的影响更小)。但”更小”不是”消失”。只要约束存在,路径就被改变了。

另一个维度的正交

这根张力轴和本系列第一章揭示的那个正交分解不矛盾——它是在另一个维度上的分析。

第一章说的是:agentic system 的输出是两股力的合成——模型能力和 harness 能力。两股力正交,harness 方向是你能控制的、不会被模型进步吞噬的方向。

本章说的是:在 harness 内部——在你能控制的那个方向上——有另一个结构性的取舍。你在设计翻译层时,每一个决策都在张力轴上选取一个位置:用多严格的 schema?用多紧的约束解码?给模型多少自由度来组织输出?

两个分析不矛盾,因为它们描述的是不同的东西。第一章的正交分解回答”你的力该往哪个方向使”。本章的张力轴回答”在那个方向上,你面对的地形长什么样”。


延伸阅读

  • Chroma Research, “Context Rot” (2025) — 对 18 个前沿模型做的系统性上下文退化测试。它揭示的不是某个模型的缺陷,而是注意力机制本身的结构性限制——这正是张力轴中”语义漂移”那一端的实证基础。

概念与实体

本文涉及的核心概念与实体,在项目知识库中有更详细的资料:

§ 06

符号与联结之道

五篇文章走下来,一个结构浮出水面。

回到反馈环路

本系列第二章讲控制论——agent 系统的反馈环路:观察→判断→行动→观察。当时的焦点是环路的结构和稳定性。

现在,从翻译层的视角重新看这个环路。

Observer 的工作是什么?它读取 LLM 的输出(一串 token),解析为结构化数据(JSON、函数调用、状态标志),然后更新系统对当前状态的认知。这是一次联结→符号的翻译。

Controller 的工作是什么?它根据当前状态(结构化数据)做出决策(下一步该干什么),然后将决策编码为 prompt 发送给模型。这是一次符号→联结的翻译。

反馈环路的每一圈都经过两次表征转换。OCP 三角(Observer-Controller-Plant)中,Observer 和 Controller 不只是在”处理信息”——它们在做翻译。Plant(LLM)接收联结表征、产出联结表征;外部系统消费符号表征、产出符号表征。Observer 和 Controller 是这两个世界之间的双向翻译器。

这意味着翻译层不是反馈环路之外的附加物。它是反馈环路的组成部分。环路的质量——响应速度、判断准确性、行动有效性——部分取决于翻译的质量。

翻译损耗与熵

本系列第三章讲熵——长链推理中的信息衰减。当时的焦点是”无序度自然增加”这个热力学类比。

翻译层给熵增机制加了一个此前未被命名的来源。

每次从联结到符号的翻译,都可能注入噪声:解析错误(JSON 畸形)、语义损失(模型”想说”的和 schema 能表达的不完全重叠)、信息丢弃(被约束屏蔽的 token 可能携带了有意义的不确定性信号)。

每次从符号到联结的翻译,也可能注入噪声:指令被误解(prompt 的意图和模型的解读之间的偏差)、上下文污染(先前对话轮次的残余影响后续翻译的准确性)、约束稀释(system prompt 中的规则在长上下文中被”遗忘”)。

长链推理为什么会退化?除了第三章讲的信息论机制之外,还有一个原因:每多一步推理,就多一次或多次表征转换,每次转换都有翻译损耗。链条越长,累积的翻译噪声越大。

翻译层的分形

本系列第五章讲分形——自相似结构在不同尺度上重复。

翻译层也有这个性质。

在单个 tool call 的尺度:schema 定义约束(符号)→ 模型生成输出(联结)→ 解析为结构化数据(符号)。一次微型翻译循环。

在单个 agent 的尺度:prompt 编码任务(符号→联结)→ 模型推理并输出(联结)→ harness 解析、验证、决策(联结→符号)→ 组装下一轮 prompt(符号→联结)。一次完整的翻译循环。

在多 agent 编排的尺度:orchestrator 将任务分解为子任务(符号操作)→ 分发给各 agent(每个 agent 内部是一个翻译循环)→ 收集结果并聚合(符号操作)→ 可能再次分发。翻译循环嵌套在翻译循环里。

三个尺度,同一个结构:符号→联结→符号的转换,在每一层重复。这不是巧合——它和第五章讲的 agentic 系统架构的自相似性来自同一个根源:agent 系统在每个尺度上都需要让符号化的控制逻辑和联结化的生成能力交互,而交互的接口在每个尺度上都面临同样的阻抗失配。

因果纪律找到了它的框架

回到本章的起点——第六章结尾留下的载体问题。

因果纪律需要什么?它需要表达因果结构(因果图、方向性、do 算子)——这需要符号表征。它需要从数据中发现因果关系的候选者(“下雨和路滑可能有因果关联”)——这需要联结系统的模式发现能力。它需要验证这些候选者是否与数据中的因果结构一致——这又需要符号化的统计检验。

因果纪律的载体不是符号系统,也不是神经网络。是它们之间的翻译。

LLM 从文本中提取因果知识的语言表达——“下雨导致路滑”。这是联结系统做发现。Harness 将这些表达转化为形式化的因果假说——一条有向边从”雨”指向”路滑”。这是翻译层做转换。形式化工具验证这个假说是否与观测数据一致。这是符号系统做验证。三者协作,不是任何一方独立完成。

第六章的那个困境——“一个擅长结构但不擅长发现,一个擅长发现但不擅长结构”——现在有了一个精确的框架。不是让某一方变得既擅长结构又擅长发现,而是让两方各做各的事,用翻译层连接它们。

问题的形状

本章没有给出答案。

它揭示的是一个结构。

两种表征——符号的和联结的——不可互相还原。它们各自覆盖对方做不到的能力区间。LLM 是一个联结架构操纵着符号介质的奇怪中间物,它内部涌现了类符号的结构,但这些结构在你的工程接口上不可见。

Harness 工程师每天做的事情,是在这两种表征之间翻译。翻译有代价——五种结构性的阻抗失配。这些代价沿一根张力轴分布:结构保证在这一端,生成自由度在那一端。

这不是一个等着被解决的问题。这是问题的形状本身。

看清这个形状,你面对每一个具体的工程决策时,至少知道自己在取舍什么。你知道加上 strict mode 拿到了什么(结构保证)、付出了什么(trajectory bias)。你知道给模型更多自由度拿到了什么(语义质量)、冒了什么险(格式失败)。你知道你写的每一行 harness 代码——每一个 schema 定义、每一条 prompt 规则、每一个解析逻辑——都是在张力轴上选取一个位置。

位置没有对错。只有是否清楚你选了什么,以及为什么。


延伸阅读

  • Fodor & Pylyshyn, “Connectionism and Cognitive Architecture: A Critical Analysis” (1988) — 三十多年前对联结主义最严肃的哲学批判。值得读不是因为它的结论(联结系统不能解释系统性),而是因为它提出问题的方式——“一个系统用什么方式表征知识,决定了它能做什么样的计算”。这个洞察在 LLM 时代比 1988 年更有力。

概念与实体

本文涉及的核心概念与实体,在项目知识库中有更详细的资料:

  • Harness Engineering — 翻译层的工程上下文:控制论框架中的 Observer 和 Controller
  • 误差级联 — 翻译损耗在长链推理中的累积效应
  • 组合性 — 符号系统的核心优势,联结系统的持续挑战
  • Jerry Fodor — “表征方式决定计算能力”这一洞察的主要提出者