IBM 发布 CUGA 与 Hermes、Deep Agents 的 harness 对比:同一模型完成率从 30% 到 81%
Same Model, Different Harness: CUGA, Hermes, and Deep Agents — When to Pick CUGA?
IBM CUGA 团队在 AppWorld 的 90 个任务(30 个场景)上,用同一开源权重模型 GLM-5.3-flash 对比 CUGA、Hermes 和 LangChain Deep Agents 三种 harness,任务完成率分别为 81.1%、46.7% 和 30.0%,全场景通过率 SGC 为 20/8/2。
可供选择的智能体框架(agent harness)将近 200 个。我们让其中三个使用同一款开放权重模型并执行 90 个 AppWorld 任务,仅更换框架就让任务完成率从 30% 提升到了 81%。对于企业应用,CUGA 还提供了这项基准测试未覆盖的能力:由框架强制执行的规则,以及在你自己边界内进行部署。
awesome-agent-harness 和 best-of-Agent-Harnesses 等社区列表收录了近 200 个此类框架,并且清晰地表明了一点:框架很重要,而不只是模型。在 best-of-Agent-Harnesses 引用的一项分析中,同一款 GLM-5.2 模型在 SWE-bench Pro 上的成绩仅因更换框架就从 23% 提升到了 52%。
因此,正确的问题不是“哪个框架最好?”,而是“哪个框架适合我的工作负载和我的模型?”Nous Research 的 Hermes 是为常驻式个人助手而构建的,而 LangChain 的 Deep Agents 则面向研究等长周期、多步骤任务。两者在各自领域都表现出色。
企业工作则是另一回事。智能体要在 CRM 和支付等业务系统上执行操作,并且无论模型做出什么决定,都必须遵守规则。CUGA(ConfigUrable Generalist Agent)是 IBM 为这类工作构建的开源框架,支持开放权重或托管模型,可在你自己的环境中运行,包括主权云和气隙部署。为了衡量框架带来的提升,我们保持模型不变,仅更换框架。
对照实验:同一模型,不同框架
我们在 AppWorld 上运行了 CUGA、Hermes 和 Deep Agents。AppWorld 是一项跨 9 个应用和 457 个 API 的多步骤任务基准,涵盖电子邮件、支付和文件存储等。这些应用是消费级应用,因此 AppWorld 只是一种代理:它测试的是企业自动化所需能力的一个子集,例如登录、阅读 API 文档、翻阅结果以及在多个应用间更改状态。所有框架都使用同一款开放权重模型 GLM-5.3-flash,在 30 个场景中的相同 90 个任务上运行,每个任务尝试一次。所有运行均使用 Harbor 评估框架,我们的设置已在 harbor-eval(我们的 Harbor 分支)中公开。
| 框架 | 运行方式 |
|---|---|
| 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 个任务,所有框架均使用 GLM-5.3-flash。TGC:通过的任务。SGC:全部三个变体均通过的场景。
如何解读这一结果。 这并非对 Hermes 或 Deep Agents 的评判。它们都不是为 AppWorld 这类多应用 API 工作而构建的,而这正是要点所在:框架必须与任务相匹配。
最有用的数字是 SGC。一个场景只有在它的全部三个变体都通过时才算通过,因此 SGC 奖励的是一致性,而非侥幸的一次运行。这里的差距更大:CUGA 为 20 个场景,Hermes 为 8 个,Deep Agents 为 2 个。
适用三个局限。这是单一基准上的 90 个任务样本,因此结果可能无法推广到其他任务。各配置并非完全相同(见上方配置表)。而且运行没有使用策略,因此并未衡量策略的执行情况。
分数从何而来
在 90 个任务的对比中,每次运行使用的模型都相同,因此差异来自 harness。每个 CUGA 智能体运行同一个紧凑的循环:准备、调用模型、执行,然后重复。这个循环既可扩展到拥有自己工具的单个 CugaAgent,也可扩展到协调多个智能体的 CugaSupervisor,无论本地还是通过 A2A 远程。以下是在 AppWorld 设置中运行的 CUGA 特性,按其功能分组:
🧭 规划工作
任务分解:将任务拆分为步骤,一次只针对一个应用
聚焦工具:每个步骤只看到其所属应用的工具和少数共享工具,而不是全部 469 个
工具初筛器:find_tools 搜索步骤所需的任何其他工具
🐍 以代码行动
CodeAct:模型编写调用应用 API 的 Python 代码
沙箱:代码在有时间限制的受限环境中运行
🔍 行动前检查
执行前验证:在每个会更改数据的代码块运行前进行审查
🔁 行动后检查
自动反思:审查结果并允许智能体修正其计划
分页审计:当下一页从未被请求时,标记返回了完整一页的列表调用
借助这些特性,模型需要做的决策更少,而 harness 能在错误影响结果之前捕获更多错误。
harness 掌控的每一步都是一个执行点
harness 控制的每个步骤(如上面列表中的那些)也都是可以检查规则的地方。
大多数团队会把业务规则(如付款审批或将客户 PII 保留在组织内部)写进系统提示词。但提示词是指令,不是强制执行。模型可能误读它,用户可能说服智能体绕过它,注入的消息也可能在任务中途改变它。
CUGA 策略将这些规则从提示词移入 harness。我们在 ACM CAIS 2026 论文 Governance by Construction for Generalist Agents(arXiv)中描述了这个策略层。这些策略在每次运行的四个节点上起作用:
| 运行中的节点 | 策略类型 | 作用方式 | 示例 |
|---|---|---|---|
| 用户意图 | Intent Guard | 在智能体行动之前拦截或直接回应匹配的请求 | 拦截删除所有客户记录的请求 |
| 智能体引导 | Playbook | 为智能体提供标准流程 | 逐步遵循退款流程 |
| 工具执行 | Tool Approval | 硬停止:运行暂停,等待人工审批并显示拟执行的代码 | 在付款工具运行前请示人工 |
| 工具执行 | Tool Guide with ToolGuard | 硬检查:防护代码在工具之前运行。被拦截的调用会返回策略违规,工具永远不会被调用 | 拦截超过 $1,000 的付款 |
| 最终响应 | Output Formatter | 将答案塑造成经批准的模板 | 使用经批准的回复模板 |
引导只是影响模型,而审批和 ToolGuard 则由运行时强制执行。将付款审批和 PII 处理这类规则放在第二组中,无论模型如何决定,它们都会生效。
你可以在 Policy Playground 中亲自体验这种差别,它会向两个在线运行的智能体发送相同的消息,一个没有策略,一个有策略:
图 2。对于“付清我欠的所有款项”,无策略的智能体支付了 90 美元,其中包括一笔已被拒赔、进入催收程序的款项。有策略的智能体先将付款留待审批,然后只支付了到期的 10 美元。
为什么选择 CUGA
像挑选模型一样认真地挑选评测框架(harness)。在我们的对比中,同一个模型完成的 AppWorld 任务比例在 30% 到 81% 之间,取决于所用的框架。对于企业工作,CUGA 能为你提供:
- 出色的成绩,现已支持开放权重模型。使用托管模型时,CUGA 在 WebArena(2025 年 2 月至 9 月)和 AppWorld(2025 年 7 月至 2026 年 2 月)上排名第一。
- 由运行时强制执行的规则。审批和工具防护会在框架层面拦截调用,无论模型做出什么决定。
- 部署在你的主权边界之内。CUGA 采用 Apache 2.0 许可证,可与任何 OpenAI 兼容的端点配合工作,可在本地运行、在私有云或主权云的 Kubernetes 上运行,甚至在物理隔离(air-gapped)的主权集群中运行,并支持 OIDC 登录以及独立的聊天与管理角色。IBM Sovereign Core 基于 CUGA 构建,可在客户边界内完整运行智能体。
- 可衡量的成本。预算可限制支出,运行回执会显示每次运行的 token、工具调用和耗时。
- 配置,而非代码。在 UI 或 SDK 中设置工具、预算和策略,测试草稿,然后发布一个版本。
何时选择其他方案
CUGA 并非适用于所有任务的框架:
- 对于终端编码智能体,请使用 opencode、Codex 或 Claude Code。
- 对于生活在聊天应用中的个人常驻助手,请使用 OpenClaw 或 Hermes。
- 对于白板式的图框架,请直接使用 LangGraph。CUGA 正是基于它构建的。
CUGA 旨在在你可强制执行的规则之下,跨 API、应用和 Web UI 自动化业务工作。
试试 CUGA
- 🛡️ 策略演练场 · 策略指南
- 🧪 复现本次对比
- ⭐ 在 GitHub 上为 CUGA 加星
- 🚀 试用 CUGA:快速安装
本次对比由 CUGA 团队运行,且 CUGA 使用了其他框架未采用的 AppWorld 配置。如果你能配置 Hermes 或 Deep Agents 取得更好的成绩,请将配置发送至 harbor-eval。我们将在相同的任务上重新运行并公布结果,无论哪个框架获胜。
来源: Hugging Face Blog · huggingface.co
