工作流的成本取决于扇出,但没有任何工作流指南提到这一点。要了解动态工作流是什么以及如何编写,Anthropic 自己的文档是正确的地方。本页面回答的是你随后会立即提出的问题:运行一个工作流需要多少钱,以及哪个开关会改变费用。
简而言之,一个扇出到五个子 Agent 的工作流,大约消耗五个 Agent 份额的 token,而不是一个 Agent 份额。这正是它的意义,也是账单的来源。
计算方式
# A workflow's cost is not "one task". It is the fan-out.
#
# workflow_cost = orchestrator_steps x step_cost
# + subagents x subagent_steps x step_cost
#
# A step is 25,000 in / 1,200 out — the same sizing used on
# every other cost page here, so these numbers are comparable.
#
# Claude Sonnet 5 $0.043 / step
# Claude Haiku 4.5 $0.022 / step
#
# Same job, three shapes:
#
# one thread, 20 steps, all Sonnet
# = 20 x $0.043 = $0.868
#
# 5 subagents x 8 steps + 6 orchestrator steps, all Sonnet
# = 46 x $0.043 = $2.00
#
# same fan-out, subagents on Haiku, orchestrator on Sonnet
# = 40 x $0.022 + 6 x $0.043 = $1.13
#
# The fan-out costs more than the single thread. Mapping the fan-out
# to the cheap tier is what buys most of it back.把这三种形态看作完成同一任务的三种方式。每种情况下,扇出都比单线程更贵——变化的是贵多少,而这几乎完全取决于子 Agent 运行在哪个层级。
改变费用的那一行
工作流中的子 Agent 任务通常边界明确且机械化:读取文件、总结差异、检查条件、返回报告。这正是小模型适合做的事。编排器则相反——它掌握计划,而糟糕的计划会浪费其下方所有子 Agent 的工作,因此强大层级的价值就在这里。
# The one line that changes every workflow run: the tier the
# background and sub-task work lands on.
export ANTHROPIC_BASE_URL=https://api.kunavo.com
export ANTHROPIC_AUTH_TOKEN=sk-kn-...
export ANTHROPIC_MODEL=claude-sonnet-5 # orchestration
export ANTHROPIC_DEFAULT_OPUS_MODEL=claude-opus-5-5 # agents that ask for opus
export ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-5 # agents that ask for sonnet
export ANTHROPIC_DEFAULT_HAIKU_MODEL=claude-haiku-4-5 # the fan-outClaude Code 会将自动子任务调用路由到映射至 Haiku 层级的模型,因此无论是否明确使用工作流,这个映射都会在每次运行中发挥作用。保留 Opus 行是因为 Claude Code 的内置默认模型及其 opus 别名都会解析为最新的 Opus;如果 Kunavo 尚未提供该模型,任何回退到它的请求都会返回 404。该行将两者固定为 Opus 5.5(claude-opus-5-5),这需要 Claude Code v2.1.280 或更高版本(旧版本请运行 claude update)。Sonnet 行对工作流更重要:sonnet别名请求 Sonnet 5.5,而 Kunavo 不提供该模型,因此如果没有这行,所有设置为 model: sonnet 的子代理、opusplan 的执行阶段以及 /model sonnet 都会返回 404。编排器层级的盈亏平衡点——便宜模型需要差到什么程度才不再更便宜——见Opus、Sonnet 与 Haiku 对比。
估算会遗漏的两件事
重试。失败并重新运行的子 Agent 会被计费两次,而扇出会增加至少一个子 Agent 失败的概率。任何运行前估算都看不到这一点,只有使用记录中才会显示。
缓存上下文。另一个方向是:从同一编排器启动的子 Agent 通常共享稳定的前缀,命中缓存时会按输入费率的一小部分计费。在较长的工作流中,这是可获得的最大单项降幅——比上面的层级切换还大。其机制以及通过网关路由时破坏缓存的三种方式,见 Claude prompt caching。
决定是否要扇出
工作流不是成本优化,明确这一点很重要,因为框架会决定答案。它带来的是延迟和覆盖范围:多个子 Agent 同时工作,比单线程逐项处理同一列表更快、覆盖更广。问题在于这是否值得这个倍数,上面的计算为你的具体任务形态给出了这个倍数。
至于功能本身——如何定义工作流、如何编排子 Agent、语法是什么——Anthropic 的文档具有权威性,本页面不重复说明。底层运行模型依赖的是基础 URL 和密钥;同一决策中关于订阅与 token 的部分见 Claude Pro and Max limits。
常见问题
Claude Code 工作流的费用是多少?
成本会高于在单个线程中完成同样的工作,因为工作流的成本取决于扇出。可以将其建模为编排器步骤数加上子代理数量乘以各自的步骤数,再将总数乘以单个步骤的成本。按 Kunavo 费率,25,000 个输入 token 和 1,200 个输出 token 的一步在 Claude Sonnet 5 上为 $0.043:20 步单线程约为 $0.868,而五个子代理各执行八步,再加六个编排器步骤,共 46 步,约为 $2.00。扇出带来并行性和广度,但不会带来折扣。
如何在不放弃扇出并行的情况下降低工作流成本?
将扇出任务放在最便宜的层级,将编排放在能力更强的层级。工作流中的子任务通常边界明确且机械化——读取这个、总结那个、检查另一个——这正是小模型适合做的事;而编排器负责掌握计划,因此必须准确。按照这种方式映射同一个 46 步示例,费用约为 $1.13,而不是 $2.00;所需改动只是一个环境变量,而不是重写代码。
如果工作流成本更高,是否仍然值得使用?
通常值得,但要从正确的维度判断。工作流不是成本优化,而是延迟和覆盖范围优化:多个子 Agent 同时工作,比单线程串行完成相同任务更快、覆盖更广。应问的是并行性是否值得这个倍数,而不是倍数是否存在——它确实存在,任何告诉你相反内容的页面都没有进行计算。
编排器应该使用哪个模型?
编排器负责制定计划并读取结果,因此弱模型在这里造成的代价最大——糟糕的计划会浪费其下所有子代理。Claude Sonnet 5 的每 100 万 token 价格为 $1.40 / $7.00,是实用的默认选择;Claude Opus 5.5 的价格为 $2.80 / $14.00,在真正存在歧义的工作中能体现其价格所对应的价值。两个层级之间按尝试次数计算的盈亏平衡点见层级比较页面。
工作流能通过自定义 API 端点运行吗?
可以——工作流是客户端侧的编排功能,因此 Claude Code 在哪里运行,它就能在哪里运行;Claude Code 原生读取 ANTHROPIC_BASE_URL。每次子 Agent 调用都会发送到与编排器相同的端点,这也使费用集中可见:工作流的扇出会在一个使用量视图中显示为一批突发请求,而不是分散在多个账户中。
如何查看工作流实际花费了多少?
应按请求读取,而不是根据计划估算,因为子 Agent 步骤数是在运行时决定的,很少与你的猜测一致。对于按 token 计费的密钥,扇出中的每次调用都是一行,可以逐项相加,包括失败子 Agent 产生的重试——这些重试会计费,却不会出现在任何预先估算中。