在LLM Agent迅速发展的今天,如何为Agent设计合适的Harness(约束/马具)成为了一个关键问题。今天分享2篇最新论文分别从记忆系统和动作约束两个维度,提出了自动化的Harness进化方法。
* 一篇来自微软的M⋆专注于让每个任务拥有专属的记忆 Harness 结构
* 另一篇来自谷歌的AutoHarness则致力于自动生成代码级约束来防止非法动作。
!Image 1 说实话,我看完这两篇论文的第一反应是:AI研究风向真的变了:自进化Agent
想深入了解这个方向的小伙伴,分享了一份前沿论文合集&Code:自进化Skills、Agent系统、世界模型、Context、Harness……
识别下方二维码,回复「120Agent」免费获取全部论文合集及项目代码
一、M⋆:每个任务都值得拥有专属的记忆Harness
1.1 核心问题:固定记忆结构的局限性
当前LLM Agent的记忆系统往往采用"一刀切"的设计——无论是对话Agent使用的语义检索,还是代码Agent使用的技能系统,抑或是专业领域使用的结构化数据库。但问题是:为一个领域优化的记忆设计往往无法迁移到其他领域。
!Image 3: Figure 1: 不同任务进化的不同记忆结构示意图,展示了Legal、Conversation、Embodied AI、Healthcare四个领域各自独特的记忆Harness结构
Figure 1: 不同任务进化的不同记忆结构示意图,展示了Legal、Conversation、Embodied AI、Healthcare四个领域各自独特的记忆Harness结构
如图1所示,对话任务(LoCoMo)需要实体关系图来追踪人物关系,法律查询(PRBench)需要关系型数据库存储判例,而具身智能(ALFWorld)则需要轨迹查找表。这些结构差异巨大,无法用一个通用方案解决。
1.2 方法:可执行程序进化
M⋆将记忆Harness表示为一个Python记忆程序,包含三个核心组件:
* Schema:定义存储和检索的数据格式(使用Python dataclass)
* Logic:定义后台操作(写入/读取逻辑,可调用向量数据库、SQL或LLM)
* Instruction:定义Agent如何与记忆交互的提示词常量
Figure 2: M⋆系统 overview,展示了从Seed Memory Program到Program Pool,经过Evaluate、Reflect & Mutate、Quality Checks的迭代过程
系统采用反射式代码进化(Reflective Code Evolution):
- 验证循环采样:使用静态验证集和旋转验证集评估当前程序
- 编码Agent迭代:基于执行轨迹和失败案例,LLM分析根因并生成代码补丁
- 约束检查与自动修复:编译检查、冒烟测试、运行时约束(如返回不超过3000字符)
1.3 实验结果
在四个截然不同的Benchmark上(LoCoMo对话、ALFWorld具身、HealthBench医疗、PRBench法律金融),M⋆在7/8个配置中取得了最佳表现:
!Image 5 _Table 1: 主实验结果对比(部分数据),M⋆在多数任务上显著超越固定记忆基线_
!Image 6: Figure 3: 进化轨迹图,展示了在多个benchmark上验证分数随迭代的变化,呈现"早期修复结构错误-中期大幅改进-后期精细调优"的三阶段模式
Figure 3: 进化轨迹图,展示了在多个benchmark上验证分数随迭代的变化,呈现"早期修复结构错误-中期大幅改进-后期精细调优"的三阶段模式
关键发现:
* 结构多样性:不同任务进化出截然不同的记忆结构(见图4 t-SNE可视化)。例如ALFWorld最佳程序使用简单列表+LLM摘要,而LoCoMo使用SQL+ChromaDB的混合设计。
* 任务特异性:跨任务迁移实验证明,将A任务进化出的记忆程序用于B任务,表现甚至不如通用基线,证明记忆结构必须与任务协同优化。
Figure 4: 程序嵌入空间可视化,不同颜色代表不同benchmark,显示各任务收敛于不同的结构聚类(LLM-Centric、Semantic Search、Hybrid Retrieval等)
二、AutoHarness:自动生成代码Harness防止非法动作
2.1 核心问题:LLM的"非法动作"困境
尽管LLM在代码生成和数学推理上表现卓越,但在严格定义的环境中(如棋类游戏),它们经常提出非法动作。在最近的Kaggle GameArena国际象棋比赛中,78%的Gemini-2.5-Flash失败都源于非法移动。
传统解决方法需要为每个游戏手工编写约束代码(harness),既费力又容易出错。AutoHarness提出让LLM自动生成并优化这些代码约束。
2.2 方法:树搜索+Thompson采样的代码合成
将Harness生成建模为程序搜索问题,使用Thompson采样引导的树搜索平衡探索(尝试不同逻辑结构)与利用(改进部分有效的Harness)。
!Image 9: Figure 1: Code-as-harness学习框架,展示树结构中节点(代码变体)通过Thompson采样选择,经评估器反馈后由Refiner生成新代码
Figure 1: Code-as-harness学习框架,展示树结构中节点(代码变体)通过Thompson采样选择,经评估器反馈后由Refiner生成新代码
支持三种Harness模式:
- harness-as-action-filter:生成合法动作候选集,由LLM排序选择
- harness-as-action-verifier(主要实验):LLM生成动作→代码验证合法性→非法则重试
- harness-as-policy:完全用Python代码实现策略,测试时无需LLM调用
* 反馈驱动:环境返回动作是否合法及奖励信号
* 迭代优化:基于错误案例和轨迹,LLM生成代码补丁(V4A格式)
* 编译-修复循环:自动处理语法错误和运行时约束违反
2.3 实验结果
在TextArena的145个游戏(排除自由文本对话类)上进行了全面测试: 训练效率:平均14.5次树搜索迭代即可达到100%合法动作率,其中19/32个游戏在10次迭代内收敛。
!Image 10: Figure 2: 6个代表性游戏的启发式值(合法动作率)随合成迭代次数的变化曲线
Figure 2: 6个代表性游戏的启发式值(合法动作率)随合成迭代次数的变化曲线 对战性能(2P游戏):
* Gemini-2.5-Flash + Harness vs Gemini-2.5-Pro:9/16胜率(总体胜率56.3% vs 38.2%)
* 证明较小的模型配合专用Harness可击败更大模型
!Image 11: Figure 3: 在16个2P游戏中与Gemini-2.5-Pro对战的胜率/平局/败率柱状图(绿色为胜,红色为败)
Figure 3: 在16个2P游戏中与Gemini-2.5-Pro对战的胜率/平局/败率柱状图(绿色为胜,红色为败) 单玩家游戏(1P): 平均奖励0.745,超越Gemini-2.5-Pro(0.707)和GPT-5.2(0.635)。 极限模式:Harness-as-Policy: 当让模型生成完整策略代码(而非仅验证器)时,在16个1P游戏上取得0.870平均奖励,超越GPT-5.2-High(0.844),且测试时成本几乎为零(无需LLM调用)。
!Image 12: Figure 5: 不同Agent在16个TextArena 1P游戏中的平均奖励对比,Harness-as-Policy(橙色)表现最佳
Figure 5: 不同Agent在16个TextArena 1P游戏中的平均奖励对比,Harness-as-Policy(橙色)表现最佳
写在最后
回过头看这两篇论文,你会发现一个共同的趋势:大模型Agent的研究,正在从“如何让模型更聪明”转向“如何给Agent配一个更合适的Harness框架”。
顺着这个方向继续深入,需要读的论文远不止这两篇。也分享一份目前大模型Agent方向的120篇高质量论文(含源码)。
识别二维码,回复「120Agent」即可获取。