尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Claude Code 官方内部最佳实践公开:用 claude.md 与 MCP 搭建 Agent 工作流

Claude Code 官方内部最佳实践公开:用 claude.md 与 MCP 搭建 Agent 工作流 1. Claude Code 的 claude.md 与 MCP 工作流到底解决什么问题Claude Code 是 Anthropic 推出的终端 Agent 工具它把模型、提示词和工具调用打包成一个能在命令行里自主循环执行的智能体。你可以把它理解成一位只用终端、不点图形界面的资深同事你给它一个任务它会自己搜索代码、读文件、改文件、跑命令直到任务完成。它适合谁适合已经在用命令行、Git、CI/CD 的研发团队也适合想把重复性编码、测试补全、PR 描述生成交给 Agent 的个人开发者。真正让团队协作效率拉开差距的不是模型本身而是两样东西claude.md 和 MCP。claude.md 是项目级的约定文件Claude Code 启动时会把它注入到上下文里相当于给 Agent 一份入职手册MCPModel Context Protocol则是把外部工具、数据源接进 Agent 的标准协议让它能调用数据库、内部平台、第三方服务。官方内部实践反复强调一个观点Claude Code 没有持久记忆所有跨会话的知识共享都靠文件而 claude.md 就是那个最关键的共享文件。我在实际项目里踩过的坑是一开始什么都不写直接让 Claude Code 改代码结果它每次都用不同的命名风格、不同的测试框架提交记录也乱七八糟。后来把项目约定写进 claude.md再配合 MCP 接入内部工具整个协作才稳定下来。这篇就按官方公开的最佳实践把 claude.md 模板、MCP 配置、CI/CD 集成和验证步骤完整走一遍你可以直接复制到自己的仓库里复现。2. TaoToken 前置准备拿到 Base URL、API Key 与 Model IDClaude Code 默认走 Anthropic 官方 API但在国内网络环境下很多团队会选择通过兼容 Anthropic 协议的网关来接入TaoToken 就是这样一个入口。它的 API 地址是 https://taotoken.net/api不附加任何查询参数。你需要准备三件套Base URL、API Key、Model ID。这三样缺一不可后面所有配置都围绕它们展开。先说 Base URL。Claude Code 读取的是环境变量ANTHROPIC_BASE_URL值填https://taotoken.net/api。注意不要带末尾斜杠也不要加 UTM 参数否则部分版本会拼接出错误路径。API Key 通过ANTHROPIC_API_KEY传入在控制台的 API Keys 页面创建格式通常是一串以sk-开头的字符串。Model ID 则填你实际要调用的模型标识比如claude-sonnet-4-20250514这类官方命名具体以你账号下可用的模型列表为准。这里要提醒一点TaoToken 是兼容 Anthropic 协议的接入层不是让你绕过任何合规要求它只是把请求转发到对应的模型服务。你在配置时只需要关心三件套是否正确不需要改动 Claude Code 本身的任何源码。如果你还没创建 Key可以先去 API Keys 页面生成一个再回到终端继续。整个前置准备大概五分钟重点是别把 Base URL 和 Key 搞混这两个是最容易配错的地方。对于长期做编码和 Agent 任务的团队如果调用量比较大可以关注 Coding Plan 这类套餐它针对持续编码场景做了额度优化。但无论用哪种方式三件套的配置方法完全一致下面直接进入可复制的配置环节。3. 可复制配置claude.md 模板、MCP 片段与 settings 文件这一节是全文的核心所有片段都可以直接复制。先给 claude.md 模板。这个文件放在项目根目录Claude Code 启动时会自动读取。内容要覆盖项目结构、测试命令、代码风格、提交规范四块写得越具体Agent 越不容易跑偏。# 项目约定 ## 项目结构 - src/ 存放业务源码按模块分目录 - tests/ 存放单元测试文件名与源文件同名加 _test 后缀 - scripts/ 存放构建与部署脚本 ## 测试与检查 - 运行单元测试npm run test - 运行类型检查npm run typecheck - 运行 lintnpm run lint - 提交前必须保证以上三条全部通过 ## 代码风格 - 使用 TypeScript禁止 any - 函数命名用 camelCase类型命名用 PascalCase - 不要生成无意义的注释只在复杂逻辑处写简短说明 - 单文件不超过 300 行超出则拆分 ## 提交规范 - commit message 使用 conventional commits 格式 - 每次提交前让 Claude Code 生成 PR 描述草稿接下来是 MCP 配置。Claude Code 的 MCP 服务器配置写在项目根目录的.mcp.json里或者写在用户级配置中。下面是一个接入内部工具服务的示例注意把命令和参数替换成你自己的。{ mcpServers: { internal-tools: { command: npx, args: [-y, your-org/mcp-internal-tools], env: { INTERNAL_API_BASE: https://your-internal.example.com, INTERNAL_API_KEY: your-internal-key } } } }然后是 Claude Code 的 settings 文件。它位于.claude/settings.json用来配置权限和默认行为。下面这个片段允许自动执行测试和 lint 命令减少反复确认的打断。{ permissions: { allow: [ Bash(npm run test), Bash(npm run lint), Bash(npm run typecheck), Bash(git status), Bash(git diff) ], deny: [ Bash(rm -rf *), Bash(git push --force) ] } }如果你用的是 Codex 的 auth.json 体系或者 Cline 的 MCP 配置三件套的写法是一致的Base URL 填https://taotoken.net/apiKey 填你的 API KeyModel ID 填模型标识。CC Switch 这类工具也是同样的逻辑切换的只是配置来源底层三件套不变。把上面三个文件放进仓库后记得提交到 Git这样团队成员拉下来就能直接用同一套约定。4. 验证请求与成功结果本地跑通再进流水线配置写完必须验证否则你永远不知道是配置错了还是模型没响应。第一步在终端里确认环境变量生效。执行echo $ANTHROPIC_BASE_URL应该输出https://taotoken.net/api。如果为空说明你的 shell 没有加载配置文件检查.zshrc或.bashrc里有没有 export 语句。第二步启动 Claude Code输入一个简单任务比如读取 package.json告诉我项目用了哪些依赖。观察它是否能正常调用工具、返回结果。如果成功你会看到它先读取文件再输出依赖列表整个过程在终端里可见。这一步验证的是 Base URL 和 Key 是否可用。第三步验证 claude.md 是否被注入。在 Claude Code 里问本项目的测试命令是什么如果它回答npm run test说明 claude.md 读取成功。如果它说不知道检查文件是否在项目根目录、文件名是否严格为claude.md全小写。第四步验证 MCP 是否连通。输入用 internal-tools 查一下当前工单列表如果 MCP 配置正确它会调用对应工具并返回数据。如果报错先看.mcp.json的路径和命令是否正确再确认那个 MCP 服务本身能不能独立运行。第五步进入 CI/CD。在 GitHub Actions 里加一个 job用ANTHROPIC_BASE_URL和ANTHROPIC_API_KEY作为 secrets 注入然后调用 Claude Code 的 headless 模式跑测试补全或 PR 描述生成。下面是一个最小示例。name: claude-agent on: pull_request: types: [opened, synchronize] jobs: review: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - name: Run Claude Code headless env: ANTHROPIC_BASE_URL: ${{ secrets.ANTHROPIC_BASE_URL }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} run: | npx anthropic-ai/claude-code -p review this PR and summarize changes跑通后你会看到流水线里输出一段 PR 摘要。这就是官方推荐的 headless 自动化路径把 Claude Code 当成一个可编程的 Agent嵌进你已有的 CI/CD 流程而不是单独开一个窗口手动操作。5. 本篇常见报错排查401、local proxy failed、reading choices、OAuth配置过程中最容易撞上的几个报错我按出现频率排一下。第一个是 401 Unauthorized。这几乎都是 API Key 的问题要么 Key 复制时多了空格要么 Key 已经失效要么 Base URL 和 Key 不匹配。排查方法是重新生成一个 Key用curl直接测一次接口确认 Key 本身可用再回到 Claude Code。第二个是local proxy failed。这个报错通常出现在你本地起了代理层但代理没有正确转发到https://taotoken.net/api。检查你的代理配置里目标地址是否写对端口是否被占用。如果你没有主动起代理那可能是某个工具自动注入了代理环境变量用env | grep -i proxy看一下把多余的HTTP_PROXY、HTTPS_PROXY清掉再试。第三个是reading choices相关报错。这通常发生在响应格式不符合预期时比如网关返回了非 JSON 内容或者模型 ID 写错导致服务端返回了错误页。排查方法是把 Model ID 换成官方文档里确认可用的标识再重新请求。如果还报错用curl手动发一次请求看返回体里具体是什么内容。第四个是 OAuth 相关报错。Claude Code 某些版本会走 OAuth 流程如果你用的是 API Key 模式需要在配置里明确指定认证方式避免它去走 OAuth。检查 settings 里有没有冲突的认证配置把不需要的 OAuth 相关字段删掉。这里要特别提醒CC Switch、Cline MCP、Codex auth.json 这三类工具只要出现其中一个就必须把三件套写全。Base URL 是https://taotoken.net/apiKey 是你的 API KeyModel ID 是模型标识。少任何一个都会导致认证失败或模型找不到。排障时优先确认这三项再去查网络和权限。6. 把 Agent 工作流真正用起来从单实例到多实例协作配置跑通只是起点真正提升效率的是工作流设计。官方实践里提到几个关键点我结合自己的使用经验说一下。第一先规划再执行。不要一上来就让 Claude Code 改代码而是先让它搜索、分析、给出方案你确认后再让它动手。这样能避免它沿着错误方向跑很远。第二关注 To-Do 列表。Claude Code 处理大任务时会自动生成待办列表你可以随时按 Escape 打断调整方向。如果发现它跑偏直接说这个待办不对换个思路它会重新规划。第三上下文管理。长时间协作后上下文会满这时用/compact让它总结当前会话或者用/clear清空重来。claude.md 不会被清掉所以关键约定始终在。第四多实例并行。你可以开多个终端标签每个跑一个 Claude Code 实例分别处理不同任务。多个实例之间共享上下文目前没有原生支持但可以用共享 markdown 文件的方式变通让一个实例把任务状态写进ticket.md另一个实例读取后继续。对于团队来说把 claude.md 提交到仓库、把 MCP 配置标准化、把 headless 调用接进 CI/CD这三步做完Agent 工作流才算真正落地。如果你还在选型阶段可以先去模型对话页面体验一下模型能力确认效果后再接入编码流程如果已经确定要长期用于编码和 Agent 任务Coding Plan 会更适合高频调用场景。接入文档里有完整的参数说明和示例遇到配置问题可以直接对照排查。整套流程走下来你会发现 Claude Code 不是一个更聪明的补全工具而是一个能按项目约定自主工作的团队成员。
返回列表