8. 令牌经济 — 什么进入上下文,什么留在外面
令牌是有限资源,也是决策质量的空间。四层放置策略(内联·自动加载·按需加载·外部参照),节省令牌如何有效拓展决策余地,以及用来维持预算可控的审计工具。
这是 Alice Way 系列的第 8 篇。第 1 篇到第 7 篇涵盖了在哪里、如何、以及与谁分配心智的负担。本篇关于所有那些决定所依赖的最基础资源——context window,即令牌。
0. 令牌经济是有意筛选进入心智的内容
协作者的 context window 是有限的。不是所有东西都能装进去。但更重要的事实是——进来的内容决定决策的质量。充满噪声,信号就弱化;压缩成信号,同样的窗口可以承载更深的决策。
令牌经济因此不只是降低成本。它是有意选择什么准入心智。 自动加载 vs 按需加载、记忆内 vs 记忆外、主协作者 vs 子协作者——本系列涵盖的每个决定都收敛于一个单一的资源分配问题。
本篇是对那个分配的四层放置、令牌节省如何转化为决策质量、以及保持积累上下文整洁的审计工具的记录。
1. 四层放置 — 令牌进入的渠道
我收敛出来的令牌放置有四层。
| 层 | 内容 | 进入时机 | 令牌成本 |
|---|---|---|---|
| L1 内联 | 人格·决策权限·安全守卫 | 每次会话,自动 | 总是(最贵) |
| L2 自动加载 | 记忆索引前 N 行、项目 CLAUDE.md | 每次会话 / 目录进入时 | 总是(条件性) |
| L3 按需 Read | 记忆正文、各语言规则、代码文件 | 工作进入该领域时 | 只在那次工作 |
| L4 外部引用 | 整个代码库、构建日志、外部 API 响应 | 子智能体接收 / 只有摘要到主协作者 | 主协作者只看摘要 |
核心是——L1·L2 必须短,因为经常被看到;L3·L4 可以长,因为很少被看到。同样的信息放在错误的层,就是浪费令牌。
| 错误放置 | 结果 |
|---|---|
| L4 → L1(整个代码库放入人格) | 每次会话大量消耗上下文 |
| L1 → L4(角色定义在外部文件) | 协作者每次会话都不知道自己的人格 |
| L2 → L3(记忆索引作为按需) | 协作者不知道它自己的记忆存在 |
| L3 → L2(所有记忆正文自动加载) | 索引自动加载失去意义 |
2. 令牌节省 → 决策质量 — 因果链
为何令牌节省是决策质量问题,而不只是成本问题。
2.1 信噪比
假设 100k context window。如果人格 + 记忆 + 无关的自动加载占用了 80k,只剩下 20k 用于决策级信号。在同样的窗口中把自动加载缩减到 30k,信号空间增长到 70k。同样的决策展开得深得多。
决策质量与信噪比成正比,而非与上下文大小成正比。
2.2 注意力扩散
协作者就像人一样,随着上下文增长,对「什么重要」的判断变得不稳定。在 100k 中找到关键行,比在 30k 中准确度低。削减噪声本身就提升决策质量。
2.3 首令牌延迟
令牌越少,响应越快。响应越快,操作者的流程保持完整。不被打断的流程减少操作者的心智负担。操作者一侧的质量也上升了。
3. 实际轮转中的节省模式
我为令牌节省主动运行的内容。
3.1 记忆索引上限 200 行
MEMORY.md 索引保持在 200 行以内。超过这个范围就落在自动加载窗口之外,失去意义。200 行的压力本身成为修剪的动力。
3.2 不读取整个目录
一次性读取一个大目录会让令牌爆炸。先用 ls 列出,用 grep 缩小,然后只 Read 特定文件。作为安全守卫嵌入人格。
3.3 超过 500 行的文件先读头部/范围
从不从头读到尾读取大文件。先读前 100 行了解结构,然后只读所需范围。同样的决策针对 200 行上下文发生,而不是 1000 行。
3.4 把深度工作交给子智能体
搜索、审查、构建、测试在子协作者中深入进行;主协作者只看摘要。主上下文保持在决策模式。(参见 Part 6 — Multi-agent 委派。)
3.5 记忆修剪节奏
项目记忆每月,反馈记忆每季度,引用记忆每半年。过时的上下文不应该占据无意义的槽位。这些周期所运行的内存结构本身在 Part 3 — Memory 系统 中讨论。
3.6 令牌审计工具
类似 /token-audit 的工具定期运行。报告哪些条目 60 天以上未被引用、哪些记忆膨胀了、哪些自动加载未被使用——作为修剪决策的依据。
4. 高成本上下文位置 — 优先修剪哪里
令牌成本因位置而异。同样的 100 行,根据放置位置,成本可以相差 10 倍。
| 位置 | 每行成本(相对) | 修剪优先级 |
|---|---|---|
| 人格(L1) | × 每次会话 × 每次响应 | ★★★ 最高 |
| 记忆索引(L2) | × 每次会话 | ★★ |
| 项目 CLAUDE.md(L2) | × 在该项目的每次会话 | ★★ |
| 记忆正文(L3) | × 只在被 Read 时 | ★ |
| 代码文件(L4) | × 只在被 Read 时 | (不修剪——拆分) |
人格是最贵的。人格中同样的 100 行,每次会话 × 每次响应都要付出代价。所以人格保持最精简,修剪最频繁。
5. 陷阱 — 令牌经济出错的模式
5.1 "以防万一"内联
因为某天可能有用,就把一条守卫、一条策略、一个示例加入人格。一年后人格是 1000 行。→ 坚持这条规则:「只有实际触发过两次的才晋升到人格。」
5.2 记忆正文复制进索引
把记忆正文的一部分作为「摘要」复制进索引。索引本身膨胀了。→ 索引总是只携带一行挂钩。正文留在各自的文件里。
5.3 没有定期令牌审查
每天使用,但完全不知道令牌流向哪里。→ 安排令牌审计:哪些自动加载很大,哪些记忆未被使用。
5.4 子协作者结果被主协作者完整吸收
子协作者返回 1000 行,主协作者全部吸收。使用子协作者的原因就丧失了。→ 子协作者结果总是拆分为摘要(给主协作者)+ 完整内容(给文件或下一个子协作者调用)。
5.5 触碰上下文限制
令牌到达窗口末尾,自动压缩启动,或者最旧的上下文被丢弃。被丢弃的切片可能是操作者没有有意识追踪的那部分。→ 始终关注上下文使用情况;利用率达到 80% 时进行清理。
6. 积累的令牌经济 — 发生了什么变化
从我开始把令牌经济作为头等关注点以来的变化。
| 条目 | 之前 | 之后 |
|---|---|---|
| 会话开始上下文 | 平均 60—70k | 索引 + 人格 = 15—20k |
| 可用于深层工作的令牌 | 30—40k | 80—85k |
| 上下文压缩频率 | 经常 | 罕见 |
| 同样工作的决策质量 | 平均 | 深度(噪声更少) |
| 响应速度 | 平均 | 快速 |
核心是最后两条——同样的工作展开成更深的决策,而且展开得更快。令牌节省直接转化为决策质量。
7. 压缩成一条原则
令牌经济设计的核心压缩成一句话:
「只有每次会话都必须看到的才内联;经常看到的自动加载;偶尔看到的按需 Read;几乎不该被看到的放外部。代价最高的错误是放错了层。」
这条成立时,令牌经济成为决策质量的加速器。它崩溃时——噪声吞噬决策空间,协作者对什么重要感到困惑。
下一篇是最后一篇。它涵盖所有这些——人格、记忆、skills、hooks、多智能体、验证、令牌——实际上如何每天启动和结束。Part 9 — Session 协议。