跳到正文
Hugging Face Blog·· 2 小时前精选AI 评分60

同一模型换 harness:CUGA、Hermes 与 Deep Agents 在 AppWorld 上的对比

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

AI 导读

IBM 团队用同一个开源模型 GLM-5.3-flash 在 AppWorld 的 90 个任务上对比 CUGA、Hermes 和 Deep Agents,任务通过率分别为 81.1%、46.7% 和 30.0%,全部变体都通过的场景数为 20、8、2。

推荐理由

同一模型换用不同 harness 后任务完成率从 30% 升到 81%,读者可据此理解 harness 选择对 Agent 落地的影响。

正文 · 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。对于“支付我所有的欠款”,没有策略的代理支付了 90 美元,其中包括一笔被拒绝的催收索赔。有策略的代理将付款保留以待批准,然后只支付了应付的 10 美元。

为什么选择 CUGA

选择 harness 要像选择模型一样谨慎。在我们的对比中,同一个模型根据 harness 的不同,完成了 AppWorld 任务的 30% 到 81%。对于企业工作,CUGA 为您提供:

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

何时选择其他方案

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

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

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

试用 CUGA

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

来源:Hugging Face Blog · huggingface.co