搞懂 AI 的 Token:省钱、省时、高效对话的完整指南
越来越多的人开始用 AI 辅助工作,但大多数人对 AI 的底层运作方式一知半解——Token 是什么?为什么对话长了 AI 会"忘事"?为什么同样的问题有时回答好有时回答差?
搞懂这些,不只是为了省钱,更是为了真正用好 AI。
Token 是什么?
Token 是 AI 处理文本的基本单位,既不是字符,也不是单词,而是介于两者之间的"文本片段"。
英文的 Token 切分规律:
"Hello, world!" → ["Hello", ",", " world", "!"] 共 4 个 Token
"ChatGPT" → ["Chat", "G", "PT"] 共 3 个 Token中文的 Token 切分规律:
中文通常每个汉字对应 1~2 个 Token,标点和空格也会占用 Token。
"你好世界" → 约 4~6 个 Token
"人工智能" → 约 4~6 个 Token一个粗略的换算参考:
| 内容 | 大约 Token 数 |
|---|---|
| 1000 个英文单词 | ~750 Token |
| 1000 个汉字 | ~1000~1500 Token |
| 一页 A4 文档 | ~500~800 Token |
| 一段 200 行代码 | ~1500~3000 Token |
可以用 OpenAI Tokenizer 直接粘贴文本查看 Token 数量。
上下文窗口:AI 的"工作记忆"
AI 并不像人一样有持久记忆,它每次回复时能"看到"的内容是有限的,这个限制就叫上下文窗口(Context Window),单位是 Token。
┌─────────────────────────────────────────┐
│ 上下文窗口(如 128K Token) │
│ │
│ 你的第1条消息 │
│ AI 的第1条回复 │
│ 你的第2条消息 │
│ AI 的第2条回复 │
│ ... │
│ 你的第N条消息(当前)← AI 正在处理这里 │
└─────────────────────────────────────────┘关键点:
- 窗口内的所有历史消息都会被重新发送给 AI,每次对话都在"重读"全部历史
- 超出窗口限制后,最早的内容会被截断,AI 真的会"忘记"前面说过的话
- 窗口越大,每次请求消耗的 Token 越多,费用越高
主流模型的上下文窗口对比:
| 模型 | 上下文窗口 |
|---|---|
| GPT-4o | 128K Token |
| Claude 3.5 Sonnet | 200K Token |
| Gemini 1.5 Pro | 1M Token |
| DeepSeek V3 | 64K Token |
AI 是怎么计费的?
主流 AI 服务按 Token 计费,分为输入 Token 和输出 Token 两部分,通常输出比输入贵 3~5 倍。
总费用 = 输入 Token 数 × 输入单价 + 输出 Token 数 × 输出单价输入 Token 包括:
- 你发送的消息
- 系统提示词(System Prompt)
- 本次对话的所有历史记录
输出 Token 包括:
- AI 生成的回复内容
这意味着一个长达 50 轮的对话,到最后每一条新消息都要把前面 49 轮全部重新计费一次。对话越长,边际成本越高。
如何节省 Token?
1. 开新对话,而不是无限续聊
每个话题独立开一个对话,避免把不相关的历史拖进来。这是最直接有效的省钱方式。
❌ 在同一个对话里问:写代码 → 翻译文章 → 分析数据 → 写邮件
✅ 每个任务开一个新对话2. 精简你的提问
冗余的客套话和重复的背景说明都是在烧 Token。
❌ "你好!我是一名前端开发者,我最近在做一个项目,
这个项目是关于电商的,我遇到了一个问题,
就是关于 CSS 的,希望你能帮我解答一下,
我的问题是:flex 和 grid 有什么区别?"
✅ "CSS flex 和 grid 的核心区别是什么?各自适合什么场景?"3. 让 AI 直接给结论,不要解释过程
❌ "请详细解释一下快速排序的原理和实现步骤"
✅ "给我一个 JavaScript 快速排序的实现,只要代码,不要解释"4. 用代码代替描述
需要处理数据时,直接给结构,不要用文字描述。
❌ "我有一个用户列表,每个用户有名字、年龄和邮箱,
我想按年龄从小到大排序..."
✅ 直接粘贴数据结构:
[{ name: "Alice", age: 28, email: "..." }, ...]
按 age 升序排序,返回新数组5. 分段处理长文档
不要一次性把整篇文章扔给 AI,按需截取相关段落。
❌ 把 10000 字的文档全部粘贴,问其中一个小问题
✅ 只粘贴相关的 500 字段落如何高效与 AI 对话?
节省 Token 只是一方面,更重要的是提升对话质量,让 AI 一次就给出你想要的结果。
给 AI 一个明确的角色
✅ "你是一个有 10 年经验的 Node.js 后端工程师,
帮我 review 以下代码的性能问题:"角色设定能让 AI 调整回答的专业深度和视角,避免给出过于基础或偏离方向的回答。
说清楚输出格式
✅ "用 Markdown 表格对比以下三个方案的优缺点"
✅ "给我 3 个方案,每个方案一句话概括,不要展开"
✅ "只返回 JSON,不要任何解释文字"提供反例或约束条件
✅ "写一个 Python 函数,要求:
- 不使用第三方库
- 时间复杂度 O(n)
- 不要用递归"用"继续"代替重复上下文
如果 AI 的回答被截断,直接说"继续",不要重新描述任务。
迭代而不是重来
AI 的第一次回答不满意时,针对性地指出问题,而不是重新写一遍提示词。
❌ 重新写一个更详细的 Prompt,从头开始
✅ "上面的方案性能太差,改用哈希表实现"
✅ "语气太正式了,改成口语化一点"善用"分步思考"
对于复杂问题,让 AI 先列出思路再执行,能显著提升准确率。
✅ "先列出解决这个问题的步骤,确认后再写代码"
✅ "一步一步思考,然后给出答案"一个实用的对话模板
把以下结构作为复杂任务的提问框架:
【角色】你是一个...(领域专家)
【背景】我正在做...(简短的项目背景,1~2句)
【任务】请帮我...(具体要做什么)
【约束】
- 要求1
- 要求2
【输出格式】请以...格式返回这个结构能让 AI 快速定位你的需求,减少来回确认的轮次,也就减少了 Token 消耗。
总结
| 目标 | 做法 |
|---|---|
| 省 Token | 开新对话、精简提问、按需截取文档 |
| 提升质量 | 给角色、说格式、加约束条件 |
| 减少来回 | 用模板、迭代修改、让 AI 分步思考 |
| 控制成本 | 简单任务用便宜模型,复杂任务再上旗舰 |
AI 不是搜索引擎,也不是万能的。它的能力上限很高,但能不能发挥出来,很大程度上取决于你怎么问。
- 本文链接:
- 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。

