Claude Code + Codex + OpenCode:我的 AI 编程三件套工作流
2026-06-08

"我就用 Claude Code,一个工具管所有,为什么还需要别的?"

如果你现在是这个想法,我理解。一个月前我也这么想。Claude Code 强,日常开发一把梭没问题。

但用了一段时间之后,我发现有三个问题是一个工具解决不了的。

三个绕不开的问题

一个是费用。Claude Code 的非交互模式(-p 参数)在 6 月 15 日之后转入独立的 credit pool,按 API 费率计费,本质上就是额外收费。偶尔用还好,但跑定时任务、自动化杂活这类场景,成本不可控。

一个是模型盲区。同一个模型 review 自己的代码,大概率说"没问题",甚至主动帮你找理由。所有大模型都这样,同模型自审有盲区。

还有一个是模型匹配。格式化文件、跑常规检查这类活,用 Opus 是杀鸡用牛刀。而且 Opus 响应不快,有些场景你要的是又快又便宜。

想清楚这三件事之后,我的工具组合就自然成型了。

我的三件套

AI 编程三件套工作流:Claude Code 70% 主力开发 + OpenCode 30% 打杂

三个工具,三个角色,各管一摊。

主力:Claude Code

用 Claude Code 做日常开发的人多,这里只聊我的个人偏好。重活用 Opus 4.8,日常用 Sonnet 4.6。

很多人觉得 Claude Code 必须全程 Opus,不是。我日常大量任务用 Sonnet 4.6——批量改命名、补 boilerplate、写测试、简单 bug fix,又快又稳,够用。Claude Code 支持通过 /model 随时切换,我的默认档位就是 Sonnet。

Opus 4.8 留给需要深度思考的场景:复杂的架构设计、疑难 bug 调试、跨多文件的重构。

另外提一嘴 CLAUDE.md——它定义项目约定和持久化指令,每次会话自动加载。我在里面写了代码风格、提交规范,Opus 4.8 和 Sonnet 4.6 都能保持一致输出。后面会提到,OpenCode 也能读这个文件。

Claude Code 负责重活,但它产出的代码还需要一双独立的眼睛,这就是第二个工具的用处。

副手:Codex 交叉 Review

同模型 review 有盲区,解决方案简单:换一个同级别的模型来审。

关键是"同级别"。Opus 4.8 和 GPT 5.5 都是 SOTA,能力弱的模型审不出 Opus 的问题。

我用 Codex in Claude,OpenAI 官方插件,在 Claude Code 里直接调 Codex 做 review。安装:

/plugin marketplace add openai/codex-plugin-cc
/plugin install codex@openai-codex
/reload-plugins
/codex:setup

装好之后主要用两个命令:/codex:review 做常规审查,/codex:adversarial-review 做对抗性审查——后者会主动挑战你的设计决策,比普通 review 更尖锐。如果有比较复杂的任务想丢给 Codex 在后台跑,还可以用 /codex:rescue

不同架构、不同训练数据的模型,关注点不一样。Claude 觉得没问题的地方,GPT 可能会质疑,和人类 code review 一个道理,写的人自己检查,不如换人来看。

打杂:OpenCode

开发和 review 都有了着落,剩下的问题是:谁来跑日常杂活——定时任务、小修小补、不值得启动 Claude Code 的活?这就是 OpenCode 的位置。

为什么选 OpenCode

OpenCode 是基于 Go 的开源 AI 编程工具,GitHub 170k+ star。TUI 和 CLI 两种模式,支持 75+ 个 LLM 提供商。

我选它来干杂活,有几个很实际的理由:

用 OpenCode 配合便宜模型跑这些杂活,正好绕开了前面提到的 Claude Code 非交互模式收费问题。

我在 OpenCode 上接的主力模型是 GPT 5.5 和 DeepSeek V4 Pro。另外我有一个 GitHub Copilot 订阅,如果想尝试其他模型的时候会用它来切换。

定时任务:Multica 调度

定时任务的触发我交给了 Multica

Multica 是一个开源的 coding agent 管理平台(GitHub 35k+ star),把 agent 当团队成员管理。agent 有自己的 profile,能出现在任务看板上,能创建 issue、发评论、主动上报阻塞。

它目前支持 12 种 coding agent 工具,包括 Claude Code、Codex、OpenCode、Gemini 等等。我主要用它的 Autopilots 功能来设置定时触发:通过 cron 表达式或 webhook 来定期创建任务,然后自动路由给 OpenCode 执行。

任务有完整生命周期管理:排队、认领、执行、完成,每一步有状态追踪。它还有 Squads 功能,可以多 agent 编组、由 leader 分配任务。

相比自己写 cron job,Multica 两个好处:一是 agent 遇到问题主动上报,不会默默失败;二是所有执行过程都有完整记录,跑完了也能回溯。

飞书派活:Lark Coding Agent Bridge

这个是基于开源项目 lark-coding-agent-bridge 二次开发的工具。上游项目已经支持了 Claude Code 和 Codex,我 fork 之后主要加了 OpenCode 适配,让它也能通过飞书来调用。

项目地址lark-coding-agent-bridge

原理不复杂:

Lark Coding Agent Bridge 消息链路:飞书 → WebSocket → Bridge 守护进程 → OpenCode

飞书发消息给 Bot,飞书服务器通过 WebSocket 推送给本地 Bridge 守护进程,Bridge 转发给 OpenCode 执行。执行过程通过流式卡片实时更新回飞书。

fork 版本加的功能:每个飞书窗口对应独立 OpenCode 会话,上下文不串;OpenCode 需要权限确认时会在飞书里弹出交互卡片,可以直接点"允许"或"拒绝";OMO 插件的后台任务跑完了还能主动往飞书推一张卡片通知你。

什么样的活会通过飞书来派?一般是那些不值得我打开终端、切到项目目录、启动 Claude Code 来做的小事:

单独看都很小,累积起来打断心流。飞书下发指令,走路时、开会时顺手处理。

跑下来的感受

这套组合用了一个月,最大的感受是:工具之间的分工比工具本身的强弱更重要。

举个实际的例子。有一次 Claude 写了一段并发逻辑,我自己看了觉得没问题,Claude 自己 review 也说没问题。丢给 Codex 做 adversarial review,它指出了一个竞态条件——两个 goroutine 在没有锁保护的情况下写同一个 map。Claude 回头一看,确认是 bug。如果没有交叉 review 这一步,这个问题大概率会带到线上。

分工之后,Claude Code 写代码,Codex 挑毛病,OpenCode 处理杂活,效率更高,成本也更低。

这是我的工作流。只做交互式开发的话一个工具够用,但一旦加上定时任务、交叉 review、移动端派活,单一工具很快到瓶颈。多花点时间找适合自己的组合,比死磕一个工具划算。