1. 从“悬荡”这个词说起:它对应的不是哲学,是一线工程创伤
几个月前,我在调试一套由多个大模型协作的系统时,屏幕上的输出忽然让我停下手里的活。左边是严格的还原论:任务被切成了上百个子项,每个AI Agent都能精准完成自己的那一点点,合起来却像一盘散沙。右边是漂亮的整体论:如果把所有上下文一次性喂给一个更大的模型,让它从头到尾自由发挥,结果又经常在第三段开始偏离航向。就是这两种失败模式反复交替,让我真正理解了一个原本觉得飘忽的词——悬荡。
“悬荡”并不是一个玄幻的说法。它指的是系统在两种倾向之间来回摆动的真实状态:一种是企图把一切拆到不能再拆,用原子组件拼出世界的还原论;另一种是认为整体拥有组件所不具备的涌现属性、必须被整体地把握的整体论。这两种倾向在人类思想史里对抗了几百年,而在AI大模型成为基础设施的今天,它们不再只是哲学家书桌上的论题,而是每个技术人员在跑一次任务时都会遇见的工程现实。
我做AI系统这一行有十几年了,从早期的规则引擎做到后来的大模型应用。一个让我越来越强烈的感受是:我们一直在用某一种“论”去压制另一种“论”,却很少同时驾驭它们。规则系统擅长还原,但僵死;神经网络擅长整体,但飘忽。直到“操作系统”这个隐喻浮现在我眼前,我才意识到,问题可能不在选边站队,而在于我们缺少一种可以让两种张力共存、并持续产出结果的运行框架。这篇文章要展开的,就是我在这个思考框架下得到的一套东西——我暂时称它为AI元人文。
1.1 一次让我停下来改架构的失败实验
先讲一个具体的案例。当时团队要做的是一个企业知识问答系统,需求很朴素:从几百份文档里找到与用户提问最相关的材料,生成一份有依据的回答。我们采用的是当时社区里很流行的多Agent方案:一个Agent负责检索,一个Agent负责摘要,一个Agent负责冲突消解,最后还有一个Agent负责撰写。架构图画出来非常漂亮,每个人看到都觉得很专业。
但第一轮联调就出了问题。负责检索的Agent很尽责,按语义相似度返回了十段文本。负责摘要的Agent也尽责,只保留了与问题重合度最高的三句。负责冲突消解的Agent把两次摘要里的矛盾点标记了出来。负责撰写的Agent最后按模板把这些内容缝起来——结果是一份读起来支离破碎、逻辑时断时续的报告。每个组件都在技术上做对了,唯独整体坏了。
这个现象在业界有个不太严谨的说法叫“语义缝隙”:当任务被拆得足够细,链路上的每一步都在局部范围内做最佳决策,这个最佳组合在一起就不再是全局最优。它像一支乐队,每个乐手都技艺精湛、各自看着小节线演奏,但没有人跟着总谱走,听起来就是各吹各的。
1.2 还原论与整体论:分歧不在学术圈,早就在生产线上了
反思这个失败时我翻了些历史。还原论的代表性信念,是复杂系统可以分解为简单部分,理解部分就能理解整体——一栋房子无非是砖、梁、瓦的堆叠。整体论则相信整体具有部分没有的属性:一地之水,氢和氧单独都没有“湿”的性质;意识单靠神经元罗列也解释不清。这两种信念在哲学史和科学史上各有胜负,但工程行业长期是还原论的大本营。我们修桥、写代码、搭流水线,都是先拆后合,再验证每块拼图。
过去这么做得通,是因为工程对象是可预期的——砖不会在砌好之后自行变成玻璃。可AI不一样。神经网络在训练时只是一个巨大的参数空间,你无法像检查代码那样逐行证明它会不会出错。你控制的是数据的分布、训练的目标函数、采样的温度,而不是某个具体的输出。AI产品天然带有整体论的色彩:不可完全拆解,只能整体涌现。于是,传统工程养育的还原论习惯,和神经网络本身的整体论本性,在每一个Agent化项目里正面相撞。这不是谁的偏爱问题,这是技术史走到今天的必然相遇。
1.3 为什么旧答案失效了:整体不是部分的简单相加,但也不是不可触碰
过去几十年,工程界应对复杂系统的主流方式是“分层”和“模块化”,这本质上是一种温和的还原论:把系统拆成高内聚低耦合的模块,再通过接口把它们拼接起来。这套方法在软件领域取得了巨大成功,但它有一个隐蔽前提——模块之间的接口是稳定且可以精确描述的。传统API的输入输出类型固定,语义边界明确,调用前和后系统状态可预期。
到了大模型时代,这个前提崩溃了。一个重要Agent的输出是你无法完全预控的自然语言,它可能格式稳定但语义漂移,也可能格式混乱但内容精准。模块间的“接口”变成了概率性的语义场,不再是确定性的类型签名。你依然可以把系统拆碎,但拆碎后无法用传统接口拼回去。你依然可以把系统看作一个整体,但整体又不是一个可以一键运行的黑盒。过去那种“要么拆、要么合”的两分法,在AI原生系统里产生了根本性的失灵。我们需要第三种姿态:允许系统在切碎和收拢之间反复循环,让整体目标在局部行动中一次次被纠正、被重新生成,而不是一次性定义后再无修正。
2. 大模型训练与推理:Token切碎与注意力缝合的双进程
如果说上面那段还停留在概念,那么大模型的全生命周期,就是世界上规模最大的一次还原论与整体论的活体示范。我常常对我团队里新来的同学说,不要把大模型看成什么魔法的黑盒子,把它拆开看,你就能看见一对哲学概念是如何在同一个系统里不停悬荡的。
2.1 分词与下一个Token预测:语义层以下最彻底的还原
大模型的第一步是分词。一段话不管多复杂,都会被切成一个个token——有可能是半个词,有可能是几个字符。对人类来说,“悬荡与生成”是一个完整的意思,但对模型来说,它只是几个token序列。这一步极其还原:它把语言这种高度整体的现象,碾成了离散的、可统计的、可计算的碎片。没有这一步,后面的巨大模型根本无法工作。
这就是还原论在AI里最具体的化身。它不关心“这句话是什么意思”,只关心“这些token后面最可能接什么”。整个大模型训练的核心目标,无非是学会对一个概率分布建模:给定前文的token序列,预测下一个token的概率。我见过很多人第一次看到训练代码时大失所望,觉得“就这?”——没有任何灵魂,没有任何关于世界的整体知识,只有数以亿计的参数在拟合一个极其庞大的条件概率分布。可恰恰是这种极度还原的统计拟合,成就了后来几乎无所不能的语义能力。
2.2 注意力与深层表征:整体性从哪里悄悄回来
如果模型只做逐字预测,它就永远学不会长程依赖。解决这个问题的关键机制是注意力:每个token在表示自己时,会与上下文里所有其他token做交互,按相关性加权聚合。你问“明天西湖边会不会堵车”,模型里的“堵车”会先与“西湖边”建立高权重关联,再与“明天”建立时间关联。这个过程,实际上是把散落各处的语义碎片重新编织成一个整体图景。
这可以类比成一群人围坐读一部手稿——每个人都只分到一个词条的碎片,注意力机制让每一个人在读到自己的内容之前,先偷看其他所有人手里的残页,然后带着全场信息回看自己那句话的意思。浅层网络关注词法和局部搭配,深层网络逐渐聚合出主题、意图、代理人关系等整体结构。用一句很粗的话说:它先把世界切成渣,再在向量空间里把渣吹成一个整体的云。云永远带不走每一粒渣的全部细节,但云的形状确实承载了世界的一部分整体性质。认识到这一点,会对之后的系统设计有巨大影响——你不能只从“切分”或“整体”单一视角去治理AI。
2.3 采样策略与生成循环:在局部概率和全局连贯之间反复摆荡
到了真正生成文本时,悬荡表现得最明显。概率分布已经算好了,但具体选哪个token,还得过一道采样策略。温度调高,分布更随机,模型天马行空,富于创意却也容易跑偏;温度调低,模型更保守、更连贯,但会变得重复乏味。这哪里只是参数调优?这分明是整体论与还原论在实时分岔口上拉扯。
每一步的局部选择都可能改变全局语义,而全局语义又反过来约束局部选择。人类写作时也会有这种体验:你脑子里有一个整体意象,但落到句子上,又得一字一字地抠,某个用词一旦定下,后面的整体气质就顺着变了。模型没有“灵气”,但它复刻了这种循环——训练阶段从海量文本里学到的宏观规律,通过多层表示压入下一个token的预测里,再从概率分布里挤出一个微观字词;这个字词又回写到上下文,刷新全局状态。先悬荡,再生成,再悬荡,再生成。
3. 多Agent协作的工程本质:从语义缝隙到调度器
如果我们承认,大模型内部已经演示了微观层面上的“悬荡与生成”,那么当我们把多个模型放进同一个任务流水线,问题就从模型内部扩展到了系统层面。这个层面离“文明操作系统”的隐喻最近,也最容易用工程语言说清楚。
3.1 多Agent架构:还原论的一次巅峰实践
多Agent架构是最自然的还原论实践:把复杂任务拆成检索、推理、校验、执行、表达等角色,每个Agent拥有自己的工具、记忆和提示词,像车间里不同工位的工人。这个思路的吸引力在于,每个工位可以单独优化、单独测试、单独换新模型,出了问题定位到具体环节,效率非常高。今天大家聊AI Agent、聊多AI协作,大多数工作流都是这个形态。
但我在实际项目里发现了三个高频痛点:第一,上下文撕裂——多个Agent各自持有上下文,信息在传递时不断被摘要,细节越传越少,最后常常出现“传话游戏”式的失真;第二,责任漂移——一旦最终结果出错,每个环节都觉得自己按指令完成了,没有哪个Agent对“整体的对错”负责;第三,信任缺失——Agent A给Agent B的信息不足以支撑B的后续任务,B只能补猜测,猜测错了就算全链失败。这些痛点没有一个是“只要让某个Agent更聪明”就能解决的,因为它们都是整体性的系统问题。
3.2 调度器为何必须从“更聪明的提示词”走向“操作系统”
最初我们试图用更好的提示词解决上述痛点,结果收效甚微。后来我们把视角换了一下:不再把多Agent看成一个团队,而是看成一个需要调度的计算系统。任何一个操作系统,内核的职责都不是替每个程序完成运算,而是管理资源、调度任务、处理中断、维护进程间的通信。多Agent系统真正的内核,应该是一个中介者:它不参与具体问答,但决定哪个Agent在什么时候获得哪个上下文、可以调用多少上下文窗口、哪些中间结果需要被持久化、出现冲突时由谁做主。
这个概念转换非常有用。上下文窗口就是内存,Agent的工具调用就是设备IO,任务之间的依赖就是进程调度,回滚到之前的某轮结果就是事务回滚。一旦用操作系统的视角重新审视多Agent协作,很多原本模糊的决策就有了明确标准。这也是我后来向团队反复强调的一点——AI大模型基础理论不能只停留在模型层,系统层才是决定上限的地方。
| 架构 | 主导倾向 | 优势 | 典型问题 |
|---|---|---|---|
| 单一大模型整体生成 | 整体论 | 语义连贯、现场感强 | 长任务易跑偏、内部不可控、难以局部修正 |
| 多Agent强拆分 | 还原论 | 可定位、可复用、可并行 | 语义缝隙、上下文撕裂、责任漂移 |
| 悬荡-生成式编排 | 统一 | 保留涌现、提供回路、可治理 | 编排复杂度高,对设计者全局观要求高 |
3.3 编排器的三个最小能力:记忆总线、评价回路、可回滚决策
要做出第三种架构,不需要一开始就上很重的系统。以我的经验,先实现三个最小能力就够了。
第一是记忆总线。不要只让Agent之间通过对齐文本传递信息,而是把重要的中间结果、引用来源、冲突记录写进一个结构化存储,任何Agent都能按需读取。这相当于在进程间共享了一段可靠的内存,而不是靠管道传两次摘要。
第二是评价回路。每个阶段输出后,插入一个独立的“检查者”环节,对照最初目标和当前进展给出评分和修订指令。它不是又一个生成者,而是系统内部的裁判。评价代表的是整体目标对局部过程的一次有效回写。
第三是可回滚决策。每个Agent的关键决策都要保留快照,发现问题时可以回到某个分叉点重新生成。这个能力直接决定系统敢不敢让整体性自由展开——如果每一步都不能回退,系统自然倾向于保守,也就是过度还原;如果每一步都能回退,系统才敢放权给整体性的涌现。
提示:这三点的难度不在某个单独环节,而在于它们彼此咬合。记忆总线让评价回路有依据,评价回路让可回滚决策有意义,可回滚决策又反过来让记忆总线里的旧快照有价值。
4. “文明操作系统”不是比喻,而是一个可操作的分析框架
标题里的“文明操作系统建构”最容易被人误读成比喻:啊,就是把社会比作电脑系统。我最初也觉得这是个修辞的方便说法,但在这个思考框架里做了几年之后,我逐渐意识到,它更接近一个工程图景——先别急着把它政治化或宏大叙事化,它在知识生产层面相当具体。
4.1 内核、调度器、接口、应用生态:五大构件如何落到文明上
一个操作系统有内核,有调度器,有系统调用接口,有用户态应用,有存储文件系统。在人机协同成为常态的知识文明里,这几个构件都可以找到对应物:内核是对“什么可以推断、什么值得信任”的基本判定逻辑,它很大程度由大模型的训练目标和对齐机制决定;调度器是我们每天面对的信息流、任务流、多智能体协作时决定“现在该做什么、把注意力给谁”的机制;系统调用接口则是人与AI交互的协议层,包括提示词、工具调用、权限约束;用户态应用是无数具体的内容生产、搜索引擎、编程助手、教育软件;文件系统则是整个社会的知识存储结构,从论文、代码库到个人笔记,都在等待被某种标准化方式连接起来。
这个映射的价值在于:它把“文明”这个过于宏大的词,拆成了一批可以被设计、被测试、被追踪的工程对象。过去我们谈文明,容易滑入空谈;现在你有了内核,就可以问:这套文明的内核判定逻辑是什么?它作出“哪些内容值得生成”的判断时,依赖的标准透明吗?调度器把注意力倾向于流量还是真知?这些问题只要一提出来,“文明操作系统”就不只是一个漂亮的类比,而是一组待建的模块。
4.2 元人文的定位:不写内容,只写内容生成的元规则
“AI元人文”这个词,我的理解是:在AI大规模生产内容的时代,人文精神不再只是内容本身的属性,还需要出现在内容生成之前的元规则里。过去一个作家通过语言表达人文关怀,现在一个系统设计者通过决定“AI在什么约束下生成、在什么冲突下止损、在什么边界内发挥想象力”来体现同一件事。后者就是元人文:对AI生成行为本身的规范、评价、调节。它不是另一个学科,而是夹在技术与人文之间的一层运行时协议。
举个例子。同一个写作Agent,给它同一堆素材,它可以写出讨好流量、夸大事实的爆款文,也可以写出克制精确、保留不确定性的分析文。两种输出的差别不在素材,而在生成时的奖励信号、系统提示词里对“事实不确定性”的容忍度、以及评价回路中偏好哪一种表达方式。这些层面,就是元人文实际发生作用的地方。我们如果只关注AI写出的文本,等于只看应用程序不看操作系统,永远无法从根本上评价这个文明的质量。
4.3 评价函数即伦理:宏观目标用整体论,微观执行用还原论
把还原论和整体论统一起来,落到文明操作系统里,我的具体操作建议是:宏观目标用整体论——先用一句话定义“这套系统应该让什么样的人受益、产出什么样的长期效果”;微观执行用还原论——把目标拆成可评估、可追踪的指标和管线。宏观不拆,就会沦为口号;微观不统,就会走向失控。
换句话说,统一不是把两者混合成一种糊状物,而是它们分别在两个层面上工作,再由同一个评价函数把它们接起来。评价函数是伦理的工程化身:它不直接写出内容,但它决定什么样的知识生产会被放大、什么样的创造会被保留,什么样的错误会被及时抢救。这个评价函数是文明操作系统的“总纲”。我在自己的项目里,会花比写Agent本身多出一倍的时间去定义这个函数,因为它才是真正决定系统价值中枢的地方。
5. 落地三步:悬荡层、生成协议与留白原则
前面写了这么多“为什么”,最后说点“怎么做”。毕竟如果不给出可操作的路,一个再好的哲学框架也只是念经。这套观点最终要在真实的AI应用里变成代码、提示词和流程,才算落地。
5.1 设计“悬荡层”:任务切分与语义收口的交替节奏
很多团队把任务切分直接用干巴巴的流水线写死:先搜索,再摘要,后成文。这其实只实现了还原,没有留出悬荡空间。我现在的做法是引入“双拍节奏”:第一拍把目标切给多个Agent,各自独立产出局部结果;第二拍把局部结果全部收回,交给一个“综合者”去通读,指出整体上的矛盾、缺口和跑偏,再生成新一轮的修订指令。这个循环不是一次性的,而是两到三轮,直到综合者给出的修订指令越来越少。
这个设计和“写初稿—自我修改—评阅—再改”的写作模型同构,本质上是让还原产生的碎片,在整体语义的引力场里被重新抛过一次。很多人担心这种方式太慢,实测下来,两三轮循环确实会增加一些token消耗和延迟,但正确率提升常常是数量级的。尤其在内容生成、知识整理这类偏开放的场景里,多花的三分钟远比返工三天划算。
5.2 为“生成协议”立三条军规
我的项目里立过几条经验型规则,都是踩坑之后沉淀下来的,现在我在每个新系统里都会先写上这版约定:
- 第一军规:任何Agent都不允许修改共同记忆总线的原始记录,只能追加自己的理解。这个规则防止了传话游戏里“信息被悄悄改写”的失控现象。
- 第二军规:全局目标必须写进每个Agent的系统提示词,不能只放在顶层调度器里。局部Agent看不清全局,就会做局部最优;看到全局,才有机会做对全局有利的让步。
- 第三军规:所有“不确定”不得被静默吞掉。任何一个Agent在信息不足时,必须把不确定性显式写进输出,而不是假装确定、编造细节。这件事在某次合规审查里救过我们,也是元人文在数据层的直接体现。
这三条军规的核心都是同一件事:还原后的局部单元依然有机会感知整体、敬畏整体。否则切分得越细,系统离真实世界越远。
5.3 宁可留白,不要过度编码文明
最后一条经验听起来有点反直觉:去掉那些试图把一切价值都写进代码的冲动。我曾见过很有才华的团队试图做一个“完美驱动AI”的系统,把审美、道德、风格、立场全做成规则,结果系统越来越像一台僵硬的官僚机器,输出绝不出错,但也绝无生趣。原因很简单:整体性价值里相当大的一部分,根本没被我们显式理解过,硬要编码,只能把整体压成还原的碎片堆。
所以在我的项目里,明显属于“规定动作”的流程我们尽量自动化;明显属于“自选动作”的创造性表达,我们尽量给Agent留出采样空间,留给人类的评价回路去校正。宁可留白,让整体性在空白处自行长出来,也不要试图用一个封闭规则集把整体说尽。这也是我在标题里用“生成”而不是“加工”的原因——加工是把原料变成给定的产品,生成是从约束里长出未知的形态,前者偏还原,后者才是统一之后的新状态。
5.4 踩坑记录:当我真的把“悬荡”做进系统之后
最后分享一个真实项目的收尾画面。我们按上述思路重构那套知识问答系统后,最初几轮的效果并不理想——综合者经常给出模糊的修订意见,Agent也不知道该如何执行。后来我们给综合者加了一个新指令:不要回答“怎么改”,只回答“哪里和最初目标不一致”。改完之后,系统突然变得真实可靠了。因为它把“评判”和“执行”分离了——综合者不需要自己动手生成更好的内容,只需要做整体性的诊断;更优内容由各个专业Agent在诊断的引导下自行生成。这又一次验证了我前面说的定位:整体设目标,还原做执行,中间架回路。
我在实际做这类系统的过程中,越来越确信一件事:我们缺的不只是更聪明的模型,也不只是更复杂的Agent,而是一套让“拆解”与“涌现”反复对话的中间层架构。悬荡与生成,不是某种文艺修辞,而是这套架构每一天都在运行的节奏。谁能先把这种节奏基础设施化,谁就为下一阶段的AI协作拿到了最宝贵的时间窗口。