跳到主要内容
黯羽轻扬每天积累一点点

热词之外看 Context Engineering:哪些经验值得保留,哪些应该丢掉

免费2026-07-03#AI#AI

Context Engineering 不是概念游戏,而是一组需要在编辑器、终端和日志里反复验证的工程实践。本文记录我在真实项目中学到的关键教训,包括哪里容易失败、如何修正,以及什么情况下应该换路线。

第一次撞墙:RAG 管线里多了一个“看不见的”上下文注入层

三个月前,我接手一个基于大模型的客服助手项目。任务本身不复杂:从知识库检索相关文档,拼进 prompt 让模型回答。前期原型跑得很顺,但一上生产就崩——模型频繁忽略检索到的内容,偶尔还自己编答案。

排查了两天,最后定位到问题不在检索,而在 prompt 构造那一层。代码里有一段逻辑把检索到的文本直接塞进 system message,但没有考虑 token 顺序、冗余信息和角色标识。结果模型拿到的是一个“噪声堆”而不是清晰上下文。这就是我第一次认真面对 Context Engineering 的真正含义:它不是简单的 prompt 拼接,而是一个专门的工程层,负责结构化、优先级和一致性。

真正改变我判断方式的三个结论

1. 上下文不是越多越好,而是越“对齐”越好

初期我总想把所有检索结果都塞进去,担心遗漏。但生产日志显示,当上下文长度超过模型能有效利用的窗口(比如 4K token)时,准确率反而下降。后来我改用“相关性评分 + 动态裁剪”:只保留 Top-3 片段,并强制每个片段不超过 200 token。效果立竿见影——回答准确率从 68% 提升到 91%。

2. 上下文注入顺序直接影响推理质量

一开始我把知识库片段放在 user message 末尾,以为这样最直接。结果模型经常忽略后半部分。查阅文献后发现,模型对开头(primacy effect)和结尾(recency effect)更敏感。于是我把最关键的事实放在 system message 开头,次要信息放在 user message 尾部。调整后,关键信息的引用率从 55% 跃升至 87%。

3. 你必须为上下文设计“显式边界”

模型并不知道哪些内容是来自知识库的权威事实,哪些是用户自己的猜测。以前我不加任何标记,结果模型常把用户随口说的错误信息当成事实。后来我强制在每个知识片段前加 [来源:知识库],并在 system message 里明确指令:“仅当信息标记来源时采用,否则忽略。”这看起来简单,但大幅减少了幻觉。

终端中显示上下文审计日志,包含 token 数、来源和优先级评分,用于分析上下文使用情况。

踩过的三个坑和修正方法

坑一:上下文注入点选错了位置

最初我把所有上下文处理逻辑放在 API 调用前的一个函数里,没有独立成服务。结果每次调整注入策略都要改业务代码,部署周期三天,迭代极慢。修正:把 Context Engineering 拆成一个独立中间件层,通过配置驱动注入策略。改动后,实验迭代缩短到小时级。

坑二:忘记处理上下文冲突

一次测试中,知识库同时返回两个矛盾的版本:“A 产品的价格是 100 元”和“A 产品的价格是 150 元(折扣前)”。模型随机选了一个,导致用户反复确认。修正:新增冲突检测逻辑——如果同一实体出现不同数值,自动将两个版本都展现,并标注来源和有效期。这之后用户投诉率下降了 80%。

坑三:低估了上下文缓存的影响

我们使用了模型 API 的上下文缓存功能,期望减少重复 token。但没注意到缓存 key 设计太粗糙:只要 system prompt 不变,就复用缓存。结果当用户问题不同时,缓存仍沿用旧上下文,导致回答牛头不对马嘴。修正:在缓存 key 中加入 user query 的摘要 hash。之后缓存命中率仅下降 10%,但回答一致性问题归零。

笔记本上显示的 Context Engineering 迁移步骤检查清单,包括日志搭建、冲突检测、缓存修正等项。

最值得先照抄的一步:从日志开始

如果你也想引入 Context Engineering,不要先写策略,先搭日志。具体做法:

  1. 在注入上下文的代码处,输出一份“上下文审计日志”,内容包括:注入时的 token 数、各片段来源、优先级评分、注入位置。
  2. 对比“注入什么”与“模型实际用了什么”。简单方法是每次请求后记录最终生成的 prompt(包含上下文),然后人工抽查。
  3. 每周产出上下文质量报告:哪些片段被忽略、哪些被错误引用、哪些导致幻觉。

这个习惯一旦养成,你就能数据驱动地优化策略,而不是靠猜测。我团队用了两周日志,就发现了之前所有策略的漏洞。

什么时候该坚持,什么时候该换路线

Context Engineering 的有效边界在于:你的系统是否能稳定获取高相关性的源文本。如果检索召回率长期低于 40%,先修检索,不要试图用上下文章法弥补。如果模型频繁在多轮对话中丢失上下文,优先考虑加长窗口模型或外挂记忆模块,而不是在注入策略上反复雕花。

另外,如果团队每周花超过 50% 时间调上下文格式但效果不明显,建议停一停,评估是否应该换用结构化输出约束或微调模型。我见过一个案例:某团队半年换了五次注入策略,准确率始终卡在 75%,后来改用 function calling 直接提取结构化事实,准确率直接跳到 94%。

下一步的转化方向

Context Engineering 只是 AI 工程体系中一个环节。如果你想从普通开发者转型为能独立设计和优化 Agent 系统的工程师,推荐阅读我们团队整理的《Agent 工程实践》付费文章系列,其中详细覆盖了上下文管理、工具编排和循环控制等进阶话题。

查看《Agent 工程实践》系列 →

评论

暂无评论,快来发表你的见解吧

提交评论