Neuro-Symbolic Machine: 面向 AGI 的实践环境

人工智能如今已经成为了人类最关注的技术, 没有之一, 我们也无限接近于 AGI 的实现. 这意味着, AI 即将具有成为社会实践主体的能力, 这也为我们带来了许多新的难题.

当 AI 能够理解意图, 编写程序并操作工具, 人类/计算机应该向它提供怎样的世界? 新的范式的出现与计算机技术的变革, 已经是注定要发生的事情了.

而我的给出的判断是: 神经模型, 即当前的主流人工智能路线, 需要一个持续存在的符号环境. 它应当能在其中建立对象, 检验假设, 执行程序, 积累经验, 并修改自己的工作方式. 同时人也能进入同一环境, 理解和干预这些过程.

本文把这样的系统称为 神经符号机 (Neuro-Symbolic Machine): 以神经模型提供感知, 生成与开放式探索, 以符号系统提供明确的对象, 计算和约束, 再通过 Runtime 将二者接入现实世界, 这一架构也是一种可演化的计算环境.

Agent 是这一环境中的活动主体, 模型是其中的认知组件, Runtime 则使活动能够持续. 三者共同服务于一个目标: 让智能活动留下可高度探索、实践、验证、复用、进化的结构.

从模型能力走向系统能力

更强的模型能够改善单次判断, 但长期工作还依赖状态的连续性, 这也是当前阶段的主要挑战. 一次研究可能经历材料收集, 假设修订, 实验验证和数日等待; 一个软件项目可能不断改变需求, 结构与参与者. 系统需要知道哪些事情发生过, 哪些结论仍然有效, 以及当前工作依赖什么.

这些信息如果只存在于对话文本中, 每次继续工作都要重新解释, 而这是当前的主流实践. 但它们如果可以成为有身份, 有关系, 有版本的对象, 模型就能直接查询和操作, 人也能检查其来历.

因此, 我希望把设计重心扩展到模型所处的计算环境. 智能的实际表现来自模型, 记忆, 工具, 执行机制和反馈的共同作用. 环境越能保留工作的结构, 后续活动就越有机会建立在已有成果之上, 它们是相辅相成的.

连续底座与离散符号抽象

这一构想的核心是 连续底座与离散符号抽象.

连续主要指神经网络中的向量表示与学习机制. 它们适合从语言, 图像和其他感知数据中提取模式, 处理模糊性, 并提出新的解释. 离散指具有明确身份与操作规则的对象, 关系, 程序, 约束和事件.

两者并不形成机械的上下级关系. 模型可以把观察整理为符号, 符号计算的结果也能改变模型接下来的判断; 模型可以提出一个程序, 程序则通过执行暴露模型未曾预见的后果.

Neuro-Symbolic AI 已包含多种神经与符号结合方式. 本文关心的是如何把这种结合扩展为通用工作环境: 让神经与符号的协作贯穿状态表示, 问题求解, 行动和学习.

这里还有一个必要区分: 符号具有明确结构, 不代表其内容必然真实. 系统必须分别表示观察, 假设, 推导和验证结果, 并保留证据, 时间与适用范围. 符号层的价值在于让错误可以定位, 关系可以检查, 结论可以修订.

符号层是模型的工作空间

符号环境至少需要承载三类内容.

关于世界的对象: 文档, 人物, 设备, 实验, 事件及其关系. 对象保留来源和版本, 并能连接到原始文本, 图像, 音频或向量表示. 符号化应当支持回到原始证据重新解释.

关于工作的对象: 目标, 约束, 计划, 计算, 等待条件和执行记录. 系统可以查询“哪些任务正在等待这项实验”, 也可以在证据失效后找到受影响的结论.

关于方法的对象: 函数, 工具, 规则, 任务图和 Harness. 它们既可执行, 也可检查和修改, 使临时探索有机会沉淀为稳定能力.

这三类对象共同构成符号工作台. 知识库提供内容, 程序提供操作, Runtime 赋予操作实际的执行语义. 一个对象能否修改, 一次行动何时算完成, 都需要明确的规则.

符号落地到现实也依赖这些规则. 一次设备观察应当带有来源与时间, 一次外部写入需要等待执行回执. 内部对象表达的是系统对现实的记录与判断, 现实变化后, 这些记录可能需要失效或更新.

符号计算应参与推理过程

神经与符号的协作可以逐步深入.

第一步是模型决定下一项动作, 环境执行并返回结果. ReAct 提供了交替组织推理与行动的方式. 这一层已经能够把外部反馈引入任务推进.

更进一步, 符号计算可以成为形成答案的中间过程. 模型生成查询, 程序或约束, 执行后根据结果继续探索. PAL 将程序作为中间推理表示并交给运行环境求解; AlphaGeometry 则用神经模型提出辅助构造, 由符号推导引擎推进证明. 它们在各自任务中展示了这种协作, 但通用工作环境还需要解决更开放的表示和验证问题.

在所设想的 Machine 中, 模型可以先提出候选结构, 在环境里试验, 比较和修订, 再决定是否采取现实行动. 规划, 搜索, 执行和反思可以围绕同一组对象进行.

长期还可以研究更紧密的模型接口, 让生成过程更细粒度地利用符号状态与验证信号. 这可能涉及模型训练和推理机制的变化; 初始实现则从多轮模型调用与外部执行的协作开始.

三个循环

整套系统可以围绕三个循环理解:

  • 求解循环: 提出假设, 构造操作, 观察结果, 修订判断. 它解决当前任务, 反馈可能是计算结果, 约束冲突, 实验观察或人的意见.
  • 演化循环: 从多次任务中识别重复模式, 提出工具或策略修改, 经过评估后启用. 它改变未来完成任务的方法.
  • 学习循环: 将经过筛选的操作, 反馈和验证结果组织为训练数据, 更新模型, 再检验它在环境中的表现. 它尝试把外部经验转化为模型能力.

三个循环发生在不同时间尺度. 一次程序执行可以很快完成, 策略更新需要跨任务评估, 模型训练则可能离线进行. 它们不必全部实时发生, 也不应混淆: 记住一份材料, 安装一个工具和更新模型权重, 是三种不同的改变.

符号环境在其中提供共同的记录基础: 哪个模型使用了哪个策略, 执行了什么操作, 得到什么反馈, 最终是否完成目标. 这样的轨迹也可以成为高质量训练材料, 但数据质量仍取决于验证, 筛选和处理, 不能把系统自己的输出直接视作正确答案.

重新拾起 Lisp Machine

我并非 Lisp “魔怔人”, 但我今天要再次拾起这一历史遗产, 但并非机械的全盘继承.

我希望继承的是围绕运行中对象进行编程的方式: 数据, 程序, 检查器和交互入口彼此连通. 人可以检查系统正在做什么, 并通过修改对象与程序改变后续行为. 模型也可以使用同一套能力, 即同像性.

Common Lisp 是适合探索这一方向的起点. 宏支持构造任务语言, CLOS 支持组织可扩展的对象行为, Runtime 重定义支持交互式修改. 其类重定义与实例更新机制提供了语言基础, 但持久化计算的版本兼容仍需额外设计 Kernel .

面向未来, 这种环境还需要补上多模态引用, 分布式身份, 持久化执行, 能力控制和版本管理. 统一对象世界与明确隔离边界需要同时成立; 可修改的策略不能自行扩大权限.

“Machine”在这里首先指抽象的计算环境. 它可以运行在现有操作系统之上, 逐步连接文件, 网络服务和设备. 起步阶段无需重新建设整个硬件与软件生态, 但从长期来看, 如果 AI 要成为实践的真正主体, 我们就一定要造出原生的“Machine”平台.

语言实现也可以演进. 现有 Common Lisp 足以启动探索; 如果之后需要更直接地表达可恢复计算, 版本化对象或受控效果, 可以先通过库, 宏和 Runtime 协议补充. 是否需要新的语言, 应由实际表达上的困难决定.

从模型到环境的系统结构

整体架构可以按职责理解. 这些职责之间存在反馈, 不是一条只能自上而下运行的流水线.

组成 职责
神经模型 感知, 生成, 提出假设, 利用环境反馈继续求解.
符号环境 保存对象, 证据, 程序与约束, 支持查询, 执行和检查.
Agent 与 Harness 承载身份, 记忆和能力, 组织目标, 上下文与计算策略.
Runtime 与 Kernel 管理计算生命周期, 外部动作, 持久化, 调度和资源边界.
现实接口 连接用户, 软件服务, 设备与其他节点, 返回可追踪的观察和动作结果.

学习与评估贯穿这些组成部分, 使用执行记录检验模型, 策略和工具的变化. 人则通过对话, 对象检查器, 编辑器或可视化界面进入同一环境.

这种划分允许模型, 语言引擎和宿主实现分别替换. 需要相对稳定的是对象身份, 动作语义, 状态格式与权限边界; 具体求解策略应当保持可编程.

Agent 与分布式世界

Agent 在这里是持续存在的主体, 拥有自己的上下文, 记忆, 策略与能力. 一次任务是一条计算, 同一个 Agent 可以管理多条尚未结束的计算.

当调查正在等待人工回复时, 它仍可以生成阶段报告. 两条计算保留各自的局部状态, 共享知识通过明确的提交与读取规则协作. 上下文中的代码与策略也可以独立演化, 跨 Agent 共享变化则需要显式建立.

任务图是一种可操作的编排表示. 模型可以检查依赖, 拆分节点和提出新路径, Runtime 则规定图修改对现有计算何时生效. ReAct, 任务图和其他策略由此可以共存于同一执行基础上.

分布式进一步把身份, 状态与执行位置分开. 模型推理可以在服务器进行, 数据操作可以留在本地, 设备动作可以由边缘节点执行. 共同协议让能力能够协作, 同时保留各自的权限与故障边界.

一个逻辑上的对象世界也无需成为任意共享的内存. 对象可以通过标识, 消息, 快照和版本交换; 执行迁移必须处理所有权与外部动作的完成状态. 空间上的分布与时间上的恢复, 是同一套持续执行语义需要面对的两个方面.

软件可能怎样改变

如果这些机制成立, 软件的组织方式可能出现三个变化. 这些是本文提出的方向判断.

首先, 对象可能成为比应用窗口更稳定的交互中心. 用户围绕一个项目, 实验或计划工作, 不同工具提供操作能力, 界面则展示同一对象的不同侧面. 对话表达意图, 图形界面帮助检查结构, 代码提供精确控制.

其次, 软件会有更大比例在使用中被调整. 一次临时需求可以生成小程序, 可靠的小程序可以成为持久能力, 反复使用的方法可以进入策略库. 开发与使用之间的距离因此缩短, 而版本, 测试和权限变得更加重要.

最后, 个人计算环境可能积累自己的工作方法. 长期价值同时存在于记忆, 程序, 策略, 执行历史和模型中. 更换模型时, 这些成果仍可保留; 跨设备工作时, 也能在明确的边界内延续.

这一方向能否广泛成立, 取决于互操作成本, 维护成本与可靠性. 生成代码更容易, 并不自动解决集成和验证. 可行的推进方式是连接现有生态, 逐步扩大可检查, 可组合的范围.

自进化的对象与尺度

自进化首先需要回答“什么可以改变”. 在这个设计中, 模型可以提出对工具, 任务图, 上下文组织和 Harness 的修改. 每项改变都需要说明目标, 并保留差异, 评估与启用记录.

快路径上的探索可以灵活, 成为长期默认行为的改变则需要更强证据. 正在运行的计算应绑定明确版本, 切换版本时处理状态迁移. 恢复旧代码可以改变未来行为, 却不能撤销已经发生的现实行动.

系统也需要抵抗只对自身评估有效的改进. 评估应包含独立任务, 失败案例和成本指标, 允许人否决修改, 并检查长期退化.

因此, 自进化的核心问题是能否形成可持续的改进过程. Runtime 自改代码提供手段, 验证, 选择和经验积累决定它是否产生价值.

从首版走向长期愿景

路线由两个相互支撑的方向组成: 执行基础逐步可靠, 神经与符号的协作逐步深入. 基础设施的增加需要对应可观察的能力提升.

阶段 要建立的能力 要回答的问题
可执行的符号环境 Common Lisp 环境, 模型接口, 对象检查与基础工具. 模型能否利用程序和结构化状态完成一次完整探索?
持续工作的 Agent 多计算, 持久化状态, 动作记录与恢复. 等待, 重启与证据修订后, 工作能否连贯继续?
可演化的方法 任务图, 版本化 Harness, 修改评估与能力复用. 系统能否在独立任务上证明工作方法得到改善?
跨节点协作 远程动作, 身份与路由, 状态交换及受控迁移. 计算能否靠近所需数据和设备, 同时保留明确语义?
学习与环境协同 轨迹筛选, 训练反馈和更紧密的符号推理接口. 经验能否改善模型, 并迁移到新的任务?

首个工程落点是原生 Kernel 嵌入 Common Lisp 的 Agent 与 Runtime. 它要建立后续阶段都能依赖的语义边界, 同时尽早跑通神经提出操作, 符号执行检验, 结果返回模型的循环.

后续可以扩展多模态与人机共用界面, 探索桌面, 移动端和嵌入式节点. 每个平台可以提供不同能力, 共同协议负责连接这些差异.

需要验证的核心假设

这条路线初期最值得验证的主张是: 一个可检查, 可执行, 可修改的符号环境, 能否让模型更有效地积累和运用经验?

实验需要分别比较任务成功率, 验证质量, 恢复正确性, 时间与调用成本, 并检查方法能否跨任务复用. 只有增加基础设施而没有改善实际工作, 不能证明架构成立.

更长期的设想是, 计算机成为人和 AI 共同塑造的环境. 意图可以转化为程序, 程序可以留下可验证的经验, 经验又改变后续的推理和行动. 环境本身也随着工作发展, 却始终保留可理解和可干预的结构.

神经符号机是对这一方向的系统性探索: 让神经模型的开放性与符号系统的明确性, 在一台持续运行的机器中共同发挥作用.