原文标题:NeoHorse-1: Towards Recursive Self-Improvement via Agentic Post-Training with Routing Harness
首次公开:2026年9月8日(arXiv v1)
主要署名单位:TokenRhythm Technologies
龙哥导读
NeoHorse-1把路由器、工具轨迹和评测接成Agent后训练循环。在同规模Qwen3.5基座、十项评测非加权平均上,4B从58.94升至64.87,提升5.93分;9B从65.60升至69.04。它最值得看的不是“递归自我改进”口号,而是怎样把部署过程证据变成可审计的训练资产。
先问一个现实问题:一个Agent完成任务后,如果团队只留下“用户问题”和“最终答案”,中间的工具调用、环境反馈、失败恢复与结果验证都会被压扁。下一轮训练看到答案,却不知道模型缺的是知识、规划、工具选择、状态跟踪,还是停止时机。
NeoHorse-1的出发点是:部署Harness本身就是一台持续产生训练证据的机器。它既知道请求被路由到哪个能力层级,也能看到工具调用、环境反馈和任务结果。只要这些信息没有在清洗时被粗暴抹掉,路由系统就不只是省钱的流量调度器,还可以成为下一轮模型训练的“能力传感器”。
图1|论文Figure 2。多样任务进入Routing Harness,路由器从异构模型池选择服务;轨迹进入训练混合,经Agent监督、路由课程与路由引导OPD更新NeoHorse-1,能力反馈再影响后续数据分配。来源:TokenRhythm官方技术报告,仓库采用Apache-2.0许可证。
一、这里的“递归自我改进”,到底递归在哪里
传统后训练通常是开环:先确定训练集,再跑SFT、偏好优化或强化学习,得到新模型后结束。NeoHorse-1画出的理想闭环则是“执行—评测—选数—更新—再执行”。模型回到Harness之后,会暴露新的强项和短板;这些结果再改变下一轮训练数据的构成。换句话说,模型学会了什么,会反过来决定它接下来主要从什么经验里学习。
但必须把论文的完成度说准确:这篇报告验证的是这条路线的初始原型,主实验展示了一次评测、选择和更新闭环,并没有连续训练很多代,也没有证明收益会无限复利。因此,“Towards Recursive Self-Improvement”里的“Towards”很关键。它给出的是一条可操作路径,不是已经完成了强意义上的递归自我改进。
这条路径依赖三个信号:包含工具与恢复过程的执行轨迹、预测与实际服务分离的路由信号、任务完成与产物验证组成的结果信号。三者连起来,才能区分路由错误、执行错误和数据覆盖不足。
C0到C3不是固定模型名单,而是相对能力需求:从边界清楚的低风险请求,到追求最高能力或可靠性的任务。模型和价格会变化,所以训练使用需求语义,而不是把“曾由某个大模型回答”当成难度标签。
二、最重要的第一步:不要把Agent轨迹压成问答对
数据有三个粒度:trajectory保存完整执行,user turn从一次用户请求延伸到下个请求或终止,subscene合并围绕同一局部目标的相邻轮次。三层保留父子关系,清洗、标签、路由和结果才能对齐。
训练时,当前轮的推理、工具调用和可见回答可以作为监督目标;更早轮次的可见回答、工具调用与工具结果保留为上下文,但更早轮次的隐藏推理被删除。这个选择解决了两个矛盾:一方面,Agent必须知道前面做过什么;另一方面,不能把历史隐藏推理无限堆入上下文,更不能让模型在训练当前轮时“偷看”后面的工具结果。
图2|论文Figure 4。上半部分是原始交互,下半部分是当前用户轮次的训练序列。历史内容只作上下文,当前轮Assistant的推理、工具调用和回答参与损失,用户消息与工具结果不参与预测损失。图中块宽不代表token数量。来源:TokenRhythm官方技术报告。
若把工具结果也当成预测目标,模型会被迫“背诵环境”;若只监督最后一句回答,又学不到工具调用和失败恢复。论文只监督模型应产生的Assistant片段,其余内容作为条件。
对应的SFT目标可以写成:
xi,t是token,mi,t是二值掩码:当前轮Assistant目标取1,其余取0。目标按被监督token数归一化,让不同长度和工具调用次数的样本都按真正需要学习的输出部分计费。
三、质量闸不是一个总分,而是一张可追责的检查表
Agent数据最怕两件事:格式看起来完整,因果链其实断了;任务表面完成,证据和结果却对不上。NeoHorse-1先做确定性结构校验,再做语义评价。结构校验会重建请求、模型响应、工具调用、工具观察和终止事件,检查消息能否读取、事件顺序是否合理、工具调用与结果ID是否闭合、是否存在孤立结果、重复ID、未解决内部调用或含糊的终止分支。
结构闸输出三类状态:内部完整、部分可恢复、隔离。完整轨迹继续进入语义评价;部分可恢复的轨迹只保留因果闭合的子轨迹;无法判断事件归属、也找不到可用监督目标的轨迹直接隔离。能被序列化,不等于工具选对了;工具调用闭合,也不等于任务成功了。论文把这两层明确拆开。
语义层检查目标达成、指令遵循、工具使用、证据一致性、错误恢复和终止质量。每项保留PASS、WARN、FAIL或NOT_EVALUATED,并单记证据覆盖;缺证据不能自动算通过。它比一个总分更能定位问题。
subscene层再用Scene、Goal、Outcome描述用户在做什么、想达到什么、结果能否验证。把这些属性与路由层级、完成状态和恢复成本交叉统计,才能得到具体能力缺口,而不是一句“模型还不够强”。
四、路由分数不直接改损失,它先决定学习顺序
每条用户轮次都会得到C0—C3的归一化支持分数πi,k。论文同时讨论硬排序和软排序:
ki是最终分配的层级,软分数则计算四个层级索引的加权平均。两条样本都被分到C2时,一条可能几乎确定是C2,另一条可能在C1与C2之间摇摆,软分数能保留这点差异。重要的是,si只用于排序,不给高分样本额外加权;SFT损失本身不变。
图3|论文Figure 5。三阶段课程逐步提高高路由分样本的占比,但后期仍保留部分低分样本;每个样本每轮只使用一次,阶段切换不重置优化器或学习率计划。来源:TokenRhythm官方技术报告。
课程分三段,每段大约包含三分之一数据:第一阶段偏低需求,第二阶段扩大范围,第三阶段偏高需求。论文特意在后期保留一些低分样本,避免训练尾段完全被复杂交互占据。它不是“先简单后困难”的教科书复刻,而是把线上路由器已经形成的能力需求估计,转成训练顺序。
很多多模型系统本来就记录预测层级、策略修正和实际服务模型。适合作为课程信号的是请求与历史体现的能力需求;实际服务模型还受价格、容量和故障降级影响,直接拿它当难度会把运营策略误写进训练目标。
五、为什么SFT之后还要做On-Policy Distillation
SFT学习的是记录里已有的Assistant回答,但部署时模型必须沿着自己的前缀继续生成。一旦早期token和训练轨迹偏离,后续状态也会变化,这就是固定教师轨迹与学生真实行为之间的分布差距。NeoHorse-1把相同的三阶段路由课程扩展到on-policy distillation,简称OPD。
图4|论文Figure 6。路由分数决定每阶段抽取哪些起始上下文;学生先生成自己的回答,固定教师在学生已经生成的前缀上给出下一token分布,再用反向KL更新学生。虚线表示后续刷新学生检查点继续生成。来源:TokenRhythm官方技术报告。
每个起始状态取自真实记录中Assistant回答之前的上下文。学生从这里生成一段新回答,固定教师不是重写一条“标准答案”,而是在学生已经走到的每个前缀上给出下一token分布。两边使用相同候选集合:保留rollout学生top-K token,把剩余词表概率合并成一个额外桶,然后计算反向KL:
P̃是学生分布,Q̃是固定教师分布,Lr是回答长度;提示词和padding不参与损失。反向KL沿学生真实前缀纠偏,但教师质量、top-K压缩和rollout更新频率都会影响效果。
根据论文方法整理的伪代码
输入:Harness轨迹、质量标签、C0-C3路由分数、评测缺口
for 每条轨迹:
if 工具链不闭合且不可恢复: 隔离
else: 按用户轮次序列化,仅监督当前轮Assistant片段
for stage in [低需求, 混合需求, 高需求]:
执行SFT
学生生成前缀 → 固定教师评分 → 反向KL更新学生
if 分层评测发现能力缺口: 重配下一轮训练数据
输出:新检查点与下一轮数据分配
伪代码里最关键的是最后一行:失败并没有被简单改写成“负样本损失”。论文让失败告诉系统“哪个能力区域需要增加或重平衡数据”,再改变训练混合。这样避免把所有失败当成同一种错误,也避免在目标不清楚时设计一个可能奖励投机行为的统一失败奖励。
六、十项评测:4B的收益更广,9B的收益更集中
论文主表覆盖十项评测,不是摘要中偶尔出现的“十一项”。六项Agent相关评测是BFCL V4、VitaBench、τ²-Bench、PinchBench、WorkBuddy Bench和QwenClawBench;两项代码评测是HumanEval与LiveCodeBench v6;两项指令遵循评测是IFBench与IFEval。平均分是十项的非加权算术平均。
图5|官方仓库4B结果图。NeoHorse-1-4B橙色柱与五个同量级开放权重基线比较;右下平均分是十项非加权平均。部分基线的单项结果来自其官方报告,原表以星号标记。来源:TokenRhythm/NeoHorse官方仓库,Apache-2.0。
与同基座Qwen3.5-4B相比,NeoHorse-1-4B十项都提高:VitaBench 21.50→32.00,PinchBench 71.19→77.33,WorkBuddy 24.62→34.41,QwenClaw 38.47→44.68,BFCL V4 61.02→61.79,τ²-Bench 84.29→88.46,HumanEval 87.20→96.95,LiveCodeBench v6 53.71→59.43,IFBench 60.33→65.33,IFEval 87.06→88.35。最终58.94→64.87。
最明显的提升不是静态格式服从,而是WorkBuddy、VitaBench、QwenClaw、HumanEval和LiveCodeBench这类执行、工具和代码任务。4B在十项上都没有低于同基座,说明收益不是靠牺牲一类能力换另一类能力。但它也不是所有单项第一:例如LiveCodeBench上Nanbeige-4.2-3B的官方报告值更高,IFEval也有其他模型领先。
图6|官方仓库9B结果图。NeoHorse-1-9B与Qwen3.5-9B及更大参数参考模型比较。右下69.04仍是十项非加权平均,不代表在每个单项都第一。来源:TokenRhythm/NeoHorse官方仓库,Apache-2.0。
9B从65.60升到69.04,提升3.44分。具体看,VitaBench 31.25→42.25,PinchBench 74.55→82.25,WorkBuddy 39.60→40.15,QwenClaw 44.04→48.73,BFCL V4 64.88→67.43,τ²-Bench 88.04→90.82,HumanEval 92.68→98.17;LiveCodeBench v6保持65.14,IFBench保持66.33,IFEval从89.46小幅降到89.09。
所以“9B全面提升”并不准确。更严谨的说法是:9B收益集中在多步执行、工具交互和代码,静态指令遵循基本持平,其中IFEval略降0.37分。这也符合论文的行为分析:模型规模增加后,优势更多出现在长链状态维持、失败后改策略和持续验证,而不是每个静态题都更强。
QwenClawBench、WorkBuddy Bench和τ²-Bench做三次独立运行取平均,PinchBench与VitaBench各一次,其余遵循官方协议。VitaBench用DeepSeek-V4-Flash同时模拟用户和担任裁判。单次运行与模型裁判都会增加不确定性,不能把所有小数点差异当成稳定能力差。
七、控制实验真正回答了什么:数据来源比“同一套课程”更重要吗
主表只能说明整套配方有效,无法判断收益究竟来自路由课程、OPD、真实轨迹还是其他公开数据。论文进一步做了一组更有解释力的控制实验:都从Qwen3.5-4B开始,都使用同样的离线路由打分、课程安排、优化器、随机种子、packing方法、评测协议和接近的训练预算,只替换Agent数据来源。
图7|论文Table 3。同一训练配置下,公开合成工具Agent数据Toucan与真实路由Harness轨迹在LiveCodeBench、HumanEval、IFBench、BFCL V4、τ²-Bench五项上比较,平均分别为64.32和70.57,绝对差6.26分。来源:TokenRhythm官方技术报告。
路由Harness轨迹在五项都高:LiveCodeBench +4.00、HumanEval +8.54、IFBench +5.00、BFCL V4 +2.43、τ²-Bench +11.31,非加权平均差6.26分。这个结果支持“真实执行轨迹比公共合成工具数据更可迁移”,但不能被扩大成“任何线上日志都优于合成数据”。比较对象只有Toucan,且两类数据的序列构成不同;真正有效的可能是任务分布、工具反馈、失败恢复、结果验证或它们的组合。
数据规模实验从同一个按质量排序的轨迹池构造严格嵌套子集,保持初始化、优化、packing和遍历次数不变。唯一监督token从约200万扩展到1000万时,五项平均从基线69.31逐步升到71.45。它说明在这段范围内增加高质量Agent监督仍有收益,但曲线只覆盖一个有限区间,不能据此外推到更大数据规模仍保持相同斜率。
执行案例显示:排期任务中,同规模基座漏看更新依赖的邮件,NeoHorse-1-4B补齐证据并重新验证;代码修复中,4B一次实现后停止,9B完成“编辑—测试—检查—修复”;pandas不可用时,9B改用Python标准库,相对4B减少约70.8%的模型请求、76.7%的执行时间和83.6%的token。这些只是代表性案例,用于解释行为机制,不能证明所有任务都有同等节省。
八、和Self-Harness、Co-Harness、MetaSkill-Evolve放在一起看
这条研究线共同追问:Agent运行后的失败和经验,究竟应该改哪里?不同论文选择了不同“可变对象”。
Self-Harness优先改Harness。它固定模型,把提示词、工具和技能等运行组件作为可编辑对象,根据失败证据提出并验证修改,回答“模型不变时,运行系统能否修好自己”。
Co-Harness同时改Harness与模型。它先从失败轨迹诊断运行层问题并验证局部修改,再用改进后的Harness收集轨迹、微调下一代模型,形成Harness与权重交替更新的双循环。
MetaSkill-Evolve改的是“改进过程本身”。它让任务技能快速演化、meta-skill慢速演化,使诊断、检索、预算、提案和验证也能被同一套Agent流程修改,而不更新模型权重。
NeoHorse-1则把重点放在部署路由反馈如何进入模型权重更新:保留轨迹,做结构与语义质量闸,用C0—C3需求安排SFT和OPD,再按评测缺口重配数据。它没有像Self-Harness那样直接验证Harness代码修改,也没有像Co-Harness那样展示多轮Harness与权重共同演化,更没有像MetaSkill-Evolve那样让改进操作器自我改写。它补上的一环,是把路由系统从推理时调度器升级为训练时的数据组织器。
九、真正落地时,团队要补的不只是训练代码
第一,日志要有稳定身份。请求、模型调用、工具结果、重试、终止、产物和验证器输出都要能通过ID关联,否则“完整轨迹”只是按时间拼接的文本。
第二,结构事实与语义判断要分层。工具调用是否闭合、JSON是否可读、结果ID是否匹配,应由确定性规则判断;目标是否完成、证据是否支持结论、恢复是否有效,才交给语义评价。能用规则确定的事实,不要再让模型裁判覆盖。这是控制成本和审计风险的底线。
第三,路由器要记录“原始预测—策略修正—实际服务”三件事。比如系统认为任务需要C3,但因容量降级到C2,结果失败;这不等于C2类任务失败,也不等于路由器预测正确。把三者混成一个标签,下一轮课程会学到错误的能力边界。
第四,能力缺口要落到数据预算。不能只说“代码能力不足”,而应定位到仓库浏览、依赖诊断、测试闭环、错误恢复或产物校验,再决定下一轮补哪些区域、保留多少低需求覆盖。
第五,真实Harness轨迹可能包含用户内容、凭据片段、内部文件和业务决策。脱敏、访问控制、训练授权和删除机制必须在进入训练池前解决;论文展示了质量管线,但企业仍要补隐私治理。
十、局限:漂亮闭环目前还缺四块硬证据
第一,只验证了一轮。递归自我改进最关键的问题是多代稳定性:第二轮、第五轮以后,数据分布会不会变窄,评测会不会被过拟合,Harness会不会不断生产模型已经擅长的任务,弱点又会不会迁移到看不见的新区域。本文尚未给出连续世代曲线。
第二,整套配方的独立贡献没有完全拆开。主结果同时包含轨迹治理、路由课程、OPD、公开数据与能力重分配。论文给了数据来源和规模控制实验,但没有完整展示“无课程”“无OPD”“无能力重分配”“只做普通SFT”等全矩阵消融,因此不能把5.93分全部归因于某一个模块。
第三,语料和成本披露仍较粗。主要Harness语料只报告约105—106条轨迹量级,缺少更细的任务占比、通过率、隔离率、教师调用量、训练token总量和计算成本。公开仓库提供4B、9B权重、量化版本以及聊天和工具调用示例,但没有公开完整训练流水线与全部数据。
第四,评测覆盖仍偏Agent、代码、工具和指令遵循。结果不能直接外推到知识更新、长文事实一致性、多模态、科学推理或安全对齐。部分基准只有单次运行,VitaBench还依赖模型模拟用户与裁判;这些都要求读者把“总体上涨”理解为给定评测协议内的结果。
龙哥点评:Agent时代最值钱的,可能不是更多日志,而是可追责的反馈结构
龙哥觉得NeoHorse-1最值得肯定的地方,是它没有把“线上数据飞轮”写成一句口号,而是拆成了可检查的对象:什么是一个用户轮次,哪些token参与损失,结构错误怎样隔离,语义质量怎样保留多维结果,路由分数怎样影响课程,学生前缀怎样接受教师监督,评测缺口怎样回到数据配比。
普通Agent团队未必马上有预算做OPD,但可以先问:工具调用和结果能否对应?任务结束有没有可验证产物?路由记录的是需求还是成本妥协?失败是否分成结构错误、能力不足和环境阻塞?答不上来,再多日志也只是数据垃圾场。
同时,龙哥不会因为“4B提升5.93分”就把它包装成已经跑通的自我进化。真正困难的是第二轮以后:模型变强会改变数据分布,路由器也会改变流量,旧评测可能失去区分度,教师和验证器还可能把自身偏差放大。闭环的价值不在于它能自动转,而在于每一圈都能被审计、被证伪、被安全停下。
如果后续能公开连续多代曲线,拆开课程、OPD与数据分配的独立贡献,再给出真实成本和隐私治理,这条路线会更有分量:它讨论的是Agent产品、路由基础设施和训练团队如何共享能力反馈。
龙迷三问
第一问:如果路由器本身判断错了,课程会不会系统性教错顺序?论文把路由分数当能力需求代理,而不是绝对真值。未来需要用任务结果、反事实路由和人工抽检校准它,否则一个偏爱大模型的路由器可能把普通任务标成高难,一个过度节省成本的路由器也可能低估真实需求。
第二问:真实轨迹更好,究竟是因为“真实”,还是因为验证更完整?Toucan对照给出6.26分差,但没有拆开任务分布、工具反馈、失败恢复、长度与验证信号。下一步若能对同一任务生成“静态问答、合成轨迹、真实无验证轨迹、真实可验证轨迹”四组对照,会更接近答案。
第三问:自我改进的停止条件是什么?平均分上涨不一定代表系统更安全、更便宜或更符合用户意图。多代闭环必须同时监控覆盖、多样性、成本、隐私、安全、校准和外部保留集;当某些指标恶化时,系统要能够停止,而不是继续追逐一个越来越熟悉的总分。
主要参考资料
NeoHorse-1论文
https://arxiv.org/abs/2609.08183
NeoHorse官方仓库与模型入口
https://github.com/TokenRhythm/NeoHorse
Co-Harness
https://arxiv.org/abs/2607.22688
Self-Harness
https://arxiv.org/abs/2606.09498
MetaSkill-Evolve
https://arxiv.org/abs/2607.05297
本文基于龙哥读论文PaperDaily数据库及PaperMiner的MCP进行汇总整理。
本文为论文解读,不替代原文与独立复现。正文严格区分论文报告结果、代表性案例与作者观点;涉及模型部署、数据授权与隐私治理时,请结合实际环境重新评估。