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_delete、database_write、shell_exec 这类高危操作。
对于这类工具,建议在 Hermes 里配置”执行前需要用户确认”的模式。这样 AI 在调用这些工具之前,会先向你确认指令的意图,避免 AI 误判导致意外的操作。
技巧三:用组合工具实现复杂工作流
Hermes 支持在单个回复里调用多个工具,而且多个工具可以并行调用。这意味着你可以把一个复杂的任务拆解成多个工具调用,Hermes 会自动编排它们的执行顺序和依赖关系。
比如你说:”帮我查一下过去一年这个股票的走势,然后生成一张 K 线图保存到桌面,再把分析结果发到我的飞书。”
Hermes 会自动拆解成:先调用股票 API 获取数据 → 调用 Python 代码生成图表 → 调用文件操作保存图片 → 调用飞书消息接口发送文件。中间有依赖关系的会串行执行,没有依赖关系的可以并行。
工具系统让 Hermes 从”聊天”变成”干活”
回到最初的问题:AI 知道答案但什么都做不了。
Hermes 的工具系统,通过三层扩展架构,让 AI 不再只是”给你建议”,而是真正能够替你执行。读文件、写代码、查数据、发消息、执行命令——这些操作 AI 全都能做,而且是在你的授权范围内、按照你的指令在做。
这才是真正实用的 AI 助手该有的样子。
夜雨聆风