先把三个数字摆出来。
以原始标准周额度为 100 算:
- 5月14日起,官方加了一轮临时 +50%,你手里能用的是 150
- 这轮临时加量,昨天(9月13日)到期
- 从今天起,标准周额度永久提高 25%,也就是 125
150 → 125。降了约 17%。
这不是我算的,是 Anthropic 自己在公告里写的原话:"和目前相比,Claude Code 每周额度实际上将减少 17%。" 公告标题写的却是"永久提高标准周额度 25%"——因为那个 25% 是拿五月之前的旧基准算的。
同一件事,两种算法都成立:跟最初比涨了 25%,官方没说谎;跟你昨天手里的比,少了六分之一。评论区当时有人给 Anthropic 起了个外号叫"A割"。
但骂完之后有个更实际的问题:这 17% 到底会不会影响到你? 我把这件事的账拆了一遍,结论有点反直觉——对相当一部分人来说,答案是不会,因为卡住你的压根不是周额度。
先说这轮临时加量的完整时间线
这个 +50% 是一部连续剧:
| 时间 | 动作 |
|---|---|
| 5/14 | 首次宣布周额度 +50%,写着到 7/13 |
| 7/13 | 延期到 7/19 |
| 7/19 | 延期到 8/19 |
| 8/19 | 延期到 8/31 |
| 8/29 | 宣布 9/14 起改为永久 +25%,临时 +50% 延到 9/13 |
8月中那次延期,官方顺带说了句"希望以后能把这 50% 永久保留"。当时社区最扎眼的回复是:"那你倒是永久啊。"
现在确实永久了,只永久了一半。
官方同时给的两个数字值得记一下:Claude Code 用户平均每周使用 20 小时,这个产品已经带来超过 25 亿美元的年化收入。20 小时/周意味着什么——这是一个准全职的使用强度,产能是真扛不住。
反转:多数人的瓶颈不是周额度
Claude Code 的付费套餐上有两把锁,很多人只盯着其中一把:
| 锁 | 管什么 | 这次改了吗 |
|---|---|---|
| 5 小时滚动窗口 | 你一次能连续干多久 | ❌ 公告没提,没动 |
| 每周额度 | 你一周能攒出多少长任务 | ✅ 从 150 降到 125 |
这次动的只有周额度。
社区里有人统计过自己连续 7 天高强度使用的消耗:在 5 小时窗口的限制下,周额度最多只用到六成多——也就是说那个 +50% 他根本用不完,原话是"提升了个寂寞"。也有人说自己大半年没用完过 5 小时窗口,周额度还剩 84%。
所以先花两分钟搞清楚自己被哪把锁锁住:
- 平时报错是"5小时窗口已用尽,X 点后重置" → 这次调整跟你无关,17% 一分钱没影响你
- 平时报错是"本周额度已用尽" → 你是被砍的那批,往下看
判断方法很土但有效:翻一下最近两周你实际撞上的是哪个提示。如果两个都撞过,那周额度对你就是硬约束。
真正影响账单的那条,那几天没人提
9月1日 Fable 5.1 上线,通稿被引用最多的是"Terminal-Bench 4.0 编码基准比上一代提高 13%"。但对天天用 Claude Code 干活的人,真正会改变账单的是另一条,报道里往往只占一行:
| 项目 | Fable 5 | Fable 5.1 |
|---|---|---|
| 输入 | $10 / 百万 token | $10(未变) |
| 输出 | $50 / 百万 token | $50(未变) |
| 缓存读取 | $1 / 百万 token | $0.25(降 75%) |
基础价一分没降,降的是缓存读取。
这一条对不同的用法差别极大,关键在于缓存命中的条件:请求前缀必须逐字节一致。命中了走 $0.25,没命中就按原价重新算。
而每次开新会话最先塞进去的那一坨——CLAUDE.md、Skills 的元信息、MCP 工具定义、自定义斜杠命令——正好就是这个"前缀"。它稳定不动,你就一直吃 0.25 的价;你每改一次 CLAUDE.md,这段前缀就失效一次,下一轮全额重算。
所以周额度砍 17% 之后,最划算的动作不是少干活,是别让那段固定前缀又肥又爱变。
那段固定前缀到底有多肥
这里有个数字挺吓人的:有人做过启动开销审计,自己装了 82 个技能(他在维护一个插件库),新会话光启动就吃掉约 25000 token——一行代码还没写。
技能这东西不像普通 IDE 插件装完就躺着。每个技能的名称和描述,每次开新会话都要全量加载——模型得靠这些描述判断什么时候该调用它。装 30 个技能的效果不是"30 个技能的力量",是上下文窗口被描述文本挤掉一大块。MCP 服务器同理,它的工具定义(每个工具的名字、说明、参数 schema)也是每次都进上下文。
这笔账不用猜,几十行 Node 就能自己扫一遍。我把估算脚本贴出来,存成 startup-cost.mjs 直接 node startup-cost.mjs 跑:
#!/usr/bin/env node
// startup-cost.mjs —— 估算每次开新会话的固定开销
import { readFile, readdir } from 'node:fs/promises';
import { homedir } from 'node:os';
import { join } from 'node:path';
const ROOT = join(homedir(), '.claude');
// 粗估:纯中文约 1 字 1 token,纯英文约 4 字符 1 token,中英混排取 2.5
const est = (s) => Math.round(s.length / 2.5);
const read = async (p) => {
try { return await readFile(p, 'utf8'); } catch { return ''; }
};
// 1. CLAUDE.md:全文进上下文
const claudeMd = await read(join(ROOT, 'CLAUDE.md'));
// 2. Skills:只有 frontmatter 的 name + description 进上下文,正文是按需加载
async function skillsCost() {
let dirs = [];
try {
dirs = await readdir(join(ROOT, 'skills'), { withFileTypes: true });
} catch { return { total: 0, rows: [] }; }
const rows = [];
for (const d of dirs) {
if (!d.isDirectory()) continue;
const md = await read(join(ROOT, 'skills', d.name, 'SKILL.md'));
const fm = md.match(/^---\n([\s\S]*?)\n---/)?.[1] ?? '';
const desc = fm.match(/description:\s*([\s\S]*?)(?=\n[a-z-]+:|$)/i)?.[1] ?? '';
rows.push({ name: d.name, cost: est(d.name + desc) });
}
rows.sort((a, b) => b.cost - a.cost);
return { total: rows.reduce((s, r) => s + r.cost, 0), rows };
}
// 3. MCP:工具定义每次全量进上下文,这里只能按配置体积粗估
const settings = await read(join(ROOT, 'settings.json'));
const mcpCount = Object.keys(
JSON.parse(settings || '{}').mcpServers ?? {}
).length;
const skills = await skillsCost();
const mdCost = est(claudeMd);
console.log(`CLAUDE.md ${mdCost.toLocaleString()} tokens`);
console.log(`Skills (${skills.rows.length} 个) ${skills.total.toLocaleString()} tokens`);
console.log(`MCP 服务器 ${mcpCount} 个(工具定义需实测,一般每个 300-2000)`);
console.log(`\n固定开销合计约 ${(mdCost + skills.total).toLocaleString()} tokens(未含 MCP)\n`);
console.log('最贵的 5 个技能描述:');
skills.rows.slice(0, 5).forEach(r =>
console.log(` ${String(r.cost).padStart(5)} ${r.name}`)
);
几点说明,别把它当精确账单看:
length / 2.5是粗估。中文比英文吃 token,混排取 2.5 是个折中值,误差在 ±20% 量级,看数量级足够了- 技能的正文不算在启动开销里——只有 frontmatter 的名字和描述常驻,正文是命中时才加载的。所以技能写得长不是问题,描述写得又长又多才是问题
- MCP 的工具定义体积得看各家 server 实现,脚本里只数了个数
跑完你大概会发现一件事:真正把窗口吃掉的往往不是那个 500 行的 CLAUDE.md,是几十个"平时压根不用、但每次都要报到"的技能描述。
一个常被误解的省法:Agent Teams 不省 token
Agent Teams 是 7 月上线的实验特性,把默认的单线程子代理改成多实例并发。开关是一个环境变量,写进 ~/.claude/settings.json:
{
"env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "true" }
}
效果很直观,有实测是 5 个任务从 12 分钟降到 2.5 分钟。但它优化的维度得看清:
| 维度 | Agent Teams | 普通子代理 |
|---|---|---|
| 执行方式 | 并行 | 串行 |
| 适用前提 | 子任务互相独立 | 子任务有依赖 |
| 完成时间 | 取决于最慢那个 | 所有时间累加 |
| Token 消耗 | 和串行完全一样 | — |
它压缩的是墙上时钟,不是 token。 它不会让模型少想少算,只是把几个独立的计算在时间轴上重叠起来。这两件事经常被混着说,指望靠开它来对冲那 17% 的,方向错了。
顺手一条:/model opusplan 是让 Opus 出方案、Sonnet 写实现的分工指令。有实践者说能省下四成左右的 token,但这个数字跟项目规模强相关——一个"帮我写个正则"的小需求,先让 Opus 出方案反而更费。它适合的是"你已经知道要做什么、但需要把设计拆细再动手"的模块。
顺带说一句退路
如果你恰好是被周额度卡死的那批,同期还有两条可以摆在桌上比:
Kimi K2.8 Preview 9月11到12日全量上线 Kimi Code,Model ID 保持 kimi-for-coding 不用改配置。这次动作最大的是 1M 上下文向全体档位开放,含免费档——此前这是 199 元/月以上才有的。思考强度分 low/high/max 三档,默认 max。
GLM-5.3-Flash 就是前段时间匿名霸榜 OpenRouter 的那个"Ox Alpha",320B 开放权重,官方称接近 Opus 4.8,且完全跑在国产芯片上。
不是让你现在就搬家。是说当一家开始"明升暗降"的时候,手里有第二条能跑通的通道,比在评论区骂街有用。
额度自查速查表
| 症状 / 场景 | 判断 | 该做什么 |
|---|---|---|
| 报错总是"5小时窗口用尽" | 这次调整与你无关 | 不用改任何东西 |
| 报错总是"本周额度用尽" | 被砍的就是你 | 往下逐条过 |
| 装了 20+ 个技能 | 启动开销可能上万 token | 跑一遍 startup-cost.mjs,删掉半年没用过的 |
| CLAUDE.md 三五百行 | 每次会话全量加载 | 项目无关的挪去技能,按需加载 |
| 每天都改 CLAUDE.md | 缓存前缀反复失效 | 攒着一次改完,别边干边改 |
| 挂了一堆 MCP server | 工具定义每次全进上下文 | 只留当前项目真用得上的 |
| 指望开 Agent Teams 省额度 | ❌ 方向错了 | 它只省时间,token 一样多 |
| 大模块要动手前 | 全程压在顶配模型上很贵 | 试 /model opusplan 分工 |
| 一个会话从早开到晚 | 上下文越滚越大,每轮全量重算 | 任务切换就开新会话 |
| 常撞高峰时段变慢 | 高峰配额更紧 | 长任务挪到非高峰跑 |
最后
这次调整最让人不舒服的地方,不是那 17%,是同一个数字被挑了一个更好看的基准来讲。跟旧标准比是涨,跟你昨天手里的比是降,公告选了前者当标题、把后者写在正文里。
但情绪价值归情绪价值,账还是得自己算。周额度这东西的分母从来不是"官方给了多少",是"你每一轮请求带了多少无关的东西进去"。同样的 125,有人能干完一个模块,有人光开场就烧掉两万 token。
去跑一遍那个脚本吧。多半会发现,你自己手里能抠出来的,比官方这次拿走的多。
你被 5 小时窗口卡得多,还是被周额度卡得多?跑完脚本的话,评论区报一下你的启动开销是多少 token——我想看看大家的真实分布。
觉得有用,点个赞👍让更多正在被额度折磨的人看到。