【智能体设计 #2】上下文工程:像管理预算一样使用上下文窗口
上下文窗口并非越大越好,相关性越高才越好。本文总结了将有限窗口当作预算使用的四种策略:选择性加载、摘要、隔离和外部化,并整理了 CLAUDE.md 等始终加载文件的设计标准。
阅读文章精选主题 · 6 篇文章
从基础原理到实践取舍,系统浏览 上下文工程 文章。
最新文章
上下文窗口并非越大越好,相关性越高才越好。本文总结了将有限窗口当作预算使用的四种策略:选择性加载、摘要、隔离和外部化,并整理了 CLAUDE.md 等始终加载文件的设计标准。
阅读文章和 AI 工作一段时间后,总会出现奇怪的时刻。它明明会重新询问刚才确定的条件,把前面修改过的内容改回去,还悄悄忽略对话开头的指示。即使提醒它“我刚才说过了吧”,也只能暂时奏效。这不是故障,而是 AI 处理对话记忆的方式所导致的现象;理解原理后,应对方法其实很简单。
阅读文章前几篇介绍了节省上下文的方法:在任务边界清空历史记录(第3篇),并将固定成本设计得简短(第4篇)。但仍有一些任务难以承受,例如“搞清楚这个代码库中的支付逻辑如何流转”。勤勉的代理会读取几十个文件,把所有内容都堆进上下文。调查完成时,反而没有上下文用来利用这些知识修改代码。
阅读文章使用 Claude Code 这类编程智能体时,屏幕底部会出现“Context left until auto-compact: 8%”之类的警告。这是聊天型 AI 中不会出现的提示。不过,能解释这个数字为什么减少、归零后会发生什么的人,意外地并不多。
阅读文章第 1 篇我们了解了上下文窗口为何有限。但看到如今的模型规格,难免会想:既然已经有 100 万 token 的模型,直接把整个代码库或文档全部放进去不就行了吗?还有必要节省着用吗?
阅读文章前两篇已经完成诊断。上下文窗口是有限的(第 1 篇),填满并不意味着所有内容都会被使用,而且越长性能反而越差(第 2 篇)。因此解决方案很明确:必须管理上下文。包括 Claude Code 在内的编码代理,为此提供的最基本工具就是 /clear 和 /compact…
阅读文章