链载Ai

标题: Context Engineering(上下文工程)是 AI Agent 成功的关键吗? [打印本页]

作者: 链载Ai    时间: 昨天 21:31
标题: Context Engineering(上下文工程)是 AI Agent 成功的关键吗?

前段时间 OpenAI 的前研究员 Andrej Karpathy 提出一个新的名词:Context Engineering。他将 LLM 比作计算机的处理器(CPU),而其上下文窗口则相当于内存(RAM)。最近看到一篇发表在 langchain 博客里面的文章:Context Engineering(链接见文末),让我对这个概念的理解更加深刻。

上下文工程(Context Engineering)是构建和优化大型语言模型(LLM)驱动的 AI 智能体的一门关键技术。它被定义为“在智能体运行轨迹的每一步中,以恰到好处的信息填充上下文窗口的艺术与科学”。

上下文工程的重要性在于:

上下文工程是“填充上下文窗口的艺术和科学,在 Agent 轨迹的每一步都填充正确的信息”

引用自:Andrej Karpathy https://x.com/karpathy/status/1937902205765607626

错误的 LLM 上下文对 Agent 的影响

当 LLM 的上下文管理不当时,可能会对 AI Agent 产生以下四种严重影响:

上下文中毒(Context Poisoning)

指当幻觉或其他错误信息进入 LLM 的上下文并被反复引用时。例如,一个 Agent 在执行任务时产生错误信息,这些错误信息被模型“记住”并持续影响后续的判断和决策,导致 Agent 固执于不可能或不相关的目标。

上下文干扰(Context Distraction)

发生在上下文过长,导致 LLM 过度关注上下文中的冗余信息,而忽略了其在训练中学到的核心知识。这使得 Agent 倾向于重复历史动作而非生成新的、更优的计划。对于上下文窗口较小的模型,这种干扰效应会更早出现。

上下文混乱(Context Confusion)

当上下文中的冗余内容被 LLM 用于生成低质量响应时。即使提供了大量工具描述,模型也可能因信息过载而性能下降,甚至尝试使用不相关的工具。LLM 会关注上下文中的所有内容,即使是无关信息,这会降低响应的准确性。

上下文冲突(Context Clash)

指上下文中新获取的信息或工具与现有信息发生直接冲突。例如,在多轮对话中分阶段提供信息,可能导致模型在早期轮次做出错误假设并过分依赖这些错误答案,从而显著降低最终性能。这种内部矛盾会使 Agent 的推理过程脱轨。

这些失败模式对 AI Agent 的影响尤为显著,因为 Agent 通常在需要收集多源信息、进行顺序工具调用、多轮推理和积累大量历史的复杂场景中运行,这些场景极易导致上下文膨胀,从而放大上述问题。

上下文工程策略

为了应对上下文管理不当的问题,文章中将上下文工程策略分为写入、选择、压缩和隔离四类。

1. 写入上下文(Write Context)

此策略旨在将信息保存于上下文窗口之外,以备未来使用。这包括两种主要形式:

2. 选择上下文(Select Context)

此策略专注于将相关信息提取到当前的上下文窗口中。这涉及从以下来源进行选择:

3. 压缩上下文(Compressing Context)

此策略通过保留必要的 token 来优化上下文窗口的使用效率。它主要包含:

4. 隔离上下文(Isolating Context)

此策略通过分离上下文来帮助智能体更有效地执行任务。这可以通过以下方式实现:

实践建议

虽然 Langchain 的博客中未详细展开,但上下文工程实践中建议:

总结

上下文工程(Context Engineering)是构建高效、智能、鲁棒 AI 智能体的核心要素。通过巧妙地写入、选择、压缩和隔离上下文,并充分理解上下文管理不当的潜在风险,我们可以最大限度地发挥 LLM 的潜力,使其在各种任务中表现出色。

对于 AI 智能体的开发者而言,掌握这些上下文工程技术是构建 AI Agent 的关键。







欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5