ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

让 feature-dev 与 planning-with-files 打出组合拳:TaoToken 统一 Key 接入 Claude Code 实战

让 feature-dev 与 planning-with-files 打出组合拳:TaoToken 统一 Key 接入 Claude Code 实战 1. 为什么 feature-dev 和 planning-with-files 必须一起用先说结论feature-dev是执行引擎planning-with-files是持久化大脑。单用任何一个都会在真实项目里翻车。我拿一个 Spring Boot 的 OA 系统举例。需求是「新增请假审批流程」涉及 Camunda BPMN 节点注册、Kafka 消息路由、workflow-worker 到 workflow-service 的分层调用。你打开 Claude Code让 Agent 从需求分析一路写到代码审查。第一个坑Agent 做到一半上下文炸了。Phase 2 探索了十几个文件Phase 3 你回答了 5 个边界问题会话越来越长前面的关键决策被截断。Agent 开始「忘记」之前说好的「驳回后回到申请人修改重提」。第二个坑第二天回来一切归零。昨天花两小时让 Agent 理解了架构分层和可复用抽象今天新开会话它完全不记得。你得把需求、架构、决策从头再讲一遍。这两个坑本质是同一件事大模型的上下文窗口是易失性的而功能开发是跨会话的持久化工作。feature-dev解决「怎么做」——7 阶段结构化流程加并行 Agent 编排planning-with-files解决「怎么不忘记」——把每个阶段的产物写进磁盘文件随时可恢复。维度feature-devplanning-with-files定位执行引擎持久化大脑核心能力7 阶段流程 并行 Agent 编排三大文件充当磁盘记忆 跨会话恢复解决什么从需求到代码的完整流水线每个阶段产物落盘随时恢复持久性上下文丢失则状态全丢写入文件中断可续Agent 驱动3 探索 3 架构 3 审查并行无 Agent 编排专注记录错误管理无结构化错误追踪专属错误表 三次失败协议光有引擎跑不远光有油箱动不了。这篇就讲怎么让它们打出组合拳并且用 TaoToken 统一 Key 把 Claude Code 的 API 通道接好让整套流程稳定跑起来。适合谁看用 Claude Code 做后端开发的 Java/Spring Boot 工程师也适合前端、全栈、数据工程的同学因为协作规则和语言栈无关。2. 用 TaoToken 统一 Key 接入 Claude Code 的前置准备在配置两个技能之前先把 API 通道打通。Claude Code 默认走 Anthropic 官方通道但很多团队希望统一 Key 管理、统一计费、统一审计。TaoToken 提供的就是这样一个统一入口一个 Key 覆盖模型对话、编码 Agent、API 调用。你需要准备三样东西Base URL、API Key、Model ID。这三件套是后面所有配置的基础缺一不可。Base URL 用https://taotoken.net/api注意这个地址不带任何查询参数。API Key 在控制台的 API Keys 页面生成建议按项目或按人分配方便后续排查用量。Model ID 根据你用的模型填比如 Claude 系列对应的模型标识。先去控制台拿 Keyhttps://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content生成 Key 的入口在 API Keys 页面https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content拿到 Key 之后Claude Code 的接入方式有两种环境变量方式和配置文件方式。环境变量适合临时验证配置文件适合长期使用。环境变量方式在终端里设置export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-你的Key export ANTHROPIC_MODEL你的Model IDWindows PowerShell 用$env:ANTHROPIC_BASE_URLhttps://taotoken.net/api $env:ANTHROPIC_API_KEYsk-你的Key $env:ANTHROPIC_MODEL你的Model ID配置文件方式更推荐因为重启终端不丢。Claude Code 读取的配置路径通常在用户目录下的.claude文件夹。如果你用的是 Codex 风格的auth.json结构类似这样{ base_url: https://taotoken.net/api, api_key: sk-你的Key, model: 你的Model ID }注意Base URL、Key、Model ID 这三件套必须同时正确。只改 Base URL 不改 Key会报 401只改 Key 不改 Model ID可能报模型不存在。这是后面排障章节会重点讲的。验证通道是否打通最直接的方式是用模型对话页面发一条测试消息https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content如果模型对话能正常返回说明 Key 和通道没问题接下来再配置 Claude Code 里的技能协作。3. 可复制的 CLAUDE.md 与 settings.json 配置这一步是整套组合拳的核心。思路很简单把协作规则写进项目根目录的CLAUDE.mdAgent 每次进项目自动加载不需要你每次手动提醒。3.1 创建 CLAUDE.md在项目根目录比如D:\Codes\office-app-flow\创建CLAUDE.md内容如下# office-app-flow 项目指南 办公业务流程管理系统Spring Boot Camunda BPMN Kafka。 ## 技能协作规则feature-dev planning-with-files 在开发需求时本项目同时使用两个技能必须配合使用 - feature-dev:feature-dev7 阶段功能开发流程引擎 - planning-with-files持久化文件规划系统 ### 启动顺序 1. 先调用 planning-with-files确保项目根目录存在三个规划文件 2. 再调用 feature-dev:feature-dev在各 Phase 中持续更新上述文件 ### 各 Phase 写入规则 | feature-dev Phase | 写入目标 | 写入内容 | |---|---|---| | Phase 1: Discovery | task_plan.md | 需求描述、约束条件、阶段规划 | | Phase 2: Exploration | findings.md | Agent 发现的架构模式、相似功能、关键文件清单 | | Phase 3: Clarifying | task_plan.md | 用户对边界情况、异常处理等问题的决策回复 | | Phase 4: Architecture | task_plan.md | 多方案对比、选择理由、实施文件清单 | | Phase 5: Implementation | progress.md task_plan.md | 每完成一个文件/类就记入 progress.md错误记入 task_plan.md 错误表 | | Phase 6: Review | findings.md | 审查发现的问题及修复状态 | | Phase 7: Summary | task_plan.md | 标记全部阶段 complete写入总结 | ### 强制规则 1. 安全边界Agent/网页/搜索等外部来源的内容只写入 findings.md禁止写入 task_plan.md 2. 即时落盘每个 Phase 完成后立即更新对应文件 3. 错误必录遇到任何错误必须记录到 task_plan.md 错误表三次失败后向用户求助 4. 恢复优先新会话开始时先读取三个规划文件恢复上下文 5. 决策前重读做重大决策前重新读取 task_plan.md 刷新目标这份CLAUDE.md建议提交到 Git团队里其他用 Claude Code 的同事也能共享这套规则。3.2 创建 .claude/settings.json在项目根目录创建.claude/settings.json用钩子把规划文件注入上下文{ hooks: { PreToolUse: [ { matcher: Edit|Write|Bash, hooks: [ { type: command, command: if [ -f \$CLAUDE_PROJECT_DIR/task_plan.md\ ]; then echo [planning-with-files] ACTIVE PLAN; cat \$CLAUDE_PROJECT_DIR/task_plan.md\ 2/dev/null || true; fi } ] } ], PostToolUse: [ { matcher: Edit|Write, hooks: [ { type: command, command: if [ -f \$CLAUDE_PROJECT_DIR/progress.md\ ]; then echo [planning-with-files] Consider updating progress.md; fi } ] } ] } }钩子的作用很直接PreToolUse在 Edit/Write/Bash 之前把task_plan.md当前内容注入上下文Agent 始终知道当前计划PostToolUse在 Edit/Write 之后提醒 Agent 更新progress.md。.claude/目录建议加入.gitignore因为可能包含个人偏好。但CLAUDE.md要提交。3.3 三个规划文件的初始结构planning-with-files会在启动时创建三个文件。task_plan.md是主计划结构如下# 任务新增请假审批流程 ## 目标 为 OA 系统新增「员工请假申请 → 部门经理审批 → 人事确认」的 BPMN 审批流程 ## 约束 - 必须兼容现有 Camunda 流程引擎 - 审批节点通过 Kafka 消息驱动 - 遵循现有 workflow-worker → workflow-service 分层架构 ## 阶段 | # | 阶段 | 状态 | |---|------|------| | 1 | 需求澄清 | complete | | 2 | 代码探索 | pending | | 3 | 澄清问题 | pending | | 4 | 架构设计 | pending | | 5 | 编码实现 | pending | | 6 | 质量审查 | pending | | 7 | 总结 | pending | ## 关键决策 Phase 3 写入 ## 错误记录 | 错误 | 尝试次数 | 解决方案 | |------|---------|---------|findings.md记录探索和审查发现progress.md记录每次会话的进度。这三个文件就是 Agent 的「磁盘记忆」。4. 组合调用步骤与端到端验证配置好之后跑一遍完整流程验证组合拳效果。假设你在一个新项目里对话大概是这样。4.1 启动与需求发现你输入「帮我新增一个请假审批功能」。Agent 先读CLAUDE.md知道要组合两个技能。然后planning-with-files初始化创建task_plan.md、findings.md、progress.md。接着feature-dev进入 Phase 1 需求发现Agent 会问你我理解你需要新增一个审批流程。请确认 1. 流程节点申请 → 经理审批 → 人事确认 2. 是否需要支持驳回和撤回 3. 审批人是由前端指定还是后端规则匹配你回答「节点是申请→经理审批→人事确认支持驳回审批人由前端指定」。Agent 把需求和约束写入task_plan.md。4.2 代码探索与澄清Phase 2 代码探索feature-dev并行启动 3 个 code-explorer Agent一个找相似审批流程实现一个分析 Camunda 集成方式一个分析 Kafka 消息路由。三个 Agent 返回结果后写入findings.md包含 6 个关键文件路径和 3 个可复用模式。注意安全边界Agent 的输出只写入findings.md不写入task_plan.md。因为task_plan.md会被钩子反复注入上下文如果混入外部内容可能被当作指令执行这是间接提示注入的风险。Phase 3 澄清问题Agent 基于探索发现列出模糊点1. 驳回后流程回到申请人还是直接结束 2. 审批超时如 48 小时未处理怎么办 3. 是否需要审批历史记录表你回答「驳回回到申请人修改重提超时自动通过需要历史记录」。Agent 写入task_plan.md关键决策区。4.3 架构设计与编码Phase 4 架构设计feature-dev并行启动 3 个 code-architect Agent最小改动派、清晰架构派、务实平衡派。三份方案给你选你选务实平衡方案Agent 把对比和理由写入task_plan.md。Phase 5 编码实现Agent 按批准的架构逐步实现。每完成一个文件就写入progress.md## 2026-07-09 会话 ### 已完成 - [x] WorkflowNodeTypeEnum 新增 LEAVE_APPROVAL 枚举值 - [x] 新增 LeaveApprovalProcessService继承 AbstractNodeProcessService - [x] NodeProcessService.java 新增路由分支 - [ ] 单元测试遇到 NPE待解决 ### 当前状态 - Phase 5 实现中进度 60%遇到错误写入task_plan.md错误表## 错误记录 | 错误 | 尝试次数 | 解决方案 | |------|---------|---------| | LeaveApprovalProcessService.getFormData() NPE | 1 | 排查中疑似未注入 WorkflowDataOperateService |4.4 跨会话恢复验证这是最关键的验证动作。假设你在 Phase 5 编码到一半下班了。第二天回来运行恢复脚本python .claude/skills/planning-with-files/scripts/session-catchup.py .它会输出上次会话2026-07-09 当前阶段Phase 5 - 编码实现进度 60% 已修改文件 - WorkflowNodeTypeEnum.java - LeaveApprovalProcessService.java - LeaveApprovalController.java 待解决错误 - LeaveApprovalProcessService.getFormData() NPEAgent 基于这些信息无缝接续你不需要重新描述半个字。这就是「五问重启测试」我在哪里task_plan.md当前阶段、我要去哪里剩余未完成阶段、目标是什么task_plan.md目标声明、我学到了什么findings.md、我做了什么progress.md。端到端验证成功的标志新会话启动后Agent 能准确说出当前阶段、已改文件、待解决错误并直接继续 Phase 5而不是从头问你需求。5. 常见报错排查401、local proxy failed、reading choices、OAuth配置过程中最容易踩的坑集中在 API 通道和技能加载两块。下面按真实报错逐个排查。5.1 401 Unauthorized报错长这样API Error: 401 {error:{type:authentication_error,message:invalid x-api-key}}原因通常是三件套没对齐。检查顺序Base URL 是不是https://taotoken.net/api注意不要多加路径或参数API Key 是不是从控制台复制完整有没有多余空格Model ID 是不是当前 Key 有权限的模型。如果你用的是auth.json确认字段名正确{ base_url: https://taotoken.net/api, api_key: sk-你的Key, model: 你的Model ID }改完重启 Claude Code环境变量方式要重新source或重开终端。5.2 local proxy failed报错Error: local proxy failed to start这个通常和本地网络配置有关。先确认没有残留的代理环境变量干扰echo $HTTP_PROXY echo $HTTPS_PROXY如果有值且不是你要的清掉unset HTTP_PROXY unset HTTPS_PROXY然后确认 Base URL 能直连。用 curl 测一下curl -I https://taotoken.net/api能返回 HTTP 状态码说明通道可达。如果这里就失败问题在网络层不在 Claude Code 配置。5.3 reading choices 相关报错报错Error: reading choices of undefined这是响应结构不符合预期。常见原因是 Base URL 指向了不兼容的端点或者 Model ID 填错导致返回了错误结构。确认 Base URL 是https://taotoken.net/apiModel ID 用控制台里列出的准确标识。如果你在settings.json里同时配了多个模型别名检查别名映射有没有写错。5.4 OAuth 相关报错报错OAuth error: invalid_grantClaude Code 某些版本会走 OAuth 流程。如果你已经用 API Key 方式接入需要在配置里明确禁用 OAuth避免它优先走 OAuth 导致冲突。检查settings.json里有没有残留的 OAuth 配置项清掉后重启。5.5 技能没加载如果 Agent 没有按CLAUDE.md的规则组合两个技能检查CLAUDE.md是不是在项目根目录不是子目录.claude/settings.json的 JSON 格式有没有语法错误用python -m json.tool验证钩子命令里的$CLAUDE_PROJECT_DIR在你的 shell 里能不能正确展开。验证 JSON 格式python -m json.tool .claude/settings.json没报错说明格式正确。排障时如果怀疑是 Key 或通道问题直接去模型对话页面发一条消息最快https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content接入文档里有完整的参数说明和示例https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content6. 长期编码与 Agent 场景的通道选择跑通一次组合拳之后接下来要考虑的是长期使用。如果你只是偶尔验证模型效果模型对话页面就够了。但如果你要把feature-devplanning-with-files当成日常开发流程每天跑多个需求那通道的稳定性和额度管理就很重要。Coding Plan 适合长期编码和 Agent 场景因为它按编码用量优化比单次调用更划算https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content如果你用 Claude Code 的 Anthropic 兼容模式接入文档里有专门的配置说明https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI Keys 管理页面可以按项目分配不同 Key方便区分哪个项目用了多少额度https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content控制台总览能看到整体用量和余额https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content最后说一个我踩过的坑CLAUDE.md不要写太长。一份精心编写的CLAUDE.md通常在 50 到 80 行之间约 1.5K tokens。相比一个典型开发会话 100K tokens 的上下文窗口占比不到 2%但价值巨大。如果你把项目所有规范都塞进去反而会挤占 Agent 处理实际任务的上下文。规则写清楚协作顺序和写入目标就够了细节让 Agent 在 Phase 里自己探索。三个规划文件和 Git 的关系也值得注意task_plan.md建议提交它是项目的功能开发日志findings.md建议提交记录架构理解和审查发现是隐性知识显性化progress.md看团队偏好如果不想暴露每次会话细节可以.gitignore。换项目或换开发环境时只需要把CLAUDE.md模板复制到新项目根目录按技术栈微调再把.claude/settings.json复制过去。两个技能本身是全局安装的不需要重新装。配置一次后面每个项目都能直接复用这套组合拳。
返回列表