群发资讯网

学了一个 Claude Code 节省 token 小妙招:用好 subagen

学了一个 Claude Code 节省 token 小妙招:用好 subagent以下是 Claude Code 给我解释 subagent 能省更多 token 的原因:

让 subagent 干"脏活" — 探索代码、读大量文件这类任务,交给 subagent,只把结论返回主 context

subagent 绝对消耗 token,而且可能消耗得更多。 真正的区别不在于"总 token 用量",而在于这些 token 消耗在哪个 context 里。Token 计费的真相

每次你发消息,模型收到的输入 = 当前对话的全部历史 + 你的新消息第1轮:[你的问题] → 100 tokens第2轮:[第1轮全部] + [新问题] → 300 tokens第3轮:[前两轮全部] + [新问题] → 600 tokens

Context 是累积的,每次都要重新发送所有历史。

主 context 里探索代码

你: 帮我分析 src/ 目录下所有认证相关代码 Claude 读 auth.ts → +2000 tokens 进 context Claude 读 middleware.ts → +3000 tokens 进 context Claude 读 session.ts → +1500 tokens 进 context Claude 读 config.ts → +800 tokens 进 context Claude: 好的,这是分析... ← 此时 context 已经 7000+ tokens

后续每条消息都背着这 7000+ tokens你问第二个问题: [7000 历史] + 新问题 → 贵你问第三个问题: [7000 历史] + 新问题 → 更贵

那 4 个文件的内容永久留在你的主 context 里,以后每条消息都要重新付一遍

用 subagent 探索代码

你: 帮我分析认证代码(Claude 把这个任务交给 subagent)

Subagent 自己的 context: 读 auth.ts → +2000 tokens(在 subagent 里) 读 middleware.ts → +3000 tokens(在 subagent 里) 读 session.ts → +1500 tokens(在 subagent 里) 读 config.ts → +800 tokens(在 subagent 里) 输出:200 字的结论摘要

主 context 收到的: [200 字摘要] → 只加了 ~200 tokens

后续每条消息: [200 tokens 摘要] + 新问题 → 便宜得多

Subagent 的 context 是一次性的,用完即销毁,不会留在你的主对话里。

直观对比:

主 context 探索探索阶段消耗:7000 tokens探索后每条消息的 overhead:+7000 tokens(永远带着)。

Subagent 探索探索阶段消耗:7000 tokens(隔离)探索后每条消息的 overhead:+200 tokens(只有摘要)

探索本身的花费一样,但如果你后续还有 10 条消息,主 context 方案多付 70,000 tokens,subagent 方案只多付 2,000 tokens。

结论

Subagent 不是"不消耗 token",而是把高消耗的脏活隔离在一次性的沙盒 context 里,只把小结论注入主 context,避免探索产生的大量 token 在主对话里无限滚雪球。

对话越长,这个差距越大。