# Token Saving

> 仅在任务明显需要跨文件、跨网页、长日志、多轮上下文、接口文档、Figma 还原或多子代理协作时使用；不适用于单文件、单次错误定位、单一小改动、单一文案或单一函数修正。

- Skill: `tomorrowlm/token-saving` (Agent Skill, multi-file: 8 files)
- Install (CLI): `npx skillmds@latest add tomorrowlm/token-saving`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomorrowlm/token-saving/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Design & Media
- Author: TomorrowLM (https://skillmd.com/u/tomorrowlm)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/tomorrowlm/token-saving

---


# Token Saving

## 核心目标

把上下文当作预算：先明确目标，再按证据逐层拿信息，只保留会影响下一步决策的内容。

## 何时触发

仅当任务明显属于“高上下文成本”时使用，满足任一条件：

- 需要阅读 3 个以上文件、网页、日志或接口文档。
- 工具输出可能超过 200 行。
- 任务跨越多个阶段、多个窗口或多个子代理。
- 任务已拆成多个相对独立的子任务，且确实需要新子智能体分别实现；此时可接入 `subagent-driven-development`，本技能只负责压缩上下文和控制 token。
- 用户要求总结、压缩、减少 token、节省上下文或避免污染会话。
- 需要写技能、改技能、测试技能、写代码、思考方案，且任务需要跨文件或跨轮次推进。
- 当前对话很长，需要继续推进但必须保留关键事实。

不适用：单句问答、简单计算、单文件小修、单处报错定位、单一函数/变量/文案调整、用户明确要求完整逐字输出。

## HARD-GATE

以下规则无例外，即使用户说“直接改”“先做”“这个很简单”“不用管 token”“先手动试试”：

1. 任务能在单文件、单轮读取、单次定位内完成时，不触发本技能。
2. 单个 import 报错、单处代码错误、单一文案修正、单一参数调整，不触发本技能。
3. 如果当前问题不涉及多文件搜索、日志分析、多轮协作或长对话状态保留，不触发本技能。
4. 不能把“我只想快速试一下”伪装成“这是复杂任务”；只有明确的多上下文证据才允许触发。

## 优先级规则

1. 如果任务是完整页面或功能模块开发，优先 `page-development-workflow`。
2. 如果任务已拆成独立子任务且需要完整的多代理实现交接，可使用 `subagent-driven-development`；仅并行调查使用 `dispatching-parallel-agents`。
3. 本技能只在上述两个维度成立时，负责上下文压缩、分层读取和 token 控制。

意思是：本技能不决定“做什么”，只决定“怎么用最小上下文推进任务”。

## 工作流

### 1. 先设预算

在开始前用一句话写清：

- 当前目标是什么。
- 必须保真的信息是什么。
- 可以压缩或丢弃的信息是什么。

如果目标不清，先问一个选择题，不要先读大量材料。

### 2. 分层获取上下文

按这个顺序拿信息，够用就停：

1. 文件名、目录结构、标题、目录和摘要。
2. 当前项目已有清单、AGENTS/README 里的约束摘要。
3. 精确搜索命中的片段。
4. 相关文件的大段读取。
5. 只有在必要时读取完整文件或完整网页。

避免“先全量读再筛选”。每次读之前说明要验证哪个假设。

### 3. 控制工具输出

- 搜索时优先用具体关键词、路径范围和结果上限。
- 读文件时按章节或相关行段读取，不连续小段不要反复读。
- 多项目 workspace 只读取当前上下文明确涉及的项目。
- 终端命令用项目脚本验证，不打印无关依赖树、完整构建日志或完整锁文件。
- 网页资料只摘取与当前决策有关的事实，保留来源链接。
- 日志分析先定位错误关键词、时间点和堆栈顶部，再扩展上下文。

### 4. 压缩并替换上下文

每完成一个阶段，立即把上下文压缩成「目标、决策、证据、风险、下一步」5 类事实，替代之前的原始材料；只有在用户要求或需要引用精确文本时，才再展开原始材料。

### 5. 上下文过大时提醒用户手动压缩

`/compact` 是宿主内置斜杠命令，Skill 无法调用；上下文过大时只能提醒用户手动执行，不要声称已经执行。

大量文件读取场景优先用子代理（`runSubagent`）承载；如果任务已经拆成多个相对独立且可交付的子任务，再接入 `subagent-driven-development`，按任务边界分派和收口验证。

### 6. 回复要短，优先省输出 token

默认输出结构：

1. 结论或当前决策，一句话。
2. 关键证据，最多 3 条，每条不超过一行。
3. 下一步，最多 1-2 个。

硬规则：

- 不要输出完整思考过程、完整工具日志、无关背景、重复的文件内容。
- 不要输出情绪价值和过渡句。
- 能用结构化 JSON 回答的，不要用 prose。
- 用户没问原因，不要主动解释。

## 红线

- 不要为了省 token 跳过必要验证。
- 不要压缩掉用户明确要求保留的细节。
- 不要把不确定事实写成确定结论。
- 不要用“节省 token”为理由省略安全、测试、影响面或来源证据。
- 不要在一个回复里同时解决多个未确认的大范围问题；先收敛范围。
- 当任务已经拆成独立且可交付的子任务，并确实需要多代理实现时，才接入 `subagent-driven-development`；不要用伪装式的 fork 方案替代真实子代理隔离。
- 不要读取未命中的技术栈模块、无关 workspace 项目或完整模板，只因为它们“可能有用”。
- 不要声称调用或执行了 `/compact`，它只能由用户手动触发。
- 不要在不需要时触发本技能；如果任务是单文件、单次定位、单点修改，直接走常规流程，不要为“节省 token”制造额外上下文。

## 完成检查

结束前确认：

- [ ] 当前回答只包含推进任务所需信息。
- [ ] 证据足够支撑结论。
- [ ] 未读取或粘贴无关大段内容。
- [ ] 下一步明确且数量不超过 3 个。

