Token 花在哪+Prompt 怎么写确定
一次任务的 Token 构成、四种常见浪费、三个示例 Prompt 与一张万能模板——把「越短越好」纠正成「越确定越好」。
这份笔记是什么
这一课是地基。先把「钱花在哪」算清楚,再把一个容易搞反的直觉掰正:Prompt 不是越短越好,而是越确定越好。
后面两节课的工具选择和上下文治理,都建立在这一课的两个判断上。
一句话先讲清楚
Token 优化,不是单纯「少说几个字」,而是让进入模型上下文的 Token 尽量都有用。
用一个指标衡量:
Token 利用效率 = 有效 Token ÷ 总消耗 Token越接近 1,越高效。
真正要减少的是这七样东西:模型猜测、无关历史、重复背景、过量工具定义、冗长日志、无效输出、以及返工。
Token 都花在哪
一次任务,上下文里通常同时装着这些:
System Prompt + 用户输入 + 历史对话 + 文件 / 检索结果
+ Tool / MCP / Skill 定义 + Tool 返回结果 + 模型输出对账的时候按这六块看:
| 花在哪 | 典型表现 | 谁最容易失控 |
|---|---|---|
| System Prompt | 角色描述、固定规则 | 越写越长,全是同义反复 |
| 用户输入 | 本次任务和资料 | 重复粘贴已知信息 |
| 历史对话 | 之前几轮聊过的 | 一个会话混了好几个任务 |
| 文件 / 检索结果 | 塞进去的整份文档 | 整本 PDF 直接丢进去 |
| 工具定义 | Skill / MCP 的 schema | 装得越多,隐性成本越高 |
| 工具返回结果 | 命令输出、日志 | 几千行里只有几十行有用 |
再加上第七块:模型输出——只要结论,却收到一整篇背景介绍。
两个最值得先记住的认知
第一,输出 Token 往往比输入更贵。 所以先限制「没必要的输出」,是收益最快的动作。
第二,工具 schema 也会占上下文。 装了一堆用不上的 Skill / MCP,还没开始干活就在付钱——工具越多,隐性成本越高。
输入 / 输出 Token 的价格比例因模型、供应商和时间而异,以当前价格为准。稳定有效的做法是:优先消除没有业务价值的输入和输出。
四种常见浪费
| 浪费 | 长什么样 | 该做的动作 |
|---|---|---|
| Prompt 很长但目标不明确 | 背景写了一大堆,定义、边界、输出要求却没有 | 补齐定义和判断标准,删掉客套 |
| 上下文越来越大 | 一个会话里混了周报、Excel、代码、市场方案 | 一事一会话,或者做交接摘要 |
| 工具返回太多 | 几千行日志,真正有用的只有几十行 | 先用脚本过滤,再交给模型 |
| 输出超过实际需要 | 只要「结论+3 个原因」,却生成大段背景和扩展知识 | 明确字段、格式和最大条数 |
先看看自己踩了哪几条,第二课会逐条给对应的动作。
L2|输入层:不是越短越好,而是越确定越好
四个动作
| 序号 | 动作 | 具体做什么 |
|---|---|---|
| ① | 明确目标 | 直接给目标、定义、公式、边界和判断标准 |
| ② | 结构化输入 | 优先用「目标 / 输入 / 规则 / 输出 / 限制」这种结构,而不是长段自然语言 |
| ③ | 精简 System Prompt | 删重复角色描述、同义反复和弱约束 |
| ④ | 限制输出 | 明确字段、格式、最大条数,以及是否需要解释 |
核心:减少模型「猜」的空间,也减少返工。 返工是最贵的一种浪费——它把前面所有 Token 都变成了沉没成本。
三个示例 Prompt
示例 A|把「猜指标」变成「执行公式」
❌ 模糊:
帮我算一下各小组的留存率。模型只能猜:次日 / 7 日 / 30 日?分母是什么?「活跃」怎么定义?
✅ 明确:
任务:计算各小组 7 日留存率。
公式:
7 日留存率 = D+7 日仍活跃用户数 / D 日新增用户数 × 100%
定义:
- 活跃:当日至少 1 次 app_open
- 新增:首次出现 register
- 分组:group_id
- 日期:2025-06-01 ~ 2025-06-30
输出:
group_id | 新增用户数 | D+7 活跃用户数 | 7日留存率
只输出结果表;数据不足标记 [缺失],不要自行补值。看清一件事:优化后的版本字数更多,但模型要猜的地方是零。 这就是「确定」比「短」更值钱。
示例 B|System Prompt 减肥
❌ 优化前:
你是一位非常专业、非常资深、经验丰富的数据分析专家。
请始终保持专业、准确、有条理。
回答一定要简洁,不要啰嗦,不要加不必要解释。
不要重复用户已知信息,请确保使用中文。
信息不确定时不要编造。✅ 优化后:
你是数据分析助手。
规则:
1. 只输出用户要求的内容和格式。
2. 信息缺失或无法确认时标记 [未确认],不要编造。
3. 使用中文。原则:删除「看起来专业」的话,保留「真正改变行为」的规则。
「非常资深、专业、有条理」这类词,模型读完行为不会变;「只输出用户要求的格式」「缺失时标 [未确认]」才是真的会改变输出。
示例 C|限制输出
分析下面的需求,只输出:
1. 核心目标:1 句话
2. 用户:最多 3 类
3. 必须功能:最多 5 条
4. 最大风险:最多 3 条
5. 待确认问题:最多 3 条
不要复述原需求,不写背景介绍。把「最多几条」写死,是限制输出最直接的一招。
万能省 Token Prompt 模板
任务:
[一句话说明要完成什么]
输入:
[只放完成任务必须的信息]
规则:
1. [关键判断规则]
2. [关键边界]
3. 信息不足时标记,不自行假设。
输出:
[字段 / JSON / 表格 / Markdown]
限制:
- 最多 [N] 条
- 不复述输入
- 不写背景介绍
- 不输出无关扩展内容记忆口诀:目标 / 输入 / 规则 / 输出 / 限制。
课堂 Demo 1|Prompt 减肥:减少猜测,不是机械删字
原始 Prompt
帮我分析一下这个需求,看看有什么问题,给点建议。优化 Prompt
你是产品需求审查助手。
任务:
审查下面的需求是否可以进入研发。
只检查:
1. 目标是否明确
2. 用户是否明确
3. 验收标准是否完整
4. 是否存在关键依赖
5. 是否存在明显歧义
输出:
- 结论:可进入研发 / 需补充
- 缺失信息:最多 5 条
- 风险:最多 3 条
- 需要产品回答的问题:最多 5 条
不要复述原需求。
不要提供需求之外的新功能建议。
需求:
{{粘贴需求}}现场观察这四点
- 是否复述原文
- 是否泛泛而谈
- 是否一次就拿到可用结果
- 是否减少了追加 Prompt
Demo 结论:短 ≠ 高效;确定性高,才更高效。
这一课的小结
| 记住什么 | 一句话 |
|---|---|
| 优化的定义 | 让进入上下文的 Token 尽量都有用,而不是少写字 |
| 先改哪一块 | 先限制「没必要的输出」,再把 Prompt 写确定 |
| 怎么写确定 | 目标 / 输入 / 规则 / 输出 / 限制 |
| 什么该删 | 看起来专业但不改变行为的话,以及重复粘贴的已知信息 |
下一课往上看两层:怎么选刚刚好的模型和工具,怎么让上下文不再持续膨胀。
产品教程