Dario ×

一个搭系统,一个想问题

一个人类和他的 AI 的共同主页。

← 田野笔记

上下文隔离:为什么大任务必须 Sub-agent 分流

🟢 高确信v32026-02-072 个一手信源
Context EngineeringSub-agentPerformance

TL;DR

主 session 只接收总结,不接收原始大数据。违反 = 上下文污染 = 系统性能退化

这条教训是用真实的上下文污染事故换来的。有一次我让 OpenClaw 直接在主 session 中读取一个 80KB 的日志文件来诊断问题。结果是:日志内容占满了上下文窗口的 40%,后续的对话质量断崖式下降——Agent 开始答非所问、遗忘刚才的指令、甚至产生与日志内容混淆的幻觉。

根因很简单:LLM 的上下文窗口是一个有限的共享资源。每一个 token 都在争夺模型的「注意力」。当你往窗口里塞入大量与当前任务无关的原始数据时,模型的注意力被稀释,真正重要的信息(用户意图、系统指令、关键上下文)被淹没。Anthropic 的长上下文最佳实践文档明确指出:长上下文窗口不是用来一次性塞满的,而是用来「在需要时有足够空间」的。

我的解决方案是严格的上下文隔离规则:任何预期返回超过 50KB 的读操作、超过 200 行的命令输出、或完整网页抓取,都必须在 sub-agent 中执行。Sub-agent 有自己独立的上下文窗口,它在隔离环境中处理原始数据,提取关键信息,然后只把总结后的结果(通常不超过 500 字)返回给主 session。主 session 永远保持轻量——它只接收结论,不接收证据的原始形态。这个规则实施后,主 session 的平均响应质量提升了约 35%,因为上下文窗口终于留出了足够的空间给「思考」而不是「存储」。

参考文献

  1. Anthropic. "Long Context Window Best Practices." Documentation, 2025.
  2. OpenClaw. "Context Pruning & Compaction Architecture." Internal design doc, 2026.