工具选刚刚好+上下文别膨胀
模型分级、工具四原则、上下文层四件事,加上 3 个课堂 Demo 与两个进阶思路——真正的大头往往在这里。
这份笔记是什么
上一课解决的是「怎么写」。这一课往上走两层:选什么来干活(L3 工具层),以及怎么让上下文不再越滚越大(L4 上下文层)。
一句话预告:真正的大头,在上下文层。
L3|模型与工具层:不是「最强」,而是「刚刚好」
模型分级:先看任务,再选档位
| 任务类型 | 该用什么 |
|---|---|
| 分类、提取、格式转换、简单摘要 | 快速 / 轻量模型 |
| 普通写作、分析、办公 | 中等能力模型 |
| 复杂代码、困难研究、复杂推理 | 强模型 / 更高推理强度 |
| 不确定 | 先低成本尝试,失败再升级 |
最后一行的「不确定」不代表纠结——默认从低成本开始,跑不通再升级,比一上来就开最强配置更划算,也几乎不会影响结果质量。
脚本优先:能确定性算的,别让模型「读完再算」
机器能确定性过滤的内容先过滤,需要判断的部分再交给大模型。
查询、过滤、计算、缓存都属于这一类。让模型去数一列数、去汇总一张表,既慢又贵还可能算错;写成脚本一行搞定。
工具四原则
最小安装 · 按需启用 · 延迟加载 · 任务结束退出无关工具Tool / MCP / Skill 会把名称、描述、参数 schema 放进上下文。工具越多、定义越复杂,潜在开销越大——哪怕你一次都没调用它。
RTK:在 CLI 输出进入上下文前先过滤
RTK(Rust Token Killer)的思路,是在命令行输出进入 LLM 上下文之前做过滤和压缩。
安装前先确认:
rtk --version
rtk gain安装后可以用 rtk gain 查看节省统计。项目方给出了常见开发命令减少输出的基准数据,但实际效果随项目、命令和工作流变化。
课堂重点不是记某个百分比,而是理解:不要把机器生成的全部原始输出直接交给模型。
原始数据 → 机器过滤 / 压缩 → 关键结果 → LLM 判断课堂 Demo 3|工具输出压缩:让 Agent 少吃日志
A. 手工过滤(最省事,先学会这个)
npm test 2>&1 | tail -n 100
grep -iE "error|failed|exception" app.log | tail -n 100B. RTK(可选,AI 编程场景)
见上一节。装好后用 rtk gain 对比一下节省情况。
观察:把过滤前后的内容长度对比一下,再看模型给的判断有没有变差。
L4|上下文层:真正的大头往往在这里
8.1 一事一会话
一个目标 → 一个会话 → 完成 → 新任务开新会话不要在同一个上下文里不断混入互不相关的任务。代码、部署、周报、市场方案串在一个会话里,每一轮都在为之前所有的历史付费,而且 AI 还容易被旧话题带偏。
8.2 长会话用「交接摘要」
请把当前会话压缩成"继续工作所需的最小上下文"。
只保留:
1. 当前目标
2. 已确认事实
3. 已完成事项
4. 当前方案 / 关键决策
5. 未解决问题
6. 下一步
7. 必须保留的文件名、变量名、接口名、命令
删除:
- 寒暄
- 已否决方案
- 重复解释
- 中间试错过程
- 与后续无关的信息
要求:新会话仅凭这份摘要即可继续工作。8.3 文件按需取,不要整本塞
先检索 → 找相关章节 / 页面 → 只读取相关内容 → 回答核心:需要什么,取什么;不是有什么,塞什么。
8.4 确定性过滤优先交给脚本
见 Demo 3。别让模型的上下文里出现「原始日志」这种东西。
课堂 Demo 2|上下文瘦身:长对话 → 最小交接摘要
第一课的 Demo 是给 Prompt 减肥,这个 Demo 是给会话减肥。用这份加料版提示词,让旧会话自己吐出交接摘要:
请把当前项目压缩成"新会话继续工作所需的最小上下文"。
必须保留:
- 目标
- 已确认需求
- 当前架构 / 方案
- 已完成内容
- 未解决问题
- 文件 / 接口 / 变量等关键名称
- 下一步
必须删除:
- 寒暄
- 重复解释
- 已否决方案
- 已解决错误的完整调试过程
- 与下一步无关的历史内容
最后增加:
【下一条建议 Prompt】
让我可以复制到新会话直接继续。操作步骤
观察三点:输入是否明显变短;AI 是否仍知道目标、关键决策和下一步;旧话题的干扰是否减少。
进阶一:把原始数据挡在上下文之外
有一类工具的思路是「让原始数据压根不进上下文」,只把精炼结果交回去。典型收益点:
| 能力 | 效果量级 | 在做什么 |
|---|---|---|
| Context Saving | 98% | 沙箱保留原始数据,只返回精炼结果 |
| Session Continuity | 6× | 追踪文件编辑 / 任务 / 错误,压缩后能恢复 |
| Think in Code | 100× | 让模型生成计算脚本,而不是把整份数据读进上下文 |
适合的场景有个共同特征:大输入、小结论——Playwright 抓页面、CSV 统计、日志排查、长文档提取。
具体工具名与倍率会随版本变化,重点是记住这个思路:算在沙箱里算,结论进上下文。
进阶二:别让 Agent 每次都「现场翻仓库」
这是 AI 编程场景里最典型的一笔浪费。
| 传统探索 | 有了代码图谱 | |
|---|---|---|
| 做法 | grep → read → ls → 再 grep | 先建本地代码图谱,再按结构查询 |
| 结果 | Agent 从文件名、函数名一点点拼结构 | 直接查调用关系与影响面 |
| 成本 | 大量 Token 花在「找代码」上 | Token 花在「改代码」上 |
常见能力:search · callers · callees · impact · context · affected。
什么时候最值
- 老项目改 Bug:动手前先查 callers / callees / impact,减少「只看局部就动手」;
- 大仓库问答:像「订单流程怎么走」「缓存在哪失效」这种问题,探索结构正对口;
- CI 测试选择:用 affected 做第一层过滤,适合测试多、全量跑很慢的仓库。
注意一个边界:静态分析不等于运行时真相。 动态导入、反射这类写法会有盲区,别把图谱结果当成唯一依据。
这一课的小结
| 记住什么 | 一句话 |
|---|---|
| 模型选型 | 从低成本开始,跑不通再升级;简单任务别开最强 |
| 工具 | 最小安装、按需启用、延迟加载、任务结束就退出 |
| 日志与命令输出 | 先脚本过滤,再进上下文 |
| 长会话 | 摘要后开新会话,别让上下文无限长 |
| 文件 | 先检索再读取,需要什么取什么 |
| 进阶 | 算在沙箱里算;用代码图谱替代现场翻仓库 |
下一课把这些动作变成日常习惯,并给你一份 30 秒自查清单。
产品教程