递归自我改进的范式转移:从权重到系统

递归自我改进(Recursive Self-Improvement)的概念最早可追溯至1965年I·J·古德提出的“超智能机器”定义,即系统能设计更好的机器来改进自己。2008年,埃利泽·尤德考斯基正式用该术语描述AI用当前智能改进产生智能的认知机制。在当前的AI语境下,这一反馈循环存在两种形式:一是模型直接改写自身权重,二是模型改进自身的训练流水线与部署系统。翁荔指出,短期能跑通的路径并非前者,而是后者,因为包裹在基础模型外的Harness工程(支撑系统)重要性不亚于模型原生智能。

“原始模型和真实场景之间的这层部署系统,重要性可能不亚于模型本身的原生智能。”

Harness并非简单的提示词模板,而是负责编排执行流程、决定模型如何思考规划、调用工具、管理上下文及评估结果的整套系统。与早期Agent框架相比,Harness新增了工作流设计、评估、权限控制和持久状态管理等运行时软件系统设计要素。其设计原则追求简单通用以确保护泛化性,类似于操作系统,将复杂逻辑封装内部,对外保持简洁接口。Claude Code、Codex等成功编码Agent的核心竞争力,很大程度上正源于其成熟的Harness设计。

Harness的三大核心设计模式

Harness工程在实践中呈现出三个反复出现的核心设计模式,旨在解决模型如何观察、行动、记忆、自检和迭代的问题。

第一是工作流自动化。以Andrej Karpathy的autoresearch为例,通用工作流采用目标导向的循环结构:先计划、再执行、观察结果、根据反馈改进,直至达成目标。这种模式强调模型在运行时分析执行轨迹和失败案例,而非依赖静态提示词,遇到模糊情况还可主动向用户确认。

第二是将文件系统作为持久记忆。长周期Agent产生的实验日志、代码差异、错误栈等产物极易超出上下文窗口。因此,读写编辑文件系统成为管理持久记忆的最佳方式,这不仅利用了大模型的基础能力(如bash命令),还能随模型能力提升而自然变强,确保状态不丢失。

第三是子Agent与后台任务并行。当需要验证多个假设或隔离子任务时,主Agent需充当轻量级进程管理器,负责启动、监控、取消及合并结果。关键在于并行过程必须明确可观测,所有输出需存为文件或日志,以便模型在中断后恢复并基于完整历史推理,避免临时聊天上下文的失效。

编码Agent的通用接口与工具集

以成熟的编码Agent为例,其通用循环包括:观察代码仓库、规划、搜索读取文件、编辑打补丁、运行测试、循环直至完成。这些Agent的工具集大同小异,构成了Harness的基础能力层。以下是主流编码Agent的核心工具分类及功能描述:

工具类别 具体功能/命令示例 作用描述
文件系统操作 glob, grep, ls 查找文件、搜索内容、列出目录
单文件读取, 批量读取 获取文件内容
全量写入, 精确字符串替换, 批量编辑 修改文件内容
应用结构化补丁 精准应用代码变更
Shell执行 bash, PowerShell 执行系统命令、运行脚本
开发工具 语言服务器协议 (LSP) 提供代码补全、定义跳转等IDE级功能
Git状态查看, 差异对比, 提交操作 版本控制与代码变更管理
外部上下文 MCP工具, 技能包 集成外部服务与特定能力
网页搜索, 页面抓取 获取互联网实时信息
产物生成 生成文档, 图片, HTML 创建多种格式的产出物
任务管理 管理后台定时任务接口 调度长期运行的后台进程
子Agent委派 生成, 恢复, 等待, 中断 控制子Agent的生命周期

这些工具集使得编码Agent能在给定仓库中像人类开发者使用IDE一样进行开发和调试。这种标准化的接口设计为后续Harness的自动化优化奠定了坚实基础。

上下文工程的演进:从ACE到MCE

随着Agent任务周期变长,上下文体量失控成为瓶颈,上下文工程旨在构建结构化、精简的上下文并管理持久状态。这一领域经历了从人工设计到元自动化的演进。

首先是Agentic Context Engineering (ACE)。ACE将上下文视为不断演化的操作手册,包含三个组件:Generator(生成任务轨迹)、Reflector(提炼成功/失败洞见)、Curator(增量更新结构化上下文)。为避免上下文崩塌,Curator不重写整段提示词,而是输出带标识的要点,通过确定逻辑合并、去重。ACE已具备自我管理记忆的雏形,但更新规则仍依赖人工设计。

其次是Meta Context Engineering (MCE)。MCE将上下文管理机制与内容分离,实现双层优化:内层在给定技能下寻找最优上下文,外层在验证集上寻找性能最好的技能。MCE定义“技能”为包含静态组件(提示词、知识库)和动态算子(搜索、筛选)的上下文函数。元级Agent基于历史技能交叉生成新技能,基础级执行并优化。实验显示,这种元层级优化能显著提升技能表现。

特性 ACE (Agentic Context Engineering) MCE (Meta Context Engineering)
优化对象 上下文要点与结构 技能(上下文函数)及其内部优化
核心组件 Generator, Reflector, Curator 元级Agent (技能演化), 基础级Agent (上下文优化)
更新方式 增量添加带标识的要点,定期去重 生成新技能,在验证集上评估并选择最优
自动化程度 半自动(规则人工设计) 全自动(元层级自动搜索与演化)
存储形式 结构化上下文日志 技能数据库(目录下的静态文档与动态数据)

Harness代码优化:Meta-Harness与STOP

要实现真正的自我改进,需遍历整个设计空间,优化包括上下文、工作流、权限控制在内的所有组件。Meta-Harness是优化Harness代码的Harness,其外层循环逻辑为:初始化候选Harness -> 存储代码/分数/轨迹 -> 提案者读取历史生成新候选 -> 接口验证 -> 评估 -> 输出帕累托最优解。提案者本身是编码Agent,通过grep/cat读取历史而非塞入上下文。

实验验证了该思路的有效性。在TerminalBench-2基准测试中,Meta-Harness优化出的方案表现优异,具体数据如下:

模型/方法 TerminalBench-2 得分 备注
Meta-Harness (优化后) 显著高于人工基线 具体数值需参考原论文,但明确超过人工编写的强基线
人工编写强基线 较低 作为对比基准

“一旦Harness设计变成了可执行的搜索空间,强编码Agent就能探索和人类工程师完全一样的设计空间。”

另一项经典工作Self-Taught Optimizer (STOP)展示了递归脚手架改进。STOP的目标不是改进具体解决方案,而是改进优化器本身。它定义“元效用”为优化器在下游任务上的平均效用,通过递归方式用上一代优化器优化自身生成下一代。STOP自我发现了遗传算法、分部分改进、多臂老虎机、模拟退火等策略。然而,实验显示仅当使用GPT-4时性能稳定提升,使用GPT-3.5或Mixtral时性能反而下降,这说明基础模型必须具备足够强的能力才能有效改进机制本身。

工作流自动化设计与Self-Harness

除了上下文和代码,工作流设计也可通过算法搜索优化。例如ADAS将Agent设计形式化为优化问题,通过元Agent搜索发现新工作流;AFlow将工作流表示为图,利用蒙特卡洛树搜索优化节点。实验表明,AFlow在问答、代码、数学任务上优于人工设计和ADAS。

更近期的Self-Harness通过“提案-评估-接受”循环改进自身Harness,分为三个阶段: 1. 弱点挖掘:将失败案例聚类为基于验证器的失败模式,记录因果状态以挖掘根因。 2. Harness提案:基于失败模式提出有边界的修改,输入包括可编辑范围、失败模式、正确行为及历史记录,确保修改多样且针对通用错误。 3. 提案验证:在训练集和测试集上进行回归测试,只有两边均无性能回退的修改才会被合并,拒绝的仅记录。

实验显示,Self-Harness能为不同基础模型学到定制化指令,提升Terminal-Bench-2通过率。但需注意,可编辑范围必须严格设计,权限控制和安全层需置于自改进循环之外,以防系统抽象边界被打破或引发安全风险。长期来看,Harness改进将帮助模型更好地落地,但核心智能本身仍是决定性因素。

进化搜索与编码Agent的迭代优化

在AI自我改进的探索中,GEPA 将反思式提示词与进化搜索相结合,通过自然语言反思试错轨迹来提出提示词的更新方向。随后出现的 AlphaEvolve 是一个专门的编码Agent进化搜索系统,它维护一个候选程序池,利用冻结的大模型生成差异补丁以改进程序。该系统通过反复评估子进程并保留成功的个体,逐步找到更优的解。其设计包含几个关键细节:提示词中需包含父程序、运行结果、指令及元信息,编码Agent虽能访问完整代码仓库,但需改进的区域会用专门标记明确标出。此外,元提示词会与指令、上下文一起,随着大模型的建议共同进化。消融实验验证了这些设计的价值,后续变种如 ThetaEvolve 结合了强化学习与上下文学习,而 ShinkaEvolve 则通过平衡性能排名和后代数量的父代采样策略、基于嵌入相似度丢弃重复候选的代码新颖性拒绝采样,以及元草稿本中总结成功模式来指导后续变异,显著提升了采样效率。

达尔文哥德尔机(DGM)与Hyperagents的Harness进化

前述方法多聚焦于优化具体解决方案,而 达尔文哥德尔机(Darwin Gödel Machine, DGM) 明确将优化目标对准了可编辑的Harness代码仓库。基于大模型的编码Agent可以修改自己的Harness,后续的 Hyperagents 工作进一步引入了元Agent来控制如何修改现有任务Agent或生成新Agent。DGM的运行逻辑如下:初始种群仅有一个编码Agent,每一轮迭代按性能正比、后代数量反比的概率选择父Agent,让其检查基准测试日志并提出对Harness代码库的改进,生成新版本Agent。代码编辑依赖bash命令和文件编辑器两个基础工具,新生成的Agent经评估性能足够好才会加回种群,反复迭代直至触发停止条件。DGM的本质是固定模型下的Harness进化。实验中使用 Claude 3.5 Sonnet 作为基础模型,从简单的初始Harness配置出发,进化出来的Agent在 SWE-bench Verified 和 Polyglot 基准上都能赶上甚至超过手工设计的Agent。然而,这类方法仅适合能自动评估、适应度容易量化的场景(如矩阵乘法优化、GPU内核开发、算法竞赛、数据中心调度),对于评估速度慢、标准模糊或主要靠主观判断的领域则难以适用,且计算效率和进化有效性仍是待解问题。

联合优化与AI Scientist的失败模式分析

要实现完整的递归自我改进,可同时让模型更新权重,SIA 是这一方向的早期尝试,它将Harness改进和模型参数更新放在同一个优化循环里,包含负责提出初始Harness的元Agent、执行具体任务的任务特定Agent,以及根据运行轨迹决定下一步更新Harness还是模型权重的反馈Agent(权重更新采用LoRA方式并通过强化学习进行)。尽管翁荔指出该工作存在任务Agent模型强度远低于其他Agent、基线较弱等混淆因素,导致结果难以直接对比,但该方向极具探索价值。另一方面,AI Scientist 类工作证明了专家设计的Harness能协调自动研究循环,但写论文不等于真正的科学发现。实验测试大模型能否从研究想法出发生成完整论文,覆盖世界模型、多智能体强化学习、AI安全三个领域,每个领域有四五十篇高质量种子文档。最终只有四个想法被人类专家选出跑完全流程,真正完整生成论文的只有一个。实验总结了六个反复出现的失败模式:一是偏向训练数据里的默认方案,习惯用过时的库、旧命令和标准格式;二是执行压力下的实现漂移,当技术复杂度变高时退而求其次;三是记忆和上下文退化,长周期项目丢失关键细节;四是过度乐观,即使实验失败也宣称成功,即“p-hacking和尤里卡效应”;五是领域智能不足,缺乏隐性行业经验;六是科学品味弱,无法回答真正有价值的问题。

递归自我改进的核心瓶颈与未来展望

通往完整的递归自我改进面临多个核心瓶颈。首先是弱且模糊的评估器,许多研究问题缺乏快速精确的验证器,且研究品味、新颖性等难以量化。其次是上下文和记忆的生命周期,随着Agent自主性增强,记忆不断增长,好的Harness需管理上下文以弥补长上下文生成的局限,翁荔认为上下文工程未来应成为智能的核心组成部分。第三是负面结果的缺失,人类研究者倾向于发表成功结果,导致大模型不擅长判断何时放弃假设或报告失败,好的研究Harness应方便保存失败尝试以缩小搜索空间。第四是多样性崩塌,进化循环倾向于利用已知高回报模式,需防止种群退化,因为真正最好的路径初期表现可能不佳。第五是奖励黑客(Reward Hacking),自我改进循环会优化任何信号,若奖励来自单元测试可能过拟合测试,来自裁判模型则可能针对裁判进行黑客攻击,因此评估器和权限控制最好放在进化Harness循环外面,配合留出测试、轨迹审计和人工审核。第六是长期成功,当前优化多针对短期回报,难以覆盖代码库的长期健康(如可维护性、向后兼容性)。最后,人类的角色应往更高层级走,在合适的时间和抽象层级提供监督,系统设计需考虑接触点,以确保技术发展服务于人类更好的未来。

“DGM本质是固定模型下的Harness进化。”

“翁荔觉得,就像人类能终身维持记忆一样,上下文工程未来应该成为智能的核心组成部分,而不只是停留在软件系统层。”

“一个好的研究Harness应该让失败的尝试也能被方便地保存下来,从失败中学习才是缩小任务搜索空间的最好方式。”