[moz] docs: §19 Skill 生命周期管理 v2.0 — 双层 daily 蒸馏 + 融合 self-improvement + 部署目录结构
主要变更: - D3/D4 改为双层 daily(L1 各 agent 03:00 + L2 庞统 05:00) - D6 废弃 .learnings/,JSONL 是唯一数据源 - D7 只创建一个 skill-management,四阶段放 references/ - DISCOVER 重写为双层结构 - 验证机制替换为 Recurrence-Count + Skill Extraction Criteria - 新增 §7.4 per-agent Skill 存放位置与可见性 - 新增 §13 部署目录结构(完整流转路径) - self-improvement skill 优势融合到 DISCOVER 输出格式 - 参考映射新增 7 条
This commit is contained in:
@@ -1,10 +1,22 @@
|
|||||||
# §19 Skill 生命周期管理 + 经验闭环四阶段设计
|
# §19 Skill 生命周期管理 + 经验闭环四阶段设计
|
||||||
|
|
||||||
> 作者:庞统士元
|
> 作者:庞统士元
|
||||||
> 日期:2026-06-18
|
> 日期:2026-06-18(v2.0)
|
||||||
> 状态:方案待确认
|
> 状态:方案待确认
|
||||||
> 前置:§14 Task 五层架构、§16 知识注入四层体系
|
> 前置:§14 Task 五层架构、§16 知识注入四层体系
|
||||||
|
|
||||||
|
## 变更摘要(v2.0)
|
||||||
|
|
||||||
|
| 变更项 | 原设计 | 新设计 | 理由 |
|
||||||
|
|--------|--------|--------|------|
|
||||||
|
| 蒸馏频率 | 庞统每天一次 | **双层 daily**:各 agent 03:00 自蒸馏 + 庞统 05:00 整合 | agent 是自己经验的最佳蒸馏者;庞统负责跨 agent 整合 |
|
||||||
|
| 蒸馏者 | 庞统一人 | **双层**:L1 各 agent + L2 庞统 | 消除蒸馏者偏差;经验是 per-agent 的 |
|
||||||
|
| .learnings/ | DISCOVER 数据源之一 | **废弃**。JSONL 是唯一数据源 | 信息冗余;agent 执行中不应分心写 .learnings/ |
|
||||||
|
| 三重验证 | 跨任务复现 + 生成力 + 排他性 | **Recurrence-Count 机制**(融合 self-improvement skill) | ≥3 次自动触发提升,比主观判断更客观 |
|
||||||
|
| Skill 数量 | 未明确 | **一个 skill:skill-management** + references/ 四阶段 | 减少上下文开销;DISCOVER/IMPROVE 是 cron 场景不需要独立 skill description |
|
||||||
|
| self-improvement skill | 未提及 | **废弃**。优势融合到 DISCOVER 输出格式 | 职责重叠;统一为单一闭环 |
|
||||||
|
| Skill 存放 | 未区分 | **per-agent 目录 + 公共目录** | agent 专属经验不污染其他 agent 上下文 |
|
||||||
|
|
||||||
## 1. 背景
|
## 1. 背景
|
||||||
|
|
||||||
moziplus v2.0 的 P4 剩余两项:
|
moziplus v2.0 的 P4 剩余两项:
|
||||||
@@ -40,6 +52,7 @@ moziplus v2.0 的 P4 剩余两项:
|
|||||||
3. 产物统一为 Skill,不再有 experiences.jsonl / .learnings/ 等中间形态散落各处
|
3. 产物统一为 Skill,不再有 experiences.jsonl / .learnings/ 等中间形态散落各处
|
||||||
4. 追踪 Skill 引用情况,支撑淘汰决策
|
4. 追踪 Skill 引用情况,支撑淘汰决策
|
||||||
5. 充分利用 openclaw 已有的 skill_workshop 工具和 skill 加载机制
|
5. 充分利用 openclaw 已有的 skill_workshop 工具和 skill 加载机制
|
||||||
|
6. **每个 agent 是自己经验的最佳蒸馏者**——经验 per-agent,精益求精
|
||||||
|
|
||||||
## 3. 核心设计决策
|
## 3. 核心设计决策
|
||||||
|
|
||||||
@@ -47,9 +60,11 @@ moziplus v2.0 的 P4 剩余两项:
|
|||||||
|---|------|------|------|
|
|---|------|------|------|
|
||||||
| D1 | 统一产物:Skill-only | 不再有中间形态散落各处。Hermes 只有 Skill + Memory 两种载体,没有第三种 | Hermes skill_manage + memory_tool |
|
| D1 | 统一产物:Skill-only | 不再有中间形态散落各处。Hermes 只有 Skill + Memory 两种载体,没有第三种 | Hermes skill_manage + memory_tool |
|
||||||
| D2 | 生命周期通过 skill_workshop 管理 | OpenClaw 已有 pending → applied → rejected → quarantined 生命周期 | OpenClaw skill_workshop 工具 |
|
| D2 | 生命周期通过 skill_workshop 管理 | OpenClaw 已有 pending → applied → rejected → quarantined 生命周期 | OpenClaw skill_workshop 工具 |
|
||||||
| D3 | 蒸馏频率:每天一次 cron | 任务量不大,全量扫描比逐任务蒸馏更全面。主公确认 | 主公确认 |
|
| D3 | 蒸馏频率:双层 daily | L1 各 agent 每天 03:00 自蒸馏;L2 庞统每天 05:00 整合。有距离感的蒸馏优于即时记录 | self-improvement skill daily review;主公确认 |
|
||||||
| D4 | 蒸馏者:庞统 | 不是自动 LLM 蒸馏,用判断力提炼根因模式。未来再考虑自动化 | moziplus 经验实践 #4(PRD 理想态 vs 架构务实态) |
|
| D4 | 蒸馏者:双层(各 agent + 庞统) | L1 每个 agent 蒸馏自己的经验(自己最准);L2 庞统负责跨 agent 共性识别 + draft 审查 | Hermes skill_manage:「每个将军都应建立自己的 Skill 库」 |
|
||||||
| D5 | 二级蒸馏抽象为根因模式 | 不固化在特定技术细节。description 描述「问题模式」而非「技术症状」 | Superpowers writing-skills:description = when not how |
|
| D5 | 二级蒸馏抽象为根因模式 | 不固化在特定技术细节。description 描述「问题模式」而非「技术症状」 | Superpowers writing-skills:description = when not how |
|
||||||
|
| D6 | 废弃 .learnings/ 作为数据源 | JSONL 已包含完整信息(工具调用、推理过程、错误输出)。.learnings/ 只是重复抄写,且打断 agent 执行流 | DISCOVER 统一采集;主公确认 |
|
||||||
|
| D7 | 只创建一个 skill:skill-management | 四阶段的详细操作放到 references/ 目录。DISCOVER/IMPROVE 是 cron 场景不需要独立 skill description 常驻上下文 | moziplus skill-engineering practices §4:组合模式 |
|
||||||
|
|
||||||
## 4. L4 知识层:Skill Workshop
|
## 4. L4 知识层:Skill Workshop
|
||||||
|
|
||||||
@@ -65,9 +80,37 @@ moziplus v2.0 的 P4 剩余两项:
|
|||||||
|
|
||||||
L4 不是一个 prompt 层,而是 Skill 的**管理层**——负责 Skill 的创建、验证、应用、追踪、淘汰。
|
L4 不是一个 prompt 层,而是 Skill 的**管理层**——负责 Skill 的创建、验证、应用、追踪、淘汰。
|
||||||
|
|
||||||
## 5. DISCOVER 阶段
|
## 5. DISCOVER 阶段(双层)
|
||||||
|
|
||||||
### 5.1 数据源(全量)
|
### 5.1 L1 各 agent 自蒸馏(每天 03:00)
|
||||||
|
|
||||||
|
每个 agent 的 cron 扫描**自己当天**的 session JSONL,识别信号,蒸馏为 draft proposal。
|
||||||
|
|
||||||
|
**数据源(1 个)**:
|
||||||
|
|
||||||
|
| 数据源 | 位置 | 包含什么 |
|
||||||
|
|--------|------|---------|
|
||||||
|
| 自己的 Session JSONL | ~/.openclaw/agents/<agent_id>/sessions/*.jsonl | 当天完整思考过程、工具调用、错误恢复、用户对话 |
|
||||||
|
|
||||||
|
**不需要**扫描黑板/Gitea/Mail 等——那是 L2 庞统的职责。L1 聚焦自己的经验。
|
||||||
|
|
||||||
|
**信号识别(5 类高价值信号)**:
|
||||||
|
|
||||||
|
| 信号类型 | 从哪发现 | 识别特征 |
|
||||||
|
|---------|---------|---------|
|
||||||
|
| 失败模式 | task failed、CI failed、review rejected | 有明确的失败原因 |
|
||||||
|
| 重复问题 | 跨多个任务出现同类问题 | 同关键词出现 ≥2 次 |
|
||||||
|
| 决策转折 | rebuttal comment、需求澄清、主公纠正 | 原方向被推翻或修正 |
|
||||||
|
| 新实践 | 设计文档新增、wiki-vault 新页面 | 之前没有的知识 |
|
||||||
|
| 知识缺口 | agent 表达不确定、查不到的东西 | 查不到/不确定的东西 |
|
||||||
|
|
||||||
|
**输出**:draft skill proposal(提交到 skill_workshop,pending 状态)
|
||||||
|
|
||||||
|
### 5.2 L2 庞统整合(每天 05:00)
|
||||||
|
|
||||||
|
庞统的 cron 在 L1 全部完成后执行,扫描全量数据源 + 审查所有 L1 draft proposal。
|
||||||
|
|
||||||
|
**数据源(全量)**:
|
||||||
|
|
||||||
| 数据源 | 位置 | 包含什么 |
|
| 数据源 | 位置 | 包含什么 |
|
||||||
|--------|------|---------|
|
|--------|------|---------|
|
||||||
@@ -79,32 +122,50 @@ L4 不是一个 prompt 层,而是 Skill 的**管理层**——负责 Skill 的
|
|||||||
| Gitea Issues/PRs | Gitea API | 问题报告、diff、review 评论 |
|
| Gitea Issues/PRs | Gitea API | 问题报告、diff、review 评论 |
|
||||||
| Gitea CI | Gitea Actions | lint/test/build 成功/失败 |
|
| Gitea CI | Gitea Actions | lint/test/build 成功/失败 |
|
||||||
| Mail | mail API | 跨 agent 通信、讨论推理过程 |
|
| Mail | mail API | 跨 agent 通信、讨论推理过程 |
|
||||||
| Session JSONL | ~/.openclaw/agents/*/sessions/ | Agent 完整思考过程、工具调用、错误恢复 |
|
| **所有 agent 的 Session JSONL** | ~/.openclaw/agents/*/sessions/ | 全团队完整思考过程 |
|
||||||
| MEMORY.md | 各 agent workspace | 长期记忆、已有经验教训 |
|
| MEMORY.md | 各 agent workspace | 长期记忆、已有经验教训 |
|
||||||
| .learnings/ | 各 agent workspace | 已记录的学习/错误/特征请求 |
|
|
||||||
| knowledge-gaps.md | wiki-vault/_meta/ | 知识缺口 |
|
| knowledge-gaps.md | wiki-vault/_meta/ | 知识缺口 |
|
||||||
|
| **L1 draft proposals** | skill_workshop pending | 各 agent 当天提交的 draft |
|
||||||
|
|
||||||
### 5.2 信号识别(5 类高价值信号)
|
**核心职责**:
|
||||||
|
|
||||||
| 信号类型 | 从哪发现 | 识别特征 |
|
a. **跨 agent 共性模式识别**:张飞和关羽都在类似场景踩坑 → 合并为共享 Skill
|
||||||
|---------|---------|---------|
|
b. **审查 L1 draft proposals**:
|
||||||
| 失败模式 | task failed、CI failed、review rejected | 有明确的失败原因 |
|
- APPROVE:质量达标的个人经验 → 变 active(仅作者 agent 可见)
|
||||||
| 重复问题 | 跨多个任务/agent 出现同类问题 | 同关键词出现 ≥2 次 |
|
- MERGE:跨 agent 共性 → 合并为共享 Skill(所有 agent 可见)
|
||||||
| 决策转折 | rebuttal comment、需求澄清、主公纠正 | 原方向被推翻或修正 |
|
- REJECT:质量不够(附原因,agent 看到反馈后改进)
|
||||||
| 新实践 | 设计文档新增、wiki-vault 新页面 | 之前没有的知识 |
|
c. **全局提升**:高确定性/高频率经验 → 提升到 AGENTS.md 规则(所有 agent 强制注入)
|
||||||
| 知识缺口 | knowledge-gaps.md、agent 表达不确定 | 查不到/不确定的东西 |
|
|
||||||
|
|
||||||
### 5.3 去重
|
### 5.3 去重
|
||||||
|
|
||||||
同一事件在多个数据源出现(CI 失败 → toolchain task → mail → comment 讨论),按时间窗口 + 关键词去重,保留信息量最大的那条。
|
同一事件在多个数据源出现(CI 失败 → toolchain task → mail → comment 讨论),按时间窗口 + 关键词去重,保留信息量最大的那条。
|
||||||
|
|
||||||
### 5.4 输出
|
跨 agent 的同一模式,按 Pattern-Key 去重,合并为共享信号。
|
||||||
|
|
||||||
候选信号列表,每条包含:
|
### 5.4 输出格式(融合 self-improvement skill 结构化字段)
|
||||||
|
|
||||||
|
每条候选信号包含:
|
||||||
```
|
```
|
||||||
信号类型 | 来源(task_id / PR / review / session)| 时间 | 简述(≤100 字)
|
信号类型 | 来源(task_id / PR / review / session)| 时间 | 简述(≤100 字)
|
||||||
|
ID: SIG-YYYYMMDD-XXX
|
||||||
|
Priority: low | medium | high | critical
|
||||||
|
Status: pending | in_progress | resolved | promoted
|
||||||
|
See Also: SIG-YYYYMMDD-XXX(关联信号)
|
||||||
|
Recurrence-Count: N(同一模式出现次数)
|
||||||
|
Pattern-Key: category.subcategory(稳定去重键,如 sync.field_mapping)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**字段说明**(汲取自 self-improvement skill):
|
||||||
|
|
||||||
|
| 字段 | 用途 | 借鉴来源 |
|
||||||
|
|------|------|---------|
|
||||||
|
| ID | 唯一标识,便于交叉引用 | self-improvement logging format |
|
||||||
|
| Priority | 优先级排序,critical/high 优先处理 | self-improvement priority guidelines |
|
||||||
|
| Status | 生命周期跟踪 | self-improvement status lifecycle |
|
||||||
|
| See Also | 关联相似信号,发现共性模式 | self-improvement recurring pattern detection |
|
||||||
|
| Recurrence-Count | 同一模式出现次数,≥3 触发自动提升 | self-improvement recurring pattern + Skill Extraction Criteria |
|
||||||
|
| Pattern-Key | 稳定去重键,跨 agent 匹配同一模式 | self-improvement Pattern-Key |
|
||||||
|
|
||||||
## 6. DISTILL 阶段
|
## 6. DISTILL 阶段
|
||||||
|
|
||||||
### 6.1 核心原则:HOW not WHAT
|
### 6.1 核心原则:HOW not WHAT
|
||||||
@@ -177,18 +238,34 @@ description: Use when [触发条件/问题模式描述],不描述工作流
|
|||||||
|
|
||||||
**二级蒸馏**(从多个一级经验提取通用模式):
|
**二级蒸馏**(从多个一级经验提取通用模式):
|
||||||
|
|
||||||
如果「消费者/生产者字段同步」经验在 ≥2 个不同场景复现(PromptContext + 其他),三重验证通过后,可以提升为独立 Skill 或固化到 AGENTS.md 规则。
|
如果「消费者/生产者字段同步」经验在 ≥2 个不同场景复现(PromptContext + 其他),验证通过后,可以提升为独立 Skill 或固化到 AGENTS.md 规则。
|
||||||
|
|
||||||
### 6.4 三重验证(nuwa-skill 实践 #2)
|
### 6.4 验证机制(融合 self-improvement Recurrence-Count + Skill Extraction Criteria)
|
||||||
|
|
||||||
从 draft → active 的验证标准:
|
从 draft → active 的验证标准:
|
||||||
|
|
||||||
| 验证维度 | 标准 | 不通过的后果 |
|
| 验证维度 | 标准 | 不通过的处理 |
|
||||||
|---------|------|------------|
|
|---------|------|------------|
|
||||||
| 跨任务复现 | 同类问题在 ≥2 个不同场景出现过 | 降级为 MEMORY.md 临时记录 |
|
| Recurrence-Count ≥ 2 | 同一 Pattern-Key 在 ≥2 个不同场景出现过 | 降级为 MEMORY.md 临时记录 |
|
||||||
| 有生成力 | 能给出具体的操作指引 | 丢弃 |
|
| 有生成力 | 能给出具体的操作指引 | 丢弃 |
|
||||||
| 有排他性 | 不是「代码要测试」的常识 | 丢弃 |
|
| 有排他性 | 不是「代码要测试」的常识 | 丢弃 |
|
||||||
|
|
||||||
|
**提升触发条件**(从 draft 提升为 active Skill,融合 self-improvement Skill Extraction Criteria):
|
||||||
|
|
||||||
|
全部满足时触发提升:
|
||||||
|
- Recurrence-Count ≥ 3(同一模式出现 3 次以上)
|
||||||
|
- 跨 ≥2 个不同任务验证
|
||||||
|
- 30 天内出现
|
||||||
|
|
||||||
|
**Skill Extraction 质量 Gate**(汲取自 self-improvement skill):
|
||||||
|
|
||||||
|
| 标准 | 描述 |
|
||||||
|
|------|------|
|
||||||
|
| Recurring | 有 See Also 链接到 2+ 个相似信号 |
|
||||||
|
| Verified | Status 是 resolved 且有工作修复 |
|
||||||
|
| Non-obvious | 需要实际调试才能发现(不是常识) |
|
||||||
|
| Broadly applicable | 不是项目特定,可跨场景复用 |
|
||||||
|
|
||||||
### 6.5 质量检查自动化
|
### 6.5 质量检查自动化
|
||||||
|
|
||||||
参考 nuwa-skill quality_check.py,对蒸馏产出做结构化检查:
|
参考 nuwa-skill quality_check.py,对蒸馏产出做结构化检查:
|
||||||
@@ -209,15 +286,20 @@ description: Use when [触发条件/问题模式描述],不描述工作流
|
|||||||
|
|
||||||
**矛盾是特征,不是 Bug。** 强制调和会丢失关键信号。
|
**矛盾是特征,不是 Bug。** 强制调和会丢失关键信号。
|
||||||
|
|
||||||
### 6.7 蒸馏者
|
### 6.7 蒸馏者(双层)
|
||||||
|
|
||||||
庞统作为蒸馏者,每天 cron spawn 时执行:
|
**L1:每个 agent 自己(每天 03:00 cron)**
|
||||||
1. 读取 DISCOVER 产出的候选信号列表
|
1. 扫描自己的 session JSONL
|
||||||
2. 用判断力提取根因模式(不是机械提取)
|
2. 用判断力提取根因模式(不是机械提取)
|
||||||
3. 按 SKILL.md 格式产出
|
3. 按 SKILL.md 格式产出
|
||||||
4. 提交到 skill_workshop(pending proposal)
|
4. 提交到 skill_workshop(pending proposal)
|
||||||
|
|
||||||
未来考虑半自动化(LLM 辅助草案 + 庞统审阅确认)。
|
**L2:庞统(每天 05:00 cron)**
|
||||||
|
1. 审查所有 agent 提交的 draft proposal(approve / merge / reject)
|
||||||
|
2. 跨 agent 共性模式识别和合并
|
||||||
|
3. 高频/高确定性经验提升到 AGENTS.md 规则
|
||||||
|
|
||||||
|
未来考虑半自动化(LLM 辅助草案 + agent 审阅确认)。
|
||||||
|
|
||||||
## 7. APPLY 阶段
|
## 7. APPLY 阶段
|
||||||
|
|
||||||
@@ -254,6 +336,22 @@ openclaw 已有的机制:
|
|||||||
- L2:Agent `read` SKILL.md(完整内容)
|
- L2:Agent `read` SKILL.md(完整内容)
|
||||||
- L3:SKILL.md 内引用的 references/ 文件(按需加载)
|
- L3:SKILL.md 内引用的 references/ 文件(按需加载)
|
||||||
|
|
||||||
|
### 7.4 Skill 存放位置与可见性
|
||||||
|
|
||||||
|
agent 专属经验放到 agent 自己的 workspace skills 目录,全局共享 Skill 放到公共 skills 目录。openclaw 扫描时自动合并。
|
||||||
|
|
||||||
|
| Skill 位置 | 谁能看到 | 适用场景 |
|
||||||
|
|-----------|---------|---------|
|
||||||
|
| `~/.openclaw/workspace-zhangfei/skills/` | 只有张飞 | 编码模式、个人踩坑经验 |
|
||||||
|
| `~/.openclaw/workspace-pangtong/skills/` | 只有庞统 | 规划经验、方向把控 |
|
||||||
|
| `~/.openclaw/workspace-simayi/skills/` | 只有司马懿 | 审查技巧、挑战模式 |
|
||||||
|
| `~/.sanguo_projects/sanguo_mozi/skills/` | 所有 moziplus agent | 团队共识、协作规范、通用实践 |
|
||||||
|
|
||||||
|
**设计原则**:
|
||||||
|
- 个人经验不污染其他 agent 上下文(张飞的编码坑不需要司马懿看到)
|
||||||
|
- 共性经验自动共享(庞统 MERGE 后放到公共目录)
|
||||||
|
- openclaw 原生机制天然支持(扫描时合并所有 skills 目录)
|
||||||
|
|
||||||
## 8. IMPROVE 阶段
|
## 8. IMPROVE 阶段
|
||||||
|
|
||||||
### 8.1 Skill 自我修补
|
### 8.1 Skill 自我修补
|
||||||
@@ -306,33 +404,39 @@ Agent 使用 Skill 时发现问题(缺步骤、过时信息、命令变更)
|
|||||||
|
|
||||||
### 8.5 反馈到 DISCOVER
|
### 8.5 反馈到 DISCOVER
|
||||||
|
|
||||||
IMPROVE 发现的经验缺口(「这条 Skill 不适用 XXX 场景」)→ 写入 knowledge-gaps.md → 成为下一轮 DISCOVER 的输入。
|
IMPROVE 发现的经验缺口(「这条 Skill 不适用 XXX 场景」)→ 写入 knowledge-gaps.md → 成为下一轮 DISCOVER L2 的输入。
|
||||||
|
|
||||||
## 9. 闭环全景
|
## 9. 闭环全景
|
||||||
|
|
||||||
```
|
```
|
||||||
DISCOVER(每天 cron)
|
DISCOVER L1(每天 03:00,各 agent cron)
|
||||||
数据源:黑板 + Gitea + Mail + JSONL + MEMORY + .learnings + knowledge-gaps
|
数据源:自己的 session JSONL
|
||||||
信号识别:5 类高价值信号
|
信号识别:5 类高价值信号
|
||||||
去重:时间窗口 + 关键词
|
输出:draft skill proposal(structured,带 ID/Priority/Pattern-Key/Recurrence-Count)
|
||||||
输出:候选信号列表
|
|
||||||
↓
|
↓
|
||||||
DISTILL(同 cron,庞统执行)
|
DISCOVER L2(每天 05:00,庞统 cron)
|
||||||
|
数据源:全量 12 个数据源 + 所有 L1 draft proposals
|
||||||
|
跨 agent 共性模式识别
|
||||||
|
审查 draft proposals:approve / merge / reject
|
||||||
|
↓
|
||||||
|
DISTILL(L2 庞统执行)
|
||||||
原则:HOW not WHAT(根因模式,不固化技术细节)
|
原则:HOW not WHAT(根因模式,不固化技术细节)
|
||||||
验证:三重验证(跨任务复现 + 生成力 + 排他性)
|
验证:Recurrence-Count ≥ 2 + 生成力 + 排他性
|
||||||
|
提升:Recurrence-Count ≥ 3 → 独立 Skill / AGENTS.md 规则
|
||||||
质量:自动化检查 + 矛盾保留
|
质量:自动化检查 + 矛盾保留
|
||||||
产物:Skill(draft → skill_workshop pending proposal)
|
产物:Skill(通过 skill_workshop 管理)
|
||||||
↓
|
↓
|
||||||
APPLY(实时,openclaw skill 机制)
|
APPLY(实时,openclaw skill 机制)
|
||||||
匹配:description 匹配 → agent read SKILL.md
|
匹配:description 匹配 → agent read SKILL.md
|
||||||
执行:agent 按内容执行
|
执行:agent 按内容执行
|
||||||
自我修补:使用时发现问题 → 立即 revise proposal
|
自我修补:使用时发现问题 → 立即 revise proposal
|
||||||
|
per-agent 隔离:专属 Skill 在 agent workspace,共享 Skill 在公共目录
|
||||||
↓
|
↓
|
||||||
IMPROVE(每周 cron)
|
IMPROVE(每周 cron,庞统执行)
|
||||||
追踪:scan JSONL 引用信号
|
追踪:scan JSONL 引用信号
|
||||||
淘汰:30天无引用 → 庞统审查 → quarantine
|
淘汰:30天无引用 → 庞统审查 → quarantine
|
||||||
提升:高频引用 → 独立 Skill / AGENTS.md 规则 / guardrail
|
提升:高频引用 → 独立 Skill / AGENTS.md 规则 / guardrail
|
||||||
反馈:知识缺口 → knowledge-gaps.md → 回到 DISCOVER
|
反馈:知识缺口 → knowledge-gaps.md → 回到 DISCOVER L2
|
||||||
```
|
```
|
||||||
|
|
||||||
## 10. 与现有实现的关系
|
## 10. 与现有实现的关系
|
||||||
@@ -342,20 +446,23 @@ IMPROVE(每周 cron)
|
|||||||
| `skill_system.py`(SkillRegistry/SkillExecutor) | **标记 deprecated,后续清理。** 死代码,实际不参与 skill 发现/加载 |
|
| `skill_system.py`(SkillRegistry/SkillExecutor) | **标记 deprecated,后续清理。** 死代码,实际不参与 skill 发现/加载 |
|
||||||
| `experience.py`(ExperienceDistiller/ExperienceStore) | **标记 deprecated,后续清理。** 空转代码,experiences 目录全空 |
|
| `experience.py`(ExperienceDistiller/ExperienceStore) | **标记 deprecated,后续清理。** 空转代码,experiences 目录全空 |
|
||||||
| `experiences` 表 / `experience_tags` 表(db.py) | **保留表结构但不再写入。** 未来如果需要 DB 查询可以重新启用 |
|
| `experiences` 表 / `experience_tags` 表(db.py) | **保留表结构但不再写入。** 未来如果需要 DB 查询可以重新启用 |
|
||||||
| ticker.py:336-348 经验蒸馏逻辑 | **移除。** 不再逐任务蒸馏,改为每天 cron |
|
| ticker.py:336-348 经验蒸馏逻辑 | **移除。** 不再逐任务蒸馏,改为双层 daily cron |
|
||||||
| `skill_workshop` 工具 | **核心使用。** 所有 Skill 生命周期通过它管理 |
|
| `skill_workshop` 工具 | **核心使用。** 所有 Skill 生命周期通过它管理 |
|
||||||
| openclaw `<available_skills>` 机制 | **核心依赖。** APPLY 阶段完全基于此 |
|
| openclaw `<available_skills>` 机制 | **核心依赖。** APPLY 阶段完全基于此 |
|
||||||
|
| **self-improvement skill**(`~/.openclaw/workspace/skills/self-improving-agent/`) | **废弃。** 其优势(结构化 ID/Status/Priority/See Also/Recurrence-Count)已融合到 DISCOVER 输出格式中。原 skill 文件保留但标记 deprecated |
|
||||||
|
| **.learnings/ 目录**(各 agent workspace) | **废弃。** JSONL 是唯一数据源。目录保留但不再写入新内容(历史数据保留) |
|
||||||
|
| **SELF_IMPROVEMENT_REMINDER.md** | **废弃。** 规则已融合到 skill-management skill 中 |
|
||||||
|
|
||||||
## 11. 实现计划
|
## 11. 实现计划
|
||||||
|
|
||||||
| 步骤 | 内容 | 优先级 | 工作量 |
|
| 步骤 | 内容 | 优先级 | 工作量 |
|
||||||
|------|------|--------|--------|
|
|------|------|--------|--------|
|
||||||
| S1 | 在 SOUL.md / AGENTS.md 加入 Skill 自我修补规则 | P0 | L1(改文案) |
|
| S1 | 在 SOUL.md / AGENTS.md 加入 Skill 自我修补规则 + 双层 daily 蒸馏规则 | P0 | L1(改文案) |
|
||||||
| S2 | 创建 skill-management Skill(本设计的 skill 化封装) | P0 | L2 |
|
| S2 | 创建 skill-management Skill(主 SKILL.md + references/ 四阶段详细操作) | P0 | L2 |
|
||||||
| S3 | 实现 DISCOVER cron:全量数据源扫描 + 信号识别 | P1 | L2-L3 |
|
| S3 | 创建各 agent 的 03:00 cron(自蒸馏 L1) | P1 | L1 |
|
||||||
| S4 | 实现 DISTILL 流程:庞统 cron 读取信号 + 提交 skill_workshop proposal | P1 | L2 |
|
| S4 | 创建庞统的 05:00 cron(整合 + 审查 L2) | P1 | L1-L2 |
|
||||||
| S5 | 实现 IMPROVE cron:JSONL 引用追踪 + 淘汰报告 | P2 | L2-L3 |
|
| S5 | 实现 IMPROVE cron:JSONL 引用追踪 + 淘汰报告(每周) | P2 | L2-L3 |
|
||||||
| S6 | 清理 deprecated 代码(skill_system.py / experience.py) | P3 | L1 |
|
| S6 | 清理 deprecated 代码(skill_system.py / experience.py / self-improvement skill) | P3 | L1 |
|
||||||
|
|
||||||
S1 和 S2 可以立即做。S3-S5 需要先确认设计文档。
|
S1 和 S2 可以立即做。S3-S5 需要先确认设计文档。
|
||||||
|
|
||||||
@@ -366,7 +473,6 @@ S1 和 S2 可以立即做。S3-S5 需要先确认设计文档。
|
|||||||
| 统一产物 Skill-only | Hermes skill_manage + memory_tool | 只有 Skill 和 Memory 两种载体 |
|
| 统一产物 Skill-only | Hermes skill_manage + memory_tool | 只有 Skill 和 Memory 两种载体 |
|
||||||
| HOW not WHAT | nuwa-skill 实践 #5 | 蒸馏思维方式不是知识内容 |
|
| HOW not WHAT | nuwa-skill 实践 #5 | 蒸馏思维方式不是知识内容 |
|
||||||
| description = when not how | Superpowers writing-skills | description 只描述触发条件 |
|
| description = when not how | Superpowers writing-skills | description 只描述触发条件 |
|
||||||
| 三重验证 | nuwa-skill 实践 #2 | 跨域复现 + 生成力 + 排他性 |
|
|
||||||
| 质量检查自动化 | nuwa-skill quality_check.py | 结构化检查代替主观判断 |
|
| 质量检查自动化 | nuwa-skill quality_check.py | 结构化检查代替主观判断 |
|
||||||
| 矛盾处理 | nuwa-skill 实践 #10 | 矛盾是特征不是 Bug |
|
| 矛盾处理 | nuwa-skill 实践 #10 | 矛盾是特征不是 Bug |
|
||||||
| Skill 自我修补 | Hermes skill_manage schema | 使用时发现问题立即 patch |
|
| Skill 自我修补 | Hermes skill_manage schema | 使用时发现问题立即 patch |
|
||||||
@@ -376,3 +482,176 @@ S1 和 S2 可以立即做。S3-S5 需要先确认设计文档。
|
|||||||
| 棘轮机制 | moziplus 经验实践 #2 | 经验只能改进不能退化 |
|
| 棘轮机制 | moziplus 经验实践 #2 | 经验只能改进不能退化 |
|
||||||
| 优雅降级 | nuwa-skill 实践 #17 | 信息不足时不要强行蒸馏 |
|
| 优雅降级 | nuwa-skill 实践 #17 | 信息不足时不要强行蒸馏 |
|
||||||
| 迭代上限 | nuwa-skill 实践 #18 | 最多 2 轮验证,不无限打磨 |
|
| 迭代上限 | nuwa-skill 实践 #18 | 最多 2 轮验证,不无限打磨 |
|
||||||
|
| **双层 daily 蒸馏** | self-improvement skill daily review | 有距离感的蒸馏优于即时记录 |
|
||||||
|
| **结构化信号格式** | self-improvement skill logging format | ID/Status/Priority/See Also/Recurrence-Count |
|
||||||
|
| **Recurrence-Count 验证** | self-improvement skill recurring pattern detection | ≥3 次自动触发提升,比主观判断更客观 |
|
||||||
|
| **Skill Extraction Criteria** | self-improvement skill extraction | Recurring + Verified + Non-obvious + Broadly applicable |
|
||||||
|
| **per-agent Skill 目录** | Hermes skill_manage + self-improving-agent practice §5 | 每个 agent 建立自己的 Skill 库 |
|
||||||
|
| **废弃 .learnings/** | DISCOVER 统一采集 | JSONL 是唯一数据源,避免信息冗余 |
|
||||||
|
| **组合模式(主 skill + references)** | moziplus skill-engineering practices §4 | Skill 之间通过产出物松耦合传递 |
|
||||||
|
|
||||||
|
## 13. 部署目录结构
|
||||||
|
|
||||||
|
### 13.1 openclaw skill 加载优先级
|
||||||
|
|
||||||
|
OpenClaw 按 6 级优先级扫描 skill 目录,同名 skill 高优先级覆盖低优先级:
|
||||||
|
|
||||||
|
| 优先级 | 来源 | 路径 | 可见性 |
|
||||||
|
|--------|------|------|--------|
|
||||||
|
| 1 — 最高 | Workspace skills | `<workspace>/skills` | 只对该 agent |
|
||||||
|
| 2 | Project agent skills | `<workspace>/.agents/skills` | 只对该 workspace 的 agent |
|
||||||
|
| 3 | Personal agent skills | `~/.agents/skills` | 所有 agent |
|
||||||
|
| 4 | Managed / local skills | `~/.openclaw/skills` | 所有 agent |
|
||||||
|
| 5 | Bundled skills | 随安装包(`/opt/homebrew/.../openclaw/skills/`) | 所有 agent |
|
||||||
|
| 6 — 最低 | Extra dirs + plugin skills | `skills.load.extraDirs` + `~/.openclaw/plugin-skills/` | 所有 agent |
|
||||||
|
|
||||||
|
### 13.2 skill-management Skill 目录结构
|
||||||
|
|
||||||
|
放在公共目录(`~/.sanguo_projects/sanguo_mozi/skills/`),所有 moziplus agent 可见:
|
||||||
|
|
||||||
|
```
|
||||||
|
~/.sanguo_projects/sanguo_mozi/skills/skill-management/
|
||||||
|
├── SKILL.md # 主 Skill:综述 + 核心原则 + 各阶段职责摘要
|
||||||
|
├── references/
|
||||||
|
│ ├── discover-l1.md # L1 各 agent 自蒸馏详细操作(03:00 cron 读这个)
|
||||||
|
│ ├── discover-l2.md # L2 庞统整合详细操作(05:00 cron 读这个)
|
||||||
|
│ ├── distill.md # DISTILL 阶段详细操作(蒸馏规范 + 验证标准)
|
||||||
|
│ ├── apply.md # APPLY 阶段说明(openclaw 原生机制,简短)
|
||||||
|
│ └── improve.md # IMPROVE 阶段详细操作(引用追踪 + 淘汰 + 提升)
|
||||||
|
└── assets/
|
||||||
|
├── templates/
|
||||||
|
│ ├── skill-template.md # SKILL.md 标准模板
|
||||||
|
│ └── signal-format.md # 信号输出格式模板(ID/Priority/Pattern-Key)
|
||||||
|
└── checklists/
|
||||||
|
└── quality-check.md # 质量检查清单
|
||||||
|
```
|
||||||
|
|
||||||
|
**为什么放公共目录**:所有 agent 都需要触发这个 skill(DISCOVER L1 时各 agent 按 description 匹配 → read SKILL.md → 再按需 read references/)。DISCOVER/IMPROVE 是 cron 场景,cron payload 中直接指定 `read references/xxx.md` 按内容执行。
|
||||||
|
|
||||||
|
**为什么不拆分为独立 skill**:5 个 skill = 5 条 description 常驻上下文(~500-800 token)。其中 DISCOVER 和 IMPROVE 是 cron 触发不是 agent 按描述触发,不需要常驻 description。用 references/ 按需加载更省上下文。
|
||||||
|
|
||||||
|
### 13.3 Cron 产出流转路径
|
||||||
|
|
||||||
|
```
|
||||||
|
L1 产出(各 agent 03:00)
|
||||||
|
↓ skill_workshop create(pending proposal)
|
||||||
|
↓ 存储:skill_workshop 内部管理(~/.openclaw/workspace-<agent>/.skill-workshop/)
|
||||||
|
↓
|
||||||
|
L2 审查(庞统 05:00)
|
||||||
|
↓ skill_workshop list → inspect → 决策
|
||||||
|
↓
|
||||||
|
├─ APPROVE(个人经验,质量达标)
|
||||||
|
│ → skill_workshop apply
|
||||||
|
│ → 写入:~/.openclaw/workspace-<agent>/skills/<skill-name>/SKILL.md
|
||||||
|
│ → 仅该 agent 可见(workspace skill,优先级 1)
|
||||||
|
│
|
||||||
|
├─ MERGE(跨 agent 共性)
|
||||||
|
│ → 合并多个 proposal 为共享 Skill
|
||||||
|
│ → skill_workshop apply(目标:公共目录)
|
||||||
|
│ → 写入:~/.sanguo_projects/sanguo_mozi/skills/<skill-name>/SKILL.md
|
||||||
|
│ → 所有 agent 可见(extra dir,优先级 6)
|
||||||
|
│
|
||||||
|
├─ REJECT(质量不够)
|
||||||
|
│ → skill_workshop reject(附原因)
|
||||||
|
│ → agent 在下次 L1 蒸馏时看到反馈
|
||||||
|
│
|
||||||
|
└─ PROMOTE(高确定性,提升为确定性规则)
|
||||||
|
→ 手动写入 AGENTS.md / SOUL.md / TOOLS.md
|
||||||
|
→ 所有 agent 强制注入(L1 确定性规则层)
|
||||||
|
```
|
||||||
|
|
||||||
|
**关键设计**:APPROVE 写入 per-agent workspace(优先级 1,最高),MERGE 写入公共目录(优先级 6,最低)。如果同名 skill 在两边都有,workspace 版本覆盖公共版本——agent 可以有自己改进过的版本。
|
||||||
|
|
||||||
|
### 13.4 Per-agent Skill 目录
|
||||||
|
|
||||||
|
各 agent workspace 下的 skills 目录(目前不存在,L2 审查 APPROVE 后由 skill_workshop 自动创建):
|
||||||
|
|
||||||
|
```
|
||||||
|
~/.openclaw/workspace-zhangfei/skills/ # 张飞的个人经验 Skill
|
||||||
|
~/.openclaw/workspace-guanyu/skills/ # 关羽的个人经验 Skill
|
||||||
|
~/.openclaw/workspace-zhaoyun/skills/ # 赵云的个人经验 Skill
|
||||||
|
~/.openclaw/workspace-simayi/skills/ # 司马懿的个人经验 Skill
|
||||||
|
~/.openclaw/workspace-pangtong/skills/ # 庞统的个人经验 Skill
|
||||||
|
~/.openclaw/workspace-jiangwei/skills/ # 姜维的个人经验 Skill
|
||||||
|
```
|
||||||
|
|
||||||
|
**适用场景**:
|
||||||
|
- 张飞的编码踩坑模式 → 只有张飞需要,不污染其他 agent 上下文
|
||||||
|
- 司马懿的审查技巧 → 只有司马懿需要
|
||||||
|
- 庞统的规划经验 → 只有庞统需要
|
||||||
|
|
||||||
|
### 13.5 Proposal 中间产物存储
|
||||||
|
|
||||||
|
```
|
||||||
|
~/.openclaw/workspace-<agent>/.skill-workshop/
|
||||||
|
├── proposals/
|
||||||
|
│ ├── <proposal-id>/
|
||||||
|
│ │ ├── PROPOSAL.md # 草案内容
|
||||||
|
│ │ ├── metadata.json # 状态、hash、scanner state
|
||||||
|
│ │ └── support-files/ # 附带的 references/assets
|
||||||
|
│ └── ...
|
||||||
|
├── applied/ # 已 apply 的 proposal 归档
|
||||||
|
├── rejected/ # 已 reject 的 proposal 归档
|
||||||
|
└── quarantined/ # 已 quarantine 的 proposal 归档
|
||||||
|
```
|
||||||
|
|
||||||
|
**注意**:proposal 存储由 skill_workshop 内部管理,不需要手动操作。庞统 L2 cron 通过 `skill_workshop list`(查看所有 agent 的 pending proposal)+ `skill_workshop inspect`(查看具体内容)+ `skill_workshop apply/reject/quarantine`(执行决策)完成审查。
|
||||||
|
|
||||||
|
### 13.6 全景目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
# ━━━━━━━ Skill 来源(按 openclaw 优先级) ━━━━━━━━
|
||||||
|
|
||||||
|
# P1: Per-agent workspace skills(个人经验,L2 APPROVE 后写入)
|
||||||
|
~/.openclaw/workspace-<agent>/skills/<skill-name>/SKILL.md
|
||||||
|
|
||||||
|
# P4: Managed / local skills(保留,目前为空)
|
||||||
|
~/.openclaw/skills/
|
||||||
|
|
||||||
|
# P5: Bundled skills(openclaw 自带,不动)
|
||||||
|
/opt/homebrew/lib/node_modules/openclaw/skills/
|
||||||
|
|
||||||
|
# P6: Extra dirs + plugin skills
|
||||||
|
~/.sanguo_projects/sanguo_mozi/skills/ # moziplus 团队共享 Skill
|
||||||
|
├── skill-management/ # ← §19 核心 Skill
|
||||||
|
│ ├── SKILL.md
|
||||||
|
│ ├── references/{discover-l1, discover-l2, distill, apply, improve}.md
|
||||||
|
│ └── assets/{templates, checklists}/
|
||||||
|
├── blackboard-executor/ # 现有
|
||||||
|
├── blackboard-reviewer/ # 现有
|
||||||
|
├── trial-and-error-patterns/ # 现有(经验会追加到这里)
|
||||||
|
└── ...(其他现有 skill)
|
||||||
|
|
||||||
|
~/.openclaw/plugin-skills/ # plugin Skill(feishu 等)
|
||||||
|
|
||||||
|
# ━━━━━━━ Cron 产出流转 ━━━━━━━━
|
||||||
|
|
||||||
|
# L1(03:00 各 agent)
|
||||||
|
# 输入:~/.openclaw/agents/<agent_id>/sessions/*.jsonl
|
||||||
|
# 产出:skill_workshop create → proposal(pending)
|
||||||
|
# 存储:~/.openclaw/workspace-<agent>/.skill-workshop/proposals/
|
||||||
|
|
||||||
|
# L2(05:00 庞统)
|
||||||
|
# 输入:全量数据源 + 所有 pending proposals
|
||||||
|
# 审查:skill_workshop list → inspect → apply/merge/reject
|
||||||
|
# 产出:
|
||||||
|
# APPROVE → ~/.openclaw/workspace-<agent>/skills/<skill-name>/(per-agent)
|
||||||
|
# MERGE → ~/.sanguo_projects/sanguo_mozi/skills/<skill-name>/(共享)
|
||||||
|
# REJECT → proposal 归档到 rejected/
|
||||||
|
# PROMOTE → 手动写入 AGENTS.md / SOUL.md / TOOLS.md
|
||||||
|
|
||||||
|
# IMPROVE(每周 庞统)
|
||||||
|
# 输入:过去 7 天所有 agent 的 session JSONL
|
||||||
|
# 产出:淘汰候选报告 → skill_workshop quarantine
|
||||||
|
|
||||||
|
# ━━━━━━━ 废弃的目录(保留历史,不再写入) ━━━━━━━━
|
||||||
|
|
||||||
|
# .learnings/ — 不再写入
|
||||||
|
~/.openclaw/workspace-*/.learnings/
|
||||||
|
|
||||||
|
# self-improvement skill — 不再激活
|
||||||
|
~/.openclaw/workspace/skills/self-improving-agent/
|
||||||
|
|
||||||
|
# SELF_IMPROVEMENT_REMINDER.md — 废弃
|
||||||
|
# 规则已融合到 skill-management skill 中
|
||||||
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user