1. 从「脚本遥控」到「同事委派」:Claude Code 的协作姿势该换了
线上支付故障刚冒出来,很多人的第一反应是打开 Claude Code,然后开始逐条下命令:读这个文件、打开那个目录、运行这条命令、改这个函数、再补这个测试。听起来很细,实际上是把一个能读代码、能跑命令、能改文件、能根据测试反馈继续推进的 agentic coding environment,硬生生压成了一个只会执行固定步骤的 shell 脚本。
Claude Code 和普通聊天机器人的区别就在这里。它能探索、计划、实现,而不是只等着回答问题。你给它一个业务症状,它会自己决定先搜哪些关键词、读哪些文件、跑哪条测试命令、根据失败信息再调整方向。这个循环在官方文档里叫 agentic loop,收集上下文、采取行动、验证结果三个阶段会反复往返。
所以「Delegate, don't dictate」真正想讲的不是少写几个字,而是改变协作姿势。命令关注动作,委派关注目标。命令会说「打开 src/payments/token.ts,搜索 refresh,运行 npm test,修改第 48 行」;委派会说「过期银行卡用户无法完成 checkout,相关逻辑大概率在 src/payments/,请定位根因、修复并验证」。前一种把模型的搜索、推理和行动能力压扁了,后一种让它进入完整的工程循环。
这篇要交付的是三样可以直接复制的东西:一份 CLAUDE.md 骨架,把项目级规则和职责说明写进去;一份 subagents 配置片段,让调查型子任务在独立上下文里跑;一份 settings.json 里 TaoToken 统一 Key 和 API 通道的写法。最后再给一个可跟做的验证动作:委派一次小任务,观察权限弹窗和子代理调用。
2. TaoToken 前置:统一 Key 与 API 通道怎么接
在把 Claude Code 当同事委派之前,先把通道接好。TaoToken 的作用是提供一个统一的 API 入口,让 Claude Code 这类工具通过一个 Key 访问模型能力,不用在多个供应商之间来回切换配置。
官网地址是 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 入口是 https://taotoken.net/api 。注意 API 地址不带 UTM 参数,配置里直接写这个就行。
你需要先拿到 Key。登录后进入控制台,在 API Keys 页面创建一个新的 Key。创建时建议按用途命名,比如claude-code-dev,方便后面区分是本地开发还是 CI 环境在用。Key 只显示一次,复制后先存到安全的地方。
拿到 Key 之后,Claude Code 有两种接入方式。一种是走环境变量,适合临时验证;另一种是写进 settings.json,适合长期使用。两种方式我都试过,长期用还是配置文件更省心,因为不用每次开终端都 export 一遍。
这里要提醒一句:TaoToken 是统一的 API 通道,不是让你绕过任何安全边界的工具。权限边界、permission mode、allowlist 这些该配的还是要配,后面第 3 节会讲。
3. 可复制配置:CLAUDE.md 骨架 + subagents + settings.json
3.1 CLAUDE.md 骨架:把项目级先验写进去
CLAUDE.md 会在每个会话开始时加载,适合放那些 Claude 不能从代码里稳定推断出来的信息,比如统一命令、代码风格、工作流规则。但一定要保持简短,规则堆太多会被噪声淹没。
下面这份骨架可以直接复制,按你的项目改:
# 项目协作说明 ## 常用命令 - 安装依赖:pnpm install - 运行测试:pnpm test - 只跑支付相关测试:pnpm test payments - 类型检查:pnpm typecheck - 代码检查:pnpm lint ## 代码风格 - 使用 TypeScript strict 模式 - 错误处理统一走 src/lib/errors.ts 里的 AppError - 不要引入新的运行时依赖,除非在 PR 描述里说明理由 ## 工作流规则 - 修改公共 API 前先说明影响范围 - 提交信息格式:type(scope): description - 涉及数据库迁移、生产脚本、部署命令时,必须人工确认 ## 目录约定 - 支付相关逻辑:src/payments/ - checkout 状态流:src/checkout/ - API client:src/api/ - 测试 fixture:tests/fixtures/ ## 验证要求 - 修复 bug 必须补一个能复现问题的测试 - 完成后汇报根因、改动文件、测试命令和结果这份骨架的关键在于:它给的是上下文和约束,不是执行路径。它告诉 Claude Code「测试命令是 pnpm test」,但不规定「你必须先读哪个文件」。路径应该从实际代码结构里长出来,而不是从我们的记忆里硬塞进去。
3.2 subagents 配置:让调查子任务在独立上下文里跑
subagents 的价值在于上下文隔离。一个 subagent 在自己的 context window 里执行特定任务,适合处理会把主对话塞满的搜索结果、日志或文件内容,完成后只返回摘要。主会话只保留结论和实现决策,避免被大量探索细节拖慢。
在项目根目录创建.claude/agents/目录,然后放子代理定义文件。下面是一个支付调查子代理的配置片段:
--- name: payment-investigator description: 调查支付相关问题的根因,返回结论和证据,不做代码修改 tools: Read, Grep, Glob, Bash --- 你是一个支付模块调查子代理。你的任务是定位问题根因,不修改任何代码。 工作方式: 1. 先用 Grep 搜索相关关键词,比如 expired、card、refresh、payment_method 2. 用 Glob 确认相关目录结构 3. 读关键文件,顺着调用链往上往下追 4. 如果需要,运行只读命令查看 git 状态或测试输出 5. 返回一份结论,包含:可疑根因、涉及文件、证据、建议的修复方向 约束: - 不要修改任何文件 - 不要运行会改变系统状态的命令 - 如果证据不足,明确说明还需要什么信息再配一个测试覆盖子代理:
--- name: test-coverage-checker description: 检查某个模块的测试覆盖缺口,返回缺失的测试场景 tools: Read, Grep, Glob --- 你是一个测试覆盖检查子代理。给定一个模块路径,检查现有测试覆盖了哪些场景,缺哪些场景。 返回格式: - 已覆盖场景列表 - 缺失场景列表,按优先级排序 - 建议补充的测试文件位置这两个子代理的分工逻辑是:主会话负责实现和决策,子代理负责调查和取证。这样主会话的上下文不会被大量搜索结果和日志填满,委派质量会明显提升。
3.3 settings.json:TaoToken 统一 Key 与 API 通道
Claude Code 的配置文件在~/.claude/settings.json,项目级配置在.claude/settings.json。下面是把 TaoToken 统一 Key 和 API 通道写进去的片段:
{ "env": { "ANTHROPIC_BASE_URL": "https://taotoken.net/api", "ANTHROPIC_API_KEY": "sk-your-taotoken-key-here" }, "permissions": { "allow": [ "Read", "Grep", "Glob", "Bash(pnpm test:*)", "Bash(pnpm typecheck:*)", "Bash(pnpm lint:*)", "Bash(git status:*)", "Bash(git diff:*)" ], "ask": [ "Bash(git commit:*)", "Bash(git push:*)", "Edit(src/payments/**)" ], "deny": [ "Bash(rm -rf:*)", "Bash(curl:*)", "Bash(pnpm deploy:*)" ] } }这里有几个点要说明。ANTHROPIC_BASE_URL指向 TaoToken 的 API 入口,ANTHROPIC_API_KEY填你创建的 Key。permissions 里的 allow、ask、deny 有明确的评估顺序,deny 优先,然后是 ask,最后是 allow。
allow 里放的是只读操作和安全的测试命令,这些不需要每次批准。ask 里放的是提交、推送、修改支付目录这类需要人工确认的操作。deny 里放的是删除、外部请求、部署这类高风险命令。
如果你不想把 Key 写死在文件里,也可以用环境变量:
export ANTHROPIC_BASE_URL="https://taotoken.net/api" export ANTHROPIC_API_KEY="sk-your-taotoken-key-here"但环境变量的问题是每次开新终端都要重新设置,所以长期用还是推荐写进 settings.json,或者用 shell 的 profile 文件加载。
4. 验证请求:委派一次小任务,观察权限弹窗与子代理调用
配置写好了,接下来验证整条链路能不能跑通。我建议用一个真实的小任务来测,而不是跑一个 hello world。
4.1 准备一个可复现的小问题
在你的项目里找一个小的、有明确症状的 bug。比如某个函数在边界输入下返回了错误结果,或者某个测试用例一直失败。不要用支付这种复杂场景,先用一个单文件能定位的问题。
4.2 用委派式 prompt 发起任务
打开 Claude Code,输入这样的 prompt:
checkout 流程里,当用户使用过期银行卡时,支付确认阶段返回了通用错误。 相关代码大概率在 src/payments/,也可能牵涉 src/checkout/ 的状态流。 请调查根因,补一个能复现问题的测试,修复后运行相关测试。 完成后汇报根因、改动文件、测试命令和测试结果。注意这个 prompt 的结构:业务症状、可疑目录、任务目标、验证要求。它没有规定必须读哪个文件、必须跑哪条命令。
4.3 观察权限弹窗
Claude Code 开始工作后,你会看到它尝试调用工具。读文件、搜索、查看 git 状态这些 allow 里的操作会直接执行,不会弹窗。当它尝试修改src/payments/下的文件时,因为你在 ask 里配了Edit(src/payments/**),会弹出确认框。
这时候你可以观察它想改什么、为什么改。如果改动合理,批准;如果方向不对,拒绝并补充说明。这就是委派和遥控的区别:你不控制它读哪个文件,但你在关键动作上保留确认权。
4.4 观察子代理调用
如果你在 prompt 里明确要求先调查再修改,或者任务复杂度触发了子代理,你会看到 Claude Code 调用payment-investigator子代理。子代理会在独立上下文里跑搜索和读文件,完成后返回一份结论摘要。
主会话收到摘要后,再决定怎么实现修复。这个过程你可以通过 Claude Code 的输出看到子代理的调用记录和返回结果。
4.5 检查最终结果
任务完成后,Claude Code 应该给你一份报告,包含根因、改动文件、测试命令和测试结果。你可以对照检查:
- 根因是否合理,有没有证据支撑
- 改动是否最小化,有没有引入不必要的修改
- 测试是否真的能复现问题,修复后是否通过
- 有没有无法验证的地方被明确说明
如果报告里只有「已修复」三个字,没有测试输出和证据,说明你的 prompt 里验证要求还不够硬,下次把「贴出运行过的测试命令和结果」写得更明确。
5. 本篇常见错排查
5.1 权限弹窗太频繁,打断节奏
如果你发现每个文件修改都要确认,检查 settings.json 里的 allow 列表。把只读操作和安全的测试命令放进去,减少不必要的弹窗。但不要把Edit整个放进 allow,那样就失去了边界控制。
5.2 子代理没有被调用
子代理触发需要条件。如果你的 prompt 里没有明确要求调查,或者任务本身很简单,Claude Code 可能直接在主会话里完成。你可以在 prompt 里加一句「先用 payment-investigator 子代理调查根因,再决定修复方案」,显式触发。
5.3 API 请求失败,提示认证错误
先检查ANTHROPIC_BASE_URL是不是https://taotoken.net/api,注意不要带 UTM 参数。再检查 Key 是否有效,有没有多余空格。如果用的是环境变量,确认当前终端会话里变量已经生效。
5.4 CLAUDE.md 规则没生效
CLAUDE.md 要在项目根目录,文件名大小写要正确。如果规则太多,Claude 可能会忽略部分内容。建议把最重要的规则放在前面,保持文件简短。另外,CLAUDE.md 是项目级先验,不是硬性约束,它影响 Claude 尝试做什么,但不改变 Claude Code 允许它做什么。真正的硬边界在 permissions 里。
5.5 委派后结果发散,改了一堆不相关文件
这通常是 prompt 里约束不够。检查你的 prompt 有没有说明「不要重写支付抽象」「保持现有错误处理模式」这类边界。委派不是放任,上下文要厚,路径要薄。如果任务涉及多个模块,考虑拆成多个子任务,用子代理分别调查。
5.6 上下文被填满,后续推理变慢
长会话里,对话历史、文件内容、命令输出会逐渐填满 context window。如果发现 Claude Code 开始忘记早期指令,用/clear清理上下文,把核心目标重新整理成新 prompt 再开始。对于大代码库,多用子代理做调查,主会话只保留结论。
6. 接入与长期使用:按场景选对入口
排障和接入相关的问题,先去 API Keys 页面确认 Key 状态,再看接入文档核对配置格式。这两个入口能解决大部分「连不上」「认证失败」「配置不生效」的问题。
验证模型能力的时候,用模型对话入口直接测一轮,确认通道正常、响应符合预期,再回到 Claude Code 里跑任务。
如果你打算长期用 Claude Code 做编码和 Agent 任务,Coding Plan 更适合。它针对长期编码场景做了优化,不用每次单独配 Key,适合团队里多人共用一套通道的情况。
把 Claude Code 当同事委派,核心就三件事:CLAUDE.md 把项目级规则写清楚,subagents 把调查子任务隔离出去,permissions 把行动边界管住。剩下的,交给它在 agentic loop 里自己找路。你负责目标、约束和验收,它负责探索、执行和反馈。这样用下来,开发节奏会更像一次高质量的 pair programming,而不是你敲一行它动一下的遥控操作。