Agent / 工程
LangChain 如何对 Deep Agents 进行基准测试
LangChain 团队近日分享了他们如何重构 Deep Agents 的评估框架。由于智能体设计本身充满挑战,评估工作同样困难重重。为此,他们转向以 Harbor 为运行引擎的端到端评测,取代了以往的小型单元测试。Harbor 是一个流行的开源框架,要求提供智能体、数据集和沙箱环境。评估时,每个任务包含环境(Dockerfile)、指令(Markdown)和评估脚本(test.sh),与简单的大语言模型评估不同,智能体评估需要关注运行环境和中间产物。目前他们运行三个基准测试:Harbor-Index(自主端到端工作,82个任务)、τ³-bench(多轮对话,30个任务)和 ContextBench(检索,30个任务)。团队还总结了有效实践:每个任务运行多次、保留轻量级基准用于快速迭代、维护能力套件作为单元测试层。这些基准帮助他们自信地迭代,例如为 Deep Agents 0.7 版本精简中间件和系统提示。
LangChain 团队近日分享了他们如何重构 Deep Agents 的评估框架。智能体设计充满挑战,评估工作同样困难重重。随着 Deep Agents(一个开源、模型无关的智能体框架)的开发,团队面临诸多决策:如何编写提示词、包含哪些工具、引入哪些中间件等。为了在迭代中做出明智选择,他们需要一个稳健的评估集来对比不同方案的效果。
团队最近将评估重心转向端到端评测,并采用 Harbor 作为运行引擎。Harbor 是一个流行的开源框架,以支撑 Terminal Bench(领先的编码基准测试)而闻名。使用 Harbor 需要提供三样东西:被评测的智能体(Deep Agents)、数据集和沙箱环境。每个数据集包含多个任务,每个任务由环境(Dockerfile 或 Docker Compose YAML)、指令(Markdown)和评估脚本(test.sh)组成。与简单的大语言模型评估不同,智能体评估需要关注运行环境和中间产物,因为智能体可能修改状态或生成文件。
目前团队运行三个基准测试,覆盖不同类型的智能体工作。Harbor-Index 涵盖自主端到端工作,包含 82 个任务,从 54 个基准的 6000 多个候选中提炼而来,覆盖软件工程、搜索、数据分析和长周期工具使用。τ³-bench 专注于多轮对话,包含 30 个任务,用户行为由模拟器生成,但评分检查真实结果。ContextBench 则针对检索场景,包含 30 个校准任务,每个任务将完整语料库放入沙箱,智能体需要自行查找并整合答案。
团队总结了几项有效实践。首先,每个任务运行多次,因为智能体本质上是非确定性的,单次运行不足以获得准确估计。其次,保留一个轻量级基准用于快速迭代,这个子集聚焦于困难但可解的任务,速度比完整基准快约 8 倍,成本低约 6 倍。最后,维护一个能力套件,包含快速、确定性的单元测试,针对特定行为如工具选择、记忆或文件操作,作为基准的单元测试层。
这些基准帮助团队自信地迭代。例如,在为 Deep Agents 0.7 版本做准备时,团队希望精简框架,移除可能不再必要的提示词。两个具体变化是:移除待办事项列表中间件,并大幅精简系统提示。通过基准测试,他们能够判断这些组件是否仍然必要,从而在减少 token 消耗的同时,让模型更关注用户编写的指令。
要点
- LangChain 使用 Harbor 作为端到端评估引擎,要求提供智能体、数据集和沙箱环境,每个任务包含环境、指令和评估脚本。
- 团队运行三个基准测试:Harbor-Index(自主工作,82个任务)、τ³-bench(对话,30个任务)和 ContextBench(检索,30个任务)。
- 有效实践包括:每个任务运行多次、保留轻量级基准用于快速迭代、维护能力套件作为单元测试层。
- 基准测试帮助团队在迭代中做出决策,例如为 Deep Agents 0.7 版本精简中间件和系统提示。
- 智能体评估与简单大语言模型评估不同,需要关注运行环境和中间产物,而非仅看最终响应。