<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>计费 on KnightLi的博客</title>
        <link>https://www.knightli.com/tags/%E8%AE%A1%E8%B4%B9/</link>
        <description>Recent content in 计费 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-cn</language>
        <lastBuildDate>Sat, 02 May 2026 11:05:48 +0800</lastBuildDate><atom:link href="https://www.knightli.com/tags/%E8%AE%A1%E8%B4%B9/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Claude Code 的 HERMES.md 计费故障是怎么回事</title>
        <link>https://www.knightli.com/2026/05/02/claude-code-hermes-md-billing-incident/</link>
        <pubDate>Sat, 02 May 2026 11:05:48 +0800</pubDate>
        
        <guid>https://www.knightli.com/2026/05/02/claude-code-hermes-md-billing-incident/</guid>
        <description>&lt;p&gt;Claude Code 最近有一次很典型的计费故障：用户只是启动 CLI，还没有正式发出请求，就因为本地 &lt;code&gt;HERMES.md&lt;/code&gt; 文件被读取而产生了大额费用。&lt;/p&gt;
&lt;p&gt;这件事值得单独看，不是因为某个用户损失了多少钱，而是因为它暴露了 AI 编程工具的一个新风险：只要工具会自动读取上下文，本地文件就可能变成真实 token 成本。&lt;/p&gt;
&lt;h2 id=&#34;发生了什么&#34;&gt;发生了什么
&lt;/h2&gt;&lt;p&gt;公开 issue 显示，用户在工作目录里放了一个很大的 &lt;code&gt;HERMES.md&lt;/code&gt; 文件。启动 Claude Code 后，CLI 会扫描并加载项目上下文。问题在于，这个文件被自动纳入上下文，并被计入 API 使用量。&lt;/p&gt;
&lt;p&gt;用户并没有明确要求模型处理这份文件，但计费已经发生。更麻烦的是，这类行为发生在工具初始化或上下文准备阶段，用户不一定能第一时间意识到费用正在产生。&lt;/p&gt;
&lt;p&gt;Anthropic 后续在 issue 中回复，表示会退还异常费用，并额外提供额度补偿。这个回应说明问题至少已被官方确认和处理，但它仍然提醒用户：AI CLI 的“自动上下文”不是免费的。&lt;/p&gt;
&lt;h2 id=&#34;hermesmd-为什么会触发问题&#34;&gt;HERMES.md 为什么会触发问题
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;HERMES.md&lt;/code&gt; 本身不是重点。它可以换成任何大文件：长日志、导出的文档、测试数据、数据库 dump、生成报告，都可能造成类似问题。&lt;/p&gt;
&lt;p&gt;真正的问题在于三件事叠加：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Claude Code 会自动读取项目上下文。&lt;/li&gt;
&lt;li&gt;被读取的文件可能很大。&lt;/li&gt;
&lt;li&gt;上下文 token 会进入计费链路。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果一个文件足够大，哪怕只是被工具“顺手带上”，也可能产生明显费用。对按 token 计费的模型来说，自动化越强，越需要明确边界。&lt;/p&gt;
&lt;h2 id=&#34;这不是普通-bug&#34;&gt;这不是普通 bug
&lt;/h2&gt;&lt;p&gt;普通 CLI bug 可能只是命令失败、输出错误或功能不可用。计费 bug 更敏感，因为它直接影响用户账单。&lt;/p&gt;
&lt;p&gt;对 AI 编程工具来说，计费边界很容易变模糊：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;系统提示会消耗 token。&lt;/li&gt;
&lt;li&gt;项目规则会消耗 token。&lt;/li&gt;
&lt;li&gt;自动读取的文件会消耗 token。&lt;/li&gt;
&lt;li&gt;工具调用结果会消耗 token。&lt;/li&gt;
&lt;li&gt;重试、压缩、摘要也可能继续消耗 token。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;用户看到的是一次“启动工具”或“一次对话”，后台实际可能已经发生多次请求和大量上下文传输。&lt;/p&gt;
&lt;h2 id=&#34;用户应该怎么防&#34;&gt;用户应该怎么防
&lt;/h2&gt;&lt;p&gt;如果你使用 Claude Code、Codex、Cline 这类 AI 编程工具，可以先做几件事：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;不要把大文件直接放在项目根目录。&lt;/li&gt;
&lt;li&gt;把日志、导出数据、构建产物、临时文件加入忽略规则。&lt;/li&gt;
&lt;li&gt;检查工具是否支持类似 &lt;code&gt;.ignore&lt;/code&gt;、上下文排除、文件白名单的配置。&lt;/li&gt;
&lt;li&gt;开启预算提醒或用量限制。&lt;/li&gt;
&lt;li&gt;第一次在大型仓库运行前，先用小目录测试。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;如果仓库里必须保留大文件，最好明确告诉工具不要读取它们。项目规则里也可以写清楚：不要主动读取日志、dump、数据集、归档文件和大体积 Markdown。&lt;/p&gt;
&lt;h2 id=&#34;工具厂商该怎么改&#34;&gt;工具厂商该怎么改
&lt;/h2&gt;&lt;p&gt;这类问题不能只靠用户小心。工具本身也应该给出硬边界。&lt;/p&gt;
&lt;p&gt;更合理的设计包括：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;初始化阶段不应隐式计入大文件。&lt;/li&gt;
&lt;li&gt;自动读取超大文件前要提示用户确认。&lt;/li&gt;
&lt;li&gt;CLI 应显示本次请求预计 token 和费用区间。&lt;/li&gt;
&lt;li&gt;默认忽略常见大文件和生成目录。&lt;/li&gt;
&lt;li&gt;对异常 token 激增设置保护阈值。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;AI 编程工具越像“自动代理”，越需要把成本透明化。否则用户很难判断一次操作到底会产生多少费用。&lt;/p&gt;
&lt;h2 id=&#34;小结&#34;&gt;小结
&lt;/h2&gt;&lt;p&gt;Claude Code 的 &lt;code&gt;HERMES.md&lt;/code&gt; 计费故障，本质上是自动上下文和按量计费之间的冲突。&lt;/p&gt;
&lt;p&gt;对用户来说，最重要的是把项目上下文管住：大文件不要默认暴露给 AI 工具，预算和用量也要设上限。对工具厂商来说，自动读取文件必须配套可见的成本提示和保护机制。&lt;/p&gt;
&lt;p&gt;参考：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/anthropics/claude-code/issues/53262&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/anthropics/claude-code/issues/53262&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.anthropic.com/en/docs/claude-code/costs&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://docs.anthropic.com/en/docs/claude-code/costs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.anthropic.com/pricing&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://www.anthropic.com/pricing&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
