§16 上下文工程:别让窗口爆掉
先给结论:DeepAgents 把"上下文管理"做成默认流水线。你理解它,长任务才稳。
我做过一个超长研究任务。没管上下文,跑到一半,Agent 开始"失忆"——前面搜的重点全丢了。 后来我懂了:上下文窗口是稀缺资源,得主动管。
DeepAgents 的上下文管理靠三件套:
- 大结果驱逐:>20k token 的工具结果,写文件系统,留指针。
- 自动压缩:窗口到 85%,摘要老消息。
- 子代理隔离:把脏活丢给干净上下文。
手动触发压缩
# 代理自己或你手动调用
compact_conversation()
85% 是阈值。到了就自动摘要。 老消息被压缩,原文 offload 到后端存储,上下文只留摘要。
给开发者的建议
| 做法 | 效果 |
|---|---|
| 大结果写文件,不全塞上下文 | 省窗口 |
| 长任务拆子代理 | 主上下文干净 |
| 用 Skills 渐进披露 | 不预载长提示词 |
| 用 AGENTS.md 放恒定信息 | 不重复注入 |
标叔的经验:我那个"失忆"的任务,改成"每步结果写 /memories/ 文件 + 拆子代理"后,跑到两万字上下文也没丢重点。上下文工程不是玄学,是这几条具体动作。
标叔的结论:上下文窗口是有限的。会管理上下文的 Agent,才跑得动长任务。
下一章,讲上线:生产部署。