🟡 🤝 智能体 发布于: · 2 分钟阅读 ·

LangChain 推出 RLM 智能体:递归模型在长上下文中实现 79% 的性能提升

编辑插图:LangChain 深度智能体与 QuickJS 编排器处理长上下文

LangChain 通过 DeepAgents 框架引入了递归语言模型(RLM)——这是一种模型在输入片段上递归调用自身的方法,而非将整个上下文塞入单个窗口。在 128k token 的 OOLONG 基准测试任务中,RLM 智能体得分为 0.79,而标准智能体为 0.44,提升幅度达 79%。

🤖

本文由人工智能基于一手来源生成。

LangChain 发布了针对其 DeepAgents 生态系统中**递归语言模型(RLM)**的详细指南和框架——这一方法旨在解决 LLM 智能体的一个长期问题:长上下文中的性能退化,也称为「上下文衰减」。

为何标准智能体在长上下文中败下阵来?

当智能体积累了大量信息——之前的消息、工具调用结果、中间结果——所有这些都汇聚在同一个上下文窗口中。模型随之开始遗漏上下文早期部分的相关细节、忽视指令或错误地对信息进行优先排序。在 128k token 的任务中,标准智能体在测试中经常失败或完全无法完成任务。

RLM 方法由研究人员 Alex Zhang 和 MIT CSAIL 开发,通过结构性变化解决这一问题:模型不再将整个输入塞入上下文窗口,而是将其作为变量加载到 REPL 环境,并在较小的、可管理的片段上递归调用——调用自身或子智能体。

RLM 编排如何运作

该方法的核心是通过轻量级代码解释器(QuickJS)进行代码驱动编排。模型编写代码来分解任务并对数据片段进行递归调用。LangChain 通过「动态子智能体」实现这一点——子智能体通过代码以编程方式调度,而非通过顺序工具调用。

这种架构的关键优势是确定性覆盖:代码中的循环保证每个元素都会被处理,不同于模型自行评估需要读取什么的方式。流水线可以根据任务需求分支、并行化或顺序化。此外,通过在编排器和子智能体层混合使用不同模型,可以精确地优化成本——将较昂贵的模型保留用于更复杂的步骤,较便宜的用于常规任务。

基准测试结果

LangChain 在 OOLONG 基准测试任务上对此方法进行了测试——将 AgNews 数据集中的新闻分类为四个类别——测试了不同的上下文长度:

上下文长度无 REPL有 REPL(RLM)
64k token0.580.67
128k token0.440.79

128k token 时,RLM 智能体取得了 0.79 对比 0.44 的成绩——相对提升 79%。在该上下文长度下,标准智能体在大量案例中完全失败。RLM 智能体尽管递归方法带来了更高的延迟,但仍保持了高精度。

安装与代码示例

只需一条命令即可设置具有 RLM 支持的 DeepAgents 框架:

pip install -U "deepagents[quickjs]"

智能体的基本初始化:

from deepagents import create_deep_agent
from langchain_quickjs import CodeInterpreterMiddleware

agent = create_deep_agent(
    model="openai:gpt-5.5",
    middleware=[CodeInterpreterMiddleware()],
)

在提示词中加入关键词「workflow」可激活 RLM 编排,这会向智能体发出需要使用动态子智能体调度的信号。框架支持跨层混合模型,这意味着用户可以为编排器和子智能体指定不同的 LLM。

该方法与现有 LangChain 生态系统工具兼容,无需更改基础设施——只需升级包并在智能体初始化时添加中间件层。

常见问题

什么是递归语言模型(RLM),它有什么用处?
RLM 是一种将输入作为变量加载到 REPL 环境并递归地在较小片段上调用自身或子智能体的模型。其目标是避免「上下文衰减」——当智能体在单个窗口中积累过多上下文时导致的性能下降。
如何安装和激活 RLM 智能体?
通过命令 `pip install -U 「deepagents[quickjs]」` 进行安装,通过在使用 `create_deep_agent` 函数创建智能体时传入 `CodeInterpreterMiddleware` 来激活 RLM 编排。
代码驱动编排相比标准 LLM 智能体有哪些优势?
代码通过循环保证对每个元素的确定性覆盖——不同于模型自行判断需要处理什么的方式。流水线可以根据任务需求进行分支、并行化或顺序化,并通过在编排器和子智能体层混合使用不同模型来优化成本。