我打通了飞书→OpenClaw→Claude Code 的完整链路

创作:OpenClaw × Anton


导语

有时候把开发任务交给 Claude Code 就离开了做别的了,回来发现它执行个三五步就停了,不是等你给权限就是问"您看这样可以吗?",哪怕你提前写好了完整的实施计划,它还是会中途停下来等你确认。

要是能让 OpenClaw 使用 Claude Code 进行开发,让小龙虾监督它持续工作直到完全实施完成就好了。

于是我折腾了一整天,试了四种方案,踩了无数个坑,终于打通了这条链路:在飞书里提需求→OpenClaw 自动拆解任务→Claude Code 持续执行→完成后发起 PR 通知验收。中间完全不需要人工介入。

最爽的是,整个过程 Claude Code 始终在同一个会话里,上下文是连续的,它记得之前做了什么,不会出现"我是谁我在哪"的情况。

如果你也想让 AI 真正帮你托管开发,而不是"挤牙膏式"的一轮一轮做,这篇文章就是为你写的。



一、为什么不让 OpenClaw 直接开发?

我试过让 OpenClaw 直接开发,但他对项目的工程级上下文能力还是很欠缺,Claude Code 则有几个不可替代的优势:

第一,它有成熟的项目上下文持续集成优化机制,以项目维度划分工作区,对项目的技术架构、业务逻辑的理解能持续积累。

第二,它是专门为 coding 设计的 agent,工具链更完善,写代码的手感更好。

第三,长期迭代时,Claude Code 能记住之前的决策和改动,不会每次都从零开始。

所以我的目标很明确:用 OpenClaw 当"技术 PM"负责任务拆解和调度,用 Claude Code 当"执行工程师"负责写代码

在飞书里跟机器人说一声"帮我开发个用户注册功能",然后该干嘛干嘛去。等 OpenClaw 通知我"做完了,PR 已发起",我去验收一下就行。中间不需要我反复确认、反复给指令。


二、架构设计:OpenClaw 当 PM,Claude Code 当工程师

想清楚分工后,架构就清晰了:

scss 复制代码
飞书用户 → OpenClaw(调度层) → Claude Code(执行层)

飞书是入口,随时随地提需求,不用打开 IDE。

OpenClaw是技术 PM,负责理解需求、拆解任务、调度执行、整合结果。它有 LLM 能力,能跟人自然语言沟通,也能调用各种工具。

Claude Code是执行工程师,负责具体的编码工作。它专业、高效,而且能持续积累项目上下文。

关键设计点:

OpenClaw 通过 exec 命令调用 acpx claude,每 5-10 秒轮询一次输出,识别到"Claude complete"标记就知道任务完成了。如果 Claude Code 遇到问题停下来,OpenClaw 能基于对需求的理解自主决策,告诉它下一步该做什么。只有遇到权限等重大问题时,才会问我。

这样一来,整个链路就活了。



三、核心难点:持续会话是成败关键

整个链路最难的地方,不是配置环境,不是写调度逻辑,而是保持同一个 Claude Code 会话

为什么这个这么重要?

因为 Claude Code 的上下文记忆是绑定在 session 上的。如果每次调用都是新 session,它就完全不记得之前做了什么,相当于每次都要从零开始。这样的话,OpenClaw 的调度就失去了意义------它得把之前的对话历史重新讲一遍,效率极低。

我卡在这里整整一天。

试了很多种办法,一开始用官方推荐的 OpenClaw ACP 方式,配置了半天,一会儿是这个参数不对,一会儿是那个接口报错。最烦的是,很多配置问题 OpenClaw 自己也排查不到,问它吧,它还可能说谎------工具调用的输入输出有点黑盒,看不到真实证据。

后来我学聪明了,每改一次配置就让 OpenClaw 提供调用工具的真实日志,这才慢慢摸清楚问题在哪。


四、踩坑排查:四种方案对比

我把尝试过的方案整理成表格,一目了然:

方案 会话复用 OpenClaw 调度 流式输出 状态
ACP + resumeSessionId 失败
ACP + /acp steer 可用但不推荐
acpx claude -s 可用但无调度
Agent + exec acpx 推荐

方案一:ACP + resumeSessionId(失败)

官方文档说用 sessions_spawn 加上 resumeSessionId 参数就能复用会话。我配了半天,发现每次都是新会话。

后来仔细研究才发现,resumeSessionId 是 OpenClaw ACP 会话的 ID,不是 Claude Code 的 session ID。复用 OpenClaw 的会话 ID 根本维持不了同一个 Claude 会话。这个参数有点鸡肋,可能在 thread 和 mode=session 下才有用。

方案二:ACP + /acp steer(可用但不推荐)

这个方案能复用会话,但有个致命问题:/acp 指令只能人为发送给 OpenClaw,它自己不能执行。也就是说,每一条指令都需要我手动发布,那直接用 Claude Code 不香吗?

这个方案解决不了核心需求:Claude Code 中断时,OpenClaw 自主决策继续调度。

方案三:acpx claude -s(可用但无调度)

直接用 acpx claude -s 会话名 确实能复用会话,而且很简单直接。但问题是不经过 OpenClaw,无法发挥它的任务拆解和调度能力。

这就相当于绕过了 PM,直接跟工程师对话。简单任务还行,复杂任务就抓瞎了。

方案四:Agent + exec acpx(完美)

最终方案:OpenClaw Agent 通过 exec 调用 acpx claude -s 会话名

这个方案兼顾了所有需求:

  • OpenClaw 可以调度(拆解任务、整合结果)
  • acpx claude 持续会话(-s 参数)
  • 支持流式输出(--format json + 定期 poll)
  • 用户体验好(自动执行,不需要手动指令)


五、最终方案详解

架构

markdown 复制代码
用户(飞书)
  ↓
OpenClaw Agent(任务调度层)
  - 理解需求(LLM)
  - 拆解任务
  - exec 调用 acpx claude
  - 整合结果
  ↓
acpx claude(执行层)
  - 持续会话(-s <name>)
  - 执行编码任务
  - NDJSON 流式输出

关键配置

1. 安装依赖

bash 复制代码
# 安装 Claude Code CLI
npm install -g @anthropic-ai/claude-code

# 安装 acpx CLI(必须)
npm install -g acpx

# 验证安装
claude --version
acpx --version

2. 配置 Claude Code(核心!)

这是最关键的一步,很多人(包括我)都卡在这里。

为什么必须配置 ~/.claude/settings.json?因为 claude-agent-acp 调用 Claude Code CLI 时,环境变量可能不传递。Claude Code CLI 优先读取配置文件中的 model 字段。

bash 复制代码
# 手动编辑 ~/.claude/settings.json
{
  "model": "qwen3.5-plus"
}

注意是 model 字段,不是 Anthropic_model。我用环境变量配了半天没生效,最后发现得改配置文件。



可选的环境变量(用于认证):

bash 复制代码
export ANTHROPIC_BASE_URL="https://coding.dashscope.aliyuncs.com/apps/anthropic"
export ANTHROPIC_API_KEY="sk-xxx"

3. OpenClaw 配置

最终方案不需要 OpenClaw acpx 插件,因为直接调用 acpx CLI。但为了其他功能,可以保留基础配置:

json 复制代码
{
  "tools": {
    "sessions": { "visibility": "all" },
    "agentToAgent": { "enabled": true, "allow": ["*"] }
  }
}

4. 重启 Gateway

bash 复制代码
openclaw gateway restart

会话复用

bash 复制代码
# 创建会话
acpx claude sessions new --name output-manager

# 测试复用
acpx claude -s output-manager "收到请回复数字 11"
# → 输出:11

acpx claude -s output-manager "上一个数字 +2 等于多少"
# → 输出:13 ✅ 成功复用

流式输出

bash 复制代码
acpx --format json claude -s output-manager "回复数字 11"

输出 NDJSON 格式,每行一个事件。OpenClaw 每 5-10 秒 poll 一次,解析 thinkingmessage 字段,实时发送给用户。

结束判断

Claude Code 执行结束会有一个"Claude complete"的标记语,识别到这个就知道任务完成了。


六、拿走即用

快速开始

1. 安装

bash 复制代码
npm install -g @anthropic-ai/claude-code
npm install -g acpx

2. 配置

bash 复制代码
# 编辑 ~/.claude/settings.json
{
  "model": "qwen3.5-plus"
}

3. 创建会话

bash 复制代码
acpx claude sessions new --name my-project

4. 验证

bash 复制代码
# 第一轮
acpx claude -s my-project "收到请回复 11"

# 第二轮(验证上下文)
acpx claude -s my-project "上一个数字 +2 等于多少"
# 应该输出 13


开源计划

我已经把这套方案封装成了 skill,整理好会开源。到时候可以直接安装使用,不用自己从头配置。


写在最后

虽然现在只能用 exec 方案,有点"曲线救国"的意思,但已经能达到托管开发的目的。如果未来飞书能支持 thread,OpenClaw ACP 能丰富能力,我还是更希望用原生的 ACP 方式------那样等同一个 agent 会话,有 session 记录文件,很方便追溯完整对话过程,可靠性和便捷性都更高。

但在那之前,这个方案已经足够好用了。


创作 :OpenClaw × Anton
创作时间:约 2 小时(素材收集 1 小时 + 写作 1 小时)


相关推荐
小碗细面2 小时前
5 分钟上手 Claude 自定义 Subagents
前端·人工智能·ai编程
NikoAI编程2 小时前
Claude Code Skill 实战:从「能用」到「好用」
人工智能·ai编程·claude
小村儿3 小时前
觉醒的agent:AI为何抛弃React和Vue,自创Aether框架
前端·agent·ai编程
user_admin_god3 小时前
Windows安装Opencode和Claude Code使用
windows·prompt·aigc·ai编程
仓颉编程语言3 小时前
CangjieSkills 正式开源:为仓颉 AI 编程打造的“技能增强“方案,实测降低 60% 费用
华为·ai编程·鸿蒙·仓颉编程语言
YuQiao03034 小时前
国内安装claude code
ubuntu·claude·vibe coding
White-Legend4 小时前
我用GTP5.4写了一个飞书编辑器
人工智能·gpt·编辑器·飞书·ai编程