同一个模型,为什么换一层 Harness,Pass⁴ 差了 7.2 个百分点?

企业选 Agent Framework 时,最容易比较的是工具数量、API 完整度和开发体验;最难比较的,却是框架是否会在多轮交互中悄悄改变模型所见的上下文。同一个模型、同一套工具、同一份业务规则,Harness 的消息序列化与状态保留策略仍可能让最终成功率出现系统性差异。
这次实验使用本地部署的 Qwen3.6-35B-A3B,在 TAU³-Bench 的 airline、retail、telecom 三个事务型领域中对比 Agno 与 DeepSeek Harness(DSH)。结果显示:DSH 的总体 Pass¹ 为 89.30%,较 Agno 高 2.34 个百分点;当要求同一任务连续四次全部成功时,差距扩大到 7.20 个百分点。与此同时,两者的等效 token 成本和端到端时延几乎持平。
传统模型评测通常关注单次准确率,但客服、运营、IT 服务台等真实业务中的 Agent 必须在多轮对话里收集信息、解释规则、调用工具并修改后台状态。一次任务失败,代价可能不是“回答不好看”,而是改错订单、重复退款、漏掉必要告知,或者把异常转给人工。
因此,企业真正需要回答的问题不是“哪个框架偶尔能跑出更高分”,而是“在模型和工具都不变时,哪个框架能让正确行为稳定复现”。这也是 Passᵏ 比单次成功率更贴近生产风险的原因。
Agent Harness 的能力边界,已经从“能否调用工具”转向“能否复制一次正确决策”。功能清单决定 Agent 能不能开始工作,状态管理和上下文协议决定它能不能可靠工作。
1. Benchmark 如何定义成功
TAU³-Bench 通过 LLM 用户模拟器与被测 Agent 动态对话,并为每个领域提供业务 policy、API 工具和可变环境状态。一个任务往往要求 Agent 先理解需求,再补充关键信息、判断规则、执行一次或多次工具调用,最后向用户反馈结果。
airline、retail 和 telecom 的默认 reward_basis 为 DB 与 COMMUNICATE。DB Reward 比较执行后的数据库状态与标准目标状态;COMMUNICATE Reward 检查必要信息是否被正确传达。最终 Reward 是参与评分组件的乘积,因此任一必要条件失败,任务通常记为 0。
Passᵏ = C(c, k) / C(n, k)
其中,n 是同一任务的 trial 数,c 是成功次数。Pass¹ 反映随机抽取一次执行成功的概率;Passᵏ(k>1)要求随机抽取的 k 次全部成功。它与“至少一次成功”的 Pass@k 方向相反:k 越大,越强调一致性。
需要特别注意:TAU³-Bench 的事务型领域主要验证最终数据库状态和必要沟通,并不要求 Agent 复现唯一的工具轨迹。换言之,它适合衡量业务结果是否完成,但不能单独证明过程最优、工具调用最少或每一步都符合审计要求。
2. 实验设置与口径
等效成本按以下口径计算:C = (0.1 × 缓存命中输入 tokens + 3 × 缓存未命中输入 tokens + 9 × 输出 tokens) / 10⁶。该指标用于比较两套 Harness 产生的 token 结构,不代表 Qwen 本地推理的真实 TCO;真实成本还取决于 GPU 利用率、吞吐、排队、部署折旧和运维。
任务数与 trial 数可由 Pass¹—Pass⁴ 的数值步进还原,并与三域合计数据完全一致。正式发布时仍建议补充 TAU³-Bench 版本或 commit、task split、Agno/DSH 版本、模型服务版本以及用户模拟器模型,以保证结果可复现。
1. DSH 的领先幅度随 k 增大:2.34pp 扩大到 7.20pp
总体上,DSH 在 Pass¹、Pass²、Pass³、Pass⁴ 上分别领先 2.34、4.13、5.85 和 7.20 个百分点。若差异只是偶然多答对了少数任务,领先幅度通常不会随着 k 单调扩大;现在的形态更接近“DSH 减少了同一任务在不同 trial 间的摇摆”。

2. 反推 trial 分布:DSH 多出 20 个“4/4 全成功”任务
由于每个任务恰好执行 4 次,Pass¹—Pass⁴ 实际上给出了成功次数分布的四个组合矩。结合各领域任务数,可以还原每个任务在四次 trial 中成功 0、1、2、3、4 次的数量。

Agno 有 194 个任务四次全部成功,DSH 为 214 个,多出 20 个。在 1,112 次单次执行中,DSH 共成功 993 次,Agno 为 967 次,多出 26 次;但在“完全稳定任务数”上多出 20 个。这说明收益高度集中在稳定性转换上,而不是把大量完全不会做的任务变成会做。
换算成更直观的业务语言:如果有 1,000 类任务,每类执行 4 次,Agno 的结果意味着约 302 类任务至少失败一次,DSH 约为 230 类。后者将“至少一次失败”的任务组减少约 23.8%。这不是简单的 2.34% 平均分提升,而是对重试、人工升级和不一致处理结果的直接压缩。
3. 领域差异揭示了收益边界
airline 的 Pass⁴ 提升最大,达到 14.00 个百分点;retail 为 9.65 个百分点;telecom 仅为 1.75 个百分点。telecom 两者的 Pass¹ 都已超过 95%,存在明显的天花板效应。数据支持的稳妥结论是:Harness 差异在高基线、短分支或低歧义任务中可能被模型能力掩盖,在需要持续维护约束和决策依据的任务中更容易放大。但没有逐轨迹难度标签,尚不能把领域差异全部归因于对话长度或规则复杂度。
4. 成本和速度基本打平,不构成当前选型主因
总体等效成本从 0.0823 增至 0.0832,DSH 高约 1.09%;平均时长从 152.4 秒增至 153.1 秒,高约 0.46%。这两个幅度都很小,而且分领域方向并不一致。
因此,不宜写成“Agno 成本显著更低”或“DSH 性能没有代价”。在没有方差、置信区间和逐任务配对数据的情况下,我们只能说差异幅度较小,不能声称统计显著。更重要的是,当前 cost 是按外部 API 价格折算的 token 成本,并未测量本地推理的 GPU-hour、吞吐和显存占用。
1. 源码证据:DSH 会回传,Agno 的通用适配路径会丢在请求侧
对 2026 年 9 月 7 日主分支源码的核验显示,DSH 的 DeepSeek 适配器会从 assistant message 的 reasoning block 中拼接 reasoning,并在后续请求中写回 reasoning_content;官方包说明也明确指出,上一轮 assistant 的 reasoning 会逐字回传,无论该轮是否调用工具。[3][4]
Agno 的情况更细。当前 Message 数据结构包含 reasoning_content,模型基类也会把 provider response 中的 reasoning 写入 assistant message;因此,笼统地说“Agno 完全没有保存思维链”并不准确。[5] 真正的差异出现在下一次请求的序列化:通用 OpenAIChat 的 _format_message() 只写入 role、content、name、tool_call_id 和 tool_calls,不包含 reasoning_content;OpenAILike 继承了这一实现。[6]
与此同时,Agno 当前的原生 DeepSeek provider 已重写该方法并加入 reasoning_content。[7] 这意味着本次结论必须绑定到实际使用的 provider/adapter 路径:如果 Qwen 通过 Agno OpenAILike 接入,而 DSH 通过会回传 reasoning 的适配器接入,那么实验比较的不只是两个框架,也是在比较两种消息协议实现。
2. 为什么这可能影响 Pass⁴
在 TAU³-Bench 这类多轮任务中,一次处理通常包含“识别意图—核对资格—收集参数—调用工具—验证结果—向用户说明”多个阶段。若上一轮 reasoning 能回到模型,模型更容易保留当时采用的规则分支、尚未满足的前置条件和下一步动作;若只保留可见回复与工具结果,模型必须在每一轮重新从对话中重建计划。
这种差异未必大到让模型立刻从不会做变成会做,却可能降低边界条件下的随机漂移:少漏问一次信息、少提前调用一次写工具、少在最后一轮忘记必要告知。它恰好会优先反映在 Pass³、Pass⁴,而不是 Pass¹。
3. 但当前证据仍然只是机制假设
现有结果没有单独操纵 reasoning_content,因此不能排除其他差异,包括系统提示词拼装、工具 schema、工具结果序列化、最大轮数、终止判断、错误重试、消息裁剪与 provider 参数。要建立因果关系,至少需要一个 2×2 消融:
DSH-A:保留 reasoning_content(当前行为)。 DSH-B:强制删除历史 reasoning_content。 Agno-A:当前 OpenAILike 行为。 Agno-B:仅补上 reasoning_content 回传,其余代码不变。
如果 DSH-A 相对 DSH-B 的优势与 Agno-B 相对 Agno-A 的增益方向一致,且两个框架间差距显著收敛,才有资格把主要原因归为 reasoning passback。
更长远看,无条件保留全量思维链也不是理想终点。历史 reasoning 可能带来错误锚定、token 膨胀和敏感信息暴露。更稳健的工程方向,是把“已确认事实、适用规则、待办、已执行动作、不可重复副作用”显式化为可验证的决策状态,让模型继承任务状态,而不是只能继承一段不可审计的自由文本思考。
Temperature = 0 也不等于完全确定性。推理服务的并行调度、算子实现、用户模拟器输出、工具错误与不同的停止位置仍可能造成 trial 差异。正因为如此,Passᵏ 才是必要指标,而不是把重复实验视为多余。
从技术上看,这次实验提示团队把 provider adapter、消息序列化和跨轮状态视为 Harness 的核心能力,而不是底层兼容细节。一个字段是否进入下一轮请求,就可能改变多步任务的可靠性曲线。
从商业上看,Pass⁴ 从 69.78% 提升到 76.98%,相当于将“四次执行中至少失败一次”的任务比例从 30.22% 降至 23.02%,相对减少约 23.8%。对于退款、改签、套餐变更等带副作用的流程,一次失败往往意味着人工介入、重复处理或客户投诉,其成本通常远高于约 1.1% 的等效 token 差异。
但这不意味着所有团队都应迁移到 DSH。telecom 的差距很小,说明当模型对任务已经接近饱和时,生态、可维护性、团队熟悉度和现有集成可能比 1—2 个百分点更重要。
建议按以下顺序推进
补齐可复现信息。固定 TAU³-Bench commit 与 task split,记录 Agno/DSH commit、provider 类、vLLM 版本、模型 revision、用户模拟器模型和完整请求参数。 执行 2×2 reasoning 消融。只改变 reasoning_content 是否回传,检验两套框架的差距是否收敛。 做逐任务配对分析。对同一 task_id 比较 Agno 与 DSH,使用 paired bootstrap 给出 Passᵏ 差值的 95% 置信区间。 建立失败分类。至少区分规则判断错误、信息收集不足、工具选择错误、参数错误、写操作错误、必要信息未告知和提前终止。 拆开质量与性能实验。质量实验保留 concurrency=4;另用 concurrency=1 测 Harness 自身时延,并报告 tokens、TTFT、工具轮数、KV cache 命中率和 GPU-hour。 用真实业务回放做最后一轮验证。从内部流程抽取脱敏轨迹,加入幂等、权限和审计约束,确认公开 Benchmark 的稳定性优势能否迁移到生产。
参考文献
Sierra Research — Task Schema and Evaluation, τ³-Bench. Yao, S. et al. — τ-bench: A Benchmark for Tool-Agent-User Interaction in Real-World Domains, 2024. DeepSeek AI — DeepSeek Harness: Everything is a Plugin. DeepSeek AI — llm-deepseek serialization and reasoning history. Agno — Message model and model base response handling. Agno — OpenAIChat generic message serialization. Agno — Native DeepSeek provider message serialization.
源码核验日期:2026-09-07。核验时 Agno main commit 为 8f36eaf,DeepSeek Harness master commit 为 d347e70。实验结论仍应以实际运行版本为准。








