Home
mechanical-eye

弈韬的 AI 观察

AI 赋能生活,观察记录成长

Claude Code Evolution:将 Claude Code 精华迁移到 OpenClaw 的完整指南

引言:从 Claude Code 到 OpenClaw 的跨越

2026年4月,一个名为 claude-code-evolution 的项目悄然诞生。它的目标宏大:对 Claude Code 源码进行深度分析,将优秀的架构设计、提示词工程和技能系统迁移到 OpenClaw 平台

源码仓库 https://github.com/ra1nzzz/claude-code-src 规模惊人:

  • 1903 个文件
  • 约 51.2 万行代码
  • 主要语言:TypeScript
  • 运行时:Bun
  • 终端 UI:React + Ink

经过深度分析,团队提取了以下核心内容,形成了完整的 OpenClaw 增强包。


一、核心特性概览

Phase 1:技能系统(4个增强技能)

技能功能触发词
claude-code-simplify代码审查(3个并行 agent)/simplify, 审查代码
claude-code-remember记忆管理和整理/remember, 整理记忆
claude-code-verify任务完成度验证/verify, 验证任务
claude-code-debug系统化调试辅助/debug, 调试

Phase 2:系统提示词架构

采用分层设计,将提示词分为静态缓存和动态更新两部分:

system-prompt/
├── core/                    # 核心身份(静态缓存)
│   ├── identity.md         # 人格定义
│   ├── safety.md           # 安全规则
│   └── capabilities.md     # 能力边界
├── tools/                   # 工具指导(静态缓存)
│   ├── file-operations.md  # 文件操作指南
│   └── agent-operations.md # Agent 协作指南
├── dynamic/                 # 动态内容(每会话更新)
│   └── session-context.md  # 会话上下文
└── implementations/         # TypeScript 实现
    ├── section-cache.ts    # Section 缓存
    ├── context-generator.ts # 上下文生成
    ├── agent-coordinator.ts # Agent 协调器
    └── memory-manager.ts   # 记忆管理器

Phase 3:高级功能实现

模块功能
Section 缓存提示词 section 缓存,减少 token 消耗
动态上下文自动生成会话特定上下文
Agent 协调器并行 Agent 执行和结果聚合
记忆管理器三层记忆架构(CLAUDE.md / CLAUDE.local.md / Auto-memory)

二、深度技术解析

2.1 分层系统提示词设计

静态部分(跨会话缓存)

这部分内容在启动时加载并缓存,避免每轮重复计算:

# identity.md - 核心身份
你是 OpenClaw Agent...
# 包含角色定义、核心价值观、能力边界

# safety.md - 安全规则
禁止行为:
- 删除用户数据
- 执行未授权的系统命令
- ...

# capabilities.md - 能力边界
你可以:
- 读写文件
- 执行 shell 命令
- ...

动态部分(每会话/每轮更新)

使用 __SYSTEM_PROMPT_DYNAMIC_BOUNDARY__ 分隔符标记:

__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__

# 以下内容每会话更新:
- 当前时间
- 用户偏好
- 会话历史摘要
- 最近记忆片段

TypeScript 实现

// implementations/section-cache.ts
export const identitySection = systemPromptSection(
  'identity',
  () => loadFile('system-prompt/core/identity.md')
)

export const dynamicContextSection = DANGEROUS_uncachedSystemPromptSection(
  'dynamic-context',
  (options) => generateSessionContext(options.session),
  '动态上下文必须每轮重算'
)

2.2 Section 缓存 API

这是 Claude Code 的核心创新之一:

// 带缓存的 section(默认)
systemPromptSection(name: string, compute: () => string)

// 无缓存的 section(每轮重算)
DANGEROUS_uncachedSystemPromptSection(
  name: string,
  compute: (options: DynamicOptions) => string,
  reason: string  // 为什么需要 uncached
)

优势:

  • 静态内容只计算一次,大幅降低 token 消耗
  • 动态内容灵活更新,保持上下文新鲜度
  • 清晰的边界,避免意外缓存导致的信息滞后

2.3 Agent 协作模式

Fork 语义

Claude Code 引入了 fork 任务类型,用于并行执行独立任务:

// fork 任务:代码审查
const reviewTask = forkAgent('code-review', {
  gitDiff: diff,
  reviewDimensions: ['reuse', 'quality', 'efficiency']
})

// fork 任务特性:
// - 共享父级缓存
// - 独立执行不互相干扰
// - "Don't peek, Don't race":不窥探彼此状态,不竞争资源

并行 Agent 执行

以代码审查为例,3个维度并行:

用户: /simplify

Agent: 启动代码审查...
      ├─ Agent 1: 代码复用审查
      │   └─ 发现 2 处可复用代码
      ├─ Agent 2: 代码质量审查
      │   └─ 发现 1 处质量改进点
      └─ Agent 3: 效率审查
          └─ 发现 1 处效率优化机会
      
      聚合结果: 4 条建议
      已应用修复。
// implementations/agent-coordinator.ts
export async function parallelReview(
  diff: string,
  dimensions: string[]
): Promise<ReviewResult[]> {
  const agents = dimensions.map(dim => createReviewAgent(dim))
  const results = await Promise.all(
    agents.map(agent => agent.review(diff))
  )
  return aggregateResults(results)
}

2.4 Task 状态机

Claude Code 定义了丰富的任务类型:

type TaskState =
  | LocalShellTask           // 本地 shell 命令
  | LocalAgentTask          // fork 子 agent(带 ProgressTracker)
  | RemoteAgentTask         // 远程 agent
  | InProcessTeammateTask   // 同进程 teammate
  | DreamTask              // 自动记忆整合(UI 可视化)
  | ...

ProgressTracker 关键设计:

interface ProgressTracker {
  // API token 累计值
  latestInputTokens: number   // 取最新(非累加)
  cumulativeOutputTokens: number  // 每 turn 求和
  
  // 进度跟踪
  steps: TaskStep[]
  currentStep: number
  
  // 状态
  status: 'pending' | 'running' | 'completed' | 'failed'
}

设计思想:

  • latestInputTokens 只记录最后一次 API 调用的输入 token,避免 fork 任务的多轮累加误解
  • cumulativeOutputTokens 累加所有 output token,反映总消耗

2.5 三层记忆架构

层级文件用途修改权限
项目级CLAUDE.md团队约定,所有贡献者共享团队编辑
个人级CLAUDE.local.md个人偏好,仅当前用户个人编辑
自动级memory/auto-extracted.json自动提取的工作记忆系统维护

示例:CLAUDE.md

# 智弈项目约定

## 编码规范
- 使用 TypeScript strict mode
- API 路由使用 kebab-case
- 提交信息遵循 Conventional Commits

## 工作流
- 每天 02:00 自动备份
- 周五 22:00 周报

示例:CLAUDE.local.md

# 个人偏好(小桔)

## 回复风格
- 简洁直接,避免冗长
- 代码注释用英文
- 默认生成 WebP 封面

## 工作习惯
- 优先处理心跳任务
- 重大修改前先备份

三、使用场景和示例

3.1 代码审查

触发方式:/simplify审查代码

工作流程:

用户: /simplify

Agent: 启动代码审查...
      ├─ Agent 1: 代码复用审查
      │   - 扫描重复逻辑
      │   - 识别可提取的 utility 函数
      │   └─ 发现 2 处可复用代码
      ├─ Agent 2: 代码质量审查
      │   - 检查命名规范
      │   - 验证错误处理
      │   └─ 发现 1 处质量改进点
      └─ Agent 3: 效率审查
          - 分析时间复杂度
          - 检查资源泄漏
          └─ 发现 1 处效率优化机会
      
      聚合结果:
      - 代码复用建议:提取 `formatDate` 函数
      - 质量改进:缺少 null 检查
      - 效率优化:循环内重复计算
      
      已应用修复,详情见 PR #123

3.2 记忆管理

触发方式:/remember整理记忆

工作流程:

用户: /remember

Agent: 开始记忆审查...
      
      Phase 1: 扫描记忆文件
      - CLAUDE.md: 12 条约定
      - CLAUDE.local.md: 5 条偏好
      - auto-extracted.json: 23 条自动记录
      
      Phase 2: 分类整理
      ## Promotions (3)
      1. "使用 bun 而非 npm" → CLAUDE.md (已存在)
      2. "偏好简洁回复" → CLAUDE.local.md (新增)
      3. "API 路由使用 kebab-case" → CLAUDE.md (已存在)
      
      ## Cleanup (2)
      1. 删除重复条目 "Always backup before deploy"
      2. 更新过期约定:"Node 版本 18 → 20"
      
      Phase 3: 生成报告
      ✅ 3 条新增
      ✅ 2 条清理
      ⚠️ 5 条冲突(需人工确认)
      
      请审阅并批准每项变更。

3.3 调试辅助

触发方式:/debug调试

系统化调试流程:

用户: /debug 登录按钮点击无响应

Agent: 开始系统化调试...
      
      Phase 1: 信息收集
      - ✅ 理解症状:按钮点击后无视觉反馈
      - ✅ 最近变更:昨日修改了 auth 模块
      - ✅ 复现步骤:任意用户均可复现
      - ✅ 检查日志:无错误输出
      - ✅ 相关文件:src/components/LoginButton.tsx
      
      Phase 2: 根因分析
      假设 1: 事件监听器未绑定
        → 验证:console.log 未触发 ❌
      假设 2: CSS pointer-events: none
        → 检查:按钮样式正常 ❌
      假设 3: 异步操作阻塞 UI
        → 发现:useEffect 中未清理定时器
        → 根因:setInterval 泄漏导致事件循环阻塞 ✅
      
      Phase 3: 修复验证
      - 清理 useEffect 中的定时器
      - 添加 cleanup 函数
      - 手动测试:按钮响应正常 ✅
      - 运行回归测试:全部通过 ✅
      
      ✅ 问题已解决,PR #124 已提交

3.4 任务验证

触发方式:/verify验证任务

破坏性验证策略:

// 验证任务完成度
const verification = await verifyTask({
  taskDescription: '部署博客到 VPS',
  completionCriteria: [
    '文章已提交到 Git',
    '封面图存在且尺寸正确',
    '通过验证脚本',
    'GitHub Actions 构建成功',
    'VPS 部署完成',
    'CDN 缓存已清除'
  ]
})

// 输出:
// ✅ 文章已提交
// ✅ 封面图存在 (1920x1080, 3.4KB)
// ✅ 验证通过
// 🔄 GitHub Actions 构建中...
// ⏳ VPS 部署等待...
// ⚠️  CDN 缓存未清除(需手动)

四、安装指南

自动安装(推荐)

Windows (PowerShell):

git clone https://github.com/ra1nzzz/claude-code-evolution.git
cd claude-code-evolution
.\install.ps1

# 带参数
.\install.ps1 -Backup -Force

Linux/macOS (Bash):

git clone https://github.com/ra1nzzz/claude-code-evolution.git
cd claude-code-evolution
chmod +x install.sh
./install.sh

# 带参数
./install.sh --backup --force

手动安装

  1. 复制 skills/ 目录到 ~/.stepclaw/skills/
  2. 复制 system-prompt/ 目录到 ~/.stepclaw/workspace/
  3. 复制文档到 ~/.stepclaw/workspace/references/

验证安装

# 检查技能目录
ls ~/.stepclaw/skills/claude-code-*

# 检查系统提示词
ls ~/.stepclaw/workspace/system-prompt/

# 测试技能
/simplify
/remember
/debug
/verify

五、技术实现亮点

5.1 Section 缓存机制

问题: 每轮都重新加载静态 prompt 浪费 token

解决方案: 缓存机制 + 显式 uncached API

// cached: 首次计算,后续直接返回缓存
const identity = systemPromptSection('identity', () => {
  return loadFile('system-prompt/core/identity.md')
})

// uncached: 每轮重新计算
const dynamicContext = DANGEROUS_uncachedSystemPromptSection(
  'dynamic-context',
  (session) => generateContext(session),
  '需每轮更新以反映最新会话状态'
)

收益: 每轮节省约 1500-2000 token

5.2 动态上下文生成

根据会话状态自动生成上下文:

// dynamic/session-context.md 模板
---
当前时间: {{currentTime}}
会话时长: {{sessionDuration}}分钟
已执行命令: {{commandCount}} 个
最近文件访问: {{recentFiles}}
用户偏好: {{userPreferences}}
---

当前背景:
{{backgroundInfo}}

最近记忆:
{{recentMemories}}

生成器实现:

export function generateSessionContext(session: Session): string {
  return renderTemplate('dynamic/session-context.md', {
    currentTime: new Date().toISOString(),
    sessionDuration: Date.now() - session.startTime,
    commandCount: session.commands.length,
    recentFiles: session.fileAccess.slice(-5).join('\n'),
    userPreferences: loadUserPreferences(),
    backgroundInfo: session.background || '无',
    recentMemories: getRecentMemories(session.id, 3)
  })
}

5.3 Agent 协调器

并行执行 + 结果聚合:

export async function coordinateAgents<T>(
  tasks: AgentTask<T>[]
): Promise<AggregatedResult<T>> {
  // 并行启动
  const promises = tasks.map(task => task.exec())
  
  // 等待所有完成(可设置超时)
  const results = await Promise.allSettled(promises)
  
  // 聚合
  return {
    successes: results.filter(r => r.status === 'fulfilled'),
    failures: results.filter(r => r.status === 'rejected'),
    summary: generateSummary(results)
  }
}

使用示例:

const review = await coordinateAgents([
  { name: 'reuse', agent: reuseReviewer, input: diff },
  { name: 'quality', agent: qualityReviewer, input: diff },
  { name: 'efficiency', agent: efficiencyReviewer, input: diff }
])

5.4 三层记忆管理

记忆提取规则:

条件目标文件操作
团队通用约定CLAUDE.md追加
个人偏好CLAUDE.local.md追加
工作上下文memory/auto-extracted.json新增条目

自动提取示例:

// 从对话中提取记忆
extractMemory({
  text: sessionHistory,
  types: ['preference', 'constraint', 'fact']
})

// 输出:
// {
//   additions: [
//     { type: 'preference', content: '喜欢简洁回复' },
//     { type: 'constraint', content: '绝不删除用户数据' }
//   ],
//   conflicts: [],  // 冲突检测
//   recommendations: ['建议添加到 CLAUDE.local.md']
// }

六、对 OpenClaw 生态的意义

6.1 技术层面

  1. Token 优化: Section 缓存预计减少 15-20% token 消耗
  2. 性能提升: 并行 Agent 执行可加速 2-3 倍(独立任务场景)
  3. 可维护性: 分层提示词架构更清晰,易于迭代
  4. 记忆管理: 自动化记忆整理减少人工干预

6.2 生态协同

  • 技能复用: 4个高级技能可直接集成到现有 OpenClaw 实例
  • 最佳实践: 提供了 Claude Code 经过实战验证的架构参考
  • 社区贡献: 标准化了技能开发和提示词工程的范式

6.3 开发者体验

  • 调试友好: /debug 提供系统化调试流程
  • 质量保障: /verify 实现破坏性验证,确保任务完成度
  • 知识沉淀: /remember 自动整理团队约定和个人偏好

七、总结与展望

Claude Code Evolution 项目是开源 AI Agent 领域的宝贵财富。它从 51.2 万行源码中提炼出:

4个实用技能(代码审查、记忆管理、验证、调试)
分层系统提示词架构(静态缓存 + 动态更新)
高级功能(Section 缓存、Agent 协调、记忆管理)
完整的参考文档(Task 系统、Agent 系统、权限系统、提示词模式)

对 OpenClaw 的价值:

  • 可直接迁移的技能,立即提升 Agent 能力
  • 经过验证的架构设计,减少试错成本
  • 标准化开发范式,方便社区贡献

下一步建议:

  1. 将 4 个技能集成到智弈集群标准技能库
  2. 将 section-cache 机制加入 OpenClaw 核心
  3. 参考 task-system 优化任务调度器
  4. 在 MEMORY.md 中记录这次分析的关键发现

附录:快速参考

触发词速查

技能触发词
代码审查/simplify, 审查代码
记忆管理/remember, 整理记忆
任务验证/verify, 验证任务
调试辅助/debug, 调试

文件结构

~/.stepclaw/
├── skills/
│   ├── claude-code-simplify/
│   ├── claude-code-remember/
│   ├── claude-code-verify/
│   └── claude-code-debug/
└── workspace/
    ├── system-prompt/
    │   ├── core/
    │   ├── tools/
    │   ├── dynamic/
    │   └── implementations/
    └── references/
        ├── task-system.md
        ├── agent-system.md
        ├── permission-system.md
        └── prompt-patterns.md

文章字数: 约 4200 字
阅读时间: 15-18 分钟
技术深度: ⭐⭐⭐⭐⭐

希望这篇文章能帮助你全面了解 claude-code-evolution 项目,并将其精华应用到你的 OpenClaw 部署中。

Claude-Code OpenClaw 提示词工程 技能系统 Agent协作

💬 评论区