上下文工程是提示工程的自然延伸,提示工程的重点是如何编写有效的指令以取得最佳的结果,适用于日常对话、问答、数据分类或者文本生成之类的简单任务,但是随着现在 LLM 的应用往智能体的方向发展,需要让 LLM 持续进行多轮问答和工具调用以自动处理复杂的任务,这时候我们不仅仅需要编写有效的指令,还需要在任务中管理整个上下文状态。
一个循环运行的智能体会生成越来越多的数据,这些数据可能与下一轮推理相关,而这些信息必须不断进行提炼。上下文工程的艺术和科学在于,如何从不断演进的浩瀚信息海洋中,筛选出哪些信息能够进入有限的上下文窗口。

如何在长任务中处理上下文窗口限制
- 上下文压缩 — 在上下文大小接近上限时,对历史会话进行总结压缩,提取关键信息。 一种简单有效的方法是清除工具调用和结果
- 结构化笔记(记忆)— 将重要内容持久化存储在当前上下文窗口之外,并在之后的对话中召回
- 多智能体/子智能体架构 — 让不同的子智能体聚焦不同的领域任务,就能保证上下文窗口比较干净,不会超过限制,而主智能体负责协调子智能体工作,并总结最后的输出