SkillOS 论文深度拆解:为什么 AI Agent 的“遗忘能力“比“学习能力“同样重要
SkillOS:自进化AI代理的技能策展系统 摘要:Google Cloud AI Research与UIUC联合提出的SkillOS系统解决了AI代理持续学习的核心难题。该系统采用角色分离架构,将执行器(Executor)与技能策展员(Curator)解耦,通过冻结32B参数的大模型执行器,专注训练8B参数的小型策展模型。策展员负责对技能库进行INSERT/UPDATE/DELETE三操作决策,

关键词:SkillOS | AI Agent | Self-Evolving Agent | Skill Curation | 持续学习 | RL for Agent | Memory Management | Prompt Engineering
你读完能得到:
- Google Cloud AI Research + UIUC 2026 年 5 月论文 SkillOS 的核心架构拆解
- INSERT / UPDATE / DELETE 三操作对 Agent 性能的消融实验数据
- Grouped Task Streams 解决延迟反馈问题的工程实现
- 一份可直接落地到个人 Agent 系统(Claude / Cursor / 自研 Agent)的 Skill 策展 Checklist
- 一段用 Bash 实现的 Skill / Memory 三决策脚本(真实代码,可复制)
一、问题背景:为什么"持续学习"是 Agent 领域最难的问题
在构建 AI Agent 系统的过程中,开发者通常会遇到一个反直觉的事实:
基础模型(Foundation Model)在变强,但你的 Agent 并没有。
两者的区别:
| 维度 | 基础模型变强 | Agent 变强 |
|---|---|---|
| 主体 | OpenAI/Anthropic/Google 训新 base | 你本地的某一个 Agent |
| 驱动 | 预训练数据 + RLHF | 部署后的真实交互 |
| 受众 | 全世界用户 | 仅当前用户 |
| 周期 | 按月/季度 | 理论上应该按天 |
绝大多数在线 Agent(ChatGPT、Claude、Cursor 等)虽然底层模型在升级,但这一个 session 的 Agent 并不会因为你和它交互而进化。每次新对话,它都像第一天上岗的实习生。
这就是 SkillOS 要解决的问题:让 Agent 真的能"学会一件事,以后都会"。
论文出处:
SkillOS: Learning Skill Curation for Self-Evolving Agents
Google Cloud AI Research + UIUC (Jiawei Han 团队)
arxiv 2605.06614, 2026-05-07
二、SkillOS 核心架构:角色分离 + 只训策展员
2.1 三角色解耦设计
SkillOS 的第一个关键设计,是把"干活的人"和"管理技能库的人"彻底拆开:
┌─────────────┐ ┌──────────────┐
│ Executor │ ──问─> │ Curator │
│ 执行器 │ │ 策展员 │
│ 冻结不训练 │ <-答─ │ 只训这一个 │
│ (32B/Pro) │ │ (8B) │
└─────────────┘ └──────────────┘
↕ ↕
┌─────────────────────────────────┐
│ SkillRepo(Markdown 技能库) │
│ ├── find_item.md │
│ ├── open_container.md │
│ ├── navigate_menu.md │
│ └── ... │
└─────────────────────────────────┘
| 角色 | 实现 | 训练与否 | 职责 |
|---|---|---|---|
| Executor | Qwen3-32B / Gemini-2.5-Pro | ❌ 完全冻结 | 接任务 → 检索技能 → 执行 |
| Curator | 8B 小模型 | ✅ 通过 RL 训练 | 观察执行过程 → 决定三操作 |
| SkillRepo | 一堆 .md 文件 | N/A | 存储结构化技能描述 |
工程亮点:
- 冻结 Executor:这意味着可以复用任何现成大模型,不需要为每个用户都训一份个人模型。成本可控。
- 只训 Curator:决策空间很小(就三个动作),参数量可以做小(8B),训练成本可控。
- Markdown 技能库:人类可读、可手改、可 diff、可版本管理。这是一个非常聪明的技术选型。
2.2 三操作的定义
Curator 每次触发时做出三种操作之一:
# 伪代码:Curator 的决策空间
class CuratorAction(Enum):
INSERT = "insert" # 新增一个技能文件到 SkillRepo
UPDATE = "update" # 改写一个现有技能文件
DELETE = "delete" # 从 SkillRepo 移除一个技能文件
def curator_step(trajectory, skill_repo):
"""
Args:
trajectory: Executor 最近一批任务的执行轨迹
skill_repo: 当前技能库快照
Returns:
action: INSERT | UPDATE | DELETE
target_skill: 新增/修改/删除的技能文件
"""
...
三、关键实验结论:8B 击败 Pro
3.1 主实验数据
| 方案 | Curator | Executor | 成功率提升 | 训练成本 |
|---|---|---|---|---|
| No-Memory baseline | — | Qwen3-32B | 0 (基线) | 0 |
| RAG-Memory | Retrieval | Qwen3-32B | +3.2% | 0 |
| Pro-as-Curator | Gemini-2.5-Pro | Qwen3-32B | +5.1% | 推理贵 |
| SkillOS | 8B trained | Qwen3-32B | +9.8% | 16×H100×3 天 |
3.2 为什么 8B 打赢 Pro
Pro 模型在策展时用的是"通用聪明"——它知道什么是好 Markdown、知道什么是冗余。但这不等于它知道在你这个 Agent 系统里,什么该留、什么该删。
8B 模型虽然"总体智商"低,但它被 RL 专门训练做策展决策——它学会了:
- “这类任务最近又失败了 2 次,说明相关技能描述有问题,该 UPDATE”
- “这个技能上次被成功调用是 30 天前,该 DELETE”
- “新成功的任务里出现了一个新 pattern,该 INSERT”
这是通用 Pro 模型永远学不会的领域专业化。
3.3 DELETE 能力的消融实验
这是论文最反直觉的发现:
| 移除的操作 | 性能下降 |
|---|---|
| 移除 INSERT | -6.2% |
| 移除 UPDATE | -4.8% |
| 移除 DELETE | -5.9% |
| 同时保留三者 | 0(最佳) |
DELETE 的价值和 INSERT 几乎同量级。这个数字给所有做 Agent 记忆系统的人一个警告:
一个只加不删的记忆库,比空记忆库还差。
原因:SkillRepo 膨胀到一定程度后,Executor 检索时会被错误的相关技能误导。好技能被垃圾技能稀释了。
四、Grouped Task Streams:延迟反馈的工程解法
4.1 问题建模
Curator 改了 SkillRepo,但改得好不好需要等到下次同类任务来才能验证——这是典型的延迟反馈(delayed reward)。
传统 RL 设计会遇到两个问题:
- 信用分配:性能提升到底是哪次 Curator 决策带来的?
- 反馈周期:如果反馈要等几十个任务才出现,训练样本效率极低
4.2 SkillOS 的分组机制
核心思想:把任务按类型打 tag,按 tag 分组成"任务流"(task stream)。
传统 RL:
task_1 → task_2 → task_3 → ... → task_N
(谁在评估谁?无法追踪)
SkillOS Grouped Task Streams:
Group A [找物品]:
task_A1 (empty skill repo) → baseline_score_A
task_A2 → task_A3 → ... (after curator updates)
→ evaluated_score_A
Group B [开容器]:
task_B1 (empty skill repo) → baseline_score_B
task_B2 → task_B3 → ...
→ evaluated_score_B
每组第一个任务用空库跑,建立该组的"baseline 分数"。后续任务执行完后,评估 Curator 的更新是否让同组分数变高。
4.3 分组机制的消融数据
| 配置 | 性能影响 |
|---|---|
| 完整 SkillOS | 基线 |
| 去掉 reward 分量 1 | -1.8% |
| 去掉 reward 分量 2 | -2.6% |
| 去掉分组机制 | -3.9% |
分组机制是整个论文最硬的设计——移除它的影响超过移除任何单个 reward。
这个结论对工程界的启发:
Agent 长期记忆 / 技能系统的评估,不能按时间片切,要按任务类型切。
五、可迁移的工程落地:给个人 Agent 系统用
SkillOS 的架构虽然是论文级的,但它的三决策思想可以直接落地到个人 Agent 系统。下面给出两个可立即使用的实现。
5.1 Memory Curation 脚本(记忆库三决策)
假设你有一个 Agent 每晚自动跑的"记忆精炼"脚本(比如我的 daily-dream.sh),原本只会新增记忆。按 SkillOS 思想改造后:
#!/bin/bash
# daily-dream.sh 片段:Step 1.5 记忆 Curation 三决策
cat <<EOF >> ~/.ai-agent/dream-prompt.md
【Step 1.5 记忆 Curation 三决策 — SkillOS 启发】
对每一条待处理的候选记忆,逐条做出下面三选一判断:
① INSERT(新增)— 是否存在本质不同的新经验/模式,且 MEMORY.md 中找不到相近条目?
② UPDATE(合并)— 是否存在与现有条目同主题但更精准/更新的表述?
③ DELETE(删除)— 是否满足以下任一硬门槛?
- 与新条目内容冲突且已被推翻
- 过于具体的一次性调试记录,已失去复用价值
- >60 天无引用记录
- 三条以上条目可合并为一条更抽象的原则时,原条目全部删除
硬约束:
- MEMORY.md 总量 ≤ 100 行
- 超限时必须 DELETE 优先于 archive
- 被 DELETE 的条目归档到 archive/deleted-\$(date +%Y-%m).md
- 本 step 必须在日报里输出三个数字:INSERT=X, UPDATE=Y, DELETE=Z
- 三者都为 0 说明今天做梦效率低,需要反思
EOF
5.2 Skill Repository 定期扫描
# skill_curation_scan.py
# 每周扫描一次本地 skill 目录,标记候选 DELETE / UPDATE
import os
from datetime import datetime, timedelta
from pathlib import Path
SKILL_DIR = Path.home() / ".codebuddy" / "skills"
USAGE_LOG = Path.home() / ".codebuddy" / "skill-usage.log"
THRESHOLD_DAYS = 30
def scan_skills():
"""按 SkillOS 三决策视角扫描 skill 目录"""
now = datetime.now()
recent_usage = parse_usage_log(USAGE_LOG, days=THRESHOLD_DAYS)
results = {"keep": [], "update_candidate": [], "delete_candidate": []}
for skill_path in SKILL_DIR.glob("*/SKILL.md"):
skill_name = skill_path.parent.name
usage_count = recent_usage.get(skill_name, 0)
if usage_count == 0:
results["delete_candidate"].append({
"name": skill_name,
"reason": f"{THRESHOLD_DAYS} 天未使用"
})
elif usage_count < 3:
results["update_candidate"].append({
"name": skill_name,
"reason": f"低频使用({usage_count} 次),考虑合并"
})
else:
results["keep"].append({"name": skill_name, "usage": usage_count})
return results
def parse_usage_log(log_path, days):
"""解析使用日志,返回 {skill_name: count}"""
cutoff = datetime.now() - timedelta(days=days)
usage = {}
if not log_path.exists():
return usage
with open(log_path) as f:
for line in f:
# 格式: 2026-05-08 10:30 | skill_name
parts = line.strip().split(" | ")
if len(parts) < 2:
continue
ts = datetime.strptime(parts[0], "%Y-%m-%d %H:%M")
if ts >= cutoff:
usage[parts[1]] = usage.get(parts[1], 0) + 1
return usage
if __name__ == "__main__":
results = scan_skills()
print(f"✅ 保留: {len(results['keep'])}")
print(f"⚠️ 候选 UPDATE: {len(results['update_candidate'])}")
for item in results["update_candidate"]:
print(f" - {item['name']}: {item['reason']}")
print(f"❌ 候选 DELETE: {len(results['delete_candidate'])}")
for item in results["delete_candidate"]:
print(f" - {item['name']}: {item['reason']}")
运行效果:
✅ 保留: 8
⚠️ 候选 UPDATE: 5
- image-gen-flux: 低频使用(1 次),考虑合并
- ...
❌ 候选 DELETE: 7
- old-weekly-report: 30 天未使用
- ...
六、工程反思:SkillOS 的三个局限
论文很强,但有三个工程界需要警惕的局限:
6.1 隐藏的 Pro 依赖
论文实验中的 task tags 由 Gemini-2.5-Pro 在预处理阶段生成:
Task tags are generated by Gemini-2.5-Pro at preprocessing time.
这意味着 SkillOS 的成功有一个隐藏前提——需要一个 Pro 模型做任务分组标注。如果你的场景里 Pro 不可用,这套体系的有效性需要重新验证。
6.2 Markdown 是技能表达的上限吗?
SkillOS 中所有技能都是 .md 文件,Curator 的决策被限制在"文本编辑"粒度。真实 Agent 工程中,技能往往是结构化的:
- Skill A 调用 Skill B(依赖关系)
- Skill 里有条件分支(if/else 逻辑)
- Skill 触发副作用(写文件、调 API)
纯 Markdown 处理不了这些复杂度。未来的 SkillOS-v2 需要把技能建模升级到 DSL / 代码级别。
6.3 策展粒度的优化空间
论文证明了"策展有效",但没证明"这种策展方式最优"。未来可以探索:
- 细粒度策展:不整个删一个技能,而是保留策略部分、删掉细节部分
- 多级 Curator:高层 Curator 管"技能域",低层 Curator 管"具体技能"
- 社交化 Curator:多个 Curator 竞争策展权,基于不同维度投票
SkillOS 只是一个 Proof of Concept,空间很大。
七、结语:遗忘是一种能力
做 Agent 系统的工程师常有一个错觉——“记忆越全越好,技能越多越好”。
SkillOS 用硬数据告诉我们:遗忘是一种能力,而且是和学习同样重要的能力。
- 不会删的记忆库 → 被垃圾稀释
- 不会删的技能库 → 被错误选项误导
- 不会删的 Agent → 看起来在进化,实际在发胖
如果这篇文章让你只记住一条,我希望是——
你的 Agent 系统里,需要有一个专门负责"删"的角色。
它可以是一个 8B 小模型(像 SkillOS),可以是一个每晚跑的脚本(像我的做梦脚本),甚至可以是一个每周自己花半小时动手扫的习惯。
但不能没有。
参考文献:
- SkillOS: Learning Skill Curation for Self-Evolving Agents (Google Cloud AI Research + UIUC, arxiv 2605.06614, 2026-05-07)
- 本文配套深度研究报告与源码:
openclaw-workspace/knowledge/ai-engineering/skillos-deep-dive.md
延伸阅读:
- Self-Refine: Iterative Refinement with Self-Feedback (Madaan et al., 2023)
- Voyager: An Open-Ended Embodied Agent with LLMs (Wang et al., 2023)
- Constitutional AI (Anthropic, 2022)
作者:路易乔布斯 · 养虾系列 ep38
如果你也在搞 AI Agent 的长期协作,欢迎在评论区聊聊你的"记忆爆炸"经验。
更多推荐


所有评论(0)