返回博客
Claude CodeOpenClawMigrationMCPAutomation

你的 OpenClaw + Claude 方案挂了。这样做可以继续免费用 Opus 和 Sonnet。

从 OpenClaw 迁移到 Claude Code 原生工具的完整指南——一天搞定,用你现有的 Claude 订阅。

2026年4月4日12 分钟阅读

2026 年 4 月 4 日发生了什么

Anthropic 改了计费方式,Claude Pro/Max 订阅额度不再覆盖 OpenClaw 这类第三方工具。如果你用 OpenClaw 跑 Claude,你的定时任务、Telegram 机器人和自动化全停了:

> “第三方应用现在消耗额外用量,不再算在计划额度内。”

现在你有三个选择:

  1. 加钱 — 开通 Anthropic 的按量付费“额外用量”
  2. 换模型 — 让 OpenClaw 用 Kimi、Llama 或其他供应商,不走 Claude
  3. 用原生 — 用 Claude Code(Anthropic 自己的 CLI),订阅额度覆盖

我选了方案 3。当天结束时,所有东西都重建好了——定时任务、Telegram 机器人、浏览器自动化、记忆系统——全跑在 Claude Code 上,用现有订阅,零额外成本。

以下是完整的操作手册。

你在替换什么

功能OpenClawClaude Code 原生
定时任务内置调度器macOS launchd + claude --print CLI
Telegram 机器人内置频道官方 Telegram 插件(--channels
浏览器自动化Playwright MCP一样——Playwright MCP 两边都能用
跨会话记忆工作区文件git 仓库中的文件记忆
心跳检查HEARTBEAT.md定时任务 + --model sonnet(更便宜)
MCP 服务器内置配置~/.claude.json 配置
关键点: Claude Code 用的是同样的 Opus 和 Sonnet 模型,订阅额度覆盖。claude --print 是 Anthropic 的第一方工具——他们不会砍掉。

架构

所有东西都在一个 git 仓库里:

my-business-intelligent/
├── config/env.json           # 机器路径、凭证(gitignored)
├── claude-config/
│   ├── CLAUDE.md             # AI 指令(软链接 → ~/.claude/)
│   └── settings.json         # MCP 服务器、hooks(软链接 → ~/.claude/)
├── memory/                   # 持久化 AI 记忆(软链接 → ~/.claude/)
├── prompts/                  # 定时任务 prompt
├── hooks/                    # 安全 hooks
├── src/
│   ├── server.ts             # MCP 服务器(11 个工具)
│   └── setup.ts              # 一条命令安装一切
└── data/cron-logs/           # 定时任务输出

配置通过软链接到 ~/.claude/,让 Claude Code 从仓库读取。所有东西都版本控制。迁移到新机器:clone 仓库,改一个配置文件,跑 pnpm run setup

第 1 步:读取 OpenClaw 配置(20 分钟)

搭任何东西之前,先读 ~/.openclaw/ 里的所有东西:

cat ~/.openclaw/openclaw.json          # 主配置
cat ~/.openclaw/cron/jobs.json         # 所有定时任务 + prompt
cat ~/.openclaw/workspace/SOUL.md      # AI 人设
cat ~/.openclaw/workspace/TOOLS.md     # 工具笔记
cat ~/.openclaw/workspace/TODO.md      # 待办事项
ls  ~/.openclaw/workspace/memory/      # 记忆文件

记下你的定时任务 prompt、Telegram bot token、用户 ID 和项目路径。

第 2 步:创建仓库(5 分钟)

mkdir ~/my-business-intelligent && cd $_
git init && pnpm init
pnpm add @modelcontextprotocol/sdk zod
pnpm add -D tsx typescript @types/node

创建 config/env.json(gitignored),填入机器相关路径。

第 3 步:创建 CLAUDE.md(10 分钟)

把 OpenClaw 的 SOUL.md + USER.md + AGENTS.md + TOOLS.md 合并到 claude-config/CLAUDE.md。每次会话自动加载。

创建软链接:ln -sf ~/my-business-intelligent/claude-config/CLAUDE.md ~/.claude/CLAUDE.md

第 4 步:迁移定时任务到 launchd(30 分钟)

这是重头戏。对 ~/.openclaw/cron/jobs.json 里的每个任务:

  1. 复制 promptpayload.message 字段是完整 prompt,保存到 prompts/.md
  2. 更新路径 — 把 ~/.openclaw/workspace/ 替换成新仓库路径
  3. 创建 LaunchAgent plist 执行:

claude --print --dangerously-skip-permissions -p "$(cat prompts/<job>.md)"

我用 setup 脚本自动化了这步。脚本生成 plist 并安装到 ~/Library/LaunchAgents/。跑 pnpm run setup 就完事了。

省钱技巧: 轻量任务用 --model sonnet。Sonnet 更快、更便宜,“检查一下是否正常”够用了。Opus 留给代码生成和 SEO 这类重活。

推荐的标准任务

任务频率模型用途
health-check每 1 小时Opus检查定时任务、Chrome、MCP 服务器,自动修复
heartbeat每 30 分钟Sonnet快速 TODO 检查、轮询检查、主动任务
memory-compactor每 6 小时Opus审查和整合记忆文件

第 5 步:配置 Telegram(15 分钟)

Claude Code 官方支持 Telegram,包括群组 @提及检测——替代 OpenClaw 的内置频道。

在 settings.json 中添加:"enabledPlugins": { "telegram@claude-plugins-official": true }

重要: 先停掉 OpenClaw gateway——它会抢你 bot 的消息。

第 6 步:构建 MCP 服务器(30 分钟)

让 Claude Code 有工具管理自己。创建 src/server.ts

  • 记忆工具 — 列出、读取、写入、搜索记忆文件
  • 定时任务工具 — 列出任务、读日志、触发运行
  • 项目工具 — 各仓库 git 状态
  • Telegram — 通过 bot 发消息
  • 配置 — 读取配置值(敏感路径有黑名单)

共 11 个工具。Claude 现在可以自检、给你发警报、管理自己的记忆。

第 7 步:软链接一切(2 分钟)

ln -sf ~/my-business-intelligent/claude-config/CLAUDE.md ~/.claude/CLAUDE.md
ln -sf ~/my-business-intelligent/claude-config/settings.json ~/.claude/settings.json
ln -sf ~/my-business-intelligent/memory ~/.claude/memory/repo

setup 脚本自动完成这步。

第 8 步:安全(10 分钟)

加一个 pre-commit hook 扫描密钥。加 PreToolUse hooks 阻止 git --no-verify 并保护 linter 配置。gitignore 你的 config/env.json.env 文件和生成的 plist。

第 9 步:停止 OpenClaw(1 分钟)

launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/ai.openclaw.gateway.plist

保留 ~/.openclaw/workspace/ 作为只读存档。

第 10 步:验证

launchctl list | grep com.mybiz    # 定时任务都加载了?
claude --version                    # CLI 正常?
curl -s http://127.0.0.1:9222/json/version  # Chrome CDP 活着?

给你的 bot 发一条 Telegram 测试消息。触发一次 health-check。检查新会话是否加载了记忆。

额外收获:其实更好了

迁移完成后我发现,新方案比 OpenClaw 有实实在在的优势:

可移植性。 一个 git 仓库。Clone 到新机器,改一个 JSON 文件,跑 setup。OpenClaw 的迁移意味着重新安装框架、跑 onboard、重新配置浏览器 profile、重新绑定 Telegram。

版本控制。 每次配置变更都是 git commit。OpenClaw 的配置散落在 JSON 文件、SQLite 数据库和二进制文件里——没有历史,没有 review。

成本控制。 轻量定时任务用 Sonnet,重活用 Opus。OpenClaw 的 gateway 光活着就烧 token——心跳轮询、上下文维护、会话状态。

没有单点故障。 每个定时任务是独立的 launchd 调用。一个挂了,其他继续跑。OpenClaw 的 gateway 是一个进程——它崩了,全完了。

你拥有它。 没有框架更新破坏你的配置。没有中间人被供应商切断。没有社区市场的恶意 skill。每一行代码都是你的。

常见坑

  1. MCP 服务器放 ~/.claude.json,不是 settings.json
  2. 用绝对路径 写 MCP 服务器脚本 — cwd 不可靠
  3. pnpm 严格提升 会破坏 node --import tsx/esm — 用 npx tsx
  4. --print 模式不能写 ~/.claude/memory/ — 记忆放仓库里
  5. OpenClaw gateway 会抢 Telegram bot — 先停掉
  6. Hook 类型必须是 "command" 不是 "intercept"
  7. Shell alias 需要完整二进制路径
  8. MCP 环境变量在启动时设置 — 配置里加 env 字段
  9. enabledPlugins 必须包含 "telegram@claude-plugins-official": true

开源迁移 Skill

我把整个过程做成了一个可复用的 skill prompt(300 行,11 个阶段)。给任何装了 OpenClaw 的机器上的 Claude Code agent 用,它会按同样的流程走:

github.com/HongmingWang-Rabbit/skill-migrate-openclaw-to-cc