乐于分享
好东西不私藏

Hermes 扩展工具集:让 AI 真正操控真实世界

Hermes 扩展工具集:让 AI 真正操控真实世界

Hermes 扩展工具集:让 AI 真正操控真实世界


一个经典的问题:AI 知道答案,但什么都做不了

你有没有遇到过这种情况?问 AI 一个知识性的问题,它能给你一个漂亮的答案,但如果你说”帮我查一下 Wikipedia 这条内容,然后整理成一个 Markdown 文件存到桌面上”——它就只能停留在”建议你这样做”的层面,动手这件事跟它无关。

这就是大多数 AI 助手的现状:智能足够,但行动能力几乎为零。

Hermes 的工具系统,就是为了解决这个问题而设计的。它不只是一个”工具调用”的接口,而是一套完整的能力扩展框架——让 AI 真正能够读文件、写代码、发消息、执行命令、操作数据库,最终成为一个能替你干活的数字员工。


Hermes 工具系统的三层设计

Hermes 的工具系统分为三个层级,理解这三个层级,有助于你更好地规划 AI 能做什么、不能做什么。

第一层:内置工具(Built-in Tools)

Hermes 开箱即带的核心工具集,包括:

  • file_read / file_write:文件读写操作,支持路径通配符和批量操作
  • shell_exec:在服务器上执行 shell 命令,返回标准输出和错误信息
  • web_search / web_fetch:调用 Tavily 等搜索 API 进行实时网页查询和内容提取
  • message_send:通过各种渠道发送消息,包括飞书、Telegram、Discord 等

这些工具在 Hermes 启动时自动注册,所有 session 都可以使用,不需要额外安装。

第二层:MCP 工具(MCP Tools)

MCP(Model Context Protocol)是 Anthropic 提出的工具标准化协议。Hermes 完整支持 MCP,这意味着你可以接入任何符合 MCP 规范的外部工具源。

常见的 MCP 工具包括:

  • GitHub 集成:创建 Issue、提交 PR、审查代码
  • 数据库工具:执行 SQL 查询、读写数据库
  • 代码执行沙箱:安全地运行 Python、JavaScript 等代码
  • 向量数据库:进行语义搜索和知识检索

MCP 的好处是”一次接入,全局通用”——你只要配置好一个 MCP Server,后续所有工具都可以通过同一个接口调用,不需要为每个工具单独写适配代码。

第三层:自定义插件工具(Plugin Tools)

如果你需要的工具不在内置集里,也没有现成的 MCP Server,你可以写一个 Hermes 插件来提供这个能力。

Hermes 的插件系统支持注册任意 Python 函数作为工具函数。你只需要定义函数的输入参数和返回值描述,Hermes 会自动处理工具发现、调用路由和结果返回。

一个最简单的自定义工具大概长这样:

@hermes.tool()
def get_weather(city: str) -> str:
    """获取指定城市的当前天气"""
    # 调用天气 API
    return f"{city} 现在晴天,气温 22 度"

注册完成之后,你在任何 session 里都可以说”北京天气怎么样”,Hermes 会自动调用这个工具并把结果返回给你。


工具调用不是简单调用,是策略性决策

Hermes 怎么处理”需要调用哪个工具”这件事?

答案是:AI 自己决定。当用户的指令需要某个工具才能完成时,Hermes 的推理引擎会根据当前上下文判断应该使用哪个工具,构造调用参数,执行工具,然后拿回结果再继续推理。

这个设计背后有一个关键问题:工具调用失败怎么办?

比如你让 Hermes 去读取一个文件,但文件不存在。这时候工具会返回一个错误,Hermes 需要判断:这是因为路径写错了?还是权限问题?还是文件确实不存在但可以用别的方式处理?

好的工具系统,不只是”调用 → 返回结果”这么简单。它还需要提供足够丰富的错误上下文,让 AI 能够做出合理的重试或降级决策。Hermes 在这方面做了专门的设计——工具返回的错误信息包含了可能的原因分类,AI 可以根据这些分类选择不同的处理策略。


让工具真正有用的几个实战技巧

技巧一:用工具描述(Tool Description)引导 AI 行为

在为自定义工具写描述的时候,不要只写”这个工具是做什么的”,还要写清楚”什么场景下应该用它”和”它不能做什么”。

比如一个 send_email 工具,描述写成”发送电子邮件”是不够的。你应该写清楚:支持什么收件人格式、附件最大多少MB、发送失败会重试几次、超时时间是多少……这些细节决定了 AI 在复杂场景下能不能正确使用这个工具。

技巧二:把低频但高价值的工具做成”需要确认”的模式

有些工具一旦调用,影响是不可逆的——比如 file_deletedatabase_writeshell_exec 这类高危操作。

对于这类工具,建议在 Hermes 里配置”执行前需要用户确认”的模式。这样 AI 在调用这些工具之前,会先向你确认指令的意图,避免 AI 误判导致意外的操作。

技巧三:用组合工具实现复杂工作流

Hermes 支持在单个回复里调用多个工具,而且多个工具可以并行调用。这意味着你可以把一个复杂的任务拆解成多个工具调用,Hermes 会自动编排它们的执行顺序和依赖关系。

比如你说:”帮我查一下过去一年这个股票的走势,然后生成一张 K 线图保存到桌面,再把分析结果发到我的飞书。”

Hermes 会自动拆解成:先调用股票 API 获取数据 → 调用 Python 代码生成图表 → 调用文件操作保存图片 → 调用飞书消息接口发送文件。中间有依赖关系的会串行执行,没有依赖关系的可以并行。


工具系统让 Hermes 从”聊天”变成”干活”

回到最初的问题:AI 知道答案但什么都做不了。

Hermes 的工具系统,通过三层扩展架构,让 AI 不再只是”给你建议”,而是真正能够替你执行。读文件、写代码、查数据、发消息、执行命令——这些操作 AI 全都能做,而且是在你的授权范围内、按照你的指令在做。

这才是真正实用的 AI 助手该有的样子。