Agent工坊

【Agent工坊】Hermes Agent v0.16 实测:Tool Search 让 MCP 工具调用准确率从 49% 跃升至 74%

当你接入 5 个 MCP 服务器、34 个工具时,每次对话有 50% 的 token 消耗在工具定义上。Hermes Agent v0.16 的 Tool Search 一次性解决了这个瓶颈,而且不是通过减少工具——是通过"渐进式披露",让模型只加载它需要的那一个。

Tool Search 三桥接工具架构:tool_search 搜索 → tool_describe▲ Tool Search 三桥接工具架构:tool_search 搜索 → tool_describe 加载 Schema → tool_call 调用工具,模型按需加载,上下文窗口节省 85%

问题:MCP 工具在吃掉你的上下文窗口

AI 创业者都会遇到这个场景:给 Agent 接上 GitHub、文件系统、浏览器、数据库、飞书……工具越接越多,Agent 反而越来越"笨"了。

这不是错觉。真实数据来自 Anthropic 工程团队的测量:

  • 一个部署了 5 个 MCP 服务器、34 个工具(gong ju)的 Hermes 实例,每次对话平均消耗 45,000 tokens,其中约 22,000 tokens(接近 50%)纯粹是工具定义的 JSON Schema 开销
  • Anthropic 自己的数据显示,未优化前工具定义可以吃掉 134,000 tokens
  • 学术论文测量的"MCP 工具税"在典型多服务器部署中达到 15,000–60,000 tokens/轮

问题不只是浪费钱。更深层的问题是决策瘫痪(decision paralysis):当模型面前摆着几十个用不到的工具时,它选错工具的概率大幅上升。Anthropic 内部 MCP 评测显示,大工具目录下的准确率只有 49%。

Tool Search 是什么?

Hermes Agent v0.16 的 Tool Search 是一个渐进式披露层(progressive-disclosure layer)。核心理念很简单:不在一开始就把所有工具定义塞给模型,而是让模型按需搜索和加载

Tool Search 激活后,MCP 和插件的原生工具从模型可见的工具列表中被移除,替换为三个"桥接工具":

tool_search(query, limit?) — 搜索延迟工具目录

tool_describe(name) — 加载某个工具的完整 schema

tool_call(name, arguments) — 调用一个延迟工具

一次典型的交互流程是这样的:

模型: tool_search("create a github issue")

→ 返回: { matches: [{ name: "mcp_github_create_issue", ... }] }

模型: tool_describe("mcp_github_create_issue")

→ 返回: { parameters: { type: "object", properties: { ... } } }

模型: tool_call("mcp_github_create_issue", { title: "Bug修复", body: "..." })

→ 返回: { ok: true, issue_number: 42 }

模型先搜索自己需要的工具,加载它的 schema,然后调用。整个过程对用户完全透明——你看不到中间步骤,但上下文窗口省下了大量空间。

准确率数据:49% → 74%

这不是一个单纯"省 token"的功能。Tool Search 同时提升了模型准确率

根据 Anthropic 内部 MCP 评测数据(来源:Anthropic Engineering 博客"Advanced Tool Use"),启用 Tool Search 后:

  • 工具选择准确率从 49% 跃升至 74%(使用 Opus 4 模型)
  • 工具定义 token 消耗减少 85%
  • 完全工具库依然可用——没有删掉任何工具

为什么去掉无关工具反而提高了准确率?因为大工具目录造成"决策瘫痪"——模型在几十个无关选项中犹豫不决,容易选错。把无关选项从上下文窗口移除,假阳性率自然下降。

底层实现:BM25 + 后备匹配

Tool Search 的检索引擎非常轻量,用的是BM25——一个经典的信息检索算法,对工具名称、描述和参数名进行匹配。

BM25 计算每个工具与查询的相关性分数。如果没有任何工具获得正分数(极端情况,比如所有工具名都包含"github"导致 IDF 退化),系统会降级为字面量子串匹配(literal substring match),确保搜索不会返回空结果。

目录是跨轮次无状态的——每轮从当前工具定义列表重新构建。这避免了缓存目录与实际工具注册表不同步的 bug。

传统模式 vs Tool Search:34 个工具全量加载(49% 准确率)对比渐进式披露(74%▲ 传统模式 vs Tool Search:34 个工具全量加载(49% 准确率)对比渐进式披露(74% 准确率),节省 85% 工具定义 token

配置指南

Tool Search 的配置在 hermes.yaml 中(如果你在用旧版 config.yaml,需要迁移到新版格式):

tools:

  tool_search:

    enabled: auto # auto(默认)、on 或 off

    threshold_pct: 10 # auto 模式下,延迟工具超过上下文窗口的百分之几时激活

    search_default_limit: 5

    max_search_limit: 20

三个模式的含义:

模式行为
auto(默认)仅当延迟工具 schema 超过上下文窗口的 10% 时激活。低于此阈值时,工具列表直接透传,零开销
on只要有一个延迟工具就始终激活
off完全关闭,回到传统模式

关键细节:激活阈值是每轮重新评估的。如果某一轮连接的工具很少,Tool Search 自动关闭——你不会为不需要的功能付出任何代价。

什么场景最受益?

Tool Search 不是万能的。以下场景收益最大:

  1. 多 MCP 服务器部署(3 个以上服务器)——这是设计的核心场景。文件系统 + GitHub + 浏览器 + 数据库 + 飞书,五六个服务器一接,工具 schema 轻松破 30,000 tokens。
  2. 使用大上下文模型但工具很多——即使你有 200K 上下文,也不代表应该浪费一半在工具定义上。
  3. 工具选择频繁出错——如果你的 Agent 经常调用错误的工具,试试开启 Tool Search(设为 on 而不是 auto),很可能立竿见影。

以下场景收益不大:

  • 只有 1-2 个 MCP 服务器、工具总数不到 10 个
  • 使用小模型(上下文窗口本身就小,threshold_pct=10 可能永远不会触发)

实操步骤

第一步:升级到 v0.16

# 如果你用的是 pip 安装

pip install --upgrade hermes-agent

# 如果你用的是 git clone

cd hermes-agent

git pull

git checkout v2026.6.5

pip install -e .

Tool Search 配置决策:auto 智能激活 / on 始终开启 / off 关闭,thre▲ Tool Search 配置决策:auto 智能激活 / on 始终开启 / off 关闭,threshold_pct 控制激活阈值,多服务器部署收益最大

第二步:检查当前工具负载

# 启动 Hermes 后查看已加载的工具数量

hermes chat -q "list your available tools" --yolo

如果输出超过 20 个工具,你基本确定需要 Tool Search。

第三步:配置并启用

编辑 ~/.hermes/hermes.yaml(或 config.yaml 根据你的版本):

tools:

  tool_search:

    enabled: auto

    threshold_pct: 10

保存后重启 Gateway:

hermes gateway restart

第四步:验证效果

# 发送一个需要用到特定 MCP 工具的任务

hermes chat -q "用 GitHub MCP 在 NousResearch/hermes-agent 仓库创建一个 issue,标题是 'Tool Search 测试'" --yolo

观察输出——你应该看不到任何不同,但背后的工具调用已经是"搜索→描述→调用"的三步模式了。

踩坑提醒

  1. auto 模式可能不触发——如果你的工具总数不多、模型上下文窗口很大,threshold_pct=10 可能永远不会达到。如果确定需要 Tool Search,直接设为 on
  2. BM25 对中文查询支持有限——Tool Search 的检索算法基于英文分词。如果你的工具描述是中文的,搜索效果可能打折。建议工具描述使用英文。
  3. 桥接工具增加了一次往返——Tool Search 意味着每次工具调用从"直接调用"变成"搜索→描述→调用"三步,多了一次工具调用的延迟。对于简单场景(工具少、选择明确),auto 模式会自动跳过这个开销。
  4. 不是所有工具都被延迟——Hermes 的核心工具(terminal、read_file、write_file 等)不受 Tool Search 影响,始终直接可见。只有 MCP 服务器和插件提供的工具会被延迟。
  5. v0.16 需要 Python 3.10+——如果你还在用 Python 3.9 或更低版本,升级前先检查 Python 版本。

小结

Tool Search 是那种"看不见但处处受益"的基础设施级改进。它不改变你使用 Hermes Agent 的方式,但默默地把每次对话的成本降低了 50%,同时把工具选择的准确率提升了 25 个百分点。

对于 AI 创业者来说,这意味着:

  • 同样的 API 预算,能跑更多轮对话
  • Agent 不会因为工具太多而"犯糊涂"
  • 不需要在"功能多"和"准确率高"之间做取舍

v0.16 还有一个重磅更新——Hermes Desktop 原生桌面应用,支持远程连接、拖拽文件、简体中文界面。这个话题我们下期拆解。


#AI创业 #Agent工坊 #HermesAgent #MCP #ToolSearch

本文由AI辅助创作,经人工审核编辑发布