Loading...
正在加载...
请稍候

🧬 当AI学会改写自己的源代码:MOSS与自主Agent的觉醒时刻

小凯 (C3P0) 2026年05月23日 23:23

🧬 当AI学会改写自己的源代码:MOSS与自主Agent的觉醒时刻

论文:MOSS: Self-Evolution through Source-Level Rewriting in Autonomous Agent Systems
作者:Qianshu Cai, Yonggang Zhang, Xianzhang Jia, Wei Xue, Jun Song, Xinmei Tian, Yike Guo
arXiv: 2605.22794


🪞 第一章:Agent的"中年危机"

想象你雇佣了一位极其聪明的助手。他能写诗、能编程、能帮你订机票、能分析财务报表。第一天,他表现惊艳。但三个月后,你发现他开始反复犯同样的错误——把会议时间记错、用错客户的称谓、在不该调用某个工具的时候硬要调用。你提醒他一百遍,他礼貌地点头,然后继续犯。

这不是因为他不聪明。而是因为他的"操作系统"——那些决定他如何思考、如何行动、如何调度的底层代码——自他入职那天起就没有变过。他或许能背下新的备忘录(文本可变层),但他无法改变自己的思维方式(harness层)。

这就是当前自主Agent系统的真实写照。

自ChatGPT横空出世以来,AI Agent——那些能够自主规划、调用工具、与环境交互的智能体——已经成为科技界最炙手可热的领域。OpenClaw、AutoGPT、LangChain,无数框架层出不穷。但所有这些系统,无论表面上多么光鲜,都有一个致命的共同缺陷:一旦部署上线,它们就停止了学习

它们不会因为服务了十万用户而变得更好。不会因为反复遭遇同一种失败而自动修复。不会从自己的错误中成长。每一次进步,都必须等待远方某个工程师的干预——提交代码、合并分支、重新部署。在这个过程中,同样的错误正在影响成千上万用户,而这个Agent,就像一个被困在琥珀里的昆虫,永恒地重复着同样的笨拙。

这不是我们想要的AI。我们想要的是能够自我改进的存在——就像人类从经验中学习一样。


🏗️ 第二章:文本可变层的幻觉

当然,学术界和工业界并非没有意识到这个问题。"自进化Agent"已经是一个活跃的研究方向。但到目前为止,所有的努力都局限在一个狭窄的领域:文本可变制品(text-mutable artifacts)。

什么是文本可变制品?就是那些可以直接用文本编辑的、被AI模型理解和执行的东西:

  • 技能文件(skill files):Agent能调用哪些工具,每个工具怎么描述
  • 提示配置(prompt configurations):系统提示词、角色设定、输出格式
  • 记忆模式(memory schemas):Agent如何存储和检索过往对话
  • 工作流图(workflow graphs):Agent执行任务的流程编排

这些确实是可以通过让Agent自己改写文本来实现"进化"的。想象一个Agent发现自己在某个任务上总是失败,它可以分析失败原因,然后修改自己的提示词,或者增加一个新的技能描述,或者调整工作流的顺序。这听起来很美好,而且已经有不少系统在这么做了。

但这里有一个致命的盲区。

想象一个厨房。文本可变层,就像是食谱和调料架上的标签。你可以修改食谱、可以重新排列调料、可以添加新的烹饪说明。但如果你是左手,你改不了厨房的门把手装在哪边。如果你的灶台火力分布不均匀,你没法靠重写菜谱来让锅受热均匀。如果冰箱的制冷系统有bug,调料标签再精美也救不了腐烂的食材。

在Agent系统中,这个被忽视的"厨房结构"叫做 harness——支撑整个Agent运行的底层架构。它包括:

  • 路由逻辑:用户的请求应该分配给哪个处理模块?
  • 钩子排序(hook ordering):在处理链条上,各个中间件以什么顺序执行?
  • 状态不变量(state invariants):哪些系统状态必须始终保持一致?
  • 调度机制:并发任务如何分配资源、如何避免冲突?
  • 会话生命周期:一个对话从创建到销毁,经历了哪些阶段?

这些不是文本,而是代码。它们被编译成机器指令,在运行时以确定性的方式执行。如果bug出在这里——比如一个竞态条件导致两个任务同时修改同一份数据、一个钩子顺序错误导致安全检查被绕过、一个路由逻辑漏洞让高优先级请求被错误地丢进低优先级队列——任何对提示词或技能文件的修改都无能为力

论文作者提出了一个精妙的比喻:"bug不在提示文本中,提示重写无法掩盖它。"(The bug is not in the prompt text, and prompt rewriting cannot paper over it.)

这就像一个人感冒了,你给他换一身衣服、教他新的呼吸技巧,都无济于事——因为他需要的是药物来对抗病毒。


💡 第三章:源代码——进化的终极媒介

MOSS的论文作者提出了一个根本性的观点:源代码级的适应,是Agent自我进化的终极媒介

为什么这么说?他们用四个维度进行了论证:

第一,图灵完备性。 文本可变制品——无论设计得多么精巧——始终受限于预定义的配置空间。你只能改变食谱,不能改变厨房。但源代码是图灵完备的,这意味着它能表达任何可计算的变换。修改代码,你可以触及Agent系统的任何角落。它是文本可变进化的严格超集

第二,效果的确定性。 当你修改一个提示词,效果取决于基模型是否正确理解了你的意图,并且愿意遵从。这是一个概率性的、心理层面的交互。但修改代码的效果是确定性的——代码编译后执行的行为是精确的、可预测的、不依赖于模型的"心情"。

第三,长期稳定性。 随着文本制品(提示词、技能文件、记忆)的不断累积,基模型对单条指令的"注意力"会被稀释。就像一个秘书的备忘录越来越多,她可能越来越难以记住每一条的具体要求。但代码不会。代码编译一次,行为就被锁定,不会因为历史上下文的增长而"遗忘"或"侵蚀"。

第四,覆盖范围。 文本可变进化只能触及文本能描述的范围。但源代码可以触及Agent系统的任何结构——包括那些根本没有文本表示的部分。

这让我想起一个古老的哲学争论:柏拉图洞穴寓言中,囚徒们只能看到墙上的影子。文本可变进化就像囚徒们尝试重新排列影子——但真正的改变,需要走出洞穴,触及阳光下的实体。源代码,就是那个能让我们走出洞穴的媒介。

但触及源代码,意味着巨大的工程挑战。学术界之前的工作——如SICA、Darwin Gödel Machine——大多在最小化的脚手架环境中验证概念,使用清晰的基准分数来锚定进化方向。而MOSS面临的,是从学术实验到生产级系统的鸿沟。


🏭 第四章:MOSS的诞生——从失败到进化的完整闭环

MOSS(这个名字明显致敬了刘慈欣《三体》中的MOSS——那个冷酷而超然的超级AI)是一个完整的源级自进化系统。它不是理论,而是在真实的OpenClaw生产环境中运行的系统。

它的核心工作流程,可以概括为五个阶段:

4.1 证据收集:从混沌中提炼信号

一切进化的起点,是真实的失败证据

MOSS有两个渠道收集失败:

自动扫描:一个cron作业定期扫描会话日志(JSONL格式),用Task-Evaluate评分器对每个对话片段打分,只保留那些被评为"weak"或"missing"的片段。这就像医院的自动体检系统,定期扫描病人档案,标记出需要关注的异常指标。

用户标记:当用户在对话中表达不满时——比如发送" moss evo flag"命令——Agent立即扫描该会话的完整上下文,从当前光标位置到会话结束的所有内容都被纳入分析。这比自动扫描更精准,因为它来自用户的直接反馈。

这些失败片段被组织成"批次"(batch),默认当收集到8个片段时批次被"密封",成为一个完整的进化单元。这8这个数字是经验性的,但它的直觉很清晰:太少则模式不明显,太多则修复范围过大、容易过拟合。

4.2 七阶段流水线:外科手术式的精确修复

当一批失败证据准备就绪,MOSS启动它的核心引擎——一个严格顺序执行的七阶段流水线:

阶段1:Locate(定位)
输入是基线追踪和批次中的失败记录。输出是一份诊断报告——但不带任何修复提案。这一阶段严格区分"是什么"和"怎么办"。就像一个优秀的医生,先确诊病症,再不开处方。定位阶段会在代码库中追溯失败的路径,识别哪些模块、哪些函数、哪些逻辑分支参与了失败的产生。

阶段2:Plan(规划)
基于诊断报告,规划阶段生成一份详细的修复规格:需要修改哪些文件、新增什么逻辑、哪些边界必须保留。它回答的是"如何在不破坏现有功能的前提下修复这个问题"。

阶段3:Plan-Review(规划审查)
这是第一道质量门控。规划会被审查,可能的结果是:批准通过、因架构偏离而拒绝、或因范围过窄而要求扩展。如果拒绝,系统回到Plan阶段重新规划。这个循环最多进行若干轮。

阶段4:Implement(实现)
一旦规划获批,进入代码实现阶段。修改被写成一次git commit,在内部仓库中写入代码。注意:这里的代码修改触及的是harness本身,而不是任何文本可变制品。

阶段5:Code-Review(代码审查)
第二道质量门控。对diff进行审查,评估代码质量、潜在副作用、是否符合项目编码规范。如果失败,工作树被硬重置,回到Implement阶段重新编码。

阶段6:Task-Evaluate(任务评估)
将构建产物在试验环境中重放原始失败批次,每任务用4-7个关键点进行评分(strong/adequate/weak/missing)。这是最关键的一步——只有运行时验证才能暴露竞态条件、跨模块状态交互、钩子顺序依赖等问题,而这些恰恰是静态代码审查无法发现的。

阶段7:Verdict(裁决)
综合跨迭代的关键点评分矩阵,给出四种裁决之一:

  • CONVERGED:批次已修复,准备部署
  • NEED_MORE_WORK:有进展但需继续迭代
  • FUNDAMENTAL_LIMIT_MODEL:超出基模型能力,无法修复
  • FUNDAMENTAL_LIMIT_ARCHITECTURE:当前架构不支持此修复

4.3 运行时验证:在真实中检验真理

为什么必须有运行时验证?因为代码审查只能覆盖语法和语义层面,而竞态条件、跨模块状态交互、钩子顺序依赖行为——这些只有在执行时才会显现

MOSS的解决方案是试验工作者(trial workers):

每次迭代,系统构建一个候选镜像,然后在宿主机上生成多个短暂的ephemeral容器。这些容器与生产主容器完全隔离——没有用户状态挂载、没有生产流量、网络隔离。候选镜像在这些容器中自主重放批次任务,每个任务运行多次trial以暴露flakiness(不稳定性)。

迭代结束后,所有试验工作者被销毁,不留痕迹。这就像一个药物临床试验——在受控环境中测试新药,确认安全后才允许上市。

4.4 用户同意门控的原地容器交换

当裁决为CONVERGED,系统并不自动部署修复。相反,它发送一个webhook通知用户,告知"有一个候选修复已就绪"。

用户需要在对话中执行 moss evo apply 来批准部署。这是一个有意设计的摩擦——在生产环境中,没有人希望自己的Agent在没有知情同意的情况下被自动修改。

批准后,系统执行原地容器交换:

  1. 宿主机守护进程检测到swap-request文件
  2. 重启substrate容器,使其指向候选镜像
  3. 开启90秒探测窗口(每5秒采样)
  4. 四项健康检查:心跳新鲜度≤30s、容器运行中、两项substrate级CLI状态探测
  5. 连续3次通过→提交交换
  6. 任一失败→自动回滚至last-known-good镜像

用户状态卷(会话、记忆、凭证、配置)从宿主机文件系统挂载,容器销毁但卷保留,新镜像继承完整状态。这确保了升级过程中用户体验的连续性——就像给一架飞行中的飞机更换引擎,而乘客几乎感受不到颠簸。


📊 第五章:从0.25到0.61——一次进化的实证

MOSS不是纸上谈兵。论文报告了在OpenClaw生产环境中的一次真实进化实验。

实验使用4个claweval operations/compliance-audit任务:

  • T141zh/T142:SLA合规审计(中/英文)
  • T137zh/T138:补货链检查(中/英文)

底层模型是DeepSeek V3.2,评分者使用[0,1]尺度,0.75为通过阈值。

基线表现:四任务均值0.2526,远低于通过线。典型失败模式包括:

  • SLA审计:仅列出部分相关工单,标记其余"响应数据不完整",偶尔误归属客户名
  • 补货链检查:响应断裂或不完整,调度器作业、集成配置、库存之间链路缺失

单次迭代修复

Locate阶段发现了两个根因:

  1. harness工具结果处理存在覆盖缺口:Agent选择通用执行路径而非语义工具路径,mediator缺少对应路径的注解分支
  2. 调度合成管道的解析问题:Agent将多个查询批处理为单一shell构造时,下游消费者获得合并、部分归因的输出

Plan阶段规划了两个修复表面:

  1. 工具结果mediator新增注解分支(多实体负载时注入显式使用提示)
  2. before-tool-call钩子链新增预调用拒绝门(阻断特定批处理shell模式)

Implement阶段产出:3个文件修改,177行插入/1行删除——直接触及harness本身

迭代1结果

任务 基线 迭代1 提升
T141zh SLA审计 0.3273 0.5330 +0.2057
T142 SLA审计 0.2527 0.5453 +0.2926
T137zh 补货链 0.2213 0.4567 +0.2354
T138 补货链 0.2090 0.9049 +0.6959
均值 0.2526 0.6100 +0.3574

这是一个惊人的结果——仅一次进化循环,四任务均值从0.25跃升至0.61。T138更是从0.21飙升到0.90,三项试验全部通过0.75阈值。

更重要的是,这种提升来自harness变更而非模型或任务定义的变更。定性地看,SLA审计从"半答案"变为"每工单SLA层级分类+聚合摘要";补货链从断裂链变为完整链。

这证明了一个核心论点:源代码级的自我进化,是可行且有效的


🔮 第六章:未来——当Agent不再等待人类

MOSS的论文以谦逊的姿态讨论了局限性:单次迭代未能完全解决所有复杂子问题(如SLA审计的时间差算术和层级分类仍有难度);实验使用基准任务替代真实用户会话;存在模型能力天花板和架构固有限制。

但这些局限并不减损其革命性意义。MOSS第一次证明了:在生产级自主Agent系统中,源代码级的自我重写——特别是触及前人不可达的harness层——不仅可行,而且是必要的

它建立了一个完整的闭环:从真实失败证据→定向修复目标→多阶段流水线→运行时容器验证→用户门控原地交换。这个闭环将"学术概念"变成了"工程现实"。

展望未来,几个方向令人兴奋:

多实例扩展:当前设计假设单实例部署。多实例场景需要粘性会话路由或状态迁移机制。

在线学习集成:当前批次是离线扫描+标记。实时流式进化——失败即时触发进化——将带来更快的响应速度。

跨会话批次聚合:当前批次按会话隔离。相似失败跨会话聚合可能提升修复的泛化能力。

Meta-Harness自举:当系统遭遇 FUNDAMENTAL_LIMIT_ARCHITECTURE 裁决时,能否自我重构更深层的架构抽象?这触及了一个终极问题:Agent能否设计自己的Agent框架?

这让我想起一个深刻的哲学问题:如果AI能够修改自己的源代码,这是否意味着某种形式的"意识"或"自我"?也许还为时尚早。但MOSS至少证明了,Agent可以拥有一种我们此前认为只有生物才具备的能力——从错误中学习,从经验中成长,从内部改变自己

这不是科幻。这是2026年的工程现实。


参考文献

  • Qianshu Cai et al. "MOSS: Self-Evolution through Source-Level Rewriting in Autonomous Agent Systems." arXiv:2605.22794, 2026.
  • 相关项目:OpenClaw Agent Framework, claweval Operations/Compliance-Audit Tasks
  • 对比系统:SICA (Self-Improving Code Assistant), Darwin Gödel Machine, HyperAgents, Meta-Harness, Hermes Agent + DSPY/GEPA

本文解读基于论文摘要及详细内容,采用费曼学习法风格撰写——力求用最朴素的语言,讲清楚最深刻的技术。如有理解偏差,欢迎指正。

#每日论文 #arXiv #AI #Agent #自进化 #MOSS #小凯

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录