引言
最近,一些用户注意到了一个不寻常的情况:
“我只是发送了‘Hi’,为什么却消耗了 10,000+ 个 token?”
乍一看,这似乎有些出人意料。两个字符的消息,按理说应该只需要很少的 token,对吧?
答案是:模型处理的不仅仅是你看到的那条消息。
现代 AI 助手,尤其是像 Codex、Claude Code 以及其他基于 IDE 的 AI 编码代理,通常会在你的消息之外,一并发送更多信息,以帮助模型理解任务并提供更好的回答。
你的消息只是上下文中的一小部分
当你发送:
Hi
实际发送给 AI 模型的请求,更可能像这样:
System Instructions
+
User Settings
+
Configured Skills
+
Available Tools
+
Project Information
+
File Context
+
Previous Conversation History
+
Your Message: "Hi"
所有这些组成部分的总大小,才是模型实际处理的上下文。
因此,即使是一条非常短的消息,也可能消耗大量 token。
什么会增加上下文使用量?
1. 已配置的技能
如果你启用了自定义技能或 AI 能力,那么这些技能的指令也需要被加载进模型上下文。
例如:
Skill A instructions: 2,000 tokens
Skill B instructions: 3,000 tokens
Skill C instructions: 1,500 tokens
甚至在你还没有输入任何内容之前,这些指令可能就已经占用了数千个 token。
2. 工具与代理能力
AI 编码助手通常会提供如下工具:
文件读取
代码搜索
终端执行
Git 操作
浏览器访问
外部集成
这些工具的定义和使用说明,同样会占用上下文空间。
3. 项目与文件上下文
当你在 IDE 或代码仓库中工作时,AI 客户端可能会自动附带:
项目结构
已打开的文件
代码片段
依赖项
配置文件
这能帮助 AI 理解你的项目,但也会增加上下文使用量。
4. 之前的对话历史
如果你是在继续一个已有对话,先前的消息通常会再次被一并发送,以便模型理解上下文。
例如:
Previous discussion: 12,000 tokens
New message:
Hi
那么新的请求中,仍然可能包含前面的 12,000 个 token。
如何测试最小 Token 使用量
如果你想测量一条简单消息的 token 用量,请尝试以下方法:
创建一个全新的对话。
关闭自定义技能。
不附加文件。
不打开项目工作区。
只发送:
Hi
这样可以更接近地观察最小上下文使用量。
上下文窗口 vs Token 使用量
有必要区分以下两个概念:
Context Window
模型在一次请求中最多能够处理的信息量。
例如:
1M token context window
这表示模型理论上最多可处理 100 万个 token。
Token Usage
某一次具体请求中,实际包含的 token 数量。
例如:
User message:
Hi
Actual request:
System instructions + tools + history + "Hi"
Total:
15,000 tokens
较大的上下文窗口,并不意味着每次请求只会消耗与你消息长度相当的 token。
结论
短消息带来的高 token 消耗,并不一定意味着模型或 API 出现了问题。
在 AI 代理环境中,总上下文通常包含许多为了实现智能操作而必须附带的隐藏组成部分。只发送一句简单的“Hi”,如果当前会话中还包含技能、工具、项目信息或历史记录,依然可能导致模型处理数千个 token。
如果你想测试最原始的 token 用量,我们建议在没有额外上下文的干净会话中进行测试。
感谢你的理解与持续支持。