AI 编程指南:Claude Code & Codex 避坑与进阶实战
前言
AI 编程工具这两年井喷式发展,光是「命令行 AI 编程助手」这个赛道,Anthropic 的 Claude Code 和 OpenAI 的 Codex 就让不少开发者选择困难。
更头疼的是:工具上手容易,用好不容易。
这篇文章是我长期使用 Claude Code 和 Codex 后,把官方文档、社区踩坑帖和自己的实战经验揉在一起,提炼出来的避坑要点和进阶干货,帮你少走弯路。
适合谁读:
- 还在观望、想选一个工具入门的新手
- 已经在用、但总觉得「AI 也就那样」的进阶用户
- 想从 Claude Code 迁移到 Codex(或反过来)的开发者
一、先搞清楚:它俩到底是什么
Claude Code —— Anthropic 出品的命令行编程搭档
一句话:你在终端里给目标,它读整个项目、改文件、跑命令、跑测试,把活干完交给你验收。
核心形态是 CLI(命令行),也有 VS Code / JetBrains 插件、桌面 App、网页版。
Codex —— OpenAI 出品的 AI 编程代理
同样是「代理模式」(想→做→看),但比 Claude Code 多了四种入口:桌面 App、CLI、IDE 扩展、云端 Web。
最大的差异:Codex 有个「云端」模式,任务可以丢到 OpenAI 服务器上跑,不占本机资源。
核心相同点
两者底层逻辑一样:代理循环(想→做→看)——读代码、想方案、动手改、跑测试验证、不对就回头重来。
| 维度 | Claude Code | Codex |
|---|---|---|
| 出品方 | Anthropic | OpenAI |
| 核心形态 | 命令行为主 | 多入口(App/CLI/IDE/云端) |
| 项目说明书 | CLAUDE.md |
AGENTS.md |
| 配置文件 | settings.json(JSON) |
config.toml(TOML) |
| 权限模型 | 权限模式 + allow/deny 白名单 | 沙箱 + 审批(两个独立旋钮) |
| 计费 | 订阅 / API Key | ChatGPT 订阅 / API Key |
二、避坑指南:七个最常踩的反模式
用不顺 AI 编程工具,十有八九不是工具不行,是用法掉进了反模式。
反模式 #1:一句话塞一大堆需求
症状:「帮我把登录模块重构了、加上单元测试、顺便优化下性能」
为什么坑:它猜偏方向的概率极高,改一堆没用的,你还得擦屁股。
正解:一次一条主线。大任务先用 Plan Mode(/plan 或 Shift+Tab)出方案,你确认了再动手。
反模式 #2:不写项目说明书 / 全塞进去
症状:要么不写 CLAUDE.md(Claude Code)/ AGENTS.md(Codex),每天重复告诉它「这项目用 pnpm、测试跑 pytest」;要么把整本文档塞进去,规则被淹没。
为什么坑:不写 = 每次新会话都从零开始;写太多 = 关键信息被稀释,还可能撑爆上下文。
正解:一页纸精华须知。每写一行问自己:「删了它 Claude 会犯错吗?」不会就删。
| ✅ 该写 | ❌ 别写 |
|---|---|
| Claude 猜不到的 Bash 命令 | 它读代码就能搞懂的 |
| 跟默认不一样的代码风格 | 标准语言约定 |
| 测试指令、首选 runner | 详细 API 文档(改成链接) |
| 仓库礼仪、分支约定 | 经常变的信息 |
| 项目特有的架构决策 | 「写干净代码」这种废话 |
反模式 #3:一个会话从早开到晚
症状:上下文窗口塞满,AI 越用越笨——变慢、变笼统、前后矛盾、反复问同样的问题。
正解:
- 切任务 →
/clear清屏重开 - 同任务太长 →
/compact压缩上下文 - 同一问题纠正两次以上 → 无条件
/clear,带着教训重开
反模式 #4:把它当搜索引擎,说啥信啥
症状:「这个 API 怎么用?」它一本正经给你编个答案,参数名都是错的。
正解:让它给证据,不是声称成功。它说「修好了」≠ 真修好了,要看测试输出、看命令返回。
反模式 #5:不给验证办法
症状:「改好了吗?」「改好了。」你信了,然后上线炸了。
正解:prompt 结尾挂一句——「改完跑 pytest,全绿了再告诉我」。一句挡掉一大半返工。
反模式 #6:无脑开 bypassPermissions
症状:嫌确认弹窗烦,一把全放。
为什么坑:裸奔,连提示注入都不防。AI 执行了不该执行的命令,你都不知道。
正解:精细化 allowed/denied tools,默认从严,逐步放宽。
反模式 #7:让它「调查一下」不给范围
症状:「帮我看看这个项目有什么问题」→ 它读几百个文件,把上下文窗口烧爆。
正解:给具体目录、文件清单。「看 src/auth/ 下的认证逻辑」比「看看有啥问题」强十倍。
恶性循环
1 | |
破局点:拆需求 + 清上下文 + 给验证 + 收窄范围。
三、进阶干货:从「能用」到「用好」
1. 提示词的四件套配方
| 要素 | 它在回答什么 | 示例 |
|---|---|---|
| 目标(Goal) | 你到底要改什么、建什么 | 「给 login 函数加输入校验」 |
| 上下文(Context) | 哪些文件、报错相关 | 用 @ 引用文件,报错整段粘贴 |
| 约束(Constraints) | 要守什么规范、不许碰什么 | 「别引新库、保持兼容」 |
| 验收(Done when) | 什么条件算干完 | 「跑 pytest 全绿」 |
最常漏的是验收——少这一格,它觉得「能跑」就交差,bug 留给你。
烂提问 vs 好提问:
| ❌ 烂提问 | ✅ 好提问 |
|---|---|
| 「修一下登录的错误」 | 「用户报告会话超时后登录失败。查 src/auth/ 认证流程,重点看 token 刷新。先写失败测试再修」 |
| 「给 foo.py 加测试」 | 「覆盖用户已登出的边界情况,别用 mock」 |
| 「加个日历组件」 | 「照 HotDogWidget.php 模式实现日历组件,能选月份前后翻年,不引新库」 |
2. 复杂任务先出计划
越复杂越模糊的活儿,越先出计划再动手。
- 一句话说清 diff 的小活儿 → 直接干
- 说不清的 →
/plan或Shift+Tab切 Plan Mode - 自己没想清楚 → 让它「先别写,先 challenge 我,把模糊想法问成具体方案」
反面教材:我让 Codex 从回调迁 async/await,图省事没出计划,结果它顺手「优化」了全局错误处理,diff 糊成一团,最后
git reset重来。
3. MCP:给 AI 接上外部世界
MCP(Model Context Protocol)是一套开源标准,给 AI 统一外接服务的「扩展坞」——接一次,GitHub/Jira/数据库/Figma 的工具全摆到它面前。
两种 Server 形态:
| 形态 | 场景 | 示例 |
|---|---|---|
| stdio(本地) | 连本地数据库、浏览器 | claude mcp add mydb -- npx @modelcontextprotocol/server-postgres |
| HTTP(远程) | 云服务 | GitHub、Sentry、Figma |
信任红线:第三方 server 是第三方代码,官方不替你审计。优先用大厂官方 server,连数据库用只读凭据。
4. 子代理:上下文隔离的杀手锏
子代理 = 独立上下文 + 独立人设 + 独立工具的「外包小弟」。在自己房间干活,只把结论交回来。
解决什么问题:
| 问题 | 说明 |
|---|---|
| 隔离上下文 | 脏活(跑测试、翻日志)在自己房间扛,不污染主线 |
| 专精任务 | 给某类反复出现的活定一个专门干的人 |
| 可并行 | 互不相干的活同时甩给多个子代理 |
什么时候别用:频繁来回、共享上下文、快速小改 → 留在主对话。产出一堆中间垃圾、可自包含只回结论 → 才外包。
怎么建:/agents 交互式填表,或手写 .claude/agents/name.md。
5. Skills:把重复劳动变成可复用能力
Skill = SKILL.md(frontmatter + 正文)+ 可选配套文件(模板/脚本/示例)。
核心机制是渐进式披露:平时只露一句 description、用到才展开全文。装再多 Skill 也不撑上下文。
什么时候该写 Skill:当你发现自己反复粘同一套步骤时。
三种来源:
- 内置:
/code-review、/debug、/batch等,开箱即用 - 插件附带:带命名空间
/插件名:skill名 - 自己写:反复粘同一套步骤时,就该写 Skill
6. 记忆系统:让 AI 记住你的调教
| 工具 | 记忆机制 |
|---|---|
| Claude Code | CLAUDE.md(手动)+ 自动记忆(默认开) |
| Codex | AGENTS.md(手动)+ Memories(默认关,异步生成,有地区限制) |
铁律:当 AI 同一个错误犯了第二次,让它复盘把教训补进项目说明书——说明书被真实摩擦喂大,而非拍脑袋。
四、订阅与计费:别让钱包意外失血
Claude Code 三条路
| 方案 | 月成本参考 | 适合谁 |
|---|---|---|
| 官方按量计费 | 浮动,重度 $150-250+ | 想用原生 Claude |
| 官方订阅 | 固定月费 | 高频用,固定支出 |
| 国产 Coding Plan | 低,常有促销 | 国内用户,能接受国产模型 |
国产套餐大坑:买了套餐 ≠ 走套餐。Base URL 必须带 coding 字样,Key 用套餐专属的!
1 | |
Codex 两套计费
| 维度 | ChatGPT 订阅 | API Key |
|---|---|---|
| 收费 | 固定月费 + 用量限额 | 按 token 实时扣费 |
| 适合 | 个人日常高频 | CI/CD / 自动化 |
口诀:人用订阅,机器用 API Key。
省钱四招
| ❌ 坏习惯 | ✅ 好习惯 | 省在哪 |
|---|---|---|
| 一个会话从早用到晚 | 任务间 /clear |
不重发陈旧上下文 |
| 全程挂旗舰模型 | 默认中端,难题才切旗舰 | 单价更低 |
| 含糊需求直接开干 | 复杂任务先 Plan Mode | 少返工 |
| 「改进下代码」 | 「给 login 函数加输入校验」 | 少读无关文件 |
三个管理命令
| 命令 | 用途 |
|---|---|
/usage |
当前会话 token 用量和估算花销 |
/usage-credits |
设月度使用上限(防超支) |
/status |
核对版本、模型、账户、连通性 |
五、迁移指南:Claude Code ↔ Codex
你 90% 的心智模型能直接搬——要重新认的只是「东西放哪、叫什么名」。
概念对照表
| Claude Code | Codex | 关系 |
|---|---|---|
CLAUDE.md |
AGENTS.md |
换名 |
~/.claude/settings.json(JSON) |
~/.codex/config.toml(TOML) |
换格式 |
| 权限模式 + allow/deny 规则 | 沙箱 + 审批(两个独立旋钮) | 换思路 |
claude -p |
codex exec |
换名 |
CLAUDE.local.md |
AGENTS.override.md |
机制不同 |
三个必栽的坑
坑 1:项目说明书的临时覆写机制不同
- Claude Code:
CLAUDE.local.md是附加个人内容 - Codex:
AGENTS.override.md是跳过同级AGENTS.md
坑 2:配置文件不是翻译,是重写
JSON → TOML,最常犯的错:行尾加逗号(肌肉记忆),Codex 会报解析错。
坑 3:权限模型根本性不同
- Claude Code:按工具列白名单
- Codex:沙箱(能动多大)+ 审批(问不问你)两个独立旋钮
「不问」≠「放权」——read-only + never 是「随便读,但一句都别打扰我」。
斜杠命令对照
| 你想干的事 | Claude Code | Codex |
|---|---|---|
| 切模型 | /model |
/model ✅ |
| 压缩上下文 | /compact |
/compact ✅ |
| 清屏重开 | /clear |
/clear ✅ |
| 生成项目说明书 | /init |
/init ✅ |
| 看改动 diff | /diff |
/diff ✅ |
| 审查改动 | /review |
/review ✅ |
| 调权限 | Shift+Tab |
/permissions ❌ |
六、最佳实践速查表
Claude Code 六大法则
- 给可自己验收的方式 —— prompt 结尾挂「做完跑测试并验证」
- 先探索再编程 —— 不熟的代码先 Plan Mode 出方案
- 把话说具体 —— 点文件、限场景、给参照例子
- CLAUDE.md 写精不写多 —— 每行问「删了它 Claude 会犯错吗?」
- 一跑偏立刻拽回来 —— 纠正满三次,无条件
/clear重开 - 用顺了再横向铺开 —— Writer/Reviewer 互审、
claude -p进脚本、subagent 干脏活
Codex 七条落地实践
- 换心态 —— 当队友而非工具,调教越久越顺手
- AGENTS.md 写到位 ——
/init生成脚手架,改成项目真实的样子 - 提示四件套填空 —— 目标 + 上下文 + 约束 + 验收
- 复杂活先出计划 ——
/plan或Shift+Tab - 权限分档 —— 默认从严,逐步放宽
- 让它自验证 —— 跑测试、跑 lint、确认行为对得上需求
- 线程管理一条线一件事 —— 一个任务一条线程,不要一个项目从早开到晚
踩坑 ❌ / 正确 ✅ 对照表
| ❌ 踩坑 | ✅ 正确做法 |
|---|---|
| 把持久规则塞进提示 | 持久的搬进项目说明书或 Skill |
| 没告诉它构建/测试命令 | 项目说明书写清,让它能看到成果 |
| 多步复杂活跳过规划 | 先 /plan 再动手 |
| 还没摸清工作流就给满权限 | 默认从严,逐步放宽 |
| 一个项目一条线程 | 一个任务一条线程 |
| 多条线程同时改同批文件 | 各开一个 git worktree |
| 不靠谱的活急着做自动化 | 先手动跑稳再沉淀 |
七、如何选择?
选 Claude Code 如果你:
- 习惯命令行,喜欢终端工作流
- 主要用 Anthropic 的模型(Claude 系列)
- 想要更成熟的 Skills 生态和自动记忆
- 团队已经在用 Anthropic 的服务
选 Codex 如果你:
- 喜欢多入口(桌面 App、CLI、IDE、云端都想要)
- 想用云端模式,任务不占本机资源
- 已经有 ChatGPT Plus/Pro 订阅
- 需要企业管理功能(SSO/SCIM/RBAC)
两个都试试
核心逻辑一样,斜杠命令大半同名。花半天跑一遍入门流程,哪个手感好用哪个。
结语
AI 编程工具不是银弹,但用对了确实能提效。
关键就三句话:
- 拆需求,别让它猜 —— 一次一条主线,复杂任务先出计划
- 给验证,别信它说的 —— 让它跑测试、给证据,「看起来对」不算数
- 清上下文,别让它变笨 —— 任务间
/clear,纠正三次无条件重开
别光看,动手跑一遍才是你的。
最后更新:2026-06-23