核心要点

  • 能讲动机:上下文工程(context engineering)决定 Agent 质量,把"哪些信息放进上下文窗口、放多少、怎么组织"从主流程抽出来,做成独立可插拔的 Context Engine

  • 能枚举策略:滑动窗口/截断、摘要压缩、按相关性检索注入(RAG 式记忆)、重要性打分与淘汰、结构化记忆与工具结果裁剪、token 预算分配、分层组织(系统/任务/会话/检索)

  • 能讲好处:策略可独立调优、可 A/B 对比、与业务逻辑解耦,换策略无需改 Agent 主循环

  • 能讲约束:上下文窗口与 token 预算有限,长上下文还有"中间遗忘"与成本/延迟问题,需要主动取舍而非全塞

标准回答

为什么要抽象成引擎

到 2026 年,业内的共识是 Agent 的效果七分靠上下文工程:模型再强,喂进窗口的信息选错了、组织乱了,输出照样跑偏。问题在于"该放什么进上下文"没有标准答案——客服、代码、深度研究各有最优策略。于是把这套决策从 Agent 主循环里抽离成独立的 Context Engine:主循环只问引擎"这一步给我组装好上下文",引擎内部决定取舍。这样策略可替换、可单独调优、可 A/B 对比,业务代码保持稳定。

能支持哪些策略

  • 滑动窗口 / 截断:只保留最近 N 轮,简单但会丢早期信息;
  • 摘要压缩:把旧历史滚动总结成短摘要,在窗口和信息量间折中;
  • 相关性检索注入(RAG 式记忆):把历史/知识存外部库,按当前 query 检索 top-k 注入,实现近似无限记忆;
  • 重要性打分与淘汰:给每条记忆打分(时效、频次、显著性),预算紧张时淘汰低分项;
  • 结构化记忆与工具结果裁剪:长工具返回只留关键字段或摘要,避免噪声占满窗口;
  • token 预算分配:给系统提示、历史、检索、工具结果各划定额度,超额按优先级裁剪;
  • 分层组织:把上下文分为系统层 / 任务层 / 会话层 / 检索层,各层独立管理、按需拼装。

带来的好处

核心是可调优 + 可对比 + 与业务解耦。引擎背后接统一接口,换"截断"换"摘要+检索"只是配置或实现替换,Agent 逻辑零改动;还能对同一任务跑多套策略离线评测,用数据选最优,而不是拍脑袋。

常见误区

⚠️ 常见踩坑

别迷信"长上下文窗口就能把所有历史全塞进去"——窗口越长成本和延迟越高,且模型存在"中间遗忘"(lost in the middle),关键信息被淹没反而降质。上下文工程的本质是主动取舍:选最相关、最少够用的信息并放在显著位置,而不是堆满。也别把检索、摘要、淘汰逻辑散落在各处,那样无法统一调优和对比。

追问

追问 1摘要压缩和检索注入这两种策略如何选择,能否组合?

摘要压缩适合需要保留对话连续脉络的场景(如多轮咨询),代价是压缩会损失细节、且生成摘要本身有成本和延迟;检索注入适合知识量大、按需取用的场景(如文档问答),但依赖检索质量,召回差会漏关键信息。两者常组合:近期历史用摘要维持连贯,远期与外部知识用检索按相关性补回,再由 token 预算统一裁剪,兼顾连续性与覆盖面。

追问 2token 预算紧张时,多个来源(系统提示、历史、检索、工具结果)如何分配与裁剪?

先给不可压缩项(系统提示、当前用户输入、关键约束)保底额度,剩余预算按优先级和相关性动态分配给历史、检索结果、工具输出。裁剪顺序通常是:先压缩或丢弃低分历史与冗长工具返回,再削减检索 top-k 数量,系统提示和当前任务最后才动。实现上由 Context Engine 统一估算 token 并按规则裁剪,避免各来源各自为政导致超限或失衡。

追问 3如何评估一套上下文策略的好坏?

离线用固定测试集对同一批任务跑不同策略,比较任务成功率、答案准确性/接地率、幻觉率,以及 token 消耗、延迟、成本等效率指标;线上做 A/B,看真实留存与满意度。把 Context Engine 抽象出来的价值正在于此——能在不改业务的前提下切换策略并量化对比,用数据驱动选型,而非凭直觉。

🔗 相似问题

同一考点的不同问法,面试官可能换着问,一起刷更稳

没找到想看的面试题?把你想看的告诉我们 →

延伸学习

按主题分类的相关资源,便于系统复习