KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
调研与课程设计依据 — keel 龙骨
Context Engineering 的参考信息:调研与课程设计依据
本记录说明资料来源和课程取舍。在线资料于 2026-08-22 检索;文档版本会变化,课程引用的是稳定概念和边界,不把某个 SDK 的字段当成上下文工程的定义。
一手资料
| 资料 | 核心事实 | 课程吸收方式 |
|---|---|---|
| Ollama Context length | context length 是模型可访问的 token 上限;增大它会增加内存需求;Agent、搜索和 coding tool 应显式规划大窗口 | 第 01 章解释容量和硬件成本;项目把模型上限作为输入参数 |
| LangChain Short-term memory | 长历史可能超出窗口;即使未超限也会变慢、变贵、被陈旧内容干扰;trim、delete、summarize 是不同策略;删除消息要满足 provider 的历史约束 | 第 04-07 章把选择、摘要、工具消息配对和 checkpoint 变成框架无关契约 |
| LangChain SummarizationMiddleware | 摘要可以由 token 触发,并保留最近若干消息;摘要是一种 middleware,而不是永久记忆 | 第 05 章做触发与保留尾部的对照;第 07 章记录触发原因和版本 |
| Anthropic Context windows | 模型上下文由输入和输出共同占用;长上下文需要显式管理 | 第 01 章用“请求级可用预算”而非只看输入上限 |
| Anthropic Context editing | 可以在请求链路中清理旧工具结果等上下文,减少持续增长 | 第 05-06 章比较删工具结果和保留证据引用的代价 |
| Anthropic Compaction | 接近阈值时自动生成 compaction block,并在后续请求中丢弃其前面的内容;工具、计数和 pause-after-compaction 有额外边界 | 第 05-07 章比较服务端 compaction、消息选择和恢复 |
| OpenAI API compaction | Responses API 可用 context_management 与 compact_threshold 触发 server-side compaction,也提供 standalone compact endpoint;返回 compaction item 用较少 token 携带后续所需状态 |
第 05、07 章讲供应商 compaction 与本地策略的接口边界;项目仍用可审计的本地实现 |
| OpenAI API counting tokens | 输入 token counting endpoint 接收与 Responses API 相同的输入形态,并计入消息结构等 formatting tokens;可用于发送前的准确计数 | 第 02 章解释为什么字符估算不能替代目标模型计数 |
| OpenAI API conversation state | Responses/Conversations 可以持久化状态,但 context window 仍包含输入、输出和部分 reasoning token;保存 state 不能替代每次请求的预算 | 第 01、07 章区分 state、history、context 和 checkpoint |
论文与研究线索
| 论文 | 课程使用的结论 |
|---|---|
| Lost in the Middle: How Language Models Use Long Contexts | 相关信息放在长上下文中部时,模型利用率可能下降;“塞得下”不是“找得到” |
| MemGPT: Towards LLMs as Operating Systems | 有限上下文可以通过分层存储和显式换入换出管理;外部记忆与当前窗口职责不同 |
| LLMLingua: Compressing Prompts for Accelerated Inference | 提示压缩可以减少 token 和延迟,但要以任务损失为代价评估,不能只比较字符数 |
| LongBench | 长上下文评估需要按任务类型和长度分层,而不是用一个平均分掩盖退化 |
| Recursively Summarizing Books with Human Feedback | 够短的片段直接摘要,过长的先切块分别摘要,再把下层摘要拼起来递归摘要到根节点;上层任务还会携带同层的先前摘要作为上下文以保连贯。第 05 章用它说明“摘要链/分级摘要”不是新发明,课程只借用这种分解结构,不涉及其中的 RLHF 训练方法 |
| RecurrentGPT: Interactive Generation of (Arbitrarily) Long Text | 用自然语言模拟 LSTM 的循环:短期记忆承担近期摘要并在每个时间步被重写,长期记忆存放已完成段落的摘要并持续追加。第 05 章用它对比“每步重写同一层”与“到上限后重压最早几层”,两者都是有损的 |
课程取舍
- 先建立框架无关的预算协议:不同供应商的上下文参数、计费单位、工具消息格式和服务端状态各有差异;课程先用
TokenCounter、Message和BudgetPlan固定责任边界。 - 把摘要当成有损变换:摘要器可以是模型、规则或供应商 API,但必须输出来源、版本和保留事实;不可把摘要当作新的工具证据。
- 选择优先于压缩:低价值内容先不进入窗口;压缩是超过阈值后的补救,不是把所有数据都塞进去的理由。
- 工具轨迹有结构约束:不能随意截断
assistant tool_calls和tool结果;需要保留成对消息,或将旧回合转成带 call ID 的事实摘要。 - 先测不变量,再接模型:确定性测试验证预算、依赖、隔离和恢复;真实模型只承担语义摘要和任务质量实验。
不纳入主线的内容
KV cache 的底层实现、某一家供应商的计费表、特定模型的最大窗口和 tokenizer 内部算法会随版本、部署和硬件改变。课程只解释它们对预算和延迟的工程影响,并要求读者在上线前核对目标模型的官方限制。