跳到正文
Hugging Face Blog·· 1 小时前AI 评分58

IBM 对比 CUGA、Hermes 与 Deep Agents:同一模型下 AppWorld 完成率 30% 到 81%

Same Model, Different Harness: CUGA, Hermes, and Deep Agents — When to Pick CUGA?

AI 导读

IBM 团队用同一开源模型 GLM-5.3-flash 在 AppWorld 的 90 个任务上对比三种 agent harness,CUGA 通过 73/90(81.1%),Hermes 为 42/90(46.7%),Deep Agents 为 27/90(30.0%);按三个变体全部通过才算通过的场景口径,三者分别为 20、8、2 个场景。

摘要与补充说明

作者说明这是 90 个任务的单基准样本,三种 harness 的配置并不相同,且未启用策略,因此不衡量策略执行。

正文· AI 翻译

有近 200 个 agent harness 可供选择。我们给其中三个配上了相同的开放权重模型和 90 个 AppWorld 任务,结果仅更换 harness 就让任务完成率从 30% 提升到 81%。对于企业用途,CUGA 补充了该基准测试未覆盖的部分:由 harness 强制执行的规则,以及在你自己的边界内部署。


诸如 awesome-agent-harness 和 best-of-Agent-Harnesses 这样的社区列表追踪了近 200 个 harness,它们清楚地说明了一点:重要的不只是模型,harness 同样重要。在 best-of-Agent-Harnesses 引用的一项分析中,同一个 GLM-5.2 模型在仅更换 harness 的情况下,在 SWE-bench Pro 上的成绩从 23% 提升到 52%。

所以正确的问题不是“哪个 harness 最好?”,而是“哪个 harness 适合我的工作负载、搭配我的模型?”Nous Research 的 Hermes 专为常驻个人助理而构建,LangChain 的 Deep Agents 则面向研究等长时间、多步骤任务。两者在这些工作上都很出色。

企业工作是另一回事。Agent 要在业务系统(如 CRM 和支付)上执行操作,并且必须遵循无论模型如何决策都成立的规则。CUGA(ConfigUrable Generalist Agent)是 IBM 的开源 harness,正是为此而构建,可搭配开放权重或托管模型,运行在你自己的环境中,包括主权云和隔离部署。为了衡量 harness 带来的增益,我们保持模型不变,只更换 harness。

一项受控实验:相同模型,不同 harness

我们在 AppWorld 上运行了 CUGA、Hermes 和 Deep Agents。AppWorld 是一个涵盖 9 个应用和 457 个 API(如电子邮件、支付和文件存储)的多步骤任务基准测试。这些应用是消费级应用,因此 AppWorld 只是一个代理:它测试的是企业自动化同样需要的一部分能力,例如登录、阅读 API 文档、翻页获取结果,以及跨多个应用更改状态。每个 harness 都使用相同的开放权重模型 GLM-5.3-flash,在 30 个场景中的同样 90 个任务上运行,每个任务尝试一次。所有运行都使用 Harbor 评估框架,我们的设置已在 harbor-eval(我们的 Harbor 分支)中公开。

Harness 运行方式
CUGA CUGA 的 AppWorld 配置:AppWorld 指令、任务分解、执行前验证和自动反思
Hermes Harbor 的默认 Hermes 设置,通过 MCP 使用 AppWorld 工具
Deep Agents 通过 MCP 使用 AppWorld 工具,外加 LangChain 内置中间件,针对 469 个工具进行了配置:工具选择、上下文摘要、待办列表、重试和调用限制。我们还添加了两个小修复,以免格式错误的 GLM 回复终止运行

结果

AppWorld,30 个场景中的 90 个任务,GLM-5.3-flash

TGC:通过的任务数 SGC:全部 3 个变体均通过的场景数

CUGA

81.1 (73/90)

66.7 (20/30)

Hermes

46.7 (42/90)

26.7 (8/30)

Deep Agents

30.0 (27/90)

6.7 (2/30)

图 1。AppWorld,30 个场景中的 90 个任务,每个 harness 均使用 GLM-5.3-flash。TGC:通过的任务数。SGC:全部三个变体均通过的场景数。

如何解读。这不是对 Hermes 或 Deep Agents 的定论。两者都不是为 AppWorld 这类多应用 API 工作而构建的,而这正是关键:harness 必须适合工作本身。

最有用的数字是 SGC。一个场景只有在其全部三个变体都通过时才算通过,因此 SGC 奖励的是一致性,而非侥幸的一次运行。在这里差距更大:CUGA 为 20 个场景,Hermes 为 8 个,Deep Agents 为 2 个。

有三项限制适用。这是在一个基准上的 90 项任务样本,因此结果可能无法推广到其他任务。各次设置并不完全相同(见上方的设置表)。而且这些运行没有使用策略,因此它们并未衡量策略执行情况。

这些分数从何而来

在 90 项任务的对比中,每次运行使用的模型都相同,因此差异来自 harness。每个 CUGA agent 都运行相同的紧凑循环:准备、调用模型、执行、重复。同一个循环可以从一个拥有自己工具的 CugaAgent 扩展到协调多个 agent(本地或通过 A2A 远程)的 CugaSupervisor。以下是在 AppWorld 设置中运行的 CUGA 功能,按它们的作用分组:

🧭  规划工作

任务分解:将任务拆分为多个步骤,一次处理一个应用

聚焦工具:每个步骤只能看到其所属应用的工具和少数共享工具,而不是全部 469 个

工具筛选器:find_tools 搜索某个步骤需要的任何其他工具

🐍  用代码行动

CodeAct:模型编写调用应用 API 的 Python 代码

沙箱:代码在受限环境中运行,并有时间限制

🔍  行动前检查

执行前验证:在运行每个会更改数据的代码块之前,先对其进行检查

🔁  行动后检查

自动反思:审查结果,并让 agent 修正其计划

分页审计:当列表调用返回了完整一页、却从未请求下一页时发出标记

借助这些功能,模型需要做的决策更少,harness 能在错误影响结果之前捕获更多错误。

harness 掌控的每一步都是执行点

harness 控制的每一步(如上文列表中的那些)也是它可以检查规则的地方。

大多数团队将业务规则(例如付款审批或将客户 PII 保留在组织内部)写入系统提示词。提示词是一种指令,而不是强制执行。模型可能误读它,用户可能说服 agent 违背它,注入的消息也可能在任务中途改变它。

CUGA 策略将这些规则从提示词中移出,放入 harness。我们在 ACM CAIS 2026 论文 Governance by Construction for Generalist Agents(arXiv)中描述了这一策略层。这些策略在每次运行的四个时间点起作用:

运行中的时间点 策略类型 作用方式 示例
用户意图 Intent Guard 在 agent 行动之前阻止或回答匹配的请求 阻止删除所有客户记录的请求
Agent 指导 Playbook 为 agent 提供标准流程 逐步遵循退款流程
工具执行 Tool Approval 硬性停止:运行暂停,等待人员批准,并展示拟执行的代码 在付款工具运行前询问人员
工具执行 带 ToolGuard 的 Tool Guide 硬性检查:防护代码在工具之前运行。被阻止的调用会返回策略违规,且该工具永远不会被调用 阻止超过 $1,000 的付款
最终响应 Output Formatter 按已批准的模板塑造答案 使用已批准的回复模板

指导会引导模型,但审批和 ToolGuard 由运行时强制执行。将付款审批和 PII 处理等规则放入第二组,无论模型如何决定,它们都会在那里生效。

你可以在 Policy Playground 中亲自看到差异,它会把同一条消息发送给两个实时 agent,一个没有策略,一个有策略:

CUGA Policy Playground: the same message sent to two live agents, one without policies and one with policies

图 2。对于“支付我欠的所有款项”,没有策略的 agent 支付了 90 美元,其中包括一笔被拒绝的催收款项。有策略的 agent 将付款保留以待审批,然后只支付了应付的 10 美元。

为什么选择 CUGA

选择 harness 要像选择模型一样谨慎。在我们的对比中,同一个模型完成的 AppWorld 任务比例在 30% 到 81% 之间,具体取决于 harness。对于企业工作,CUGA 为你提供:

  • 出色的结果,现在也支持开放权重模型。 在使用托管模型时,CUGA 在 WebArena(2025 年 2 月至 9 月)和 AppWorld(2025 年 7 月至 2026 年 2 月)上保持第 1 名。
  • 由运行时强制执行的规则。 无论模型如何决定,审批和工具防护都会在 harness 中阻止调用。
  • 部署在你自己的主权边界内。 CUGA 采用 Apache 2.0 许可,可与任何兼容 OpenAI 的端点配合使用,并可在本地、在你的私有云或主权云中的 Kubernetes 上运行,甚至可在气隙隔离的主权集群中运行,支持 OIDC 登录以及独立的聊天和管理角色。IBM Sovereign Core 基于 CUGA 构建,使 agent 完全在客户的边界内运行。
  • 可衡量的成本。 预算可限制支出,运行回执会显示每次运行的 token、工具调用和时间。
  • 配置而非代码。 在 UI 或 SDK 中设置工具、预算和策略,测试草稿,然后发布版本。

何时选择其他方案

CUGA 并非适合所有工作的 harness:

  • 对于终端编码 agent,请使用 opencode、Codex 或 Claude Code。
  • 对于驻留在聊天应用中的个人常驻助手,请使用 OpenClaw 或 Hermes。
  • 对于空白画布式图框架,请直接使用 LangGraph。CUGA 就构建在它之上。

CUGA 用于在可强制执行的规则下,跨 API、应用和 Web UI 自动化业务工作。

试用 CUGA

CUGA 团队进行了这项对比,并且 CUGA 使用了其他 harness 未使用的 AppWorld 配置。如果你能配置 Hermes 或 Deep Agents 取得更好的结果,请将配置发送至 harbor-eval。我们将在相同任务上重新运行并发布结果,无论哪个 harness 获胜。

相关阅读

专题与标签

相关资讯专题

相关评测

GLM-5.3-Flash · 模型榜