所有文章
选型

Claude Code 还是 Codex?
作为飞书 Agent 后端怎么选

Larkway 的每个 bot 都可以独立选择执行底座:Claude Code 或 Codex。两者都用本机订阅鉴权、都在你的机器上跑,差别在权限模型、会话续接和周边生态。这篇把这些差别摆出来,并给一个实用的选法。

Claude Code Codex 选型 2026-09-06 · 约 7 分钟

先说结论

  1. 先看你手上有哪个订阅。Larkway 不注入 API key,子进程复用本机 CLI 的登录态。你有 Claude 订阅就用 Claude Code,有 ChatGPT 订阅就用 Codex,两个都有就往下看。
  2. 两个都有的话,按 bot 职能混搭。一个 bridge 可以同时跑多个 bot,每个 bot 在自己的 yaml 里指定 backend。不需要全队二选一。
  3. 切换成本几乎为零。改 yaml 里一行 backend: claudebackend: codex,重启 bridge。L2 memory 和业务仓库的规范两边通用。

五个维度的差别

维度Claude CodeCodex
CLIclaudecodex
鉴权本机登录态(~/.claude/.credentials.json),先跑一次 claude 登录codex login
计费走现有 Claude 订阅,不按 token 扣费走现有 Codex 订阅,不按 token 扣费
Larkway 里的权限模型Agent Workspace 模式下用 --permission-mode acceptEdits,Bash 命令按白名单放行;白名单可在 config.jsonpermissions.allowExtra 扩展--sandbox workspace-write;需要更宽权限时按模式映射到 bypass 标志
会话续接话题 ↔ session_id,后续消息 --resume话题 ↔ session,走 Codex 的 resume 机制
规范与 skill 读取CLAUDE.md.claude/skills、用户级 ~/.claude/skillsAGENTS.md.agents/skills、用户级 ~/.agents/skills
模型与推理强度yaml 里 model / effort 透传为 --model / --effortyaml 里 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、测试结果、落盘数据)。换后端等于换一个「脑子」,复核时更少共享盲点。

怎么切换

~/.larkway/bots/<id>.yaml
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 状态目录是否可写。

两个后端共同的边界

延伸阅读