解读 · 符号 AI · 科学与数学
什么是符号流?
面向 AI 的确定性流水线:符号流是什么、由哪些更早的思想构成、为什么一串模型调用不算符号流、重放与误差累积背后的数学,以及语言模型可以坐在哪个位置。
符号流(symbolic flow)是这样一种流水线:其中每一步都是取自封闭词汇表的、明确且有类型的操作,因此从输入到输出的路径可以被精确重放、逐步审视,并对照不变式加以检验。没有哪一步会去猜:当某一步无法给出可检验的结果时,整条流会拒绝,并说明原因。
Perslis Research 的术语。“符号流”是我们为这套方法所起的名字,上面的定义也出自我们。其中的要素并不新;§2 列出了它们各自的来源。
今天的大多数 AI 流水线是一串模型调用。每一次调用大多数时候都对,整条链却在相当大比例的运行中出错,而且没有任何东西标出哪些运行是错的。符号流反其道而行之:它的步骤取自一套固定的、有类型的操作词汇表;每一步都是确定性的;每个输出都带着来源并经过检验;一步若无法被检验,就带着理由拒绝,而不是返回一个看似合理的值。语言模型可以用这套词汇提议一条流,但它永远不会执行一个猜测。换来的是可以证明、而不必寄望的性质:精确重放;因为每一步都成立、所以对整条流都成立的不变式;以及以拒绝而非错误答案的形式浮现的错误。
1. 什么是符号流?
同一个想法有时也被称为符号流水线(symbolic pipeline)、确定性 AI 流水线或可验证的 AI 工作流;我们使用符号流这个说法。一条流水线要算作符号流,其中每一步都必须满足四件事:
- 它有名字。它是一个操作,取自在写这条流之前就已固定的封闭词汇表。不存在“运行这段代码”的步骤,也不存在自由文本的步骤。
- 它有类型。它声明自己接受什么、返回什么;类型对不上的流根本不会运行。
- 它是确定性的。相同的输入,每次都返回相同的输出。没有任何采样。
- 它被检验,并且可以拒绝。它的输出要对照一个明确写出的条件加以检验;若条件无法满足,它就返回一个说明理由的拒绝,这个拒绝会代替答案一直传到流的末端。
由此得出用户真正关心的三项性质:一次运行可以被精确重放、可以被逐步审视(由具名操作组成的轨迹本身就是解释),也可以对照不变式检验,而不变式只需对每一步证明一次(§5)。
这个术语是谁提出的。Perslis Research 把“符号流”作为这套方法的定义性术语来使用。据我们所知,它在 AI 工程中此前没有公认的含义;在数学里,这个短语出现在符号动力学中,含义与此无关。这里的“符号”与符号 AI 中的用法相同:各步骤操作的是明确的、人能读懂、有确定含义的符号,而不是习得的权重。
2. 它建立在什么之上
每一个要素都有很长的历史。这个术语添加的是组合本身——把它们用在 AI 系统上,并把拒绝当作一等结果。按大致的时间顺序,我们欠下的债如下:
- 程序断言与霍尔逻辑。Robert Floyd 在 1967 年把断言附加到流程图上 [2];Tony Hoare 在 1969 年将其发展为一个公理系统,写作 ,意思是“若程序 运行前 成立,则它结束时 成立”,今天通常写作 [1]。他的复合规则把两个三元组串成一个,这正是 §5.3 中的证明。
- Unix 管道。Doug McIlroy 在 1964 年的一份备忘录中主张“像接花园水管那样”连接程序;管道在 1973 年随 Unix 第三版到来。1978 年《贝尔系统技术期刊》(Bell System Technical Journal)的 Unix 专刊前言用两条准则概括了这种纪律:“让每个程序只做好一件事”,以及“预期每个程序的输出都会成为另一个尚不知道的程序的输入” [5]。符号流保留了这种组合方式,并补上字节流所缺的东西:类型,以及一种定义明确的失败方式。
- 数据流编程。Jack Dennis 1974 年的数据流过程语言把程序看作一张算子图,值在其中流动,而过程“总是定义值的函数式变换” [3];Johnston、Hanna 与 Millar 综述了此后的发展 [4]。对每一步的函数式理解,正是重放得以成立的原因。
- 证明流水线。在 LCF 证明助手中 [9],任何策略(tactic)都可以提议一个证明,但只有一个很小的推理规则内核能够构造出定理。谁都可以提议;只有受信任的内核能够准入。符号流在语言模型与其地板之间建立的,正是这种关系(§6)。
- 工作流引擎与 ETL。抽取—转换—加载(ETL)作业和工作流引擎运行的是任务图;van der Aalst 等人整理了它们的控制流模式 [6]。区别在于一个步骤被允许是什么(§8)。
- 编译器遍及其验证。编译器是一连串作用于中间表示的遍(pass)。CompCert 在 Coq 中证明每一遍都保持程序的含义,因此整个编译器也保持 [7]。翻译确认(translation validation)则改为用一个独立的确认器检查每一次具体运行 [8]。这两条路线都出现在 §5,分别是定理 2 和定理 4。
这些都不是为这样一种流水线设计的:它最有能力的组件——语言模型——同时也是最不可预测的组件。符号流要应对的正是这种局面。
3. 为什么需要符号流:智能体链的问题
构建多步 AI 系统的常见方式是提示链:每一步交给语言模型,每个输出喂给下一个提示。Wu、Terry 与 Cai 以 AI Chains 为名研究了这种模式,发现它提升了用户感受到的透明度与可控性 [10]。LLM 智能体走得更远:在 ReAct 这类循环中,模型把推理与行动交织在一起,并自己选择下一步 [11]。
相比单个提示,链式调用是真正的进步。但它仍留下三个问题,单步质量再高也消除不了:
- 误差会累积。每一步都是一次随机变换。十个各自有 95% 正确率的步骤,若没有哪一步能修复先前的错误,合在一起只有大约 60% 的时候是对的(命题 3)。
- 错误是无声的。一个错误的中间值,和正确的值一样是格式相同的流畅文本,所以第 2 步的错误若会浮现,也是以第 10 步的一个自信答案的形式。
- 无法重放。采样、模型更新和不断变化的上下文,意味着同一输入不一定两次产生同样的运行;而无法复现的决策也就无法审计。
更深层的问题在于性质存在于哪里。我们的预印本 《编排缺口》 [12] 论证:对每个模型证明的性质(例如拒绝有害请求),并不能组合成一个可以挑选并编排这些模型的系统的性质——权力在编排链上。链级不变式需要一个位于所有模型之外的层:确定性的、与模型无关的、感知来源的、可审视的。符号流让链条本身以一种可以陈述并证明这类不变式的方式构建。
4. 符号流的构成
六个部分,每一个都是你可以通过阅读这条流来核查、而不必信任其作者的性质。
- 封闭的操作词汇表。一个步骤能做的事是固定且有限的,在任何流被写出之前就已写好。一条流把带固定参数的词汇项组合起来,例如
filter(approved)或sum(amount);需要词汇表之外东西的问题会被报告为不可映射,而不是被近似。 - 有类型的输入与输出。每个操作都声明其输入和输出类型,流在运行前先做类型检查。
- 确定性。每个操作都是数学意义上的函数:没有采样,没有隐藏的时钟,步骤中途也不读网络。外部值以固定下来的输入进入,而不是在运行中发起调用。
- 每个输出都带来源。一个输出说明自己来自哪些输入、经过了哪些步骤。Perslis 地板的答案带着它的推导,而这正是工具被准入之前受检的那同一条字符串(§6)。
- 每一步都检验不变式。每一步对其输出都有一个明确写出的条件,在该步运行时检验;不满足条件的输出不会被传下去。
- 以拒绝代替猜测。拒绝是一种有类型的结果,不是异常,也不是空字符串。它会说明理由,例如无证据、不可映射或不变式失败,并原样穿过其余步骤,因此一条流的结局要么是一个经过检验的答案,要么是它停下的位置与理由。
图 1. 错误去了哪里。在链中,出错的一步把一个看似合理的值传下去(0.95 的四次方 ≈ 0.81)。在流中,每个操作都有类型、每个输出都受检验;检验失败即以具名拒绝的形式离开这条流。
5. 数学
这里的数学没有一样是新的。重点是说明哪一项保证来自哪一个假设,这样你就知道去掉某个假设时会失去什么。
5.1 设定
流的输出与轨迹为
其中拒绝原样传递。当每个 都是函数时,即对每个输入恰有一个值(一个结果或一个拒绝),称这条流是确定性的。
5.2 重放
证明是平凡的;内容全在假设里。只要有任何一步做了采样,定理就不再适用:温度不为零的模型调用、读取时钟或网络、遍历无序集合。重放是审计得以可能的前提:要核查一个过去的决策,就再运行一次。正如 Perslis 国防运行时所说,一个非确定性的安全层无法回放,而无法回放的层无法被认证(defense/runtime)。
5.3 可组合的不变式
这是一个霍尔三元组 [1],其中拒绝总是可接受的结果:一步可以拒绝,但它返回的任何东西都满足 。
这就是把霍尔的复合规则应用 次,与 CompCert 的论证同形:对每一步证明一次的性质,对整条流水线成立 [7]。各步骤可以逐个验证,并在任何类型与不变式对得上的流中复用。
这就是“每一步都检验不变式”的形式含义:要得到定理 2,你不必证明某个操作是正确的,只需要一个可判定的不变式,以及愿意拒绝。保证的强度只取决于 说了什么(§10)。
5.4 未经检验的链中的误差累积
现在去掉确定性与检验。把一条链建模为 个随机步骤,令 表示第 步产生正确输出这一事件。
这里没有假设独立性:每个 都以之前的步骤为条件。对十个各自有 95% 正确率的步骤,
也就是十次运行中有四次是错的,而且没有标记告诉你是哪四次。
| 单步正确率 q | 步数 k | q 的 k 次方 | 解读 |
|---|---|---|---|
| 0.99 | 10 | 0.904 | 大约十次中错一次。 |
| 0.95 | 10 | 0.599 | 十次中错四次。 |
| 0.95 | 20 | 0.358 | 多数运行是错的。 |
| 0.99 | 50 | 0.605 | 长链抵消了非常好的单步。 |
| 0.99 | 100 | 0.366 | 由好步骤组成的长链通常会失败。 |
“不修复”这一假设是模型,而非定律:若后面的某一步能发现错误,这个乘积就是下界。但修复步骤本身就是一次检验,这正是下一个结果。
5.5 可靠的检验把错误变成拒绝
保留随机步骤,但在每一步之后放一个校验器 。它看到该步的输入与输出,接受或拒绝;拒绝即成为一次拒绝结果。若在输入正确时,该步输出错误且 接受它的概率至多为 ,称 是 -可靠的。
而在校验器精确(每个 )时,每次运行的结局要么是正确答案,要么是拒绝。
这个结果很容易被夸大。校验器并不会让链变得更有能力:若校验器同时接受每一个正确输出,流给出答案的概率仍是 ,因此十个 0.95 的步骤只有 59.9% 的时候给出答案,40.1% 的时候拒绝。改变的是这 40.1% 的去向:不再是看起来正确的错误答案,而是注明步骤与理由的拒绝。若各次尝试相互独立,重试被拒绝的步骤会有帮助:在 时,两次尝试使单步达到 ,端到端为 。这个数字是乐观的,因为对同一提示重新采样的模型往往会重复自己的错误;安全性来自可靠性,而不是重试。
我们在内部测量过这一效应:在一项激酶识别任务中(什么是失效安全模型?),让模型的猜测当作事实计入,会把正确识别率从 1.000 降到 0.753;只准入经过核验的事实,则保持在 1.000 [14]。
6. 模型在流中的位置
符号流并不排斥语言模型,而是固定它的角色。模型可以提议一条流;它永远不会执行一个猜测。提议用封闭词汇表写成,因此可以在任何东西运行之前被检验;一旦被准入,这条流在没有模型的情况下运行。
Perslis 符号地板(问一次,答案归你。)[13] 是公开的例子。编写一个工具这件事本身就是一条流,模型恰好只占其中一步:
描述 → 提议规格 → 准入或拒绝 → 保留工具
- 描述。你用自然语言把问题描述一次(“已批准发票的总金额”)。工具会打印一段提示,其中带着你的列名和封闭的原语词汇表。
- 提议。模型组合出一份规格。它不是代码,而是一条流水线,例如
rows → filter(approved) → sum(amount)。模型只能在词汇表内组合,没有通往 Python 的逃生口。 - 准入或拒绝。地板通过一组固定的检查(按公开页面所述,共七项)决定这份规格是否可准入。模型写出的任何东西,在被准入之前都不会运行。
- 保留。被准入的规格经签名、晋升,并从你自己的机器上通过 MCP 提供服务,
model_calls: 0。
该页面列出了三种拒绝,每一种都是 §4 的实例:它不会猜(返回 NO_EVIDENCE,而不是一个看起来合理的数字);它不会运行未经准入的工具(手工改动过的规格会被拒绝并被指名);它不会凭空造出一个领域(地板无法核验的问题会被报告为不可映射)。页面还说明了准入门为什么不在下载包里:一份绕过它的错误规格会自信地、离线地、无限期地作答,而再没有模型能发现它。这就是定理 1 的另一面:确定性让一条流可以重放,但不让它正确。
另外两种放置方式也符合这条规则。模型可以在流已经算出的集合内部排序,却无法往集合里添加东西。模型的输出也可以作为数据进入:记录一次并标明来源之后,它就成为流可以重放的输入。记录一个猜测让它可复现,而不是让它为真,所以它不会进入任何准入事实的步骤。
7. Perslis 中的符号流
三个公开的例子,描述到它们各自页面所描述的程度为止;它们都是研究原型。
7.1 地板工具的答案流
一个被晋升的地板工具是最简单的符号流:rows → filter(approved) → sum(amount)。它公开的答案带有状态(DERIVED)、数值(1290.49)、model_calls: 0,以及一条推导——它是答案的依据,而不是一行日志。词汇表很小:rows、filter 和七个归约器,作用于朴素的 JSON 行。执行器是 303 行仅依赖标准库的 Python,不含任何网络代码,可供下载,任何人都能读完(research/floor)。
7.2 VDSG 的决策流
VDSG,即军用 Peel,是驾驶 id Software 的《DOOM》与《德军总部 3D》的地板,它经由一条固定的链运行,公开在其演示页面上:
引擎状态 → 态势报告 → 规则 → 指令 → 证据 → 执行器
- 事实。由引擎状态构成的态势报告,就是决策的全部输入。
- 封闭的目标词汇表。七个目标(
HEAL、DODGE、RETREAT、ATTACK、SEARCH、RESUPPLY、EXPLORE)按固定优先级排列,每个目标只有在其对象存在时才可容许。 - 确定性规则。约 300 行朴素的 Python,没有权重,没有状态:同一份报告每次都得出同一个目标。
- 只会收窄的指令。诸如不许开火这样的指令由一套固定的短语词汇解析,而不是由模型解析。无法识别的文本会被拒绝,从不去猜;世界无法满足的指令会带着理由被拒绝,直到可以满足为止。
- 在集合内部学习。证据记忆只在规则与指令留下的范围内排序,因此学习无法采取被禁止的动作。
运行时页面把通用契约表述为事实 → 可容许集合 → 目标 → 投影 → 记忆 → 动作,外加一次能指名自身证据的拒绝;只有第一阶段与领域相关。有一点对重放很重要:证据记忆是状态,所以一个决策是当时的报告、指令和记忆的函数,重放也需要记忆快照。演示页面正是这样逐面板地回放一段录制的运行。它如实报告的结果是:在 Hurt Me Plenty 难度下通关 E1M1,在 Nightmare 下没有,并且尚未通关 E1M2。
7.3 Peel 的失效安全回路
Peel 的学习回路公开在什么是失效安全模型?中,它是一条作用于失败记录的符号流:
失败 → 观察 → 解释 → 建立规则 → 核验 → 重试
每个阶段都是一个有明确输出的具名操作:一条被记录的失败;决策时刻的事实;这次失败被记到的那个决策;一条引用挣得它的失败、且只有在其危害相对基准率在统计上清晰时才形成的规则;一次确认该规则只在可容许集合内生效的核验;以及一次去掉了被判定选项的重试。学习是可读的计数,做决定的回路中没有神经网络。模型可以提议;只有地板能接纳一条事实。
8. 符号流、智能体链与工作流引擎的比较
| LLM 智能体链 | 工作流引擎 / ETL | 符号流 | |
|---|---|---|---|
| 一个步骤是 | 一次模型调用;在智能体循环中,模型还会选择下一步 | 图中的一个任务,通常是任意代码 | 封闭、有类型词汇表中的一个操作 |
| 确定性 | 没有保证 | 取决于每个任务的代码 | 每一步都必须满足 |
| 重放 | 只能靠记录每一个输出 | 重新运行,前提是任务幂等且输入固定 | 精确:相同输出、相同轨迹(定理 1) |
| 审计记录 | 文本对话记录 | 运行日志与任务状态 | 具名步骤的轨迹本身就是依据 |
| 错误去向 | 以看似合理的值向前传递 | 任务失败与重试;错误但“成功”的任务会悄无声息地通过 | 注明步骤与理由的拒绝 |
| 谁掌握权力 | 模型,以及调度它的编排器 | 编写任务代码的人 | 词汇表与检验;模型只能提议 |
这就是“AI 工作流与智能体链有何不同”的实际答案。它不是在否定工作流引擎——它们擅长调度与重试;也不是在否定语言模型——它们擅长封闭词汇表做不到的事:阅读开放式文本并提出结构。我们的主张更窄:当一个步骤的输出将被当作事实,或将引发一个动作时,这个步骤应当是符号化的。
9. 符号流与失效安全模型
失效安全模型在证据缺失时关闭;它的学习只能收窄、永远不能扩大它被授权做的事;而每一次拒绝都引用证据。每一项都是符号流的性质:
- 失效时关闭就是把拒绝作为有类型的结果(§4 第 6 项)。
- 可追责的拒绝就是来源与轨迹(§4 第 4、5 项)。
- 有界的学习就是以“所选选项位于可容许集合内”为不变式的定理 2。一个输出总是其输入的子集或重排的学习者会保持这一不变式;失效安全模型页面上的有界学习定理,正是这一论证的特例。
用这里的话说,失效安全模型就是一个以符号流构建、并把学习者限制在其中一步的决策回路。Perslis Research 的 Peel 据我们所知是第一个失效安全模型;确切的主张与最接近的更早工作见什么是失效安全模型?。它是研究原型,并非经过认证的安全系统。
10. 符号流做不到的事
这些是符号 AI 的经典局限,我们把它们说得和保证一样直白。
- 确定性不等于正确性。一条确定性的流可以每一次都错。定理 1 保证的是可复现,而不是真实,所以一条流需要一个准入步骤,而不只是一个执行器。
- 不变式只保证它所说的内容。定理 2 承载的就是 所陈述的内容,仅此而已;没人写下来的性质不受保护。
- 封闭的词汇表就是封闭的。词汇表之外的问题只能被报告为不可映射。扩充词汇表是人的工作:这就是曾限制专家系统的知识获取瓶颈(见符号 AI 的历史)。
- 感知依然困难。从像素或文字中得到可靠的符号,是符号接地问题,也正是习得模型发挥作用的地方。例如,VDSG 基于颜色的眼睛在 DOOM 上与引擎教给它的标签吻合 78–92%,而它的卡片只被当作第二证人,从来不是地图。
- 拒绝有代价。可靠的校验器把错误答案变成拒绝,而不是变成正确答案。一条 40% 的时候都在拒绝的流,可能是安全的,同时也没用(§5.5)。
- 组合可能爆炸。可能的流的数量随长度呈指数增长,因此搜索一条流(而不是检验一条被提议的流)代价高昂:这是经典规划遇到过的组合爆炸,也是把提议交给模型的原因之一。
因此,实际的系统会是混合的:用习得组件做感知与提议,用符号流处理任何将被准入为事实或转化为动作的东西。神经符号 AI 更全面地讨论了这一设计空间,符号系统则讨论了各步骤所操作的表示。
11. 常见问题
- 什么是符号流?
- 符号流是这样一种流水线:其中每一步都是取自封闭词汇表的、明确且有类型的操作,因此从输入到输出的路径可以被精确重放、逐步审视,并对照不变式加以检验。没有哪一步会去猜:当某一步无法给出可检验的结果时,整条流会拒绝,并说明原因。
- “符号流”这个术语是谁提出的?
- Perslis Research 把“符号流”作为定义性术语来使用,这个定义出自我们。据我们所知,它在 AI 工程中此前没有公认的含义。其要素则更早:数据流编程、Unix 管道、编译器遍、证明助手与霍尔逻辑。
- 符号流和 AI 智能体工作流是一回事吗?
- 不是。在智能体工作流或提示链中,每一步都是一次模型调用,而且往往还由模型选择下一步,因此运行不可复现,错误的中间值会看似正确地向前传递。在符号流中,每一步都是取自固定词汇表的确定性操作,每次运行都能精确重放,而无法被检验的步骤会拒绝,而不是返回一个值。
- LLM 可以成为符号流的一部分吗?
- 可以,但角色是固定的。语言模型可以用封闭词汇表提议一条流,在流已经算出的集合内部排序,或提供一个被记录下来的输入。它永远不会执行一个猜测:提议在任何东西运行之前就被准入或拒绝,而被准入的流在没有模型的情况下运行。
- 为什么确定性很重要?
- 因为无法复现的决策就无法审计。步骤是确定性的,相同输入就总是给出相同的输出和轨迹,因此任何过去的结果都可以通过再运行一次来核查。确定性不会让一条流正确,它让一条流可以被检验。
- 符号流和工作流引擎或 ETL 流水线是一回事吗?
- 不完全是。工作流引擎或 ETL 工具调度的是一张任务图,任务通常是任意代码。符号流限制了一个步骤可以是什么:封闭词汇表中一个有类型、确定性、经过检验的操作,并以拒绝作为定义明确的结果。符号流可以运行在工作流引擎之上。
- 符号流无法作答时会怎样?
- 它会拒绝,并指明它停在哪一步以及理由,例如没有证据、问题超出词汇表,或某个不变式失败。它从不以一个看似合理的值代替经过检验的值。
- 确定性的流能保证答案正确吗?
- 不能。确定性保证相同输入得到相同输出;一条错误的流每一次都会错。正确性来自检验:每一步的不变式、在存在时使用的可靠校验器,以及一个拒绝它无法检验的流的准入步骤。
12. 参考文献
- C. A. R. Hoare. An Axiomatic Basis for Computer Programming. Communications of the ACM 12(10):576–580, 1969. doi:10.1145/363235.363259.
- R. W. Floyd. Assigning Meanings to Programs. In Mathematical Aspects of Computer Science, Proceedings of Symposia in Applied Mathematics 19:19–32, American Mathematical Society, 1967.
- J. B. Dennis. First Version of a Data Flow Procedure Language. In Programming Symposium, Lecture Notes in Computer Science 19:362–376, Springer, 1974. doi:10.1007/3-540-06859-7_145.
- W. M. Johnston, J. R. P. Hanna, R. J. Millar. Advances in Dataflow Programming Languages. ACM Computing Surveys 36(1):1–34, 2004. doi:10.1145/1013208.1013209.
- M. D. McIlroy, E. N. Pinson, B. A. Tague. UNIX Time-Sharing System: Foreword. Bell System Technical Journal 57(6):1899–1904, 1978. doi:10.1002/j.1538-7305.1978.tb02135.x.
- W. M. P. van der Aalst, A. H. M. ter Hofstede, B. Kiepuszewski, A. P. Barros. Workflow Patterns. Distributed and Parallel Databases 14(1):5–51, 2003. doi:10.1023/A:1022883727209.
- X. Leroy. Formal Verification of a Realistic Compiler. Communications of the ACM 52(7):107–115, 2009. doi:10.1145/1538788.1538814.
- A. Pnueli, M. Siegel, E. Singerman. Translation Validation. In TACAS 1998, Lecture Notes in Computer Science 1384:151–166, Springer, 1998. doi:10.1007/BFb0054170.
- M. J. C. Gordon, R. Milner, C. P. Wadsworth. Edinburgh LCF: A Mechanised Logic of Computation. Lecture Notes in Computer Science 78, Springer, 1979. doi:10.1007/3-540-09724-4.
- T. Wu, M. Terry, C. J. Cai. AI Chains: Transparent and Controllable Human-AI Interaction by Chaining Large Language Model Prompts. CHI 2022. doi:10.1145/3491102.3517582. arXiv:2110.01691.
- S. Yao, J. Zhao, D. Yu, N. Du, I. Shafran, K. Narasimhan, Y. Cao. ReAct: Synergizing Reasoning and Acting in Language Models. ICLR 2023. arXiv:2210.03629.
- Perslis Research. The Orchestration Gap: why model-level alignment cannot survive multi-model runtimes. 预印本,2026。research.perslis.com/orchestration-gap
- Perslis Research. 《问一次,答案归你》,符号地板,运行时 1.0.0,2026。research/floor
- Perslis Research. Inference Placement: where learned inference earns authority in a provenance-constrained symbolic system. 2026. research.perslis.com/inference-placement