这条 Reddit 帖子给出了把 Claude Code 的自定义子代理或全部子代理指向 Haiku 5.5 的实际配置,但作者后来发现全局强制覆盖会误伤本来需要 Opus 的实施任务,因此更适合只给搜索、读取和可验证的机械任务指定 Haiku,并单独核对 API 价格与 Claude Code 订阅用量。
适合的任务:代码库搜索、读取文件、查找调用关系、模式匹配、摘要和其他可以由更大模型复核的机械性子任务。
不适合的任务:未经评测就把所有 Explore、Plan、实施和审查子代理强制切到 Haiku;需要复杂判断、架构设计或高质量实现的任务应保留独立的模型和 effort 配置。
适用的模型版本:Claude Haiku 5.5;原帖称 Claude Code 2.1.293 起 haiku 别名指向 Anthropic API 上的 Haiku 5.5。别名和固定模型 ID 的行为应以当前运行结果核对。
适用的客户端、Agent 或 API:Claude Code 自定义子代理、Explore/Plan 子代理和 settings.json 环境变量;原帖讨论的是 Anthropic API 价格,但操作入口是 Claude Code。
推荐的推理档位和参数:只读 explorer 示例使用 effort: low;原帖没有给出统一参数。主模型、实施子代理和高风险任务应保留独立配置,不要因为价格低就全局覆盖。
原帖给出的做法是在自定义子代理的 frontmatter 添加 model: haiku:
model: haiku原帖说明,从 Claude Code 2.1.293 起该别名指向 Anthropic API 上的 Haiku 5.5;这条版本和别名信息是作者在帖子中的陈述,应在实际运行的 usage 输出中再次确认。
原帖给出的 settings.json 环境变量是:
"env": {
"CLAUDE_CODE_SUBAGENT_MODEL": "haiku",
"CLAUDE_CODE_SUBAGENT_MODEL_FORCE": "1"
}作者说明,如果没有第二行,Explore 和 Plan 会忽略该设置;设置第二行后,连显式分配给更大模型的子代理也会被覆盖。作者回顾自己两周内启动的 129 个子代理,只有 2 个是 Explore,大部分是希望继续使用 Opus 的实施任务,因此最终选择只在研究子代理中写 model: haiku,没有启用全局 FORCE。
评论者 u/zaibatsu 给出了一个完整的 .claude/agents/explorer.md:
---
name: explorer
description: Read-only codebase search. Finds functions, reads files,
greps patterns. Never edits.
tools: Read, Glob, Grep
model: claude-haiku-5-5
effort: low
---
You are a read-only explorer. Answer with file:line references and
short quotes. If you did not find it, say so. Never guess, never edit.同一评论建议固定完整模型 ID,避免别名在版本变化时指向不同模型;在主会话中使用类似下面的调用意图:
use the explorer agent to map every caller of X.该 explorer 的边界是只读、只使用 Read、Glob、Grep,返回文件和行号及短引文,不编辑文件,也不猜测未找到的内容。
先确认当前 Claude Code 版本、实际服务商和 usage 输出中的模型 ID;帖子中的 haiku 别名指向关系属于作者自报。
为搜索或读取任务创建单独的 .claude/agents/*.md,仅授予所需工具,并在 frontmatter 指定 model: haiku 或固定 model: claude-haiku-5-5。
给只读子代理写清楚输出格式,例如文件路径、行号、短引文和“未找到就明确说明”;不要让它承担实施或架构判断。
在主会话中显式调用该研究子代理,记录实际服务模型、effort、工具调用数、上下文大小、输入/缓存读取/输出 token 和任务结果。
只有在确认所有子代理都适合使用 Haiku 时,才在 settings.json 中考虑 CLAUDE_CODE_SUBAGENT_MODEL_FORCE。先在测试项目中验证 Explore、Plan 和显式指定更大模型的子代理是否被覆盖。
实施、审查和复杂判断任务单独配置 Sonnet 或 Opus;不要用全局 FORCE 覆盖这些任务。原帖作者的两周统计正是因为实施子代理占多数而放弃 FORCE。
如果上下文接近 100k,缩小仓库范围、减少工具、开启新会话或将旧工具结果压缩成摘要,再比较重跑成本和返工成本。
对同一任务记录 API 账单和 Claude Code 订阅用量,分别计算,不要把每百万 token 的服务商价格直接换算成订阅额度消耗。
帖子中的 API 价格:作者写的是 Haiku 5.5 在提示词不超过 100k token 时为 $0.10/$0.50 每百万 token,超过 100k 时为 $0.50/$2.50;Opus 5.5 为 $4/$20。原帖没有提供账单或独立价格核验,本文只按原帖记录。
100k 门槛:原帖明确把 Haiku 5.5 的价格分成不超过和超过 100k token 两档;超过门槛后,输入、输出和缓存计费的实际计算仍应以目标 API 供应商当前价目表为准。
Claude Code 内置 Explore:作者称内置 Explore 不再使用 Haiku,而是使用主模型;如果主模型是 Opus 5.5,每次 Explore 都会走 Opus。该说法是帖子中的环境观察,不是本条独立验证的产品规范。
单代理配置:model: haiku;完整示例还包含 tools: Read, Glob, Grep、model: claude-haiku-5-5 和 effort: low。
全局配置:CLAUDE_CODE_SUBAGENT_MODEL=haiku;CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1。
作者后续选择:两周内 129 次子代理启动,只有 2 次 Explore;由于主要是实施任务,作者改为只给研究子代理设置 model: haiku。
评论者工作流:以 Opus 作为 driver、Sonnet 作为中间层、Haiku 作为可验证机械任务的低价层;评论者建议把“是否能用 grep、diff 或测试机械验证”作为路由条件。这是评论者工作流,不是受控测评。
原帖只证明作者和评论者在各自 Claude Code 工作流中尝试了这些设置,不能证明 model: haiku 在所有版本、账户、供应商或订阅计划中的行为一致。
$0.10/$0.50、$0.50/$2.50 和 $4/$20 是原帖按每百万 token 写出的 API 价格;Claude Code 订阅的套餐、额度和扣减方式不等同于 API 账单,不能用这些数字直接预测订阅剩余额度。
原帖按提示词是否超过 100k tokens 划分价格档位;缓存读取、缓存写入和输出等计费细节需另查供应商当前规则,不能从这条帖子推断。
CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1 会覆盖显式分配给更大模型的子代理,原帖作者认为这会伤害自己的实施任务。启用前必须按子代理类型审计,而不是默认全局开启。
model: haiku 的别名可能随 Claude Code 版本移动;评论者建议固定完整模型 ID,但固定 ID 的可用性也要由当前账户和供应商确认。
只读 explorer 的输出格式和工具限制可以复用,质量、遗漏率、返工时间和 token 成本仍需用自己的仓库和任务验证。
在一个可控代码库中建立三个子代理:固定 claude-haiku-5-5 的只读 explorer、默认模型的 explorer,以及一个显式指定更大模型的实施代理。
分别运行单文件查找、跨目录调用关系查找和需要修改代码的任务,记录文件/行号准确率、遗漏、返工、工具调用、effort、上下文大小和 token 分项。
只在测试项目中加入 CLAUDE_CODE_SUBAGENT_MODEL=haiku,先不加 FORCE,检查 Explore、Plan 和自定义子代理的实际服务模型。
再加入 CLAUDE_CODE_SUBAGENT_MODEL_FORCE=1,确认显式指定更大模型的子代理是否被覆盖,并把该结果与 Claude Code 订阅用量分开记录。
将长任务拆成短子任务、指定文件范围、减少工具和新建会话,分别比较跨过 100k 的比例及 API 账单;按实际价格表计算,不使用帖子中的 40x 或 5x 口号替代明细。
Claude Haiku 5.5