1. 为什么你的 Claude Code 总是“时灵时不灵”
Claude Code 是 Anthropic 推出的命令行 AI 编程智能体,它跑在终端里,能读文件、改代码、执行命令、跑测试,适合已经上手 CLI、想把 AI 真正嵌进日常开发流的工程师。很多人第一次用它会有强烈落差:同一个模型,重构模块时几秒出活,改个 Bug 却反复犯同一个错。问题通常不在模型,而在你给它的上下文和约束方式。
Claude Code 的底层物理限制是上下文窗口。窗口塞满,它就开始“失忆”;指令含糊,它就开始“幻觉”;没有验证手段,它就会盲目自信地交付跑不通的代码。我试过把一次会话里塞进修 Bug、写文档、加功能三件事,结果它把三个任务的变量名混在一起,越改越乱。后来才明白,Claude Code 更像一个需要被编排的自主智能体,而不是一个问答机器人。
这篇内容围绕三条主线展开:CLAUDE.md 配置、Plan Mode 规划、MCP 扩展。我会把 50 条可复用的团队协作军规拆进可跟做的步骤里,交付 CLAUDE.md 模板、Plan Mode 工作流配置、MCP 接入清单,并给出逐条验证动作。你不需要背下所有条目,跟着配置一遍,就能把官方最佳实践变成团队日常能执行的规范。
先说清楚适合谁:如果你已经在用 Claude Code CLI,但产出不稳定、团队里每个人用法都不一样、Review 成本高,那这篇就是给你写的。如果你还没装,先装好 Node 环境再回来,后面的配置都能直接复制。
2. 前置准备:TaoToken 接入 Claude Code 的完整配置
Claude Code 默认走 Anthropic 官方端点,但团队落地时常需要统一网关、统一计费和统一 Key 管理。TaoToken 提供兼容 Anthropic 协议的 API 入口,可以承接 Claude Code 的请求。下面是从零到能跑通的完整步骤,每一步都有验证动作。
2.1 获取 API Key 与确认 Base URL
先到 TaoToken 控制台创建 API Key。打开 https://taotoken.net/api-keys ,登录后点创建,复制以sk-开头的密钥。这个 Key 只显示一次,建议直接存进密码管理器。
Base URL 用https://taotoken.net/api,注意不要带任何查询参数。Claude Code 走的是 Anthropic 兼容协议,所以环境变量名要用ANTHROPIC_BASE_URL和ANTHROPIC_AUTH_TOKEN,而不是 OpenAI 那套。
2.2 环境变量配置(三件套)
Claude Code 的接入三件套是 Base URL、Key、Model ID。在~/.zshrc或~/.bashrc里追加:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_AUTH_TOKEN="sk-你的TaoToken密钥" export ANTHROPIC_MODEL="claude-sonnet-4-20250514"保存后执行source ~/.zshrc。验证环境变量是否生效:
echo $ANTHROPIC_BASE_URL echo $ANTHROPIC_MODEL两条命令都应输出你设置的值。如果输出为空,说明 shell 配置文件没加载对,检查你用的是 zsh 还是 bash。
2.3 settings.json 配置片段
除了环境变量,Claude Code 还支持项目级和用户级settings.json。用户级路径是~/.claude/settings.json,项目级是<项目根>/.claude/settings.json。项目级优先级更高,适合团队统一配置。写入以下内容:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_AUTH_TOKEN": "sk-你的TaoToken密钥", "ANTHROPIC_MODEL": "claude-sonnet-4-20250514" }, "permissions": { "allow": [ "Bash(ls:*)", "Bash(grep:*)", "Bash(npm run test:*)", "Bash(git status:*)", "Bash(git diff:*)" ] } }注意permissions.allow这一段就是军规里的 Permissions Allowlist。把ls、grep、npm test、git status加进白名单,Claude Code 执行这些命令时不再逐次弹确认,日常效率提升明显。但rm、curl、git push这类高风险命令不要加白名单。
2.4 验证接入是否成功
配置完成后,在终端运行:
claude -p "用一句话说明你当前使用的模型名称"如果返回正常文本,说明接入成功。如果报 401,检查 Key 是否复制完整、是否有多余空格。如果报连接错误,检查 Base URL 是否写成了带路径的形式。这一步跑通后,再进入后面的工程化配置。
3. CLAUDE.md 模板与 Plan Mode 工作流配置
这一章是整篇的核心。CLAUDE.md 是 Claude Code 每次启动必读的“项目宪法”,Plan Mode 是复杂任务的安全阀。两者配好,产出稳定性会有质的变化。
3.1 CLAUDE.md 该写什么、不该写什么
CLAUDE.md 放在项目根目录,Claude Code 启动时自动读取。它的作用是固化那些你不想每次重复交代的规则。写得好,等于给 AI 立了规矩;写得烂,就是浪费 Token。
先说不该写的:不要写“请写出优雅的代码”“注意代码质量”这类空话,模型无法执行。该写的是可验证的具体信息:构建命令、测试命令、代码风格约定、路径别名、禁止修改的文件。
一个可直接用的 CLAUDE.md 模板:
# 项目宪法 ## 构建与测试 - 安装依赖:pnpm install - 单元测试:pnpm run test:unit - 类型检查:pnpm run typecheck - 本地启动:pnpm run dev ## 代码风格 - 缩进用 2 空格,不用 Tab - 全部使用 TypeScript,禁止新增 .js 文件 - 组件文件用 PascalCase,工具函数用 camelCase ## 路径别名 - @src/ 指向 src/ - @components/ 指向 src/components/ - @utils/ 指向 src/utils/ ## 禁止事项 - 不要修改 .env、.env.local 及任何密钥文件 - 不要修改 package.json 的 dependencies 版本号 - 不要执行 git push,提交由人工完成 ## 验证要求 - 每次修改代码后必须运行 pnpm run test:unit - 修复 Bug 时必须补充对应的测试用例这份模板覆盖了军规里的 Bash Commands、Code Style、Import Rules、Verification 几条。团队里每个人克隆项目后,Claude Code 的行为就一致了。
3.2 用 /init 生成初版再裁剪
如果你面对的是一个已有项目,不要手写 CLAUDE.md。在项目根目录运行:
claude进入交互后输入/init。Claude Code 会扫描项目结构、读取 package.json、分析目录布局,自动生成一份初始 CLAUDE.md。生成后你要做的是裁剪:删掉它猜错的命令,补上它没发现的约定。军规里叫 Prune Ruthlessly,意思是无情删减。一份好的 CLAUDE.md 通常不超过 80 行。
Monorepo 场景下,子目录可以放独立的 CLAUDE.md。Claude Code 会继承根目录的规则,再叠加子目录的规则。比如packages/web/CLAUDE.md里写前端特有的构建命令,根目录写通用的提交规范。
3.3 Plan Mode 的正确打开方式
Plan Mode 是 Claude Code 里被低估最严重的能力。按Shift+Tab切换进入,此时 Claude Code 只做调研和规划,不写任何代码。它会先读相关文件,然后输出一份执行计划,等你确认后才动手。
军规里有一条判断标准:涉及超过 2 个文件的任务,必须先进 Plan Mode。改个拼写错误直接干,重构模块必须规划。Explore -> Plan -> Implement 这个顺序不能乱。
进入 Plan Mode 后,推荐的 Prompt 结构是 Role + Task + Context:
你是一个负责订单模块的资深工程师。 任务:把订单状态流转逻辑从 OrderService 抽离到独立的 OrderStateMachine。 背景:当前 OrderService 有 800 行,状态判断散落在 12 个方法里。 约束:不要修改对外接口,不要改动数据库 schema。 先给出计划,不要写代码。Claude Code 会返回一份分步计划。这时候你要做的是 Review the Plan——在它动手前纠偏,成本最低。如果计划里漏了某个边界条件,直接告诉它补上。确认无误后再让它执行。
3.4 上下文管理:/clear 与 /compact
上下文是稀缺资源。一个会话里做完一个任务,立刻运行/clear清空。不要在垃圾堆里盖新楼,这是军规里反复强调的。
如果任务没做完但上下文快满了,用/compact压缩。它会把之前的对话总结成摘要,保留关键信息,释放窗口空间。顺序是:先/compact保留记忆,再继续;而不是直接/clear丢掉一切。
会话命名也值得养成习惯。用/rename feat-login-oauth给会话起名,下次用claude --resume就能找回。走错方向时双击Esc回滚到上一步,比手动改代码快得多。
4. MCP 扩展接入清单与验证请求
MCP 是 Model Context Protocol 的缩写,它让 Claude Code 能连接外部数据源和工具。数据库、Notion、GitHub、内部 API 都可以通过 MCP 接进来。这一章给出接入清单和验证方法。
4.1 MCP 接入三件套与命令
接入一个 MCP Server 的标准命令是:
claude mcp add <server-name> -- <启动命令>以接入一个本地 Postgres 为例:
claude mcp add postgres -- npx -y @modelcontextprotocol/server-postgres "postgresql://user:pass@localhost:5432/mydb"接入后运行claude mcp list查看已注册的 Server。每个 Server 的配置会写进~/.claude.json或项目级.mcp.json。团队协作时把.mcp.json提交到仓库,成员克隆后自动获得相同的 MCP 配置。
MCP 接入同样遵循三件套逻辑:Server 地址(启动命令)、认证信息(连接串或 Token)、能力范围(该 Server 暴露哪些工具)。三者缺一,接入就会失败。
4.2 验证 MCP 是否生效
接入后不要假设它能用,要主动验证。在 Claude Code 里输入:
列出当前可用的 MCP 工具,并说明每个工具的用途。Claude Code 会返回已加载的 MCP 工具清单。如果 postgres 没出现,检查claude mcp list的输出,看 Server 状态是否为 connected。常见问题是启动命令路径不对,或者连接串里的密码有特殊字符没转义。
再做一个实际调用验证:
用 postgres 工具查询 users 表的前 5 行,只返回 id 和 email。如果返回了真实数据,说明 MCP 链路完全打通。注意,生产库不要直接接 MCP,用只读账号或测试库,这是安全底线。
4.3 Skills 与 Subagents 的配合
MCP 解决的是“连接外部”,Skills 解决的是“封装内部流程”。在.claude/skills/下创建SKILL.md,可以把重复的业务逻辑封装成可复用能力。比如把“订单状态流转规则”写成一个 Skill,用到时才加载,不占用常驻上下文。
Subagents 则是定义专门角色。在.claude/agents/security-reviewer.md里写一个安全审查专家,只负责 Review 不负责写代码。主会话里说“用 security-reviewer 检查刚才的代码”,它就会以独立上下文执行审查。这种分工能避免写代码和审代码的角色混淆。
对于高风险 Skill,设置disable-model-invocation: true,强制人工确认后才执行。这是军规里防止自动化失控的关键一条。
5. 常见报错排查对照表
配置过程中最容易卡在几个固定报错上。这一章按真实报错信息给出排查路径。
5.1 401 与认证失败
报错401 Unauthorized或authentication_error,九成是 Key 问题。检查顺序:Key 是否复制完整(sk-开头,无空格)、环境变量是否被 settings.json 覆盖、Base URL 是否写成了https://taotoken.net/api/带尾斜杠。尾斜杠会导致路径拼接错误,去掉它。
如果同时设了环境变量和 settings.json,settings.json 优先级更高。排查时先注释掉 settings.json 里的 env 段,只留环境变量测试。
5.2 local proxy failed 与连接错误
报错local proxy failed或ECONNREFUSED,通常是 Base URL 不可达或网络配置问题。先确认ANTHROPIC_BASE_URL的值是https://taotoken.net/api,然后用 curl 直接测:
curl -s -o /dev/null -w "%{http_code}" https://taotoken.net/api返回 401 或 404 都说明网络通,问题在认证或路径;返回 000 说明网络不通,检查本机网络设置。
5.3 reading choices 与响应解析错误
报错error reading choices或unexpected response format,说明返回的 JSON 结构不符合预期。常见原因是 Model ID 写错了。Claude Code 走 Anthropic 协议,返回结构里是content数组而不是choices。如果你看到choices相关报错,说明请求可能被路由到了 OpenAI 兼容端点。检查ANTHROPIC_MODEL是否填了正确的 Claude 模型 ID。
5.4 OAuth 与登录态冲突
报错OAuth token expired或反复要求登录,说明本地存在旧的登录态。Claude Code 会缓存凭据,切换接入方式时需要清理。删除~/.claude/下的凭据缓存文件,重新用环境变量方式启动。如果之前用过官方登录,先运行claude logout再配置。
5.5 MCP Server 启动失败
claude mcp list显示 Server 状态为 failed,先手动运行启动命令看报错。比如npx -y @modelcontextprotocol/server-postgres单独跑一次,看是依赖没装还是连接串错误。MCP Server 是独立进程,它的报错不会直接显示在 Claude Code 界面里,必须手动验证。
排查完这些,基本能覆盖 90% 的接入问题。剩下的多半是版本不匹配,运行claude --version确认 CLI 版本,必要时升级。
6. 把 50 条军规变成团队日常
军规不是拿来背的,是拿来执行的。团队落地时,我建议按这个顺序推进:先把 CLAUDE.md 模板提交到仓库,让每个人克隆后行为一致;再把 Plan Mode 写进 Code Review 规范,超过 2 个文件的改动必须附上计划;最后把 MCP 配置和 Skills 封装成团队共享包。
验证动作要固化。每次 Claude Code 改完代码,必须跑pnpm run test:unit,没通过测试的代码一行都别信。这是军规里 Trust-then-Verify Gap 的解法。遇到纠正两次还不对的情况,别纠缠,直接/clear优化 Prompt 重来,避免错误路径被强化。
长期编码和 Agent 场景,可以考虑 Coding Plan 来统一管理额度与调用,入口在 https://taotoken.net/coding-plan 。需要验证模型能力或做对话测试时,用模型对话页面 https://taotoken.net/chat 。接入文档在 https://taotoken.net/doc ,API Key 管理在 https://taotoken.net/api-keys 。
最后一条军规是 Develop Intuition:多用,建立对上下文容量和模型能力边界的体感。工具会迭代,但“上下文是稀缺资源、清晰度是最高杠杆”这条底层逻辑不会变。把这套配置跑一遍,你就从被动使用者变成了工作流的编排者。