<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Twinkle Model</title>
    <description>The latest articles on DEV Community by Twinkle Model (@twinklemodel).</description>
    <link>https://dev.to/twinklemodel</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4220129%2F943b1982-3bdf-42c7-b7e3-b7b5c55d3414.png</url>
      <title>DEV Community: Twinkle Model</title>
      <link>https://dev.to/twinklemodel</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/twinklemodel"/>
    <language>en</language>
    <item>
      <title>子 Agent 该用多大力气想？从 Claude Code 2.1.316 的 CLAUDE_CODE_SUBAGENT_EFFORT，聊多 Agent 编码的 effort 分层</title>
      <dc:creator>Twinkle Model</dc:creator>
      <pubDate>Sun, 01 Nov 2026 07:04:47 +0000</pubDate>
      <link>https://dev.to/twinklemodel/zi-agent-gai-yong-duo-da-li-qi-xiang-cong-claude-code-21316-de-claudecodesubagenteffortliao-duo-agent-bian-ma-de-effort-fen-ceng-1poh</link>
      <guid>https://dev.to/twinklemodel/zi-agent-gai-yong-duo-da-li-qi-xiang-cong-claude-code-21316-de-claudecodesubagenteffortliao-duo-agent-bian-ma-de-effort-fen-ceng-1poh</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;短版摘要（供短帖渠道使用）&lt;/strong&gt;&lt;br&gt;
10 月 31 日发布的 Claude Code 2.1.316 新增了 &lt;code&gt;CLAUDE_CODE_SUBAGENT_EFFORT&lt;/code&gt;：当没有其他设置指定时，子 Agent 用这个档位运行，而不再默认继承主会话的 effort。这看起来是个小开关，但对多 Agent 编码的成本影响很大：主会话开 xhigh 做规划，搜索、读代码、跑测试的子 Agent 往往用 medium 甚至 low 就够了。本文梳理 effort 的完整优先级（环境变量 &amp;gt; 会话内选择 &amp;gt; 启动参数 &amp;gt; 设置文件 &amp;gt; 模型默认），子 Agent frontmatter 怎么写，以及一套“主会话高、子任务低、审查单独拉高”的分层配置。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;用 Claude Code 跑稍微大一点的任务，你会发现真正花 token 的往往不是主会话，而是它派出去的一堆子 Agent：搜代码的、读文档的、跑测试的、做审查的。过去它们默认&lt;strong&gt;继承主会话的 effort&lt;/strong&gt;，你为了让主会话规划得更好开了 xhigh，结果十几个只是在 grep 文件的子 Agent 也跟着“深度思考”。&lt;/p&gt;

&lt;p&gt;10 月 31 日的 Claude Code 2.1.316 给了一个直接的解法。下面我把这次更新、effort 的解析规则和我自己在用的分层配置一起讲清楚。&lt;/p&gt;

&lt;h2&gt;
  
  
  一、2.1.316 改了什么
&lt;/h2&gt;

&lt;p&gt;按官方 changelog，和 effort 相关的有三条：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;新增 &lt;strong&gt;&lt;code&gt;CLAUDE_CODE_SUBAGENT_EFFORT&lt;/code&gt;&lt;/strong&gt;：当没有任何其他来源为子 Agent 指定档位时，子 Agent 用它，而不是继承主会话的档位。&lt;/li&gt;
&lt;li&gt;新增 &lt;strong&gt;&lt;code&gt;CLAUDE_CODE_DISABLE_ULTRATHINK&lt;/code&gt;&lt;/strong&gt;：关掉 &lt;code&gt;ultrathink&lt;/code&gt; 关键字。团队里有人习惯在提示词里随手写 ultrathink，这个开关可以防止成本被意外拉高。&lt;/li&gt;
&lt;li&gt;VS Code 扩展里，&lt;code&gt;ultrathink&lt;/code&gt; 现在会以 &lt;code&gt;xhigh&lt;/code&gt; 档位运行当前这一轮，和终端行为一致。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;同一版本还给 Claude apps gateway 加了两项管理能力：&lt;code&gt;pooled_budget&lt;/code&gt;（一个组共享的月度预算，叠加在每个成员自己的限额之上）和 &lt;code&gt;managed.policy_mode: layered&lt;/code&gt;（所有匹配的策略按顺序叠加生效，而不是只取第一条）。另外 changelog 再次提醒：Opus 4.8 的 fast mode 已于 10 月 30 日弃用，11 月 30 日移除，之后这类请求直接报错、不会回落到普通 Opus 4.8。&lt;/p&gt;

&lt;p&gt;这几条放在一起看，方向很明确：&lt;strong&gt;Anthropic 在把“这次调用该花多少推理”变成可以按层级、按团队管理的配置项&lt;/strong&gt;。&lt;/p&gt;

&lt;h2&gt;
  
  
  二、effort 到底是怎么决定的
&lt;/h2&gt;

&lt;p&gt;先说 effort 本身。官方设置文档对几个档位的描述是：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;档位&lt;/th&gt;
&lt;th&gt;官方定位&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;low&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;推理最少，适合范围小、对延迟敏感、不太考验智力的任务&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;medium&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;为成本敏感的工作减少 token，可以牺牲一些智力&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;high&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;在 token 用量和智力之间平衡&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;xhigh&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;更深的推理，更高的 token 开销&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;max&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;最高档，可在部分入口使用，但不能写进 &lt;code&gt;effortLevel&lt;/code&gt; 设置&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;不同模型的默认值不一样：支持 effort 的模型默认 &lt;code&gt;high&lt;/code&gt;，但 Opus 5.5、Sonnet 5.5、Haiku 5.5 默认 &lt;code&gt;medium&lt;/code&gt;，Opus 4.7 默认 &lt;code&gt;xhigh&lt;/code&gt;。如果你设置的档位模型不支持，会回落到它支持的最高档，比如 &lt;code&gt;xhigh&lt;/code&gt; 在 Opus 4.6 上按 &lt;code&gt;high&lt;/code&gt; 跑。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;主会话&lt;/strong&gt;的档位按下面的顺序取第一个生效的：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;环境变量 &lt;code&gt;CLAUDE_CODE_EFFORT_LEVEL&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;会话内的选择（&lt;code&gt;/effort&lt;/code&gt;、&lt;code&gt;/model&lt;/code&gt; 里的滑块）；&lt;/li&gt;
&lt;li&gt;启动参数 &lt;code&gt;--effort&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;设置文件里的 &lt;code&gt;modelSettings&lt;/code&gt; 或 &lt;code&gt;effortLevel&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;模型默认值（或组织为默认模型设的默认档位）。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;子 Agent&lt;/strong&gt; 多了几层。结合子 Agent 文档和这次的 changelog，我整理成下图：&lt;/p&gt;

&lt;p&gt;有两个容易踩的坑：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;CLAUDE_CODE_EFFORT_LEVEL&lt;/code&gt; 会盖过一切&lt;/strong&gt;，包括子 Agent frontmatter 里的 &lt;code&gt;effort&lt;/code&gt;。很多人在 shell 配置里 export 了这个变量图省事，结果给审查 Agent 写的 &lt;code&gt;effort: xhigh&lt;/code&gt; 完全不生效。想要分层，就别用这个环境变量设全局档位，改用设置文件。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;上限永远在&lt;/strong&gt;。&lt;code&gt;maxEffortLevel&lt;/code&gt; 或组织级的 effort 上限，会同时限制主会话、skill 和子 Agent。frontmatter 写得再高，也会被压回上限以内。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  三、一套分层配置
&lt;/h2&gt;

&lt;p&gt;我的原则很简单：&lt;strong&gt;规划和审查要想得深，执行和检索要跑得快&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;第一步，在项目的 &lt;code&gt;.claude/settings.json&lt;/code&gt; 里给主会话设默认档位，不用环境变量：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"effortLevel"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"xhigh"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;第二步，给子 Agent 一个偏低的兜底档位。&lt;code&gt;CLAUDE_CODE_SUBAGENT_EFFORT&lt;/code&gt; 是环境变量，可以放进启动脚本或 CI 的环境里：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 主会话按 settings.json 用 xhigh；没写 effort 的子 Agent 一律 medium&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;CLAUDE_CODE_SUBAGENT_EFFORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;medium
&lt;span class="c"&gt;# 防止有人在提示词里写 ultrathink 把单轮拉到 xhigh&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;CLAUDE_CODE_DISABLE_ULTRATHINK&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;1
claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;第三步，对少数确实需要深度推理的子 Agent，在 frontmatter 里单独拉高。比如 &lt;code&gt;.claude/agents/reviewer.md&lt;/code&gt;：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;reviewer&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;在合并前审查改动，关注并发、安全和边界条件&lt;/span&gt;
&lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Read, Grep, Glob, Bash&lt;/span&gt;
&lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;opus&lt;/span&gt;
&lt;span class="na"&gt;effort&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;xhigh&lt;/span&gt;
&lt;span class="na"&gt;maxTurns&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;30&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
你是代码审查者。只读不写，逐条列出问题、给出位置和修复建议。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;而检索类的子 Agent 可以更激进：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;code-searcher&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;在仓库里定位函数、调用点和配置，返回文件路径与行号&lt;/span&gt;
&lt;span class="na"&gt;tools&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Read, Grep, Glob&lt;/span&gt;
&lt;span class="na"&gt;model&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;haiku&lt;/span&gt;
&lt;span class="na"&gt;effort&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;low&lt;/span&gt;
&lt;span class="na"&gt;omitClaudeMd&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;
只返回找到的位置和一句话说明，不要分析。
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;这里 &lt;code&gt;omitClaudeMd: true&lt;/code&gt;（v2.1.271 起支持）让它启动时不加载 CLAUDE.md，对只需要委派提示词的检索任务，能再省一截上下文。&lt;/p&gt;

&lt;p&gt;这样配下来，一个典型任务的结构是：主会话 xhigh 做拆解，大量检索和执行子 Agent 用 low 或 medium，最后一个 xhigh 的审查 Agent 把关。比起“全员 xhigh”，省下来的主要是那些本来就不需要深思的子任务的推理 token。具体能省多少取决于任务形态，建议你用自己的仓库跑几次、对比账单再定档位，别直接套我的配置。&lt;/p&gt;

&lt;h2&gt;
  
  
  四、接第三方网关时要注意什么
&lt;/h2&gt;

&lt;p&gt;不少团队是通过自建网关或兼容 Anthropic 协议的中转来跑 Claude Code 的，配置方式是设置 &lt;code&gt;ANTHROPIC_BASE_URL&lt;/code&gt;。以 Twinkle Model 为例（换成官方地址或你自己的网关同样适用）：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_BASE_URL&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"https://big-model.smart-agi.com"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;ANTHROPIC_AUTH_TOKEN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"YOUR_KEY"&lt;/span&gt;
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;CLAUDE_CODE_SUBAGENT_EFFORT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;medium
claude
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;effort 是随请求发给模型的参数，经过网关时有两点值得自查：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;网关是否原样透传 effort 相关字段&lt;/strong&gt;。如果中间层丢掉了这个参数，所有请求都会按模型默认档位跑，你的分层配置等于没配。最简单的验证方法是同一个问题分别用 low 和 xhigh 各跑一次，对比返回的输出 token 数，差距明显就说明透传正常。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;按子 Agent 做成本归因&lt;/strong&gt;。Claude Code 的 hooks 能拿到子 Agent 的 &lt;code&gt;agent_type&lt;/code&gt;（也就是 frontmatter 的 &lt;code&gt;name&lt;/code&gt;）。在 hook 里把 agent_type、档位和 token 用量记到日志，月底就能回答“哪个子 Agent 最费钱”，而不是只看一个总账单。&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  五、我的看法
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;CLAUDE_CODE_SUBAGENT_EFFORT&lt;/code&gt; 本身只是一个环境变量，但它反映的是多 Agent 系统里一个很朴素的事实：&lt;strong&gt;不同角色需要的思考深度差得很远，默认继承是最贵的默认值&lt;/strong&gt;。这个需求在社区里早就有人提过（GitHub issue #43083 讨论的就是给子 Agent 单独配 effort），先有了 frontmatter 的逐个配置，这次又补上了全局兜底。&lt;/p&gt;

&lt;p&gt;我的建议是：把 effort 当成和 model、tools 一样的子 Agent 一等配置来设计，而不是事后调参。主会话的档位决定计划质量，子 Agent 的档位决定账单。&lt;/p&gt;

&lt;h2&gt;
  
  
  参考来源
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Claude Code changelog（2.1.316，2026-10-31）：&lt;a href="https://code.claude.com/docs/en/changelog" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/changelog&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Claude Code 文档，Model configuration（effort 解析顺序与默认值）：&lt;a href="https://code.claude.com/docs/en/model-config" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/model-config&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Claude Code 文档，All settings（effortLevel 各档位说明）：&lt;a href="https://code.claude.com/docs/en/settings-reference" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/settings-reference&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Claude Code 文档，Create custom subagents（frontmatter 字段）：&lt;a href="https://code.claude.com/docs/en/sub-agents" rel="noopener noreferrer"&gt;https://code.claude.com/docs/en/sub-agents&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;GitHub issue，Feature: configurable reasoning effort level for subagents：&lt;a href="https://github.com/anthropics/claude-code/issues/43083" rel="noopener noreferrer"&gt;https://github.com/anthropics/claude-code/issues/43083&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;strong&gt;作者说明&lt;/strong&gt;：我在运营一个 API 中转站 Twinkle Model（&lt;a href="https://big-model.smart-agi.com%EF%BC%89%EF%BC%8C%E6%BA%90%E5%A4%B4%E4%B8%AD%E8%BD%AC%EF%BC%9AGPT" rel="noopener noreferrer"&gt;https://big-model.smart-agi.com），源头中转：GPT&lt;/a&gt; 1折、国产模型 1折、满血 Claude，主打低价、稳定。文中的网关地址只是示例，用官方接口或自建网关同样适用。各模型价格见模型广场：&lt;a href="https://big-model.smart-agi.com/model-plaza" rel="noopener noreferrer"&gt;https://big-model.smart-agi.com/model-plaza&lt;/a&gt; 。&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claude</category>
      <category>llm</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
