kp-015 核心 25 分钟 通信与协议

上下文工程:裁剪、压缩与分层记忆

#上下文工程 #记忆 #裁剪 #压缩

前置知识

一句话定义

上下文工程是决定「每次模型调用看到什么」的工程学科:在有限的窗口预算内,通过裁剪、压缩、结构化提取与分层记忆,把最相关的信息放在注意力最友好的位置,使多智能体在长任务中不因上下文管理失控而劣化。

直观类比

资深律师的案卷管理:不是把所有材料都摊在桌上(窗口塞满),而是分三层——手边只放当前争议点的两三页(工作记忆),柜子里放按主题归档的卷宗(情景记忆),脑子里是多年的法律原则(长期知识)。需要时按引用去柜子里取,而不是全抱出来。

为什么重要

多智能体把上下文从「一条对话」变成「多个智能体 × 多轮调用 × 共享黑板」的高维对象,管理失误的代价被放大:黑板膨胀污染所有读者(kp-013)、交接全量转发层层加码(kp-012)、长任务中段遗忘(kp-002)。上下文工程是让 kp-004 的协作增益不被「上下文税」吃掉的前提,也是 checkpoint 恢复后状态完整性的保障(kp-018)。

前置知识

kp-002(注意力稀释与 Lost in the Middle);kp-013(黑板是上下文的上游数据源)。

核心概念

  • 窗口预算(Context Budget):为每次调用分配的 token 上限,按构成切分;
  • 裁剪(Pruning):丢弃过期工具输出、旧探索记录,保留结构化结论;
  • 压缩(Compression / Summarization):把长历史压缩为摘要(系统侧称为 compaction);
  • 结构化提取(Structured Extraction):把对话中的事实提炼为 state 字段,替代保留原文;
  • 分层记忆:工作记忆(当前调用窗口)/ 情景记忆(任务历史,可检索)/ 语义记忆(提炼后的长期知识)。

原理与机制

预算切分表(长任务调用的经验配比,按需调整):系统提示与角色卡 5–10%;当前任务与验收标准 5–10%;检索/工具结果 40–50%(最易膨胀区,必须裁剪);任务历史摘要 20–30%;输出预留 10–20%。四类手法的适用顺序:先裁剪(确定性、零失真——旧工具结果只留摘要行)、再结构化提取(对话→字段,失真可控)、后压缩(自然语言摘要,有信息损失,只用于历史)、最后才扩大保留窗口(成本线性上升)。位置管理:Lost in the Middle 的实证结论是模型对开头结尾的利用率高于中段——把当前任务、验收标准与最新关键产物放在窗口两端,参考性材料放中段。多智能体特有策略:按角色裁剪视图(工人只看自己子任务+验收标准,不看全局闲聊,呼应 kp-006 的上下文屏障);黑板分层归档(kp-013 防膨胀);跨轮记忆走「引用 + 检索」而非全文携带。

图示

一次调用的窗口预算
┌──────────────────────────────────────────┐
│ 系统提示+角色卡 (5-10%)  ↑开头: 注意力友好区  │
│ 当前任务+验收标准 (5-10%) ↑紧随其后          │
│ 检索/工具结果摘要 (40-50%) ←裁剪重灾区       │
│ 任务历史摘要 (20-30%)      ←压缩产物         │
│ 输出预留 (10-20%)         ↓结尾: 注意力友好区 │
└──────────────────────────────────────────┘
记忆分层: 工作记忆(窗口) ⇄ 情景记忆(可检索的任务史) ⇄ 语义记忆(长期知识)

实例或案例

研究智能体运行 40 分钟后窗口告急:第一优先裁剪——前 20 轮的原始网页抓取替换为一行摘要加链接引用(确定性、零语义损失);第二把 30 条中间结论结构化提取进黑板 findings/ 字段;第三把早期「探索方向讨论」压缩为一段「已排除路径」摘要;调整后窗口从 92% 降回 47%,且后续任务的验收遵循率明显回升(关键指令回到了窗口头部)。

公式或模型

窗口占用 W = Σ(系统提示 Pᵢ + 历史 Hᵢ + 工具结果 Tᵢ);令每轮压缩率 r(保留比例),k 轮后历史体积 Hₖ ≈ H₀·(1 + r + r² + …) 收敛于 H₀/(1-r)——压缩率 0.3(保留 30%)即可让历史体积近似有界,这是「历史摘要化能防窗口爆炸」的几何级数解释。信息损失无法用单一公式刻画,工程上以「下游任务验收遵循率」作为间接度量(kp-024)。

常见误区

  • 误区一:窗口大就不用管理。 容量不等于利用率,中段遗忘与指令稀释照常发生(kp-002);
  • 误区二:压缩可以无差别使用。 对验收标准、约束、引用编号做压缩是事故来源——这些是「不可压缩区」;
  • 误区三:记忆 = 聊天历史。 历史只是情景记忆的原始形态,未经提取与归档的历史既贵又难用。

与其他知识点的关系

本知识点是 kp-012「摘要转发」与 kp-013「黑板防膨胀」的手法库;压缩触发点的设置与 kp-018 的检查点节奏配合(在压缩前后各留检查点便于对比恢复质量)。

自测题

  1. 四类上下文手法的推荐使用顺序及理由?

要点:裁剪(零失真)→ 结构化提取(失真可控)→ 压缩(有损)→ 扩窗(成本线性涨)。

  1. 哪些内容属于「不可压缩区」?

要点:验收标准、硬约束、引用编号、当前任务定义——压缩这些会直接破坏可验收性。

  1. 用几何级数解释为什么保留 30% 的滚动摘要能让历史体积有界?

要点:Hₖ = H₀(1+r+r²+…) → H₀/(1-r),r = 0.3 时历史收敛于约 1.43 倍单轮量级。

延伸阅读

Liu 等的《Lost in the Middle》是位置效应的实证基础;各家框架的 compaction/summarization 机制是本知识点的工程化呈现。

相关知识点

学习状态:
未学