惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
T
ThreatConnect
SecWiki News
SecWiki News
F
Future of Privacy Forum
AWS News Blog
AWS News Blog
C
Cisco Blogs
A
Arctic Wolf
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Scott Helme
Scott Helme
V
V2EX
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
K
Kaspersky official blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News | PayPal Newsroom
Schneier on Security
Schneier on Security
NISL@THU
NISL@THU
Microsoft Azure Blog
Microsoft Azure Blog
量子位
The Hacker News
The Hacker News
Stack Overflow Blog
Stack Overflow Blog
Security Latest
Security Latest
M
Microsoft Research Blog - Microsoft Research
Google Online Security Blog
Google Online Security Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
The Cloudflare Blog
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Troy Hunt's Blog
F
Fox-IT International blog
S
Security @ Cisco Blogs
博客园 - 司徒正美
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Comments on: Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 最新话题
GbyAI
GbyAI
Project Zero
Project Zero
腾讯CDC
T
Tailwind CSS Blog

暗无天日

读:把会议当系统来设计 - 暗无天日 读:把 JSON 当编程语言执行——一个迷你解释器的构造过程 - 暗无天日 读:从API调用到Agent循环——构建 Agent 的七个阶段 - 暗无天日 读:Querying Without a Query Language——不用查询语言的查询 读:用 SonarQube 检测 Java 代码中的 Bug 和安全漏洞 读:tetris-sql——用一条SQL查询实现俄罗斯方块 - 暗无天日 TIL: dired 里按时间标记文件——dired-mark-if 与夏令时陷阱 - 暗无天日 读:从端点到行动——面向 AI 代理的后端设计 - 暗无天日 TIL DDD战术模式:用Clojure让代码说人话 - 暗无天日 读:Amin Bandali 与 Protesilaos 谈 Emacs 内置功能的深度定制 读:Clojure 世界的 AI 代理调教术——四个改变行为的 Skill TIL: minibuffer 激活时也能操作其他窗口 - 暗无天日 读:Tramp改了配置怎么不生效 - 暗无天日 读:为 project.el 写一个自定义后端 - 暗无天日 读:AI 时代的敏捷开发 - 暗无天日 TIL: 给 dired 异步命令加 nohup,让外部程序活过 Emacs 退出 TIL: elisp-fontify-semantically——让 Emacs 看懂你的 Elisp 代码 TIL-etags扫描外部库头文件 - 暗无天日 读:The Many Faces of flet——Elisp 局部函数的三种写法 读:df 与 du——为什么两个磁盘用量命令数字对不上 - 暗无天日 TIL-可观测性工具的成本盲区 - 暗无天日 TIL: 把 Emacs Buffer 打印成图片 读:gamegrid.el——Emacs 内置游戏是怎么写出来的 - 暗无天日 TIL: MCP 服务器不到 20 行 Python 就能写出来 TIL-AI 工具普及后的组织观察 - 暗无天日 读:当 Agent 开始写数据库——六个防御模式 - 暗无天日 读:右键菜单——Elisp 开发的隐藏利器 - 暗无天日 读:Git 仓库里的隐藏配置文件 - 暗无天日 读:20条软件工程定律 - 暗无天日 读:编译高性能 Emacs - 暗无天日 读:为什么我在终端里待了十年——一个 Emacs 用户的 GUI 观察 读:Event Sourcing——让你的数据库记住每一次变更 - 暗无天日 读:数据管道中Schema变更的四种形状 - 暗无天日 读:SES——Emacs内置的简易电子表格 - 暗无天日 TIL: 用 parallel 加速 rsync 迁移海量小文件 TIL:给 AI 一个更小的世界——技术选型的上下文窗口约束 - 暗无天日 读:emacs chat 技巧拾遗——从 bandali 的配置里捡到的那些技巧 读:当 Agent 成为生产调用者——四个被打破的运维假设 - 暗无天日 TIL: describe-personal-keybindings 查看你的自定义按键 - 暗无天日 读:Linux 创建指定大小文件的三种方式——dd、fallocate 与 truncate - 暗无天日 读:Yazi——在终端里管理文件的新选择 - 暗无天日 读:软件测试的反馈视角——CLEAR 原则从测试到运维 - 暗无天日 MobileOrg Android:从 API 17 迁移到 API 34 的实战记录 TIL:微服务与复杂度守恒——从单体到分布式的代价转移 - 暗无天日 读:MCP 时代的安全威胁——幻觉权限与三道防线 - 暗无天日 读:超越对话——用 Skills 和 Agents 工程化上下文 TIL:用 :box 给 mode-line 加内边距 org-mobile-push 卡顿排查实战:从黑盒到字节码反编译 - 暗无天日 读:用 LLM 重构遗留代码——三个陷阱与一套方法 - 暗无天日 读:AI 辅助编程的三种错误用法 - 暗无天日 读:Before GitHub - 暗无天日 读:AI in Software Architecture - 暗无天日 读:把成本当作 SLI - 暗无天日 TIL: 用进程树展开定位被脚本包装的 JVM 进程 - 暗无天日 读:Linux 删文件的真相——用 /proc 恢复被进程持有的已删除文件 - 暗无天日 读:Choosing a Python Logging Library in 2026 Emacs buffer 导出:五种方案对比 - 暗无天日 TIL: flymake 错误跳转加入 Evil 跳转列表 TIL: 用 Org-mode 列表管理选择题题库 - 暗无天日 读:sysstat 诊断链——从 sar 到 pidstat 的排查路径 读:理论靠谱,生产翻车的六个集成模式 - 暗无天日 读:双写问题——@Transactional 给不了的跨系统一致性 - 暗无天日 读:PostgreSQL 随机测试数据生成——从快速造数到自动化填充 - 暗无天日 读:逆萨丕尔-沃夫假说与编程语言 - 暗无天日 读:理解 MCP 架构——LLM 直接调 API 与 MCP 协议的对比 读:Emacs 连接数据库时密码放哪里 - 暗无天日 TIL:watch 命令的几个遗漏技巧 - 暗无天日 TIL:Python 3.15 的 sentinel() 内置函数 读:7 Techniques That Supercharged My Claude-Assisted Development 读:AI 编码代理的四种工作流 - 暗无天日 读:Agent 的瓶颈不在模型,在基础设施 - 暗无天日 读:EvoForge——用群体进化优化 AI Agent - 暗无天日 TIL:Google Stitch 的 DESIGN.md,给 AI 读的设计系统说明书 Emacs 批量搜索替换:从场景到命令 - 暗无天日 TIL: image-mode 的 header-line 中显示图片尺寸 dotfile仓库大扫除:清理过时的配置 - 暗无天日 读:The Art of Logging——日志规范清单 - 暗无天日 从CSS选择器到自然语言:网页自动化的两种范式与取舍框架 - 暗无天日 TIL-用 curl + w3m + awk 从 HTML 表格提取数据 读:Shell脚本安全编码的五条铁律 - 暗无天日 读:Emacs newcomers-presets theme —— 30+ 项新手预设一览 读:Protesilaos 的 Emacs 合理默认配置 —— 兼与 newcomers-presets 对比 控制 Bash 历史记录的 6 个场景 读:AI Agent 安全日志——从可见性与隐私的两难说起 - 暗无天日 读:AI Agent 生产化——一份从原型到上线的速查清单 - 暗无天日 读:LLM 生产环境六种失败原型——基准测试无法预测的那些故障 - 暗无天日 读:Prompt Injection 五层纵深防御——从输入过滤到审计追踪 - 暗无天日 读:为什么所有 Prompt Injection 防御都会被攻破——以及架构上该怎么办 - 暗无天日 读:JVM 后端性能调优备忘——从一次生产事故中学到的优化要点 - 暗无天日 读:Java 容器化——从 Fat JAR 到高效 Docker 镜像 读:整洁代码的几个通用原则——从 Go 生态看起 - 暗无天日 读:规则引擎——从 if-else 到业务规则管理 - 暗无天日 AI写作的语言指纹——如何让文字不那么像机器 - 暗无天日 读:50 条 Claude Code 技巧——一个工程经理的六个月使用心得 读:AI 辅助开发为什么让 E2E 测试更有价值 - 暗无天日 读:在Emacs中使用Claude Code(Spacemacs适配版) - 暗无天日 Claude Code 背后的工程哲学——读 Agent Harness Engineering 读:Agent Harness Engineering——AI 智能体不只是模型,还有套件 - 暗无天日 browser-harness:让 AI 直接接管你的浏览器 - 暗无天日 读:Security-First CI/CD —— DevSecOps 自动化实践指南
读:Token 经济学的四个第一性原理 - 暗无天日
2026-05-25 · via 暗无天日

Stefan Wolpers 在 DZone 上发了一篇 No More Cheap Claude: 4 First Principles of Token Economics in 2026,拆解了 LLM token 消耗的四个底层规律。原文给的是通用 Claude 用户的视角,我这篇把重心移到 Claude Code 上。

前提:补贴结束了

2026 年初,Claude Pro 的用户开始感受到限额收紧。Anthropic 悄悄调整了用量天花板。其他厂商也在做类似的事,因为 GPU 算力是物理资源,复制一份成本就归零这种事只发生在软件身上。

"随便用,反正便宜"的时代过去了。理解 token 怎么消耗、怎么优化,从可选项变成了必修课。

原理一:每轮对话重读全部历史

Claude 的对话机制和人类记忆完全不同。人类聊到第 30 句时会记得前面 29 句的大意。Claude 每次收到新消息都要从第 1 句重新读到第 29 句,才开始处理你的新问题。

对话越长,每一轮越贵。消息 30 为消息 1 到 29 全部买单,消息 60 为消息 1 到 59 全部买单。每轮的 token 消耗 = 当轮新内容 + 之前所有轮的累积,所以成本是递增的。

长对话里早期已经不相关的内容,属于"持续收费的死重"。 Claude Code 的 /compact 命令就是干这个的:把对话历史压缩成摘要,删掉旧的细节,后续回合不再为过时信息付费。

原理二:53.9% 的消耗你根本看不见

打开 Claude Code 的 /usage 面板,你能看到自己发了多少消息。但消息数只是冰山一角。

Anthropic 的数据:用户输入的 token 只占所有 input token 的 46.1%。剩下的 53.9% 来自三样东西:

  1. 系统提示词 :Claude Code 的内置行为指令、工具定义、安全规则
  2. CLAUDE.md 内容 :项目级和用户级的行为指令,全部塞进上下文
  3. 工具输出 :文件内容、grep 结果、git diff、shell 命令的输出

原文举了个例子:上传一份 51 页的 PDF,消耗了 119,000 个 token。这些 token 在上下文窗口里,每一轮都被重新读取。

对 Claude Code 用户来说,工具输出是大头。每次 Read 一个文件,每次 Grep 搜索代码,每次 Bash 跑命令,输出都追加到对话历史里,后续每一轮都要重新"付钱"读一遍。

几个值得养成的习惯:

  • 能用 Grep 搜到具体行时,不要用 Read 读整个文件
  • CLAUDE.md 保持精简,把不常用的规则挪到按需加载的 skill 文件里
  • 大文件上传前先想清楚:你真的需要它在整个对话期间都占着窗口吗?

原理三:稳定的上下文可以缓存

这个原理我之前写过一篇 详细的 Prompt Caching 解读,这里只说结论:上下文前缀(系统提示词 + CLAUDE.md + 工具定义)在对话期间不变的话,推理服务器会把它缓存起来,后续回合读取缓存的价格是正常计算的十分之一。

Claude Code 的缓存命中率能达到 92%,靠的是一条纪律: 会话期间不修改前缀 。需要补充指令时,不编辑系统提示词,作为新消息追加就行,前缀保持稳定。

反过来,频繁修改 CLAUDE.md 或在会话中途切换模型,缓存会失效,每一轮都按全价重新计算。

原理四:稀缺是结构性的

Wolpers 判断:模型不会像过去两年那样大幅降价了。原因有两条。

一是 output token 定价是 input token 的 5 倍 。生成一个 token 比读取一个 token 贵得多,这是 Transformer 架构的物理特性(解码阶段逐 token 串行计算),跟厂商的定价策略无关。

二是 上下文窗口是硬约束 。Claude 的 200K token 窗口听起来很大,但系统提示词、CLAUDE.md、对话历史、工具输出全塞进去,空间消耗得比你想象的快。Wolpers 提到了一个"死亡之谷"概念:Project 的上下文接近 200K 阈值时,Claude Code 需要为 Project-level RAG(检索增强生成)分配索引空间,留给实际工作的窗口就被压缩了。

两条加在一起:token 是需要精打细算的稀缺资源,别指望它像流量一样越来越便宜。

给 Claude Code 用户的实操建议

四条原理说完了,下面是具体能做的事。

1. 让 CLAUDE.md 瘦身

CLAUDE.md 在每一轮对话都被重新读取,是最容易优化的部分。检查你的 CLAUDE.md:有没有只在特定场景才需要的规则?有没有可以合并的重复条目?挪到 skill 文件里按需加载,比永久占着上下文窗口划算。

2. 长对话及时 compact

对话超过 20 轮后,早期消息的 token 成本开始累积。用 /compact 压缩历史,把核心上下文保留在摘要里,删掉已经过时的细节。

3. 默认用便宜模型

写配置文件、跑测试、做格式检查,Haiku 够用。只在需要复杂推理时才切 Sonnet 或 Opus。Claude Code 支持用 /model 命令在会话中切换。

4. 工具输出是最大的隐性消耗

Claude Code 每次调用工具,输出都追加到上下文。 Read 一个 500 行文件、 Grep 搜索全项目返回 200 个匹配、 Bash 跑命令输出一堆日志,这些都是 token。用精准的搜索替代宽泛的读取,用 head_limit 参数限制返回数量,能有效控制膨胀。