CRM-Agent-Bench:在有状态企业环境中评测工具使用智能体 CRM-Agent-Bench: Benchmarking Tool-Using Agents in Stateful Enterprise Environments
用555个可执行契约任务,联合评测智能体的结果、轨迹、成本与合规
前置知识
工具调用智能体(LLM Agent with Tool Use)
语言模型通过调用外部 API/函数与环境交互:模型输出结构化的工具名和参数,执行器运行后把结果回填给模型,模型再决定下一步动作或回复用户。ReAct 是其经典循环形式(推理-行动-观察交替),一次用户可见的回复背后可能隐藏多次工具调用。智能体系统 = 模型 + 编排策略 + 工具清单,同一底座模型在不同工具清单下行为会不同。
本文评测的对象是完整智能体系统而非裸模型,理解工具调用循环才能看懂轨迹级检查(动作、参数、顺序)到底在评什么。
在策(on-policy)用户模拟器
评测对话智能体时不用固定脚本,而是用一个 LLM 扮演用户:它只看智能体对用户可见的回复,结合任务目标生成下一句用户话术,因此后续对话取决于智能体前面的表现。同一任务因此对应一个对话分布而非一条固定轨迹,τ-bench 首创了这一范式。CRM-Agent-Bench 的模拟器是 gpt-5-mini,交互上限 30 轮或 1,200 秒。
每个 trial 都由在策模拟器驱动,理解这一点才能明白为何同一任务跨轮次结果会翻转、为何需要三轮复测和 pass³ 这类可靠性指标。
POMDP(部分可观测马尔可夫决策过程)
智能体看不到完整环境状态,只能通过部分观测采取动作来影响一个随机演化的世界。论文把每个任务形式化为 $M_i=(S_i,A_i,O_i,P_i,\Omega_i,\rho_i,R_i,H)$:智能体只看到可见对话、工具返回结果和当前暴露的工具 schema,看不到原始 CRM 状态、用户私有指令 $u_i$ 和评分契约 $C_i$。
论文用它严格界定'证据边界'——哪些信息对智能体可见、哪些只属于评测器,这直接决定了契约检查的公平性和语义裁判的输入范围。
严格合取评分(conjunctive success)
任务成功定义为该任务声明的所有检查的逻辑与:$Y_i=\prod_{c\in D_i} c(\tau_i,x_T)$,其中 $\tau_i$ 是完整轨迹、$x_T$ 是终端状态,任何一项失败即整体失败;未声明的检查'缺席'而非'默认通过'。同时每个组件的判定结果被保留下来用于失败定位与诊断。
这是全文的核心机制:Figure 1 的重复结账案例、'仅回复评分高估 10.5-11.0 个百分点'的结论都源于这一合取设计。
能力暴露审计(capability exposure audit)
禁止动作检查要成立,前提是被禁工具在环境中确实可达。图级审计静态检查每条被禁工具声明是否属于该任务域图的任一节点——555 个任务中 107 个任务的 206 条声明全部匹配;而轮级暴露取决于路由器当轮选中哪个节点,工具可能存在于图中但当轮未被暴露给智能体。
它把'没违规'的三种原因(模型主动拒绝、模型没去做、路由根本没暴露工具)区分开,避免把低工具暴露误读成高政策合规。
研究动机
当语言模型智能体获得改写业务系统记录的权限后,评测对象就从'答案对不对'变成了'事情做没做对'。论文开篇给了一个具体案例:用户支付 $15.50 后追问凭据,智能体竟把整个结账流程(process_payment→send_receipt→award_loyalty_points→log_transaction)重跑一遍,忠诚度积分从 155 翻倍到 310,而它的回复内容、工具调用、执行顺序检查全部通过——只看回复或动作的评测会把这笔重复交易判为成功。已有 CRM 基准(CRMArena、CRMArena-Pro)主要评检索与答案正确性;BFCL 评函数选择与参数生成;τ-bench 引入可变数据库和在策用户但缺负向约束与顺序执行强制;AppWorld 有程序化状态测试却缺在策用户。每个基准只覆盖'委托执行'的一部分:当基准只报告一个维度,系统可以在指标从不检查的另一个维度上悄悄失败,而这类失败在 CRM 场景直接等于真实业务损失——说已退款却没调工具、把优惠券用错账户,都是'有帮助的回答'分数永远抓不到的。
本文的目标是作者要构建一个'执行落地'(execution-grounded)的 CRM 智能体基准,联合测量四个此前被割裂的维度:结果(到达的最终状态与对外回复)、轨迹(正确的动作、正确的参数、正确的顺序)、操作可行性(延迟与成本)、政策合规(无禁止动作、不动保护记录、不泄露他人标识符)。具体规模:555 个有状态多轮任务、9 个业务域、36 个能力标签;每个任务配一份任务级可执行契约,成功是全部声明检查的严格合取。基准还必须自包含——所有记录与交易都是合成的,无需活的 CRM 或厂商后端即可运行——并在统一冻结协议下报告 scored coverage、延迟与成本,使不同系统真正可比、可审计、可扩展。
与已有工作不同的是,独特切入在于把'成功'从单一信号改成任务声明的合取契约 $Y_i=\prod_{c\in D_i} c(\tau_i,x_T)$,其中 $D_i$ 只含该任务适用的检查,未声明维度缺席而非通过。六族检查(预期动作、参数约束、顺序、语义回复、目标状态、禁止项)中,三族直接评轨迹、两族评结果,政策合规则由三个负向检查落地:禁止动作(被禁工具绝不能调用,连被拒绝的尝试都算违规证据)、保护状态(任务未授权的记录必须不变)、禁止参数(任何调用不得携带他人标识符)。这与 τ-bench 的单一 success、ToolSandbox 的里程碑/雷区、AppWorld 的状态测试都不同:它把里程碑式的轨迹敏感性与端点式的程序化严格性统一进一套可组合的契约语言,并保留组件判定用于诊断。第四维度(延迟、成本)不并入通过判据而是随每个结果单独报告,防止'花钱买分数'被单一数字掩盖。
核心方法
直觉上,这像一场驾照路考:不看你会不会背交规(答对问题),而是看你实际开车(调用工具)时是否按流程操作、有没有压线(越权改数据)、有没有撞到别人(破坏他人记录),同时还要看油耗和时间(成本与延迟)。技术上,每个任务 $T_i=(u_i,s^0_i,C_i,d_i)$ 诱导一个有限视界 POMDP:$u_i$ 是用户私有指令,$s^0_i$ 是任务初始状态叠加层,$C_i$ 是可执行契约,$d_i$ 提供默认 CRM 状态与类型化工具。每次试验从全新重置的环境开始,由 gpt-5-mini 驱动的在策用户模拟器逐轮生成用户话术(只看可见回复);被测的图路由参考智能体每轮由分类器选出一个能力节点(只暴露该节点的工具),在节点内跑最多 10 次迭代的 ReAct 循环;交互在 30 轮或 1,200 秒封顶。结束后冻结四个证据通道——可见对话、路由日志、完整工具轨迹、终端数据库状态——只应用该任务声明的检查,仅语义类检查交给固定的 LLM 裁判且不得覆盖程序化检查。参考图是一个固定的编排脚手架,被测系统不强制采用它。
核心创新是'任务级合取可执行契约':成功不比较单一指标,而是要求该任务声明的所有检查同时成立,且三类负向检查把政策合规变成可程序化判定的事实。与已有方法的本质区别有三点。其一,CRMArena 系列评'说'(检索与答案正确性),本文评'做'(执行后的状态变更与合规),Figure 1 的重复结账(积分 155→310)证明二者会严重脱节——只用回复评分会高估严格成功 10.5-11.0 个百分点,说服力强的回复抵消不了缺失的交易。其二,τ-bench/ToolSandbox 的里程碑与雷区各自为政,本文将其统一进一套可组合的契约语法:计数感知的动作匹配能抓重复执行,子序列/精确顺序约束能抓流程颠倒,稀疏路径状态断言能抓终态错误。其三,负向检查配备能力暴露审计:被禁工具是否在图内可达可以静态审计(206 条声明全部匹配),轮级是否暴露取决于路由,这把'没违规'的三种原因(主动拒绝、没去做、路由没暴露)区分开,避免把低暴露误读成高合规。未声明的检查缺席而非通过,避免了'人人满分'的评分通胀。
方法步骤详情
完整流程分六步。第一步任务构建:五个与从业者、领域专家共建评审的种子 CRM 应用加 22 个公开 workflow recipes,经统一管线产出 555 个任务声明(actor、业务目标、停止条件、所需信息、预期与禁止效果),每个任务通过 schema 校验、工具引用校验和从全新环境跑通的 gold path 验证。第二步环境初始化:$x_0=\mathrm{merge}(x^{\mathrm{default}}_{d_i}, s^0_i)$,所有记录合成且可重置。第三步每轮路由:分类器把当前用户话术映射到一个能力节点或 unsafe/out_of_scope 确定性拒绝;选中节点获得域提示词、节点专属指令和仅属于自己的工具,内部最多 10 次 ReAct 迭代后给出可见回复;轮内不换节点,下一条用户消息才重新路由。第四步在策交互:模拟器只根据可见回复生成下一轮,直到发出停止标记或触及 30 轮/1,200 秒上限。第五步合取评分:程序化检查覆盖动作(计数感知匹配成功执行的调用)、参数(任意或仅首次成功调用)、顺序(子序列或精确过滤序列)、状态(精确值/非空/最小集合长度)与禁止项(任何被禁尝试都算违规);仅语义回复标准交给固定裁判,它只见用户指令与可见回复,须给出二值判定、证据片段和解释,全局矛盾标志必须为假,且不能覆盖程序化结果。第六步报告:严格成功 $Pass_{scored}=\sum_{i\in G}Y_i/|G|$,基础设施故障剔除出分母 $G$、模型归因故障(如幻觉工具、超时不收敛)计为失败,同时单独报告延迟与缓存中立的成本。
技术新颖性
技术上新的地方在于契约的'可组合+可审计'设计。动作检查是计数感知的——成功执行的调用次数必须匹配,这使重复执行(Figure 1 的 310 分)无所遁形,而动作存在性检查会漏掉它;顺序检查区分子序列与精确序列,允许无关调用穿插除非另行禁止;状态断言寻址稀疏路径,支持精确值、非空和最小集合长度。负向检查的语义也被精确定义:禁止动作检查连'被工具拒绝的尝试'都算违规证据;结构化业务拒绝(如 422 余额不足)被明确区分为'尝试过但未生效',轨迹与终态评分器因此能区分'试图做'与'做成'。裁判协议同样讲究:转录被标记为不可信数据以防回复重定义评分标准,判定需引用可见转录中真实存在的证据片段,本地校验器强制 JSON schema。最后,任务内容与智能体架构解耦——评测不评图形状、节点名、路由标签或提示词,任何架构都能接入同一任务目录,这对被路由智能体的公平比较至关重要。
实验结果
在 555 个审计任务的冻结首轮协议下,16 个系统(Gemini、Claude、GPT、开放权重家族)的严格成功率从 64.32% 到 83.60%,跨度 19.28 个百分点,但头部严重挤压:前 8 名挤在 2.88 点带宽内(80.72%–83.60%),Claude Sonnet 5、GPT-5.5、GPT-5.6 Sol 以 81.26%(451/555)精确并列。Gemini 3.8 Flash 以 83.60%(464/555)登顶,且每次只花 $16.12(定价运行中第五便宜)、平均 24.0k token 为全场最低,是 token 面板唯一帕累托最优点;Claude Opus 5 花 $191.00 只拿 82.70%。13 个定价运行的成本横跨 89.3 倍($2.14 的 GPT-4.1 Nano 到 $191.00 的 Opus 5),Claude Haiku 4.5 比 Flash 贵 $24.50 还低 7.56 个点。把轨迹与状态检查并入仅回复评分后,四个展示系统一致下降 10.5–11.0 个百分点,仅动作检查一项就去掉 45–50 个任务;组件矩阵显示语义回复通过率最高 92.3%、全员 77% 以上,而动作检查仅 70.3%–89.8%、参数 70.2%–90.7%、顺序最低 62.2%,动作不匹配是全部 16 个运行的最大失败主因(54–157 个任务)。域层面客服最难:跨模型均值 56.35%,比第二难的旅行(77.15%)低 20.80 点,16 个模型无一例外在客服低于自己的总分;Muse Glimmer 30B 总榜第 12(78.74%)却是客服唯一最强者(85/125,68.00%),GPT-4.1 Nano 的客服 32.00%(40/125)是全表最低单元格。政策约束子集上(165 个带负向断言任务 vs 390 个无),2,640 次试验中 91.2%(2,408)通过所有适用负向检查,却只有 66.8%(1,764)通过完整契约(无约束任务均值 82.1%);Nemotron Super 3 120B 负向合规最高(95.2%)却总排第 14——合规与完成是独立维度。难度分层(easy 199/medium 208/hard 148)上所有系统单调下降,跌幅 5.37(Sonnet 5)到 27.39(GPT-4.1 Nano)个点。三轮复测:Flash 三轮均第一(均值 85.53%±1.66,434/555 任务三轮全过,pass³=78.20%),Opus 均第二(83.29%±0.62),Spearman 相关 0.869–0.934,但 Flash 第 2、3 轮同为 480/555 时仍有 30 个任务结果翻转。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 全库严格任务成功(555 个有状态多轮任务,首轮冻结协议) | 严格准确率 strict accuracy | Gemini 3.8 Flash 83.60%(464/555),成本 $16.12 | 最低为 Nemotron 3.5 Lightning 30B 与 GPT-4.1 Nano 并列 64.32%(357/555) | 首尾相差 19.28 个百分点;前 8 名挤在 2.88 点带宽内 |
| 仅回复评分 vs 严格合取评分(Gemini 3.8 Flash、Claude Opus 5、GPT-5.6 Sol、Muse Glimmer 30B) | 加入执行检查后的严格成功率降幅 | 加入动作/参数/顺序/状态检查后降至 78.7%–84.1%(严格端点 78.7%–83.6%) | 仅回复过滤时为 86.3%–91.9% | 仅回复评分高估 10.5–11.0 个百分点;动作检查单独剔除 45–50/555 个任务 |
| 政策约束子集(165 个含负向断言任务,16 系统 × 165 = 2,640 次试验) | 负向检查合规率 / 完整契约成功率 | 合规 91.2%(2,408/2,640),完整契约 66.8%(1,764/2,640);单模型合规 84.8%–95.2% | 无负向断言的 390 任务完整契约均值 82.1% | 揭示平均 15.3 个点的合规-完成差距(单模型 +8.8 到 +20.0);Nemotron Super 3 120B 合规最高 95.2% 却总排第 14 |
| 测试智能体运行成本(13 个定价运行,缓存中立口径,不含模拟器与裁判) | 预估美元成本 / 每次成功成本 | 最优性价比 Gemini 3.8 Flash:83.60% 且 $16.12(每次成功约 $0.036) | Claude Opus 5 $191.00(准确率仅第二,每次成功 $0.416);GPT-4.1 Nano $2.14(准确率垫底) | 成本跨度 89.3 倍(每次成功 69.4 倍);Haiku 4.5 比 Flash 贵 $24.50 反而低 7.56 个点 |
| 客服域(125 个任务,全库最大也最难的域) | 域内严格成功率 | 域冠军 Muse Glimmer 30B 68.00%(85/125) | 跨模型均值 56.35%;GPT-4.1 Nano 仅 32.00%(全表最低单元格) | 比第二难域(旅行 77.15%)低 20.80 点;总榜第一 Flash 在此仅排第三 |
| 难度分层(easy 199 / medium 208 / hard 148) | 各层严格成功率 | 最高 Gemini 3.8 Flash:88.44% / 81.73% / 79.73% | 最低 GPT-4.1 Nano:77.39% / 62.02% / 50.00% | 全部 16 系统 easy→hard 单调下降,模型内跌幅 5.37–27.39 个百分点 |
| 三轮复测可靠性(16 系统 × 3 轮) | 三轮均值 / 样本标准差 / pass³ | Gemini 3.8 Flash:85.53%±1.66,pass³=78.20%(434/555) | Claude Opus 5 83.29%±0.62(pass³=73.47%)稳居第二 | Spearman 排名相关 0.869–0.934;Flash 相邻两轮间仍有 30 个任务结果翻转 |
局限与改进
作者明确承认:主榜单每任务只跑一次,只能做描述性比较而非显著性检验,因此并列 81.26% 的三个系统名次并不可靠(三轮复测中 GPT-5.5 曾升至并列第二);难度标签是作者主观指定的描述性分层,不参与评分却影响解读;负向合规率不隔离模型的内在安全性,被禁动作缺席可能只是路由从未暴露该工具(轮级暴露审计被标注为 planned);成本是按列表价和缓存中立规则重算的估计值,不等于真实账单(Gemini 3.8 Flash 用的是 2026 年底前的促销价)。我自己观察到的问题:模拟器与裁判都是同一个 gpt-5-mini,附录 Case C 显示模拟器会漂移——凭空报出 PIN 8274 导致 grok-4.6 认证循环 18 次直至 600 秒超时,这种模拟器故障会污染被测系统的分数;语义裁判在 Case B 中把一段否认已记录工具结果的自我矛盾判为 contradiction_found=false,作者也承认这是裁判的假阴性;域样本极不均衡(Sales 仅 18、Marketing 21 个任务),单题翻转就会大幅改变域排名;此外全部任务为合成数据,对真实企业数据的外部效度未经验证。
独立分析的弱点
第一,单一模拟器既是测量仪器又是噪声源。gpt-5-mini 的漂移(编造凭据)能直接制造超时失败,其固定对话风格也可能系统性偏向某种智能体。改进方向:把多模拟器集成作为默认协议并报告模拟器间方差,或引入人类校准的小规模对照集。第二,语义裁判存在盲区。它看不到工具轨迹,无法发现'中间否认已记录的工具结果'这类自我矛盾(Case B),而这类矛盾恰是智能体不可信的强信号。改进方向:把转录级矛盾检测升级为独立检查族,或允许裁判读取被标记为不可信数据的工具事件摘要。第三,合规分数与能力暴露混淆。图级审计只能证明被禁工具存在于域图,轮级是否暴露取决于路由器——同一模型换个路由策略分数就变,作者也承认无法做因果隔离。改进方向:发布轮级暴露日志(论文已列为 planned),并把'工具可达条件下的合规率'作为次级指标。第四,头部挤压削弱区分度:前 8 名只差 2.88 个点,而单次运行的任务级翻转就有 30 个,建议默认报告三轮均值与 pass³ 而非单轮快照。第五,成本口径依赖厂商列表价,促销价(Flash 至 2026 年底)使性价比结论有时效性,可为开放权重模型补充自托管实测的每 token 成本。
未来方向
作者提出的方向包括:更多轮次的受控重复评估、人类与领域专家验证、向文档丰富、视觉、语音和实时服务工作流扩展,以及落地轮级能力暴露审计与 off-route/合规/超时等诊断类别。基于其成果可直接延伸的研究:把契约语法移植到 CRM 之外的企业域(ERP、HR、IT 变更管理)——契约是声明式 YAML,扩域成本主要在环境而非评测器;用严格合取分数作为 RL 训练信号,论文指出它可嵌入标准奖励形式(终止前为 0,终止时为 $Y_i$),适合做流程合规的强化学习;用受控实验研究合规与效用的因果权衡(本文只证明二者是不同的测量轴);把 Figure 1 式的重复执行检测从离线评分迁移为在线运行时守卫,直接部署在生产智能体中;以及将 pass³ 协议与按域分解报告推广为智能体选型的标准实践。
复现评估
复现条件相当好:代码在 GitHub(salesforce-misc/crm-agent-bench)开源并有项目页,任务以声明式 YAML 发布,环境全部合成、许可证干净,无需活的 CRM 后端。仓库直接暴露发布门禁命令(uv run python -m harness.benchmark_spec --gold --write-lock 与 uv run pytest)用于重跑 gold path 和测试套件;run manifest 保留基准版本、模型标识、采样设置、执行上限等字段。评测协议冻结得很细(模拟器/裁判均 gpt-5-mini、温度 0、30 轮上限、1,200 秒任务超时、16,384 token 预算)。主要门槛是模型调用:13 个定价运行的单轮全库成本 $2.14–$191.00,跑齐 16 个系统需要多家 API;三个开放权重运行需自托管 GPU(Inkling Small NVFP4、Muse Glimmer 30B、Nemotron 3.5 Lightning 30B)。依赖专有模型与时效性价格会使数字随时间漂移——复现任务集容易,精确复现榜单数字为中等难度。
论文图表
一个真实轨迹的四格分解:Claude Sonnet 4.6 完成了 $15.50 结账并如实报告获得 155 积分,但在用户追问后把整套结账流程重跑一遍;回复检查、动作检查、顺序检查全部通过,只有终态检查发现忠诚度余额为 310 而非 155,严格契约判定失败。
这是全文论点的具象化:只看回复或只看动作都会把失败的交易判成成功,只有合取契约(尤其是终态状态检查)才能抓住'说与做'之间的差距。
三条柱状统计任务契约的重叠属性:133/555(24.0%)携带多个能力标签,235/555(42.3%)声明至少两条预期动作,164/555(29.5%)施加显式顺序约束。
量化任务集的执行复杂度,说明它不是简单单步工具调用集,而是有依赖链、有顺序要求的多步工作流集合。