编程 Prime Agent:把 IPython 内核当操作系统——RLM 编程模型、/refine 自我改进与两个值得怀疑的点

2026-08-31 11:27:59

WikiSkill:Agent 经验如何变成可回滚的资产

先说痛点

一个 Agent 处理过几十篇文档,经历过几百次工具调用。遇到过路径错误、检索失败、格式陷阱,也反复试错后找到了有效做法。

下次碰到相似任务,它却可能再次从头摸索。

日志都在,修改历史也在,为什么系统仍像没有学过?原因不神秘:经历被保存下来,不等于知识已经形成;知识被写下来,也不等于它已经变成可靠的行动规则。

WikiSkill 就是为解决这个问题提出的:Google Research 和弗吉尼亚理工团队在 2026 年 8 月的预印本《WikiSkill: Compiling Agent Experience into Persistent Knowledge for Skill Evolution》中,给 Agent 的经验加工设计了一套三层结构。

工具定位:三本账,而不是一本流水

论文的核心答案很简洁:给 Skill 和原始轨迹之间增加一层不会随失败修改一起回滚的 Wiki。

原始轨迹像监控录像:忠实、冗长,只说发生了什么,不说为什么。Skill 像操作手册:简洁、可执行,但塞不下证据和争论过程。WikiSkill 承认「证据」「知识」「规则」需要三种不同的生命周期。

三层分工如下:

层级保存什么主要使用者生命周期
原始证据层完整推理、工具调用、环境反馈、最终答案Wiki 维护者、Skill 修改者只写一次,不修改
Wiki 层失败模式、成功策略、证据、演化日志、修改效果Wiki 维护者、Skill 修改者持续积累,不回滚
Skill 层Agent 执行时直接读取的程序化指令任务执行 Agent有条件更新,可以回滚

原始证据层:保留现场

raw/ 保存训练任务的完整执行轨迹,包括 Agent 看到了什么、调用了哪些工具、工具返回什么,以及最终答案是否正确。

这一层不允许事后修改。根因分析必须能回到原始行为,不能只依赖 Agent 对失败的自我解释。一个命令报错,可能来自路径、权限、参数或环境版本;如果只保存一句「工具失败」,后面很容易修错方向。

Wiki 层:把现场加工成知识

wiki/ 保存经过整理的知识,内部四类文件:

  • patterns/:每种失败模式或成功策略单独一页,写明根因、证据和解决办法。
  • index.md:知识目录,用一两句话概括问题、根因和修复,让 Agent 先判断相关性。
  • logs.md:按时间记录每轮发现了什么、接受或拒绝了什么。
  • skill-impact.md:保存 Skill 修改的差异、验证分数和最终决定。

Wiki 维护者每轮最多抽取 8 条轨迹,通常包括最多 5 条失败和 3 条成功;每条轨迹在进入上下文前限制为 15000 个字符。失败轨迹用来找根因,成功轨迹用于提取有效策略,也用于防止修复错误时破坏原本有效的行为。

这层的任务不是压缩日志,而是形成可以被证据继续修订的判断。

Skill 层:只保留下一次行动需要的规则

skills/ 是生产环境真正使用的部分。每个 Skill 包含 SKILL.md,以及一个记录来源和演化历史的 PURPOSE.md

论文在实验中把有效 Skill 的完整内容直接注入任务执行 Agent 的 system prompt。这样做有意排除了 Skill 检索和触发失败的干扰,研究者可以集中判断 Skill 内容本身是否有效。

三层分开后,Agent 不必在执行任务时背着全部历史前进。它只读取已经通过验证的行动规则;需要修改规则时,维护系统再回到 Wiki 和原始轨迹寻找依据。

体积取舍

原文没有给出具体体积数据,但从设计上能看清取舍逻辑:

  • 原始证据层留存全部信息,体积最大,但只写一次,不允许修改,保证了可审计性。
  • Wiki 层通过抽样和截断控制上下文成本:每轮最多 8 条轨迹,每条轨迹最多 15000 字符。它不是完整日志,而是面向根因分析的精选切片。
  • Skill 层只保存可执行规则。规则的具体证据留在 Wiki,不随 Skill 复制,避免操作手册随案例增加而膨胀。

四步演化循环:经验怎样进入 Skill

每轮演化包含四个角色或步骤。

第一步:用当前 Skill 执行训练任务

任务执行 Agent 只能使用正式 Skill,不能读取 Wiki。这个限制很重要:如果执行者可以随时翻阅完整知识库,即使 Skill 写得很差,它也可能从历史记录里临时找到答案。留下的轨迹看似成功,却无法暴露 Skill 的缺陷。

第二步:从轨迹中归纳模式

Wiki 维护者读取抽样轨迹和已有 Wiki,比较成功与失败任务的行为差异,分析根因,创建或修订模式页。更新采用增量补丁:追加新证据、替换不准确判断,或在已有段落后插入限制条件。旧知识不会被整页重写,演化过程更容易审计。

第三步:提出一次原子化修改

Skill 修改者以 ReAct(推理与行动交替)方式工作。先看 Wiki 目录和历史修改效果,再按需打开具体模式页与原始轨迹。

论文要求它至少读取 4 条执行轨迹,才可以提交修改。每轮提案只针对一个 Skill:创建一个新 Skill、局部修补一个已有 Skill,或者决定暂不行动。

限制修改范围有两个好处:验证分数变化更容易归因,失败时不必撤销一大批彼此纠缠的改动。

第四步:验证,不通过就回滚

候选 Skill 在独立验证集上执行。只有分数严格超过历史最好成绩,修改才会留下;持平或下降都要回滚。每次提案的修改差异、验证成绩和接受结果都会写入 skill-impact.md,下一轮可以知道哪些方向已经试过。

关键设计:Skill 回滚,Wiki 不回滚

这是论文最有价值的设计,两层采用不对称回滚规则。

Skill 会直接改变 Agent 行为。未经验证的修改进入生产环境,可能让原本通过的任务退化,所以必须严格准入。

Wiki 保存的是证据和判断过程。一个 Skill 提案即使失败,也回答了一个有价值的问题:这条规则在当前验证集上没有带来改善。后续提案应该理解失败原因,缩小搜索范围,而不是再次提出同一办法。

失败的规则不该进入生产环境,失败本身应该进入组织记忆。

论文在 ALFWorld 中展示了一个具体案例。Agent 陷入重复循环:拿起时钟、检查时钟、把时钟放回桌面,再次拿起。第 0 轮 Wiki 记录了这种模式,Skill 修改者提出「目标导向行动」规则,过于抽象,验证不通过,被拒绝。

但这次失败没有消失。下一轮提案读取被拒历史,改成具体规则:「不要把物品放回原位置。」验证通过后保存为 break-repetition-loop Skill。

后续轨迹又暴露了新循环:Agent 对同一个物品反复执行同类操作。Wiki 继续积累证据,第 4 轮再把规则细化为「同一物品的每类操作只做一次」。

这段演化展示了 Wiki 的真正作用:它没有直接指导任务执行,而是在多轮修改之间保存问题如何被发现、旧办法为什么失败、新规则依据什么变得更具体。

实验数据:五个模型、五类任务

研究覆盖五种差异很大的任务:

基准核心能力测试任务数
LiveMath数学推理124
SealQA网页搜索与事实检索85
SpreadsheetBench电子表格代码与文件操作280
OfficeQA长文档检索与问答172
ALFWorld多步交互、空间推理和错误恢复134

模型包括 Qwen-3.5-4B、Qwen-3.5-9B、Qwen-3.6-27B、Gemma-4-31B-It 和 Gemini-3.5-Flash。对照方法包括 Trace2Skill、EvoSkill、SkillOpt,以及完全不使用 Skill 的基线。每种方法从空 Skill 集开始,完整演化过程独立运行 3 次,报告测试集平均表现,用 1000 次配对 bootstrap 检验显著性(p < 0.05)。

核心成绩:

模型无 SkillWikiSkill提升
Qwen-3.5-4B26.2%38.5%+12.3
Qwen-3.5-9B29.9%47.4%+17.5
Qwen-3.6-27B39.4%63.3%+23.9
Gemma-4-31B41.3%54.9%+13.6
Gemini-3.5-Flash49.5%68.1%+18.6

WikiSkill 在五个模型的跨任务平均成绩上都排第一,相较每个模型中表现最强的其他 Skill 演化方法,分别领先 3.3、5.1、10.0、5.8 和 12.0 个百分点。

但这不代表每个单项都第一。Qwen-3.5-9B 的 LiveMath 成绩 56.3%,略低于 EvoSkill 的 58.1%;Qwen-3.6-27B 的 OfficeQA 成绩也与部分方法接近。更稳妥的结论是:平均收益更高,退化情况更少。

信号一:强模型从演化 Skill 中收益更大

同属 Qwen 系列,WikiSkill 给 4B、9B 和 27B 模型带来的平均增益依次为 12.3、17.5 和 23.9 个百分点。电子表格任务上尤其明显,三个模型分别提升 6.5、9.3 和 40.9 个百分点。

复杂 Skill 可能包含多步检查、工具使用顺序和异常恢复策略。模型越能稳定理解并执行这些程序化知识,Skill 的价值越容易释放。更强的模型拥有更高的执行上限,也可能从同一套外部知识中取得更大收益。

信号二:外部知识可以补偿一部分模型规模

Qwen-3.5-9B 配合 WikiSkill 平均准确率 47.4%,超过无 Skill 的 Qwen-3.6-27B 的 39.4%。4B 模型配合 WikiSkill 达到 38.5%,接近无 Skill 的 27B 模型。

这个结果只适用于论文的五个基准及其实验设置,不能推导出 9B 模型普遍强于 27B。它支持的判断是:模型能力与经过验证的程序化知识是两种可以互补的资源。

跨模型迁移:经验携带能力边界

WikiSkill 交换了 Skill 的来源模型和执行模型,结果很有意思:外来 Skill 经常超过模型自己演化的 Skill。

  • Qwen-3.5-9B 在 SpreadsheetBench 上无 Skill 为 24.3%,自演化 Skill 为 33.6%,使用 Qwen-3.6-27B 演化的 Skill达到 50.5%。
  • Gemma-4-31B 在 LiveMath 上无 Skill 为 33.9%,自演化 Skill 为 56.7%,使用 Qwen-3.6-27B 演化的 Skill达到 73.7%。
  • Qwen-3.5-9B 在 ALFWorld 上自演化 Skill 为 63.4%,换用 Qwen-3.6-27B 的 Skill 后达到 70.2%。

这说明 Skill 演化混合了两种能力:从经验里发现有效程序,以及在执行时遵循这套程序。一个模型擅长做事,不代表它最擅长总结自己为什么做对。

迁移也可能失败,而且幅度很大。Gemini-3.5-Flash 在 SpreadsheetBench 上无 Skill 成绩 50.5%,加载 Qwen-3.5-4B 演化的 Skill 后降到 18.1%,换成 Qwen-3.6-27B 的 Skill 则升到 63.4%。

轨迹分析发现,4B 模型生成的 Skill 包含许多低层补救措施,如单行 Python 命令、字符串转换规则和碎片化诊断步骤。这些规则能帮小模型绕开执行错误,却限制了 Gemini 使用完整端到端脚本;重复工具调用还可能耗尽交互预算。

经验会携带创造者的能力边界。对一个模型有用的护栏,换到另一个模型上可能变成路障。

因此,跨模型复用至少需要记录三类边界:它在哪种模型能力下形成、依赖哪些工具和环境、在哪些代表性任务上重新验证过。不能只看语义是否相关。

消融:Wiki 该给谁看?

研究者单独控制任务执行 Agent 和 Skill 修改者能否访问 Wiki。

  • 执行者和修改者都看不到 Wiki:四项任务平均成绩 48.7%。
  • 执行者看不到,只给修改者开放:成绩升到 63.7%,增加 15.0 个百分点。
  • 两者都能读取:平均成绩降到 60.9%。LiveMath 降幅更明显,从 72.6% 降到 64.8%。

论文的解释是:执行者直接从 Wiki 获得解题知识,训练轨迹就不再准确反映 Skill 质量。Skill 即使遗漏关键规则,执行者仍可能靠临时翻阅模式页完成任务。维护者看到的是一条成功轨迹,很难发现正式 Skill 还缺什么。

知识库既可以做老师,也可能变成考场上的答案纸。

实际系统的启示是:任务阶段读取精简且已验证的 Skill;复盘阶段开放完整证据和知识;修改完成后再用执行环境无法临时查阅的任务做验证。

团队怎么落地:最小经验复利循环

论文的多 Agent 系统可以简化成四类文件和一道验证门。

假设团队维护一个文档处理 Agent,从 PDF 提取表格并生成报告。某次任务中,普通文本提取工具打乱了跨页表格,Agent 改用保留布局的解析方式后通过人工检查。

可以沿这条路径进入系统:

  1. 保存原始证据:保留输入文件、失败输出、使用过的命令、工具版本和最终通过的结果。不要只记「表格提取失败」或「换工具解决」。证据要能回答:失败具体长什么样,哪一步首次出现偏差,成功版本改变了什么。

  2. 写成带边界的模式页:把局部经历整理成候选知识。跨页表格在普通文本抽取中可能丢失列关系;当页眉重复、单元格跨页或列对齐具有语义时,应先检查保留布局的结果。同时记录反例:对于只有连续段落、没有表格结构的 PDF,布局模式可能引入大量空格,普通文本抽取反而更合适。

  3. 把知识压缩成可执行 Skill:Skill 无需复制整段事故记录。可以只保留动作规则:先识别页面是否包含跨页表格;抽取后检查表头、列数和跨页连续性;结构破坏时切换解析方式;最终报告必须回到渲染页面做视觉核对。具体证据留在知识层。

  4. 用固定样本验证修改:候选 Skill 至少重新处理三类样本:曾经失败的跨页表格、原本通过的普通文本、格式不同的新文件。既要修复旧失败,也不能破坏原本有效的路径。验证结果与 Skill 修改差异一起保存;没有改善就撤回规则,但保留尝试及失败原因。

一条最小知识记录可以包含这些字段:

字段记录内容
问题模式可观察到的失败现象
根因哪个动作或假设导致失败
证据任务、日志、输入和结果位置
有效策略哪种做法在哪些条件下通过
适用边界模型、工具、环境和任务条件
反例哪些相似场景不应套用
修改记录Skill 差异、验证分数和接受决定
生命周期生效、被替代、过期或停用

这套循环的目标很朴素:每次修改都能追溯到证据,每条规则都经过验证,每次失败都能缩小下一轮的搜索空间。

适用边界和已知限制

WikiSkill 是一篇 arXiv v1 预印本,结果来自作者设定的实验环境。有几点必须知道:

  • 不解决 Skill 检索和触发问题。论文直接把全部有效 Skill 注入 system prompt。真实系统 Skill 数量增加后,如何找到正确 Skill、何时加载、冲突时听谁的,仍需单独解决。

  • 验证集较小。五个基准的验证集只有 10 到 40 个任务。论文用三次独立演化和 bootstrap 检验缓解波动,但「必须严格超过历史最好成绩」的验证门仍可能受小样本噪声影响。

  • 严格准入拒绝中性修改。有些基础改造当下不提高分数,却可能为后续规则创造条件。WikiSkill 当前无法接受这种需要多步铺垫的演化路径。

  • Wiki 只积累、不自动清理。模式页、演化日志和修改差异持续增加后,重复知识、过期环境信息和相互冲突的规则都可能成为新负担。知识库不会因为更大就自然变得更可靠。

  • 未覆盖超长任务和开放任务。论文没有测试持续数小时或包含数百次环境动作的超长任务,也主要评测答案清晰、能够自动打分的场景。内容生产、研究判断和开放式工程设计很难用单一准确率验收,需要多维评价和人工裁决。

结论

完成更多任务只能说明 Agent 工作得更多。保存更多轨迹,只能说明系统记得更多。

经验开始产生复利,需要一条更严格的链路:原始证据保留现场,Wiki 反复修订判断,Skill 只接收能够指导行动的部分,验证门负责阻止未经证明的规则改变下一次执行。

真正会进化的 Agent 系统,不会把每次成功都写成规则,也不会把每次失败都当成废料。它保留证据,提炼知识,只让通过验证的部分改变下一次行动。

复制全文 生成海报 Prime Agent RLM AI Continual Harness AGI 开源

推荐文章

程序员茄子在线接单