你的上下文已被污染

发布: (2026年3月18日 GMT+8 10:49)
6 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的完整文本内容,我将按照要求保留源链接并仅翻译正文部分。谢谢!

上下文工程框架

LangChain 的 Lance Martin 发布了一个上下文工程框架,包含四种操作——Write(写入)、Select(选择)、Compress(压缩)和 Isolate(隔离),每种操作都有其对应的失效模式。将这些映射到我们六代理自主系统的生产数据中,发现 4,768 起违规行为,全部可追溯到这四种被污染的上下文模式之一。

Failure Mode 1: Stale Context (Write)

您的代理指令是在三次冲刺前编写的。API 已更改,模式已迁移,而代理仍在针对已不再存在的现实版本生成代码。

Symptoms

  • CLAUDE.md 文件引用了已移动的文件路径。
  • 约束引用了已被取代的规范。
  • 代码库几周前强制的模式仍在使用。

Fix – Structural enforcement via L5 hooks that validate context freshness before the agent acts

  • 当指令引用文件路径时,钩子会验证该路径是否存在。
  • 当约束引用规范时,钩子会确认该规范仍然有效。

检测工具只能在破损代码发布 之后 告诉您上下文已过时。通过构建时的钩子可以阻止过时的上下文进入代理,从根本上防止问题的产生。

失效模式 2:缺失上下文(选择)

代理拥有 200 K‑token 的窗口,但只选择了一小部分——例如,40 K 的对话历史、20 K 的文件内容,以及 字节的关键配置。

标签

“context gap” 违规。

示例

代理做出了一个决定,如果它先阅读了仓库中的 CLAUDE.md 本来是正确的,但没有任何机制强制它这么做。

修复 – 通过 L5 钩子强制加载必需上下文

  • 在编码代理接触任何仓库之前,钩子会验证它已读取仓库的 CLAUDE.md
  • 在响应操作员消息之前,代理必须检查其收件箱。

这些都是自动化闸门,会阻止执行,直至加载所需的上下文。

Failure Mode 3: Bloated Context (Compress)

大型上下文窗口(200 K 令牌)在代理读取大量文件、执行命令并累积对话历史后,可能变得难以管理。此时进行 压缩,会丢弃较旧的消息。

首先被丢弃的是什么?

系统提示、行为约束以及顶层指令。

影响

在压缩事件后,代理平均 每天违规 12 次,大约每 45 分钟就会无声地忘记自己的规则。

解决方案 – 预压缩内存刷新钩子

  • 在进行 150 次工具调用时,钩子会在压缩前将关键上下文写入持久存储。
  • 当压缩发生时,已保存的知识仍然保留在磁盘上。

Failure Mode 4: Leaking Context (Isolate)

在多代理系统中,Agent A 的约束可能泄漏到 Agent B 的上下文中,导致角色之间出现意外的影响。

Observed issue

编码器代理开始执行本应由 CEO 代理下达的战略指令,未经授权就做出产品决策。

Fix – Structural isolation at the data‑access layer

  • 每个代理的上下文都是有界的。
  • 跨代理信号遵循定义好的路由协议(例如,编码器不能读取 CEO 的邮箱;预言机不能修改编码器的优先级)。

数字

  • 4,768 检测到的违规总数,涉及六个代理
  • 18 违规被提升为结构性强制(L3‑L5)
  • 477:1 违规‑提升比例——衡量自我改进速度
  • < 5 % 对已接受 L5 强制的违规的回归率

检测发现违规;强制使其不可能发生。这一区别将单纯监控与真正的上下文工程分开。

这对您的系统意味着什么

如果您在生产环境中运行 AI 代理——如编码助手、研究代理、自治工作流——您的上下文很可能在以下四种方式中的至少一种上受到污染。故障模式可能是静默的,代理会自信地基于已降级的上下文生成输出。

关键问题不是您的上下文是否干净;而是您的系统能否在结构上检测并防止上下文污染,在代理行动之前。

  • 对您的代码库进行扫描,以评估上下文工程的健康状况。

最初发布于 walseth.ai

0 浏览
Back to Blog

相关文章

阅读更多 »

你没有错误地提示它

背景 我在收听《The Pragmatic Engineer》关于“The Third Golden Age of Software Engineering”这一期时,听到 Grady Booch 的讲述。在节目中,他提到…