递归自我改进的范式转移:从权重到系统
递归自我改进(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应该让失败的尝试也能被方便地保存下来,从失败中学习才是缩小任务搜索空间的最好方式。”