Files
AlexZ ebaddb6226 Release v2.0.5: Context optimization with fork support and parallel meta-cognition
v2.0.5 - Experimental Features:
- Add meta-cognition-parallel skill for three-layer parallel analysis
- Add layer1/layer2/layer3-analyzer agents
- Update context-optimization.md with comprehensive guide

v2.0.4 - context: fork Support (Issue #4, thanks @pinghe):
- Add context: fork to rust-skill-creator, core-dynamic-skills,
  core-fix-skill-docs, rust-daily
- Add Acknowledgments section to READMEs

v2.0.3 - Bug Fixes:
- Fix .mcp.json missing mcpServers wrapper (PR #3)
- Add NPX installation method to READMEs (PR #1)
- Add note recommending plugin installation for full functionality

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 01:39:18 +08:00

7.8 KiB
Raw Permalink Blame History

Context Optimization Guide

Rust Skills 上下文优化策略与效果

概述

Rust Skills 采用三种方法优化上下文消耗,综合可节省约 68% 的 token 使用量。

优化方法 类型 适用场景 节省比例
Skill 内容拆分 静态 大型参考 skill 50-60%
context: fork 动态 任务执行型 skill 75-85%
三层并行 Fork 动态 多 skill 协作分析 65-75%

方法一Skill 内容拆分(静态优化)

原理

将大型 Skill 的非核心内容拆分到子文件,主 SKILL.md 只保留核心路由逻辑,其他内容按需加载。

实施案例rust-router

指标 优化前 优化后 节省
文件大小 18.7 KB 8.1 KB 56%
约 Token ~4,700 ~2,000 ~2,700 tokens

文件结构

skills/rust-router/
├── SKILL.md (8.1KB - 核心路由,始终加载)
├── patterns/
│   └── negotiation.md (协商协议,按需加载)
├── examples/
│   └── workflow.md (工作流示例,按需加载)
└── integrations/
    └── os-checker.md (集成说明,按需加载)

移出内容详情

内容 移动到 大小
Negotiation Protocol patterns/negotiation.md 4.5 KB
Workflow Example examples/workflow.md 2.3 KB
OS-Checker Integration integrations/os-checker.md 1.3 KB
Skill File Paths 删除(冗余) 1.5 KB

关键点:自动触发不受影响

Claude Code 的自动触发机制仅依赖 frontmatter 中的 description 字段:

---
name: rust-router
description: "CRITICAL: Use for ALL Rust questions...
Triggers on: Rust, cargo, rustc, E0382, E0597..."
---

SKILL.md body 内容是触发之后的指导逻辑,移出到子文件不影响触发。

适用场景

  • 包含大量参考内容的 Skill
  • 有多种使用场景的 Skill
  • 包含详细示例/模板的 Skill

方法二context: fork 隔离执行(动态优化)

原理

使用 context: fork 让 Skill 在隔离的 subagent 上下文中执行,中间过程不污染主上下文,只返回摘要结果。

配置方式

---
name: my-task-skill
description: "Task description"
context: fork
agent: general-purpose  # 或 Explore
---

实施案例

Skill 典型执行 Token Fork 后主上下文 节省
rust-skill-creator ~3,000 ~500 (摘要) ~83%
core-dynamic-skills ~2,000 ~400 ~80%
core-fix-skill-docs ~1,500 ~300 ~80%
rust-daily ~2,500 ~500 ~80%

Fork 特性

特性 说明
隔离执行 Skill 在新的独立上下文中运行
无对话历史 Subagent 不能访问主对话历史
结果摘要 输出被摘要后返回主对话
环境继承 工作目录、CLAUDE.md、环境变量继承

继承关系

主上下文 (Main Context)
├── 对话历史 ──────────────► ❌ 不继承
├── 当前工作目录 ──────────► ✅ 继承
├── CLAUDE.md ─────────────► ✅ 继承 (作为参考)
├── 预加载的 skills ────────► ✅ 可访问
└── 环境变量 ──────────────► ✅ 继承

适用场景

  • 独立执行的任务(创建文件、同步数据等)
  • 不需要对话历史的操作
  • 探索/研究类任务

不适用场景

  • 需要交互式追问用户
  • 需要完整推理过程可见
  • 结果细节很重要,不能被摘要

方法三:三层并行 Fork实验性

原理

基于元认知框架的三层模型,将分析任务并行分发到三个隔离的 layer analyzer各自独立分析后返回摘要在主上下文进行跨层综合。

架构

User Question
     │
     ▼
meta-cognition-parallel (协调者)
     │
     ├─── Fork → layer1-analyzer ──► L1 摘要
     │           (语言机制分析)
     │
     ├─── Fork → layer2-analyzer ──► L2 摘要    [并行]
     │           (设计选择分析)
     │
     └─── Fork → layer3-analyzer ──► L3 摘要
                 (领域约束分析)
     │
     ▼
Cross-Layer Synthesis (主上下文)
     │
     └─► 领域正确的架构方案

上下文消耗对比

传统方式(主上下文):

├── 读取 m01-ownership    +1,200 tokens
├── 读取 m02-resource     +1,000 tokens
├── 读取 domain-fintech   +1,500 tokens
├── 中间推理              +2,500 tokens
└── 最终回答              +1,800 tokens
                          ────────────
                          ~8,000 tokens

三层并行 Fork:

├── L1 摘要返回           +600 tokens
├── L2 摘要返回           +600 tokens
├── L3 摘要返回           +600 tokens
└── 跨层综合+回答         +700 tokens
                          ────────────
                          ~2,500 tokens

节省:~69%

相关文件

  • skills/meta-cognition-parallel/SKILL.md - 协调 Skill
  • agents/layer1-analyzer.md - 语言机制分析 (m01-m07)
  • agents/layer2-analyzer.md - 设计选择分析 (m09-m15)
  • agents/layer3-analyzer.md - 领域约束分析 (domain-*)

使用命令

/meta-parallel <your Rust question>

测试场景

# 测试 1: 交易系统
/meta-parallel 交易系统报 E0382trade record 被 move 了

# 测试 2: Web API
/meta-parallel Web API 中多个 handler 需要共享数据库连接池

# 测试 3: CLI 工具
/meta-parallel CLI 工具如何处理配置文件和命令行参数的优先级

综合效果估算

假设一次典型的 Rust 问答会话:

阶段 优化前 优化后
rust-router 加载 4,700 2,000
多 skill 分析 8,000 2,500
任务执行 3,000 500
总计 15,700 5,000
节省 - ~68%

选择决策树

问题类型
    │
    ├── 大型参考 Skill?
    │   └── YES → 方法一: 内容拆分
    │             将非核心内容移至子文件
    │
    ├── 独立执行任务?
    │   └── YES → 方法二: context: fork
    │             添加 context: fork 到 frontmatter
    │
    └── 多层协作分析?
        └── YES → 方法三: 三层并行 Fork
                  使用 meta-cognition-parallel

最佳实践

1. 内容拆分原则

  • 核心路由逻辑保留在 SKILL.md
  • 示例、模板移至 examples/
  • 集成说明移至 integrations/
  • 详细参考移至 references/

2. Fork 使用原则

  • 只对任务型 Skill 使用 fork
  • 参考/指导型 Skill 不用 fork
  • 需要用户交互的不用 fork

3. 并行分析原则

  • 各分析任务应独立,无依赖
  • 综合推理在主上下文完成
  • 显式传递所有必要信息给 fork

验证清单

方法一验证

  • rust-router 自动触发测试
    claude -p "E0382 错误怎么解决"
    claude -p "比较 tokio 和 async-std"
    

方法二验证

  • Fork skill 执行测试
    /sync-crate-skills
    /rust-daily
    

方法三验证

  • 三层并行分析测试
    /meta-parallel 交易系统报 E0382
    

版本历史

版本 日期 优化内容
2.0.0 2025-01-22 rust-router 内容拆分 (56% 节省)
2.0.4 2025-01-22 4 个 skills 添加 context: fork (thanks @pinghe)
2.0.5 2025-01-22 三层并行 Fork 实验性支持

Created: 2025-01-21 Updated: 2025-01-22 Status: Implemented (Methods 1-3)