当历史记录变得很长且早期的细节不再对当前任务有必要时,应该总结对话。与其在每轮都重新发送整个记录,不如用一份简短的总结来替代较旧的、已解决的部分,这份总结保留关键决策和当前状态,并删除已解决的偏离话题。
为什么这很重要
- 上下文窗口 — 每个模型都有有限的上下文。一份冗长、未编辑的历史记录最终会溢出,最早的消息无论如何都会被截断。
- 成本和延迟 — 你为重新发送的每条消息付费(以 token 计),也要等待。每轮都重新处理一条 50 条消息的线程既慢又昂贵;紧凑的总结很便宜。
- 专注力 — 无关的来回往复(一个你已经修复的 bug,一个你拒绝的想法)会分散模型对当前重要内容的注意力。
保留什么、删除什么
text
KEEP → decisions made ("we chose Postgres"), constraints ("must run on Node 18"),
current state ("auth works; now wiring the dashboard"), open questions
DROP → resolved tangents, dead-end attempts, long pasted output already acted on,
polite filler
