
给 WMS 防超卖架构找灵感之前先把 Claude Code 的通道换成 TaoTokenhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 。这一步不是走形式——官方额度见底、多把 Key 轮换、切一次模型就重开会话任何一件事都能让一场持续两三个小时的架构风暴断在第七张卡片上。通道固定之后再让 Claude Code 扮演蓝军指挥官和创新黑客从痛点、AI 融合、灾难、反共识四个维度各出 3 张点子卡片凑满 12 张然后逼它做 3 道二选一最后收敛成 12 条能落地的 WMS 架构铁律。这个流程本身跟模型无关但换供应商会丢上下文、换 Key 会让会话记不上账所以先把 Base URL 填成 https://taotoken.net/api 再开工省下来的时间全花在库存模型上。这一篇不聊怎么装 Claude Code也不重复它的方法论只盯住接入这一环把模型通道接稳让 WMS 的讨论一路推到底。至于防超卖的业务逻辑、库存账本口径、对账规则仍然由你和 Claude Code 一起推演通道只负责把每一次提问稳定送出去、把结果稳定带回来。1. 从 settings.json 接上 TaoToken把 WMS 风暴的通道固定下来动手之前先把一个误区说清楚很多人把「接入」理解成随手粘一个地址结果半路遇到 404回头排查花了四十分钟比配置本身贵得多。Claude Code 读的是三个环境变量其中ANTHROPIC_BASE_URL决定请求发到哪ANTHROPIC_AUTH_TOKEN决定用哪把 KeyANTHROPIC_MODEL决定这轮对话用哪个模型。三个值各就各位后面的 12 张卡片才不会被无名错误打断。1.1 先在模型广场拿 Key 和模型 ID打开 TaoToken 注册并登录进控制台创建一个 API Key。Key 通常是明文只显示一次复制后立刻贴进密码管理器或者本地.env别留在浏览器的临时剪贴板里。顺手在模型广场确认这次要用的模型 ID 长什么样——复制整串不要凭记忆敲也别自己给它拼日期后缀那些后缀不一定是真实可调用的标识。Key 建好之后先别急着填进 Claude Code。建议先在模型对话页里用同一把 Key 发一条短消息确认这把 Key 是活的、能出字。这一步花不了一分钟但能把「Key 本身有问题」和「Claude Code 配置有问题」两类故障彻底分开——后面排障时你会感谢自己做过这一步。1.2 环境变量与 ~/.claude/settings.json 两份写法临时用一次直接在终端里导出变量关掉窗口就失效适合先试通再说export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_AUTH_TOKENYOUR_API_KEY export ANTHROPIC_MODELYOUR_MODEL_ID claude想让它长期生效就写进 Claude Code 的配置文件~/.claude/settings.json。注意env这一层不能少变量名也不能改{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: YOUR_MODEL_ID } }Windows 下用 PowerShell 临时设置的话写法是这样同样三个变量$env:ANTHROPIC_BASE_URLhttps://taotoken.net/api $env:ANTHROPIC_AUTH_TOKENYOUR_API_KEY $env:ANTHROPIC_MODELYOUR_MODEL_ID两个地方要特别盯住。第一Base URL 末尾不要带/v1填https://taotoken.net/api就够多一段路径大概率换来 404。第二不要把带 UTM 参数的官网地址那个是给人点的落地页粘进ANTHROPIC_BASE_URL工具只认接口地址。分清「网页地址」和「接口地址」能省掉一次完整的排查。变量填什么常见错法ANTHROPIC_BASE_URLhttps://taotoken.net/api末尾加 /v1、填官网落地页ANTHROPIC_AUTH_TOKENYOUR_API_KEY粘成别的平台的 Key、多了空格ANTHROPIC_MODEL模型广场复制的 ID手敲 ID、自造后缀2. 让 Claude Code 当蓝军指挥官先把 WMS 的边界喂清楚Claude Code 在这个流程里的定位是「蓝军指挥官 创新黑客」它负责提出你不爱听的方案、指出你方案里的裂缝而不是替你拍板。想让它真的像个对手前提是把约束条件写死否则它会给你一堆放之四海皆可、放到你的系统里就崩的通用建议。2.1 一段可复用的 WMS 背景提示词第一轮不要问答案先让它复述约束、暴露信息缺口。这段可以直接改数字复用你在帮我设计一套高并发 WMS 的防超卖方案身份是挑毛病的蓝军不是执行者。 背景约束 - 业务电商大促峰值下单 QPS 记作 N涉及 SKU 数量记作 M - 库存权威源单一数据库账本先把方案建立在这个前提上 - 已有组件Redis 做缓存、MQ 做异步、关系库做账本 - 目标不允许超卖允许一部分请求被明确拒绝 - 约束不引入新中间件除非你能讲清楚它的运维代价 这一轮不要给方案。先复述我的约束再列出你还缺的三个关键信息。把 N 和 M 换成你自己的量级效果会明显不同。给它「峰值 QPS 五位数、SKU 六位数」这种具体描述它才会考虑热点 Key 和行锁排队只说「高并发」它给你的东西通常是教科书答案。2.2 4 维度 12 卡片的任务模板第二轮才让它发散但要限定格式否则输出会散成散文。四行结构很关键——触发条件、后果、最小验证动作缺了最后一行卡片就只是口号。请从四个维度各输出 3 张点子卡片共 12 张 1. 痛点当前结构里最容易出现超卖的环节 2. AI 融合AI 能切进哪一步人在哪一步签字确认 3. 灾难一次真实事故的完整链路从第一个异常到库存击穿 4. 反共识被广泛推荐、但在高并发下会害人的做法 每张卡片固定四行 - 卡片名不超过 12 个字 - 触发条件 - 不处理会发生什么 - 最小验证动作一条只读查询或一个压测脚本思路 这一轮不要写代码等我挑完卡片再展开。强调「只读查询」是有原因的Claude Code 生成的是查询语句本身执行要由你在自己的只读从库或本地环境里做再把结果贴回对话让它分析。任何把它接到生产库上跑写操作的想法都应该在这一步就掐掉。3. 前 6 张卡片痛点维度与 AI 融合维度前六张卡片的共性是「现状诊断」它们的作用不是发明新架构而是把已经埋着的雷一个个标出来。这个阶段最容易犯的错是看到卡片就改代码正确做法是先攒够 12 张再看它们之间的冲突。3.1 痛点维度的 3 张卡片怎么读痛点卡片通常会落到三个位置。第一张多半是扣减时序读库存、判断、再写回这三步之间存在时间窗两个请求同时读到「还剩 1 件」就会各写一次。第二张一般是缓存与账本不同步缓存里显示有货、账本已经扣完用户下单失败但页面还在骗他。第三张往往是热点 SKU 行锁单个爆款把所有并发压到同一行记录上排队时间一长超时重试反过来放大压力。读这三张卡片时别急着接受它的措辞先追问一句「这条在我的业务里有对应的监控指标吗」。如果答不上来说明这不是一张可落地的卡片而是一句正确的废话。让 Claude Code 给每张痛点卡片配一条只读查询由你在本地跑一遍看真实数据里这个窗口到底有多宽。3.2 AI 融合维度的 3 张卡片要防什么AI 融合卡片最诱人也最危险。合理的落点通常是三个用 AI 做超卖工单的归因建议、用 AI 生成压测脚本骨架、用 AI 审对账口径。这三个都属于「生成物交给人执行」的范畴——它给你脚本、给你查询、给你归因假设执行和验证始终在你手里。不合理的落点是让 AI 直接参与扣减决策。库存扣减是确定性逻辑路径上多一个模型调用就多一个不可控的延迟和失败点。所以看到「让 AI 判断这次要不要放行」这类卡片时直接在对话里否掉并让 Claude Code 说明为什么被否——这条否定记录后来往往会变成 12 条铁律里的一条。4. 后 6 张卡片灾难维度与反共识维度后六张卡片是这套流程真正的价值所在。痛点卡片告诉你哪里可能出事灾难卡片告诉你出事后会怎么蔓延反共识卡片则逼你承认有些你一直当成最佳实践的做法在你的量级下并不成立。4.1 灾难维度的 3 张卡片要写到什么颗粒度合格的灾难卡片必须能画出完整链路。比较典型的三种MQ 消费失败后无限重试补偿任务被反复触发库存被重复扣减缓存失效瞬间大量请求穿透到账本账本被打挂之后所有扣减全部失败监控只看 QPS 和成功率超卖笔数没有独立指标出事两天后才由客服反馈暴露。判断颗粒度的标准很简单——读完之后你能不能照着它写出一段复现步骤。如果只能读出「要重视消息重试」这种结论就让 Claude Code 把第 3 张卡片重写到「从第一个消费失败到库存击穿中间经过哪几个组件、各停留多久」的粒度。4.2 反共识维度的 3 张卡片最值得留在会议室里反共识卡片是这一轮里唯一会引发争论的部分也是最有用的部分。常见的三张是把 Redis 的原子递减当成不超卖的充分条件——它只保证单次操作原子不保证跨步骤的一致性「先扣库存再支付」被当成金科玉律但在支付成功率不高的场景里预占加超时释放反而更省库存限流被当成防超卖的兜底可限流只管入口速率管不了重复请求。这三张卡片不要当场下结论。让 Claude Code 针对每一条写出「什么业务形态下这个反共识成立、什么形态下不成立」把成立条件留下来。后面收敛铁律时这些成立条件会直接变成铁律的边界说明。5. 从 12 张卡片逼出 3 道二选一再收敛 12 条铁律12 张卡片放在一起一定会互相打架。冲突不是问题把冲突藏起来才是问题。这一步的任务是让 Claude Code 主动把矛盾挑明做成二选一逼你在有代价的选项之间站队。5.1 三道二选一怎么问才有结论常用的问法是这样关键在最后两问副作用和十倍量级下的有效性。从上面 12 张卡片里挑出冲突最大的三组每组做成一个二选一 - 选项 A 的适用边界 - 选项 B 的适用边界 - 选 A 之后最先出现的三个副作用 - 如果一年后业务量涨十倍这个选择还成立吗 每组给出你的倾向并附一句理由不要模棱两可。实践中最常出现的三组二选一是预占库存还是下单即扣单库强一致还是分片加对账同步扣减还是异步扣减加结果查询。这三组没有普适答案但当 Claude Code 把边界和副作用摆出来之后你至少知道自己承担的是什么代价而不是在出事故时才发现代价。5.2 12 条铁律的写法动作 边界 指标二选一站完队最后一轮把整个对话收敛成铁律。铁律和原则的区别在于可 review每条都能在代码评审里被引用、被质疑、被推翻。让 Claude Code 按下面的格式输出不许出现「尽量」「建议」这类软化词。把前面对话收敛成 12 条架构铁律每条写三段 - 动作谁在什么时机做什么 - 边界什么情况下这条不适用 - 指标出问题时从哪个面板能看出来 语言必须是可执行的祈使句不许出现「尽量」「建议」「考虑」。收敛出来的 12 条大致长这个样子你可以拿它对照自己的系统看哪几条已经在做、哪几条完全空缺库存扣减只有一个入口库存账本只有一个权威源每一次扣减必须携带幂等键缓存只做加速、不做账本热点 SKU 单独隔离超时不等于失败必须有对账兜底每一个「回滚」都要写清补偿边界预占与实扣分离且各自有超时读路径可以走副本写路径不许分叉限流放在入口不放在扣减处监控的北极星是超卖笔数而不是 QPS每条铁律都要有一条对应的可观测指标。6. 验证与收尾确认这次 WMS 风暴记在了哪把 Key 上铁律写完不算结束还得回头确认通道这一路是干净的。三个小时里如果中间悄悄回落到别的通道或者 Key 用错你连这次架构风暴的用量记录都对不上。6.1 最小连通性测试与快捷启动方式最省事的验证办法是重新开一个 Claude Code 会话只问一句话「只回四个字通道正常」。如果它正常回字说明 Base URL、Key、模型 ID 三个值都对上了。这句话的好处是不涉及任何业务上下文纯粹测连通性。如果你更想用一条命令把参数带起来可以用官方 CLI 的方式启动npm install -g taotoken/taotoken taotoken cc -k YOUR_API_KEY -u https://taotoken.net/api -m YOUR_MODEL_ID注意这里的-u同样是接口地址末尾不带/v1也不要带任何查询参数。CLI 只是把三个环境变量替你填了一遍本质和手写settings.json是一回事。6.2 三个典型报错对照第一种是 401 或authentication_error。绝大多数情况是 Key 粘错、多了空格或者settings.json里的env覆盖了你在终端里导出的变量。先echo $ANTHROPIC_AUTH_TOKEN看一眼当前生效的值再决定改哪一层。第二种是 404 或提示找不到接口。几乎可以确定是 Base URL 多写了/v1或者把带 UTM 的官网落地页粘了进去。正确值只有一个https://taotoken.net/api 。第三种是模型不存在。别怀疑通道直接回模型广场把 ID 复制一遍贴进去手敲的 ID 出现大小写或连字符差异的概率高得惊人。6.3 把铁律贴回仓库再回控制台对一次账12 条铁律不该只留在对话里。挑其中能被代码评审引用的部分写进仓库根目录的一份docs/architecture-rules.md每条附上触发它的那张卡片编号这样半年后有人质疑某条规则时你还能翻回当时的推演过程。接着回到 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 看一眼控制台的调用记录确认这次架构风暴的消耗都记在同一把 Key 上。如果后面还要继续做防超卖的压测方案和故障演练可以顺手打开 Coding Plan 看套餐是否够用需要给团队其他人各发一把 Key在 控制台 API Keys 里创建想先用对话方式验证某条铁律的边界直接进 模型对话 拿同一把 Key 试ANTHROPIC_*三个变量的完整对照见 Claude Code 接入文档。回头看这套流程真正的分水岭不在提示词写得多漂亮而在第 7 张卡片出现时通道还在不在。通道稳12 张卡片、3 道二选一、12 条铁律就能一口气推到底通道不稳你会把一半精力花在重开会话和重述背景上。先把 Key 和 Base URL 这两件事做完剩下的交给蓝军指挥官。