# 调研报告：智能拆解机制 + Skill 体系

**日期**: 2026-05-15
**作者**: 庞统士元 (pangtong-fujunshi)
**版本**: v2.6-research-04
**用途**: moziplus v2.6 AI Native DevOps 平台设计参考

---

## 目录

- [课题 4：智能拆解机制](#课题-4智能拆解机制)
  - [已有经验（知识库/wiki）](#已有经验知识库wiki)
  - [业界优秀实践对比表](#业界优秀实践对比表课题4)
  - [约束 vs 灵活性分析](#约束-vs-灵活性分析)
  - [推荐方案（结合 AI Native 目标）](#推荐方案结合-ai-native-目标课题4)
- [课题 8：Skill 体系工程落地](#课题-8skill-体系工程落地)
  - [已有经验（知识库/wiki + OpenClaw 现有 Skill）](#已有经验知识库wiki--openclaw-现有-skill)
  - [业界优秀实践对比表](#业界优秀实践对比表课题8)
  - [Skill 三层约束工程化方案](#skill-三层约束工程化方案)
  - [推荐方案（结合 AI Native 目标）](#推荐方案结合-ai-native-目标课题8)

---

# 课题 4：智能拆解机制

## 已有经验（知识库/wiki）

### moziplus v1.0 现有拆解机制

moziplus v1.0 采用 **"模板 + 自然语言描述"** 的混合拆解方式：

1. **CLI create 接口**：接收 `--description "需求描述"` + `--template 模板名`
2. **模板库**：5 个预定义模板（`full_role_development`, `circular_review_test`, `multi_stage_review`, `data_acquisition`, `multi_edge_discussion`）
3. **自动匹配**：不传 template 时，按关键词优先级匹配模板（循环+测试 → 多阶段 → 讨论 → 数据 → 兜底 full_role）
4. **每个模板定义了固定的 DAG 图**：节点、边、角色分配、output_schema

**局限性**：
- 模板是固定的 DAG 结构，无法根据需求动态调整节点和边
- 关键词匹配太粗糙，复杂需求容易匹配到错误模板
- 庞统拆解时完全靠 LLM 理解，没有结构化引导
- 无法动态增减步骤（如"这次不需要数据获取"）

### 知识库中已积累的相关实践

从知识库中获取的 6 个相关项目（get-shit-done、wanman、nuwa-skill、oh-my-claudecode、open-multi-agent、TradingAgents），为本次调研提供了丰富的参考素材。

---

## 业界优秀实践对比表（课题4）

### 1. MetaGPT：SOP 自动链 + _watch 声明式订阅

**核心理念**：将人类软件公司的 SOP（标准操作流程）编码为 prompt 序列，Agent 之间通过发布-订阅自动链接。

**拆解机制**：
- **SOP 流水线**：ProductManager → Architect → ProjectManager → Engineer，每步自动触发
- **_watch 声明式订阅**：每个 Role 通过 `self._watch({UpstreamAction})` 订阅上游产出，上游完成后自动触发下游
- **Action 基类**：每个 Action 接收 `with_messages`（上游消息），返回 `Message`（结构化产出）
- **Environment 对象**：所有 Agent 放入同一个 Environment，自动调度订阅关系

```python
class Architect(Role):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.set_actions([WriteDesign])
        self._watch({WritePRD})  # 订阅 PRD 产出，自动触发设计

class Engineer(Role):
    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.set_actions([WriteCode])
        self._watch({WriteDesign})  # 订阅设计产出，自动触发编码
```

**优点**：
- SOP 流水线保证步骤不遗漏
- _watch 机制实现松耦合的自动链
- 每步产出结构化文档（PRD→设计→任务→代码），便于下游消费

**缺点**：
- SOP 是固定的，灵活性有限
- 不适合非软件开发场景
- 粒度在 Role 级别，不能在同一 Role 内动态调整

### 2. get-shit-done：discuss→plan→execute→verify→ship 流程

**核心理念**：Spec-driven development，通过上下文工程解决 context rot（上下文窗口填满后质量退化）。

**拆解机制**：
- **5 阶段流水线**：new-project → discuss-phase → plan-phase → execute-phase → verify
- **Fresh Context Per Agent**：每个子任务 spawn 新 agent（独立上下文窗口），避免 context rot
- **File-Based State**：所有状态存储在 `.planning/` 目录（PROJECT.md, REQUIREMENTS.md, ROADMAP.md, STATE.md）
- **Thin Orchestrator**：Workflow 文件不做重活，只加载上下文、spawn agent、收集结果
- **Progressive Disclosure**：workflow 按需加载子模块（modes/、templates/），避免一次性注入过多内容
- **Agent Size-Budget**：XL(1700行)、Large(1500行)、Default(1000行)，防止 prompt 过长

```
用户 → /gsd-new-project → 初始化
    → /gsd-discuss → 需求讨论（questioning → dream extraction）
    → /gsd-plan → 规划（analyst → architect → critic → plan checker）
    → /gsd-execute → 执行（按 phase 分任务，独立 agent 执行）
    → /gsd-verify → 验证（多维度自动化验证）
```

**优点**：
- 分阶段拆解，每阶段有明确产出
- 需求讨论阶段（discuss）会做 dream extraction，挖掘隐含需求
- Plan checker agent 专门验证计划的完整性
- Scope reduction detection 防止规划时静默丢弃需求

**缺点**：
- 仍然是预定义的 5 阶段流程
- 不适合非软件项目
- Token 成本高（每任务独立上下文窗口）

### 3. wanman：Explore→Evaluate→Execute 三阶段 + Token 预算

**核心理念**：Agent Matrix 框架，通过 JSON-RPC Supervisor 协调多个 Claude Code/Codex 子进程。

**拆解机制**：
- **Agent 配置**：JSON 文件定义 agents（name, lifecycle, model tier, systemPrompt）
- **三种生命周期**：`24/7`（持续运行）、`on-demand`（按需触发）、`idle_cached`（空闲但保持上下文）
- **Task Pool**：支持 `--after` 依赖的任务池，自然形成 DAG
- **Initiative**：长期目标管理，将目标分解为任务
- **Capsule**：变更胶囊，追踪每个 agent 的产出变更
- **Per-agent 隔离**：每个 agent 独立 worktree + 独立 $HOME，互不干扰

**关键设计**：
- **CEO Agent** 负责全局协调和最终决策
- **Steer/Follow-up 优先级**：消息分为中断性指令和跟进性消息
- **共享 Skill 发现**：agents 自动发现 `~/.claude/skills/` 下的共享 skill
- **Skill Snapshot**：运行时将 skill 文件 materialize 为快照

**优点**：
- CEO 模式适合需要集中决策的场景
- Task Pool + `--after` 依赖天然支持 DAG 调度
- Agent 隔离保证稳定性

**缺点**：
- 拆解依赖 CEO agent 的 LLM 能力
- 没有结构化的拆解模板
- Token 预算管理需要手动配置

### 4. ChatDev：角色流水线 + 环检测

**核心理念**：通过 Chat Chain 组织多角色对话，每个 phase 由两个角色（如 CTO + PM）的对话完成。

**拆解机制**：
- **Chat Chain**：将软件开发分解为有序的 phases（Demand Analysis → Language Model → Coding → Code Complete → Code Review → Testing → Environment Configuration）
- **角色配对**：每个 phase 由两个角色对话完成（CTO↔PM, CTO↔Programmer, CTO↔Art Designer, etc.）
- **Communicative Dehallucination**：通过角色间的质疑和验证减少幻觉
- **环检测**：当角色陷入死循环（反复说"我同意"）时自动打破
- **ChatChain Visualizer**：可视化查看每个 phase 的对话和产出

```
用户需求 → [Demand Analysis: CEO↔CTO]
         → [Language Design: CTO↔CPO]
         → [Coding: CTO↔Programmer]
         → [Code Complete: Programmer↔CTO]
         → [Code Review: Programmer↔Reviewer]
         → [Testing: CTO↔Tester]
         → [Environment Config: CTO↔CTO]
```

**优点**：
- 角色配对确保每步都有质疑和验证（类似我们的"做+挑战"）
- Chat Chain 是半结构化的：phase 顺序固定，但对话内容自由
- 环检测是实用的工程优化

**缺点**：
- Phase 顺序完全固定
- 角色配对固定，不能动态调整
- 只适用于软件开发

### 5. TradingAgents：动态图构建

**核心理念**：模拟真实交易公司的协作结构，通过 `selected_analysts` 参数动态决定图的节点和边。

**拆解机制**：
- **动态图构建**：`selected_analysts` 参数决定激活哪些分析师（Fundamental, Sentiment, Technical, News）
- **结构化输出**：Research Manager 汇总分析师报告，Trader 做决策，Portfolio Manager 管理仓位
- **LangGraph checkpoint**：支持断点续跑
- **Decision Log**：持久化决策记录

```
selected_analysts = ["fundamental", "sentiment", "technical"]
    ↓ 自动构建图:
    Fundamental Analyst → Research Manager
    Sentiment Analyst   → Research Manager
    Technical Analyst   → Research Manager
                         Research Manager → Trader → Portfolio Manager
```

**优点**：
- **真正的动态图**：参数决定节点和边，不是固定模板
- 适合不同复杂度的任务（简单任务少选 analyst，复杂任务全选）
- 结构清晰：分析 → 汇总 → 交易 → 仓位管理

**缺点**：
- 动态范围有限（只能选/不选预定义的 analyst 类型）
- 不能动态创建新的 agent 类型
- 没有拆解验证机制

### 6. open-multi-agent：Goal → DAG 自动分解

**核心理念**：Goal-first，用户描述目标，Coordinator 自动分解为 Task DAG。

**拆解机制**：
- **`runTeam(team, goal)`**：一个调用，Coordinator 自动分解目标为任务 DAG
- **自动并行化**：无依赖的任务自动并行执行
- **混合 Provider**：10+ LLM 适配器，不同 agent 可用不同模型
- **Observability**：`onProgress` 事件流 + `onTrace` span + HTML dashboard
- **Loop Detection**：内置循环检测
- **Token Budget**：支持 token 预算管理
- **Context Compaction**：上下文压缩

```
goal: "Build a REST API"
    ↓ Coordinator 自动分解:
    task: design-api (no deps)
    task: implement-handlers (after design-api)
    task: scaffold-tests (after design-api, parallel with implement)
    task: review-code (after implement + tests)
```

**优点**：
- **最接近"AI Native 拆解"的理想**：目标→DAG 全自动
- 不需要预定义模板
- 依赖关系自动解析 + 并行化

**缺点**：
- 拆解质量完全依赖 Coordinator LLM 能力
- 没有拆解结果的验证/挑战机制
- 对于复杂领域任务，可能遗漏关键步骤

### 7. guidance-aws / Databricks：Supervisor 模式

**核心理念**：Supervisor Agent 负责意图分析 + Agent 选择，单次 LLM 调用同时完成两个决策。

**拆解机制**：
- **Supervisor Agent**：接收用户输入，一次性完成意图识别 + Agent 选择 + 参数提取
- **Hybrid Routing**：确定性快速路径 + LLM fallback（生产系统推荐混合路由）
- **Message Queue**：Agent 间通过消息队列通信
- **Human-in-the-loop**：支持无缝衔接人工介入

```
用户输入 → Supervisor (单次 LLM)
    → 意图分析: "这是一个编码任务"
    → Agent 选择: "分配给 Developer Agent"
    → 参数提取: {language: "Python", framework: "FastAPI"}
    → 路由到 Developer Agent
```

**优点**：
- 单次 LLM 调用效率高
- Hybrid Routing 平衡速度和灵活性
- 生产级设计

**缺点**：
- Supervisor 是单点，能力决定上限
- 没有拆解结果的验证

### 8. Claude Code 的 Task Decomposition

**核心理念**：隐式分解，通过 Headless Mode + Subagent 自动完成。

**拆解机制**：
- **Headless Mode**：`claude -p "task"` 非交互模式，自动处理
- **Task Tool**：Agent 可 spawn 子 agent 处理子任务
- **TodoRead/TodoWrite**：内置 todo 管理，Agent 自己创建和追踪子任务
- **Skills**：通过 SKILL.md 注入领域知识，引导 Agent 的分解策略
- **Progressive Context Loading**：只加载 frontmatter（~100 token），匹配后才加载全文

**优点**：
- 拆解完全由 Agent 自主完成，不需要显式定义
- Todo 系统让 Agent 自己追踪分解结果
- Skill 注入可以引导分解方向

**缺点**：
- 没有结构化约束，质量不稳定
- 没有"拆解验证"机制

---

## 约束 vs 灵活性分析

### 核心矛盾

| 维度 | 固定模板 | 完全自由 | AI Native 理想 |
|------|---------|---------|---------------|
| **步骤完整性** | ✅ 保证不遗漏 | ❌ 可能遗漏 | ✅ AI 确保覆盖 |
| **灵活性** | ❌ 死板 | ✅ 适应任何场景 | ✅ 根据需求动态调整 |
| **可预测性** | ✅ 行为可预期 | ❌ 不确定 | ⚠️ 有约束的灵活 |
| **粒度控制** | ❌ 固定粒度 | ⚠️ 不稳定 | ✅ AI 根据复杂度调整 |
| **调试性** | ✅ 容易定位问题 | ❌ 难复现 | ✅ 有检查点 |

### 五个关键问题的回答

#### Q1: 拆解模板 vs 动态生成的权衡点在哪？

**结论：模板作为骨架，AI 负责填充和调整。**

- **简单/常见任务**：直接用模板（如"开发一个新策略"→ `full_role_development`）
- **复杂/独特任务**：AI 动态生成 DAG，但必须经过验证
- **混合任务**：选择最接近的模板，AI 增减节点和边

**权衡点判断标准**：

| 需求特征 | 建议策略 | 示例 |
|---------|---------|------|
| 需求清晰 + 场景常见 | 直接模板 | "开发MACD策略" |
| 需求清晰 + 场景不常见 | 模板 + AI 调整 | "对比3个平台的回测结果" |
| 需求模糊 + 场景常见 | AI 分析 + 模板对齐 | "优化我的交易系统" |
| 需求模糊 + 场景不常见 | AI 完全动态生成 + 强验证 | "研究新因子并整合到生产" |

#### Q2: 是否有"模板 + AI 增强"的混合模式？

**是的，这是最佳方案。** 参考：

| 项目 | 混合模式 |
|------|---------|
| MetaGPT | SOP 骨架（固定角色流水线） + _watch 动态订阅 |
| GSD | 5 阶段骨架（固定流水线） + discuss dream extraction（AI 挖掘隐含需求） |
| TradingAgents | 预定义 analyst 类型（固定节点池） + `selected_analysts` 动态选择 |
| open-multi-agent | Goal → DAG（AI 动态生成） + fixed team definition（固定角色池） |

**推荐混合模式**：
1. **模板库提供骨架**：5-10 个场景模板，每个定义了典型节点和边
2. **AI 负责三件事**：
   - 选择最合适的模板
   - 增减节点和边（如"这次不需要风控审核"或"加一个数据验证步骤"）
   - 调整粒度（简单任务合并节点，复杂任务拆细）
3. **结构约束**：模板定义了"必须有的节点"（如 review 节点不可删除）

#### Q3: 拆解结果是否需要验证/挑战？

**必须！这是所有项目的共识。** 参考：

| 项目 | 验证机制 |
|------|---------|
| MetaGPT | 每个 Role 验证上游产出 |
| GSD | plan-checker agent + scope reduction detection |
| ChatDev | 角色配对（做+审核）+ 环检测 |
| oh-my-claudecode | Architect → Critic → Planner 三方验证 |

**推荐方案**：
1. **Plan Checker Agent**：拆解完成后，独立的 Plan Checker 验证：
   - 是否覆盖所有需求（与原始需求逐项对照）
   - 依赖关系是否合理
   - 粒度是否适当（太粗/太细）
   - 是否遗漏关键步骤
2. **需求回溯**：拆解结果的每个节点都能追溯到原始需求的哪个部分
3. **完整性检查清单**：按任务类型生成检查清单

#### Q4: 如何确保拆解覆盖所有需求（不遗漏）？

**多层次保障**：

1. **需求结构化**（GSD 的 discuss phase 思路）：
   - 用户描述 → AI 提取为结构化需求列表
   - 每个需求项有 ID、描述、验收标准
   - 用户确认需求列表后才开始拆解

2. **需求-节点映射矩阵**（正向+反向验证）：
   - 正向：每个需求至少被一个节点覆盖
   - 反向：每个节点至少对应一个需求

3. **Plan Checker 的覆盖检查**：
   - 读取需求列表
   - 遍历 DAG 节点
   - 报告未被覆盖的需求

4. **Scope Reduction Detection**（GSD 思路）：
   - 监控规划者是否静默丢弃了需求
   - 如果发现需求消失，自动标记并询问用户

#### Q5: 拆解粒度怎么控制？

**自适应粒度策略**：

| 任务复杂度 | 粒度策略 | 节点数 |
|-----------|---------|--------|
| 简单（<3 个需求） | 粗粒度，合并步骤 | 3-5 |
| 中等（3-8 个需求） | 标准粒度，按功能模块拆分 | 5-10 |
| 复杂（>8 个需求） | 细粒度，每需求可能拆为多个节点 | 10-20 |

**粒度控制原则**：
1. **每个节点有且只有一个 Agent 负责**（不共享责任）
2. **每个节点有明确的 input/output**（可验证）
3. **节点产出不超过 2000 字**（避免上下文溢出）
4. **合并准则**：如果两个节点总是被同一个 Agent 按顺序执行，考虑合并

---

## 推荐方案（结合 AI Native 目标，课题4）

### 方案名称：混合式智能拆解（Hybrid Intelligent Decomposition）

### 架构设计

```
┌─────────────────────────────────────────────────────────────┐
│                    用户需求输入                               │
│              （自然语言 / 结构化描述）                         │
└─────────────────────┬───────────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────────────────────┐
│              Step 1: 需求结构化（Requirement Extraction）      │
│                                                              │
│  庞统分析用户输入，提取为结构化需求列表：                       │
│  - 需求项 ID + 描述 + 验收标准                                │
│  - 需求类型标签（数据/编码/分析/部署/审查/讨论）               │
│  - 复杂度评估（简单/中等/复杂）                                │
│  - 隐含需求挖掘（discuss phase 的 dream extraction）          │
│                                                              │
│  产出：structured_requirements.json                          │
│  ✋ 检查点：用户确认需求列表                                   │
└─────────────────────┬───────────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────────────────────┐
│              Step 2: 模板匹配 + AI 增强                       │
│                                                              │
│  2a. 模板选择（两层匹配）：                                    │
│      - 第一层：需求类型标签 → 候选模板集                       │
│      - 第二层：LLM 语义匹配 → 最佳模板                        │
│                                                              │
│  2b. AI 增强（动态调整）：                                     │
│      - 增：遗漏的步骤（如缺少数据验证）                        │
│      - 删：不需要的步骤（如纯分析不需要部署）                   │
│      - 调：粒度调整（合并/拆分节点）                           │
│      - 角色适配：根据节点调整 Agent 分配                      │
│                                                              │
│  约束：某些节点不可删除（如 review 节点，铁律 IR-1）           │
│                                                              │
│  产出：draft_dag.json（节点 + 边 + Agent 分配）               │
└─────────────────────┬───────────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────────────────────┐
│              Step 3: Plan Checker 验证                        │
│                                                              │
│  独立的 Plan Checker Agent 验证：                             │
│  - 覆盖性：每个需求是否被至少一个节点覆盖                      │
│  - 依赖性：节点依赖是否合理（无环、无遗漏前置）                │
│  - 粒度性：节点是否过大/过小                                   │
│  - 完整性：是否遗漏常见步骤（对比模板库的经验）                │
│  - 角色匹配：Agent 能力是否匹配节点要求                       │
│                                                              │
│  产出：plan_check_result.json + 修改建议                      │
│  如果不通过 → 回到 Step 2 调整（最多 2 轮）                    │
└─────────────────────┬───────────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────────────────────┐
│              Step 4: 最终 DAG 输出                            │
│                                                              │
│  通过验证的 DAG，包含：                                        │
│  - 节点定义（ID, name, agent, input_schema, output_schema）   │
│  - 边定义（source → target, condition）                       │
│  - 需求映射矩阵（requirement_id → node_ids）                  │
│  - 检查点定义（哪些节点需要人工确认）                          │
│                                                              │
│  产出：final_dag.json → 传入 moziplus 引擎执行               │
└─────────────────────────────────────────────────────────────┘
```

### 关键设计决策

| 决策 | 选择 | 理由 |
|------|------|------|
| 拆解由谁做 | 庞统（副军师） | 定位就是"策略研究+任务协调" |
| 模板角色 | 骨架+约束 | 保证基本完整性，AI 负责灵活调整 |
| 验证机制 | 独立 Plan Checker | 不信任 LLM 自律（业界共识） |
| 需求覆盖 | 需求-节点映射矩阵 | 正向+反向双重保证 |
| 粒度控制 | 自适应（复杂度驱动） | 避免"一刀切" |
| 不可删除节点 | review 类节点 | 铁律 IR-1（每任务至少 2 Agent） |

### 模板库设计

不是 5 个固定模板，而是 **模板组件库**：

```json
{
  "template_components": {
    "phases": {
      "requirement_clarification": {
        "mandatory": false,
        "trigger": "需求含糊",
        "nodes": ["requirement_analysis", "requirement_review"]
      },
      "research": {
        "mandatory": false,
        "trigger": "需要调研",
        "nodes": ["literature_search", "analysis", "research_review"]
      },
      "design": {
        "mandatory": false,
        "trigger": "需要设计",
        "nodes": ["architecture_design", "design_review"]
      },
      "implementation": {
        "mandatory": false,
        "trigger": "需要编码",
        "nodes": ["coding", "code_review", "testing"]
      },
      "data": {
        "mandatory": false,
        "trigger": "需要数据",
        "nodes": ["data_acquisition", "data_validation"]
      },
      "deployment": {
        "mandatory": false,
        "trigger": "需要部署",
        "nodes": ["deployment", "deployment_verification"]
      },
      "risk_control": {
        "mandatory": true,  // 如果涉及交易
        "trigger": "涉及实盘/资金",
        "nodes": ["risk_check", "position_check"]
      },
      "final_review": {
        "mandatory": true,  // 铁律
        "trigger": "always",
        "nodes": ["integration_review", "final_summary"]
      }
    }
  }
}
```

庞统的拆解流程变为：
1. 分析需求 → 识别需要哪些 phases
2. 从 phase 组件中选择节点
3. 排列依赖关系 → 构建 DAG
4. Plan Checker 验证

### 与 moziplus v1.0 的对比

| 维度 | v1.0 | v2.6（推荐方案） |
|------|------|-----------------|
| 拆解方式 | 关键词 → 固定模板 | 需求分析 → 模板组件组合 → AI 增强 |
| 模板类型 | 5 个完整 DAG | 组件库（~8 个 phase 组件） |
| 灵活性 | ❌ 固定结构 | ✅ 动态增减节点 |
| 需求覆盖 | ❌ 无检查 | ✅ 需求-节点映射矩阵 |
| 验证 | ❌ 无 | ✅ 独立 Plan Checker |
| 粒度 | ❌ 固定 | ✅ 复杂度自适应 |
| 铁律保证 | ❌ 无 | ✅ 不可删除节点 |

---

# 课题 8：Skill 体系工程落地

## 已有经验（知识库/wiki + OpenClaw 现有 Skill）

### OpenClaw 现有 Skill 体系

**SKILL.md 规范**：
- 每个 Skill 是一个目录，包含 `SKILL.md` 文件
- YAML frontmatter：`name`、`description`
- 正文：指令性内容（工作流、最佳实践、指引）
- 注册：放在 `workspace/skills/` 或 `~/.openclaw/skills/` 下，系统自动发现
- 发现：系统启动时扫描所有 Skill 目录，将 name+description 注入 Agent 上下文
- 加载：Agent 匹配到相关 Skill 后，用 `read` 工具加载全文

**当前 Skill 列表**（42 个，来自 AGENTS.md）：
- 编排类：mozi-task-manager, subagent-delegation, plan-act-verify
- 数据类：data-acquisition, data-verification
- 开发类：coding-implementation, code-review, deployment-infra
- 设计类：design-architecture, requirement-clarification, requirements-analysis
- 分析类：risk-assessment, summary-report, quant-backtest
- Wiki 类：wiki-agent, wiki-capture, wiki-query, wiki-research, wiki-synthesize, wiki-update, wiki-ingest, wiki-export, llm-wiki, data-ingest, ingest-url, cross-linker, graph-colorize, tag-taxonomy, impl-validator, memory-bridge, daily-update
- 通用：skill-creator, summarize, taskflow, taskflow-inbox-triage
- 系统：healthcheck, node-connect, openai-whisper, video-frames, weather, clawhub

### v3.1 Skill 体系设计（已确认）

我们已在 `skill-system-v3.1-design.md` 中确认了四部分架构：

| 部分 | 机制 | Token |
|------|------|-------|
| A. Hook 铁律层 | before_prompt_build Hook | ~500 |
| B. Agent 角色层 | SOUL.md / AGENTS.md | ~2000 |
| C. 通用 Skill 层 | 关键词匹配 + 按需加载 | 列表~1250, 正文按需 |
| D. moziplus 专用层 | 引擎注入 | ~1000 |

### nuwa-skill 的 5 阶段蒸馏经验

nuwa-skill 证明了"蒸馏思维框架"是可行的：
- 5 层提取：表达DNA → 心智模型 → 决策启发式 → 反模式 → 诚实边界
- 6 Agent 并行采集：著作/对话/表达/他者/决策/时间线
- 多重检查点：调研 Review → 提炼确认 → 质量验证 → 双 Agent 精炼

**对 moziplus Skill 体系的启发**：
1. Skill 可以通过"蒸馏"方式创建，不必手写
2. 质量验证需要独立 Agent
3. 多检查点保证质量
4. 诚实边界很重要——Skill 应说明自己做不到什么

---

## 业界优秀实践对比表（课题8）

### 1. Claude Code Skills 体系

**架构：4 层渐进式上下文加载**

| 层 | 内容 | 何时加载 | Token 成本 |
|----|------|---------|-----------|
| L1: Discovery | YAML frontmatter（name + description） | 系统启动 | ~100 token/skill |
| L2: Matching | 检查 description 是否匹配当前任务 | 每轮推理 | 0（已有 L1） |
| L3: Full Load | SKILL.md 正文 | 确认匹配后 | 完整内容 |
| L4: Overflow | 低频 Skill description 被截断 | 超预算时 | 降级为更短描述 |

**关键设计**：
- **skillListingBudgetFraction**：技能列表占上下文的百分比（默认约 2%）
- **Progressive disclosure**：从轻到重，按需加载
- **Workflow vs Reference**：Skill 正文是"做什么"（workflow），不是"为什么"（narrative）
- **allowed_tools / model / disable_model_invocation**：frontmatter 可选字段

**SKILL.md 结构**：
```yaml
---
name: my-skill
description: "简短描述，决定是否被选中"
allowed_tools: [Read, Write, Bash]
---
# 具体指令内容（workflow + best practices）
```

**优点**：
- Token 效率极高（L1 只需 ~100 token）
- 渐进式加载减少无关上下文
- 文件系统即注册中心，简单可靠

**缺点**：
- Skill 之间没有组合机制
- 没有 Skill 版本管理
- 没有 Skill 测试标准

### 2. oh-my-claudecode：三层组合

**架构：Execution + Enhancement + Guarantee**

| 层 | 作用 | 代表 Skill |
|----|------|-----------|
| Execution | 执行具体任务 | ralph, ultrawork, autopilot, team |
| Enhancement | 增强执行质量 | deep-interview, plan, verify, ultraqa |
| Guarantee | 保证交付标准 | omc-doctor, trace, hud, cancel |

**Skill 管理机制**：
- **`/skill list`**：扫描 built-in / user / project 三层
- **`/skill add`**：交互式创建向导
- **`/skill search`**：搜索 Skill
- **Built-in**：不可编辑（只读）
- **User**：`~/.claude/skills/omc-learned/`
- **Project**：`.omc/skills/`

**Skill 等级**：
- Level 1：简单查询/操作
- Level 2：中等复杂度，需要工具调用
- Level 3：复杂，可能 spawn 子任务
- Level 4：全自动（如 autopilot）

**关键设计**：
- **autopilot 5 阶段**：Expansion → Planning → Execution → QA → Validation
- **ralplan 3 阶段**：Planner → Architect → Critic（3 个独立 LLM 验证）
- **deep-interview**：苏格拉底式提问，先澄清再动手
- **ralph**：持久化执行循环（state 文件跨 session）

**优点**：
- 三层分类清晰（做→增强→保证）
- Skill 等级系统控制复杂度
- 跨 session 持久化（state 文件）

**缺点**：
- 三层之间没有明确的接口协议
- 组合依赖 Agent 自行判断
- 没有标准化的测试框架

### 3. nuwa-skill：5 阶段蒸馏 + 检查点

**架构：蒸馏式 Skill 创建**

| 阶段 | 内容 | 产出 |
|------|------|------|
| Phase 0 | 入口分流（直接路径 vs 诊断路径） | Skill 目录 |
| Phase 1 | 6 Agent 并行采集 | 6 份调研文件 |
| Phase 2 | 框架提炼（心智模型+决策启发式+表达DNA） | 提炼结果 |
| Phase 3 | Skill 构建（填充模板） | SKILL.md |
| Phase 4 | 质量验证（已知/边缘/风格 3 项测试） | 验证报告 |
| Phase 5 | 双 Agent 精炼 | 最终 SKILL.md |

**关键创新**：
- **Agentic Protocol**：Skill 不只是"知道什么"，还定义了"怎么做"（遇到事实问题先搜索再回答）
- **诚实边界**：每个 Skill 必须声明自己做不到什么
- **质量自检脚本**：`quality_check.py` 自动检查 6 项通过标准
- **心智模型驱动**：从蒸馏出的心智模型推导回答策略

**优点**：
- Skill 可以通过半自动化流程创建
- 多检查点保证质量
- 诚实边界增加了可信度
- 心智模型驱动是创新点

**缺点**：
- 创建流程复杂（6 phase）
- 主要针对"人物 Skill"，通用化需要改造
- 没有 Skill 之间的组合机制

### 4. MetaGPT Action 基类

**架构：面向对象的 Action 继承**

```python
class Action:
    name: str
    context: Context  # 共享上下文
    
    async def run(self, with_messages: List[Message] = None, **kwargs) -> Message:
        """子类实现具体逻辑"""
        raise NotImplementedError

class Role:
    actions: List[Action]
    _watch: Set[Type[Action]]  # 订阅上游 Action
    
    def set_actions(self, actions: List[Action]):
        self.actions = actions
    
    async def _think(self):
        """决定执行哪个 Action"""
        
    async def _react(self):
        """执行 Action 并发布结果"""
```

**关键设计**：
- **Action 是最小执行单元**：输入 Message → 输出 Message
- **Role 组合 Action**：一个 Role 可以有多个 Action
- **_watch 声明式订阅**：自动触发链
- **Context 共享**：所有 Role/Action 共享同一上下文

**优点**：
- 面向对象，结构清晰
- Action 可复用（不同 Role 可共享同一 Action）
- _watch 机制优雅

**缺点**：
- 需要写 Python 代码，不是纯 Skill 描述
- 绑定 Python 生态
- 对非开发人员门槛高

### 5. GSD 的 Skill Discovery Contract

**架构：文件系统 + 规范化扫描**

```
项目根目录：
  .claude/skills/
  .agents/skills/
  .cursor/skills/
  .github/skills/
  .codex/skills/

全局：
  ~/.claude/skills/
  ~/.codex/skills/
```

**规范化规则**：
- 只扫描包含 `SKILL.md` 的子目录
- 从 YAML frontmatter 读取 name 和 description
- 缺少 name 时用目录名
- 提取 trigger hints（`TRIGGER when: ...` 行）
- `gsd-*` 目录识别为框架 Skill

**Skill Manifest**（清单）：
```json
{
  "skills": [...],
  "roots": ["扫描了哪些根目录"],
  "installation": {"gsd_skills_installed": true, "legacy_claude_commands_installed": false},
  "counts": {"total": 25, "project": 5, "global": 20}
}
```

**优点**：
- 规范化程度高
- 跨运行时兼容（Claude Code / Codex / Gemini CLI）
- 清单系统方便审计

**缺点**：
- 只做发现，不做组合和验证
- 没有版本管理

### 6. CrewAI Tool 装饰器

**架构：装饰器模式 + Tool 注册**

```python
@tool("stock_price")
def get_stock_price(symbol: str) -> str:
    """获取股票价格"""
    return f"Stock price of {symbol} is $100"

agent = Agent(
    role="Analyst",
    tools=[get_stock_price]
)
```

**优点**：
- 装饰器语法简洁
- Tool 自动注册

**缺点**：
- 是 Tool 而非 Skill（能力扩展 vs 行为指导）
- 绑定 Python

### 7. LangChain Runnable 接口

**架构：函数式组合**

```python
chain = prompt | model | parser
result = chain.invoke({"input": "..."})
```

**优点**：组合灵活（pipe 操作符）
**缺点**：是代码级组合，不是 Skill 级

---

## Skill 三层约束工程化方案

### 核心概念：三层约束

基于 v3.1 设计和我们调研的业界实践，Skill 的三层约束定义为：

| 层 | 自由度 | 内容 | 类比 |
|----|--------|------|------|
| **铁律层（Iron Rules）** | 低自由 | 强制执行的硬规则 | 法律 |
| **准则层（Guidelines）** | 中自由 | 推荐的最佳实践 | 行业规范 |
| **技能层（Skills）** | 高自由 | 具体的操作方法 | 工具手册 |

### 工程化方案

#### A. 铁律层工程化

**机制**：OpenClaw Plugin Hook `before_prompt_build`

```typescript
// iron-rules hook
api.on("before_prompt_build", async (event, ctx) => {
  const agentId = resolveAgentId(ctx);
  const rules = loadIronRules(agentId);
  return {
    prependContext: `<iron-rules>\n${rules}\n</iron-rules>`
  };
});
```

**特点**：
- 每轮强制注入，不受 compaction 影响
- 按 Agent 定制（庞统的铁律 ≠ 张飞的铁律）
- 集中管理（一个配置文件，而非分散在各 SOUL.md）

**铁律内容示例**：
```
IR-1: 每个任务至少 2 个 Agent（做 + 挑战）
IR-2: Plan → Act → Verify 三步法
IR-3: 结论必须有证据
IR-4: 改代码先改文档
IR-5: 语义含糊先确认
```

#### B. 准则层工程化

**机制**：SKILL.md（准则型 Skill）

与"技能型 Skill"的区别：
- 准则型 Skill：不定义具体步骤，只定义"应该考虑什么"、"边界在哪里"
- 技能型 Skill：定义具体的操作步骤

**准则型 Skill 示例**：

```yaml
---
name: code-review-guideline
description: "代码审查准则。做审查时参考。"
type: guideline  # 区别于 type: procedure
---
# 代码审查准则

## 必须检查
- [ ] 是否有未处理的异常
- [ ] 是否有硬编码的密钥/密码
- [ ] 是否有死循环风险
- [ ] 是否符合项目命名规范

## 禁止
- 不得批准自己写的代码（IR-1）
- 不得在没有运行测试的情况下批准

## 诚实边界
- 审查者可能遗漏深层逻辑问题
- 性能问题需要实际测试数据
```

**技能型 Skill 示例**：

```yaml
---
name: quant-backtest
description: "量化策略回测执行流程。"
type: procedure
---
# 量化回测流程

## 步骤
1. 从 NAS 获取数据（路径：/Volumes/stock/...）
2. 编写策略代码（模板：...）
3. 提交回测请求（API：http://192.168.2.154:8088）
4. 等待结果 + 验证
5. 生成报告

## 工具
- 数据：赵云 data-acquisition skill
- 验证：关羽 risk-assessment skill
```

#### C. 技能层工程化

**机制**：SKILL.md（过程型 Skill）+ 模板 + 脚本

**Skill 目录结构**：
```
skills/
  quant-backtest/
    SKILL.md           # 主文件
    templates/          # 代码模板
    scripts/            # 辅助脚本
    examples/           # 示例
    tests/              # 测试（可选）
```

**测试方案**：
- **干跑测试**：给 Skill 一个输入，检查输出是否符合 schema
- **场景测试**：3-5 个典型场景，验证 Skill 覆盖度
- **回归测试**：修改 Skill 后，确保已有场景不被破坏

---

## 推荐方案（结合 AI Native 目标，课题8）

### 方案名称：分层渐进式 Skill 体系（Layered Progressive Skill System）

### 架构总览

```
┌─────────────────────────────────────────────────────────────┐
│ Layer 0: 铁律（Iron Rules）                                  │
│   机制: Hook 注入 | 自由度: 无 | 每轮强制                    │
│   内容: IR-1~IR-5                                            │
│   Token: ~500                                                │
├─────────────────────────────────────────────────────────────┤
│ Layer 1: 角色（Agent Identity）                               │
│   机制: SOUL.md + AGENTS.md | 自由度: 无 | 全量加载          │
│   内容: 角色定义 + 行为准则 + Skill 列表                      │
│   Token: ~2000                                               │
├─────────────────────────────────────────────────────────────┤
│ Layer 2: 准则（Guidelines）                                   │
│   机制: SKILL.md (type=guideline) | 自由度: 中 | 按需加载    │
│   内容: 检查清单 + 边界 + 诚实边界                            │
│   Token: 描述~100, 全文~500                                   │
├─────────────────────────────────────────────────────────────┤
│ Layer 3: 技能（Procedures）                                   │
│   机制: SKILL.md (type=procedure) | 自由度: 高 | 按需加载    │
│   内容: 具体步骤 + 模板 + 脚本 + 示例                        │
│   Token: 描述~100, 全文~2000                                  │
├─────────────────────────────────────────────────────────────┤
│ Layer 4: 引擎注入（Engine Context）                           │
│   机制: moziplus engine | 自由度: 无 | 每轮强制              │
│   内容: output-schema + 任务约束 + 检查点参数                │
│   Token: ~1000                                               │
└─────────────────────────────────────────────────────────────┘
```

### Skill 注册、发现、加载

#### 注册

```yaml
# SKILL.md frontmatter
---
name: quant-backtest
description: "量化策略回测执行流程。触发词：回测、backtest、策略测试。"
type: procedure  # procedure | guideline
version: "1.0.0"
agents: [zhangfei-dev, jiangwei-infra]  # 哪些 Agent 可用
triggers: [回测, backtest, 策略测试]
---
```

#### 发现

```typescript
// 启动时扫描
const skillRegistry = {
  scan() {
    // 扫描 workspace/skills/ + ~/.openclaw/skills/
    // 读取 frontmatter
    // 构建索引：name → path, triggers → names, agents → skills
  },
  
  match(context: string, agentId: string): Skill[] {
    // 1. 过滤 agentId 可见的 Skill
    // 2. 语义匹配 description
    // 3. 返回匹配的 Skill 列表（只有 name + description）
  }
}
```

#### 加载

```
Agent 收到任务
  → 系统注入 L0 铁律 + L1 角色 + L4 引擎上下文
  → 系统注入 L2/L3 Skill 列表（只有 name+description）
  → Agent 自主决定需要哪些 Skill
  → Agent 用 read 工具加载具体 Skill 全文
  → Agent 执行
```

### Skill 组合和编排

**核心原则**：Skill 不直接调用 Skill，而是通过"推荐"机制松耦合。

```yaml
---
name: quant-backtest
description: "量化策略回测执行流程"
type: procedure
related_skills:
  - data-acquisition       # 获取数据
  - risk-assessment        # 风控检查
  - plan-act-verify        # 执行模式
---
```

**编排方式**：

| 编排类型 | 示例 | 机制 |
|---------|------|------|
| 顺序编排 | 回测前先获取数据 | moziplus DAG 边定义 |
| 条件编排 | 如果涉及实盘，触发风控检查 | DAG 条件边 |
| 互斥编排 | 新建 vs 更新策略，走不同 Skill | LLM 判断 + Plan Checker |

### Skill 测试和验证

参考 nuwa-skill 的质量验证思路 + GSD 的 agent-contracts：

| 测试类型 | 方法 | 标准 |
|---------|------|------|
| **结构测试** | 检查 SKILL.md 是否包含必要 section | name/description/type 必填 |
| **干跑测试** | 给 Skill 一个输入，检查输出是否合理 | 输出符合 output_schema |
| **场景测试** | 3-5 个典型场景覆盖 | 每个场景有预期输出 |
| **回归测试** | 修改后重跑场景测试 | 已有场景不退化 |
| **诚实边界测试** | 给超出 Skill 能力的问题 | Skill 应主动声明"无法处理" |

### Skill 版本管理和进化

参考 nuwa-skill 的更新机制 + GSD 的 state 管理：

| 维度 | 方案 |
|------|------|
| **版本号** | SKILL.md frontmatter 的 `version` 字段，遵循 semver |
| **变更记录** | Skill 目录下的 `CHANGELOG.md` |
| **兼容性** | `version` 变更时检查依赖 Skill 的 frontmatter |
| **进化机制** | Agent 使用 Skill 后，如果发现问题，可以建议修改（不直接改，走 PR 流程） |
| **蒸馏创建** | 参考 nuwa-skill 的 5 阶段流程，可以半自动化创建新 Skill |

### 与 v3.1 设计的关系

本方案完全兼容 v3.1 的四部分架构，做了以下细化：

| v3.1 部分 | 本方案对应 | 细化内容 |
|-----------|----------|---------|
| A. Hook 铁律层 | Layer 0: 铁律 | 铁律内容具体化（IR-1~IR-5） |
| B. Agent 角色层 | Layer 1: 角色 | 不变 |
| C. 通用 Skill 层 | Layer 2: 准则 + Layer 3: 技能 | 细分为准则型 + 过程型 |
| D. moziplus 专用层 | Layer 4: 引擎注入 | 不变 |

新增：
- Skill 注册/发现/加载的工程化方案
- Skill 测试框架
- Skill 版本管理
- Skill 组合编排机制
- 诚实边界要求

### 实施路线

| Phase | 内容 | 时间 |
|-------|------|------|
| **P0** | 铁律 Hook + Skill type 字段（区分 guideline/procedure） | 2 天 |
| **P1** | 现有 42 个 Skill 打标分类（guideline vs procedure） | 1 天 |
| **P2** | Skill 测试框架（结构测试 + 干跑测试） | 3 天 |
| **P3** | Skill 版本管理 + 变更记录 | 2 天 |
| **P4** | Skill 蒸馏工具（参考 nuwa-skill） | 5 天 |

---

## 总结：两个课题的协同关系

课题 4（智能拆解）和课题 8（Skill 体系）不是孤立的，它们协同工作：

```
用户需求
  │
  ├→ [课题4] 庞统智能拆解
  │   ├ 分析需求（用 plan-act-verify skill）
  │   ├ 选择模板组件（用 mozi-task-manager skill）
  │   ├ AI 增强（用 design-architecture skill）
  │   └ Plan Checker 验证（用 code-review skill 作为 guideline）
  │
  └→ [课题8] Skill 体系支撑
      ├ 铁律层保证基本纪律
      ├ 准则层保证质量标准
      ├ 技能层提供具体操作方法
      └ 引擎层注入任务上下文
```

**核心原则**：
1. **Skill 是"执行准则"不是"执行步骤"** — 给 Agent 方向和边界，不绑死每一步
2. **拆解是"模板 + AI 增强"不是"完全自由"** — 有约束的灵活才是可靠的灵活
3. **验证是"独立 Agent"不是"自我检查"** — 不信任 LLM 自律
4. **渐进式加载** — 不浪费 token，按需提供信息
5. **诚实边界** — 每个 Skill 和拆解结果都声明自己的局限
