在聚合站上给 Claude Code 配自定义斜杠命令:展开后的提示词实际落到哪个模型
本文面向使用多模型聚合 API 的开发者,讲解如何在 Claude Code 中定义项目级斜杠命令(.claude/commands/*.md),并剖析命令展开后的提示词实际会被路由到哪个后端模型。文章强调通过显式指定 model 字段或路由策略,避免 /review 等关键命令被静默降级到低成本模型,确保代码审查等任务的输出质量。
为什么需要关心命令的落点
在聚合站上用一把 API key 调用多个模型时,Claude Code 的项目级斜杠命令(custom slash commands)会展开成一段提示词文本,然后交给后端路由。默认路由可能根据成本、负载或配置选择模型,而不是你心里预期的那个。如果不显式约束,/review 这类关键命令可能落到更便宜的模型上,导致审查深度不足、遗漏问题。
定义项目级斜杠命令
Claude Code 支持在项目根目录的 .claude/commands/ 下放置 Markdown 文件,文件名即命令名。例如创建 .claude/commands/review.md,内容就是命令展开后发送的提示词。
请审查当前 Git 暂存区的改动,重点关注:
- 逻辑错误与边界条件
- 安全风险(注入、越权、敏感信息泄漏)
- 性能隐患(N+1 查询、不必要的循环)
- 可读性与命名
按文件列出问题,并给出修改建议。
保存后,在 Claude Code 会话中输入 /review,就会把这段文本连同上下文发给后端。命令是项目级的,团队成员共享同一份定义。
展开后的文本如何被路由
斜杠命令本身只是文本模板。真正决定模型的是请求中的模型标识或路由策略。在聚合站场景下,常见有两种路径:
- 显式指定模型:在命令定义或调用配置中写明目标模型,请求会直接发往该模型。
- 交给聚合站默认路由:请求不带明确模型偏好,由聚合站根据规则选择后端。规则可能考虑价格、可用性、限流等因素,不保证与命令的重要性匹配。
因此,/review 展开后的提示词是否落到你期望的模型,取决于你是否在命令或会话层显式约束了模型。
避免关键命令被静默降级
在命令定义中标注目标模型
可以在命令 Markdown 里用注释或约定字段声明期望模型,并在调用侧读取。例如:
<!-- model: claude-3-5-sonnet -->
请审查当前 Git 暂存区的改动……
然后在包装脚本或 Claude Code 配置中解析该字段,将请求发往对应模型。这样命令文本和模型意图保持在一起,减少误配。
区分命令的模型档位
把命令按重要性分档:
- 高价值命令(代码审查、架构设计、安全审计):显式绑定能力更强的模型。
- 低价值命令(格式化提示、简单查询):允许走默认路由或低成本模型。
用一个映射表管理命令到模型的对应关系,比依赖默认路由更可控。
在会话层固定模型
如果 Claude Code 支持在会话或请求级别指定模型,在调用 /review 前显式设置模型,而不是依赖聚合站的兜底选择。对于批量或脚本化调用,把模型参数写死在请求里。
验证落点
聚合站通常会在响应中返回实际使用的模型标识。养成检查响应元数据的习惯:
- 对比请求中声明的模型与响应中的模型是否一致。
- 对关键命令做一次抽样调用,确认没有落到非预期模型。
- 在命令输出开头要求模型自报身份(如“请先说明你使用的模型名称”),作为辅助校验。
成本与质量的权衡
聚合站按官方价 ×1.3 扣费,贡献 key 按 ×1.1 或 ×1.2 返 USDC。这意味着不同模型的相对成本关系仍然保留。把 /review 这类命令绑定到能力更强的模型,是为了质量;把简单命令留给低成本模型,是为了控制开销。关键是不让路由替你决定,而是你显式决定。
小结
项目级斜杠命令只是提示词模板,真正的模型选择发生在路由层。在聚合站上使用一把 key 调多模型时,务必对关键命令显式指定模型,并通过响应元数据验证落点。这样既能利用多模型聚合的灵活性,又能避免 /review 被静默降级到不合适的后端。