一个Skill为什么越改越好?腾讯SkillHone让Agent记住每次优化决策

腾讯微信在论文 SkillHone 中,将这个问题归结为优化历史丢失,进而提出了面向持续 Skill 进化的开发框架。 SkillHone 把每轮诊断、候选修改、评估证据和最终决定组织成持久决策历史。同时,持续优化的对象也从单一的 SKILL.md 文件扩展到了整个 Skill 文件夹及其修改过程。
一个 Skill 这个星期能正常工作,不代表下星期也行。
搜索接口会被限流,API 会被改版,网页结构也可能突然变化。开发者发现了 bug,修好最近这个版本,再把文件交给下一轮 Agent。
最初为什么修改?试过的方案为什么失败?上一轮回退撤销了什么,又留下了什么?下一轮接手的 Agent 大多不知道。它拿到的只是结果,前几轮踩过的坑还得再来一遍。
腾讯微信在论文SkillHone中,将这个问题归结为优化历史丢失,进而提出了面向持续 Skill 进化的开发框架。
SkillHone 把每轮诊断、候选修改、评估证据和最终决定组织成持久决策历史。同时,持续优化的对象也从单一的 SKILL.md 文件扩展到了整个 Skill 文件夹及其修改过程。
视频详情
- 论文标题:SkillHone: A Harness for Continual Agent Skill Evolution Through Persistent Decision History
- 论文链接:https://arxiv.org/abs/2606.08671
- 代码链接:https://github.com/Tencent/SkillHone
一、不能只优化 Skills,
还要对 Skills 的优化过程本身建模
现有 Skill 方法大致分为两类。一类是 Skill-Creator,根据任务描述、示例或资料生成新的 Skill;另一类是 Hermes-SE(Hermes Agent Self-Evolution),通过不断修改已有 Skill 候选,并根据评估结果选择更优版本。
这类方法能够在单轮优化中得到更好的 Skill,但优化过程通常没有被保留。运行结束后,留下的往往只有最终版本文件。虽然文件差异可以展示「改了什么」,却无法回答「为什么这样改」。当环境发生变化时,Agent 也无法利用过去的优化经验,容易重复探索已经失败的方向。
SkillHone 不仅优化 Skill 本身,还对 Skill 的优化过程进行建模。每次优化步骤都会被记录为一条决策历史,包括问题诊断、候选修订、清洗后的评估证据以及最终结果。通过累积这些多轮决策记录,后续 Agent 可以理解某次修改针对的问题、采用的依据,以及最终保留或撤销的原因,从而将优化经验持续传递,而不仅仅是继承最终的 Skill。

二、SkillHone 如何把优化过程留下来
SkillHone 设置了两个相互关联的仓库。Skill 仓库包括 SKILL.md、脚本、资料和模板;Skill-Eval 仓库包括练习探针、标准答案、验证器、运行轨迹和回归测试。

每轮进化开始时,评估侧先使用当前 Skill 运行验证集上的回归测试。优化侧根据脱敏报告和现存记录进行修改,评估侧再在基准版本上测试候选 Skill。系统决定接受、继续修改或拒绝修改后的 Skill,并将证据写回历史。
优化侧 Agent 可以修改 Skill,但是看不到未脱敏的答案。评估侧 Agent 可以运行验证、查看轨迹,但是不能写入 Skill 仓库。评估结果会被整理成失败类型、汇总分数和诊断线索,再返回给优化侧。
运行时调度器会根据需要生成诊断、开发、审核、执行和报告等子 Agent,每个角色都只获得完成自身任务所需的权限。它不要求使用固定的多智能体框架,只要求运行环境能够自动创建子智能体,因此可以直接接入 Claude Code、Codex 和 Hermes 等 Agent Runtime。
三、为什么要做 Repo 级别更新?

SkillHone 在优化过程中可以实现 Repo 级别的更新,而不仅仅只是优化SKILL.md
另一方面,SkillHone 还支持 Repo 级别的 Skills 更新。SkillOpt 和 Hermes-SE 都主要以 SKILL.md 为优化单元,本质上是在迭代 Skill 的自然语言描述,因此优化范围受限于单个文档。
相比之下,SkillHone 将优化对象扩展为完整的 Skill repo,将 Skill 视为由 SKILL.md、执行脚本、参考资料、模板等共同组成的完整 Repo。优化过程中,不仅可以修改指令描述,也可以直接更新脚本逻辑等辅助文件的内容。
四、五轮优化里,
SkillHone 如何处理回退?
系统只看最终分数时,一旦候选版本出现退化,整份候选往往会被丢弃。可是,候选版本中已经有效的改动也会随之消失,下一轮又得重新编写。
论文中写道,作者对深度研究 Skill 进行了五轮优化。系统加入 DuckDuckGo 回退和错误处理以后,探针准确率从 30% 提高到 60%。下一轮加入尽早作答和严格预算限制后,准确率又降低了 10 个百分点。

SkillHone 与 Hermes-SE 的五轮验证集上的优化轨迹(论文 Figure 4)
SkillHone 可以通过此前的历史记录分析出,问题出在预算策略上,因此只撤销有问题的部分,保留已经证明有效的搜索改进,第三轮准确率升至 65%。后来加入 SPARQL、名称规则和更严格的预算后,系统又进行了一次有针对性的撤销,准确率最终达到 70%。
同样从 30% 起步,Hermes-SE 根据标量分数接受或放弃完整候选,五轮后停在 40%。两条轨迹的差异很明显:SkillHone 可以查到是哪一次决定带来了性能退化,回退时还能保留已经有效的改动。
五、实验:性能、迁移与消融
作者在 GAIA 和 WebWalkerQA-EN 两个深度研究基准上测试了 SkillHone。评测在开放网络环境下进行,没有预先集成好的搜索工具。Agent 只能访问公共网页,再依靠 Skill 组织搜索、抽取、验证和失败后的恢复。
使用 Qwen3.6-35B-A3B 作为执行模型时,SkillHone 在 GAIA 上达到 64.6%,在 WebWalkerQA-EN 上达到 66.4%。相比使用商业检索服务的 deep-research Agent,两个结果分别高出 15.8 和 3.2 个百分点;相比 Hermes-SE,分别高出 14.2 和 13.4 个百分点。

表 1 SkillHone 在 GAIA 和 WebWalkerQA-EN 上的主结果
更重要的是,同一个 Skill 包在没有重新优化的情况下,直接迁移到 Claude Sonnet 4.6 后,GAIA 成绩继续升至 72.4%,仍高于 Hermes-SE、Existing-Skills 和 Skill-Creator。更换执行模型后,使用者不需要从头再做一遍优化。

图 2 不同方法在 Qwen 与 Claude Sonnet 4.6 上的 GAIA 结果
消融实验还提供了另一组证据。去掉决策历史以后,GAIA 和 WebWalkerQA-EN 的成绩分别下降 13.4 和 10.9 个百分点。去掉角色隔离以后,两项分数分别降低 6.4 和 5.3 个百分点。SkillHone 的两个组件都在发挥作用,其中决策历史至关重要。

表 2 决策历史与角色分离的消融实验
六、写在最后
总结一下整篇文章的脉络:
- 过去的自进化方法回答的是,怎么把技能文档改得更好;
- SkillHone 继续追问,这次为什么修改、凭什么接受、哪些想法已经不再采用;
- 优化过程因此可以被检索、复用,再交给下一轮 Agent 继续优化;
- Repo 级别更新让这套建模落到技能工程中,SKILL.md、脚本、参考资料和模板都可以被修改。
论文中的五轮轨迹给出了直接证据。SkillHone 遇到性能回退时,能够找到出现问题的修改并进行精准撤销,同时保留已经有效的改动。
下一轮 Agent 接手时,可以根据此前的诊断和证据继续决策,也可以直接修改 SKILL.md、脚本、参考资料和模板。SkillHone 通过持久化的决策历史,实现了整个技能仓库的持续进化。
文章来自于微信公众号 “机器之心”,作者 “机器之心”
相关主题
读完之后
加入 AINRK 交流群
了解加入交流群的方式,与更多 AI 从业者交流。




