Skip to content

第 6 章 Research Brief:Context Engineering

任务与读者问题

第 5 章解决“哪些内容分别是规则、任务、数据与输出契约”。第 6 章继续回答:在每次模型调用的有限上下文中,Harness 应如何选择、组织、刷新、压缩和验证真正值得带入的证据,而不是把所有可见文本一次性塞进 Prompt?

读者完成本章后,应能为一次任务写出 Context Brief,说明目标、候选资料、选择依据、来源、时效、敏感性、预算、刷新条件和未覆盖风险;也能区分运行时代码可访问的本地上下文与模型实际看到的上下文。

范围与非范围

范围: 上下文选择、来源与新鲜度、最小高信号上下文包、按需检索、对话延续、上下文预算、缓存和压缩的工程边界,以及上下文污染的可观察诊断。

非范围: 不在本章实现长期记忆、知识库索引、MCP 协议、具体向量数据库、模型 SDK、模型定价或安全访问控制;这些分别留给第 7、11、13、40 与 41 章。也不把上下文压缩、缓存命中、长上下文窗口或 RAG 说成业务正确性、安全性或性能的保证。

已核验来源与可用陈述

ID本章允许使用的陈述证据边界核验状态
REF-015Anthropic 将 Context Engineering 描述为在推理时持续筛选和维护进入上下文窗口的信息;其文章将上下文视为有限资源,并讨论最小高信号 token、按需加载与循环整理。这是 Anthropic 的工程观点与实践建议,不是统一术语定义、通用性能指标或安全保证。2026-07-15 复核 Anthropic 工程文章。
REF-016OpenAI Agents SDK 区分本地代码可用的 context 与模型可见的 LLM context;前者不会自动发送给模型。该文档还列出通过 instructions、input、函数工具与 retrieval/web search 将信息提供给模型的方式。仅描述该 SDK 的概念与接口语境,不外推为所有框架、所有语言或运行时的行为。2026-07-15 复核官方 SDK 文档。
REF-017OpenAI Agents SDK 文档列出由应用、SDK、Conversation API 或 Responses API 管理跨轮状态的不同策略,并警告在未刻意协调时混用客户端与服务端延续会重复上下文。仅用于说明该 SDK 的状态承载选择,不能写成所有 Agent 的记忆模型。2026-07-15 复核官方 SDK 文档。
REF-018Gemini 长上下文文档建议在不需要时避免传递 token;长上下文中的查询通常放在材料之后;重复使用相似大段上下文时可考虑其 context caching。这些建议与缓存机制均属于 Gemini API 语境;模型、阈值、费用、缓存语义和性能会变化,正文写作当天必须重查。2026-07-15 复核 Google 官方文档。
REF-019Anthropic 的 Contextual Retrieval 文章指出传统检索的切块可能丢失必要语境,并以其 Contextual Retrieval 方法讨论如何保留 chunk 的上下文。仅作为检索切块与来源语境关系的研究背景;不把该方法、指标或成本效益写成默认 RAG 实现。2026-07-15 复核 Anthropic 工程文章。

研究问题与当前结论

研究问题所需一手证据当前限定结论
什么算作模型上下文,什么只在运行时代码可见?SDK 或运行时的 context 文档。REF-016 在 OpenAI Agents SDK 中明确区分本地 context 与 LLM context。本书将这种区分扩展为“能访问”不等于“已进入模型输入”的工程检查。
为什么不应把所有资料放入一次调用?长上下文或 Context Engineering 的官方工程资料。REF-015 把上下文描述为有限资源并强调高信号选择;REF-018 建议不要传递不需要的 token。两者不提供跨模型的固定 token 预算或正确率保证。
何时使用预先检索,何时按需加载?检索与 Agent 上下文的来源。REF-015 讨论以标识符和工具按需载入资料;REF-016 列出函数工具、retrieval 与 web search 作为提供模型信息的方式。本书将选择条件设计为任务依赖、来源新鲜度、成本与验证要求,不把任一产品机制当作默认答案。
如何处理跨轮对话与任务状态?对话或 session 官方文档。REF-017 对其 SDK 列出四种状态承载策略,并警告无协调混用会重复上下文。本书将把“单一权威来源、可恢复快照和去重”写为工程建议。
切块检索会出现哪些资料质量风险?检索的一手工程资料。REF-019 说明切块可能移除理解所需背景。正文将由此引出来源、时间、对象和相邻段落的保留字段,但不复刻其实现或实验数字。

本书工程扩展

以下内容是本书的 Context Packet 模型,不是任何产品的消息格式或 API:

  1. 任务锚点: 当前目标、问题、停止条件和验证对象;没有任务锚点的资料不自动进入包。
  2. 证据条目: 每条资料都有来源、对象、时间、用途、敏感性、大小和可验证性字段。
  3. 选择理由: 说明资料为何与当前任务相关,以及它替代或排除了哪些候选资料。
  4. 预算与优先级: 为稳定规则、任务约束、直接证据、历史摘要和可按需获取的引用分配明确上限;预算超限时先移除低价值或过期资料,而不是静默截断关键约束。
  5. 刷新与压缩: 在任务阶段改变、来源过期、验证失败、内容重复或上下文达到阈值时触发重新选择;摘要必须保留来源、覆盖范围和未知项。
  6. 污染诊断: 将不可信指令、无关历史、重复摘要、过期观察和未标记的敏感数据视为可记录风险,而不是仅靠模型“忽略它”。

计划叙述与工件

  1. 用“修复一个测试失败”教学案例比较两种输入:把整个仓库日志、历史对话和所有文档塞进调用,与只带入失败测试、相关 diff、当前规则、可验证命令和按需引用。
  2. 建立 Context Brief:任务锚点、候选资料、选择/排除理由、来源、时效、预算、敏感性、刷新条件与未知项。
  3. 绘制“候选资料 → 分类与风险检查 → 预算选择 → Context Packet → 观察与刷新”的流程,图中不把检索结果直接连到“事实”或“完成”。
  4. 建立污染诊断表,至少覆盖过期状态、重复摘要、缺少出处的断言、与任务无关的历史和伪装成规则的数据。
  5. 设计纯内存示例:输入任务锚点与带元数据的候选证据,输出选中项、排除项、预算占用、刷新理由和待核验项;不读取真实仓库、不调用模型、检索服务、向量数据库或网络。

研究风险与待核验项

  • TODO(verify): 正文写作当天重新访问 REF-015 至 REF-019;SDK 接口、长上下文能力、缓存语义、状态承载方式和厂商建议均可能变化。
  • TODO(verify): 若正文出现模型名、上下文窗口数字、缓存阈值、价格、API 字段或 SDK 代码,必须以写作当天的官方 API 文档逐字段核验;本 Brief 不提供这些动态事实。
  • TODO(verify): 若案例涉及真实检索、权限、隐私、数据保留或外部工具,必须先引入第 11、12、13、40、41 章所需的正式资料;Context Packet 本身不构成安全、合规或访问控制。
  • 当前没有声明正文、Mermaid 导出、示例实现、SDK 调用、检索质量基准或缓存节省结果已经完成或验证。

Research 完成检查

  • [x] 明确了读者问题、范围、非范围和与第 5、7、11、13、40、41 章的边界。
  • [x] 复核了五项一手来源,并为每项限定允许与禁止用途。
  • [x] 将 Context Packet、预算、刷新和污染诊断明确为本书工程扩展。
  • [x] 建立了计划图示、教学案例、纯内存示例边界和正文当天复核要求。
  • [x] 未提前写入正文、产品 SDK、窗口/价格数字、检索性能主张、真实工具行为或安全结论。

从同一套 Markdown 书稿生成。