先说结论
- 先看你手上有哪个订阅。Larkway 不注入 API key,子进程复用本机 CLI 的登录态。你有 Claude 订阅就用 Claude Code,有 ChatGPT 订阅就用 Codex,两个都有就往下看。
- 两个都有的话,按 bot 职能混搭。一个 bridge 可以同时跑多个 bot,每个 bot 在自己的 yaml 里指定
backend。不需要全队二选一。 - 切换成本几乎为零。改 yaml 里一行
backend: claude或backend: codex,重启 bridge。L2 memory 和业务仓库的规范两边通用。
五个维度的差别
| 维度 | Claude Code | Codex |
|---|---|---|
| CLI | claude | codex |
| 鉴权 | 本机登录态(~/.claude/.credentials.json),先跑一次 claude 登录 | codex login |
| 计费 | 走现有 Claude 订阅,不按 token 扣费 | 走现有 Codex 订阅,不按 token 扣费 |
| Larkway 里的权限模型 | Agent Workspace 模式下用 --permission-mode acceptEdits,Bash 命令按白名单放行;白名单可在 config.json 的 permissions.allowExtra 扩展 | 用 --sandbox workspace-write;需要更宽权限时按模式映射到 bypass 标志 |
| 会话续接 | 话题 ↔ session_id,后续消息 --resume | 话题 ↔ session,走 Codex 的 resume 机制 |
| 规范与 skill 读取 | CLAUDE.md、.claude/skills、用户级 ~/.claude/skills | AGENTS.md、.agents/skills、用户级 ~/.agents/skills |
| 模型与推理强度 | yaml 里 model / effort 透传为 --model / --effort | yaml 里 model / effort 透传,effort 按 Codex 的档位映射 |
| 启动预检 | larkway doctor 检查登录态 | larkway doctor 额外验证 Codex 状态目录可写 |
表里没有「哪个模型更聪明」这一行,因为这个答案每个月都在变,而且取决于任务。把它当作两个都能用的执行器,按下面的职能去分。
按 bot 职能分配
只读答疑 bot
「这个指标在哪算的」「这个接口谁在调」。两个后端都胜任,选你订阅额度更宽裕的那个。这类 bot 调用频率最高,成本敏感。
写代码、开 PR 的工程 bot
关键是权限边界要清楚。Claude Code 这边 Larkway 用 acceptEdits 加白名单,命令级别可控,适合你想精确规定「能跑什么」的场景。Codex 这边靠 sandbox,workspace-write 默认只能写工作区,对「别碰工作区外的东西」这类要求天然贴合。两种都能做到安全,取决于你更习惯哪种表达。
要读大量项目规范和 skill 的 bot
看你的仓库里已经沉淀的是哪一套。团队已经有一堆 CLAUDE.md 和 .claude/skills,就用 Claude Code;已经有 AGENTS.md 和 .agents/skills,就用 Codex。Larkway 的 L2 memory 会告诉 agent 去仓库里读哪些文件,但文件本身得是它认的格式。
一个省事的做法:把 CLAUDE.md 做成 AGENTS.md 的软链,skill 放在 ~/.agents/skills 再软链到 ~/.claude/skills。两种后端读到的是同一份规范。
需要独立复核的场景
执行者看过自己的过程,自检不可靠。一个常见配置是:工程 bot 用一种后端干活,验收 bot 用另一种后端只看产出(diff、测试结果、落盘数据)。换后端等于换一个「脑子」,复核时更少共享盲点。
怎么切换
id: dev-helper name: 研发助手 backend: codex # claude | codex model: gpt-5.6 # 可选,透传给 CLI effort: medium # low | medium | high | max runtime: agent_workspace # 改完重启 bridge $ larkway stop && larkway start
切换前跑一次 larkway doctor,它会按 bot 逐个检查对应 CLI 是否已登录、Codex 状态目录是否可写。
两个后端共同的边界
- 都跑在你自己的机器上,代码和凭据不经第三方云。
- 都不需要公网端口,飞书事件走 WebSocket 长连接。
- 都不由 Larkway 编排流程。Larkway 只负责飞书长连接、卡片渲染、子进程和 session;怎么建分支、怎么提交、什么时候停下问人,写在你仓库的 agent 指南里。