# Hermes Agent 实战指南④:工具生态与自定义扩展,让AI能力无限延伸
学会这一讲,你不再受限于内置能力——用什么工具、接什么平台,全由你定义。
4.1 三层扩展体系:Tool / Skill / Plugin
在动手之前,先理解 Hermes Agent 的扩展分层。这个框架把能力扩展分为三个层次,各有分工:
| 层次 |
解决什么问题 |
类比 |
| Tool(工具) |
"能做什么动作" |
厨师手里的刀 |
| Skill(技能) |
"按什么流程做事" |
烹饪菜谱 |
| Plugin(插件) |
"能不能连上新平台、接入新能力" |
厨房改造、新设备接入 |
三层递进。
Tool 解决单点动作(如搜索、执行代码),
Skill 编排多个动作形成流程(如写一篇完整文章的工作流),
Plugin 则负责接入全新系统——比如让 Hermes 连上你们公司的数据库、飞书群或内部CRM。
4.2 内置工具集一览
Hermes Agent 开箱自带多组工具集,定义在
toolsets.py 中。常用工具集包括 web、terminal、code 三个核心工具集。
启动时指定工具集:
hermes run --toolset web,code
4.3 自定义工具:写一个你自己的工具
第一步:写工具函数 + JSON Schema
创建
tools/my_custom_tool.py:
from tools.registry import registry
def text_transform(args):
text = args.get("text", "")
transform_type = args.get("transform_type", "uppercase")
if transform_type == "uppercase":
return text.upper()
elif transform_type == "lowercase":
return text.lower()
return text
TEXT_TRANSFORM_SCHEMA = {
"name": "text_transform",
"description": "转换文本大小写",
"parameters": {
"type": "object",
"properties": {
"text": {"type": "string"},
"transform_type": {"type": "string", "enum": ["uppercase", "lowercase"]}
},
"required": ["text"]
}
}
registry.register(name="text_transform", toolset="text_processing",
schema=TEXT_TRANSFORM_SCHEMA, handler=text_transform)
第二步:加入工具集
"text_processing": {
"description": "文本处理工具集",
"tools": ["text_transform", "word_count"],
"includes": ["web"]
}
第三步:使用
hermes run --toolset text_processing
4.4 Plugin 机制:接入新平台的能力
Plugin 是 Hermes Agent 最强大的扩展层。不修改核心代码,就能让 Hermes 接入数据库、企业微信、飞书、甚至IoT设备。
一个 Plugin 可以包含:
- 新增 Tool:让 Hermes 多一组可调用的动作
- 注册 Hook:在 Agent Loop 关键节点插入自定义处理
- 注册 CLI 子命令:给 hermes 命令行加新的子命令
Plugin 安装在
~/.hermes/plugins/ 目录下:
hermes plugin install db-connector
cp -r ./my-plugin ~/.hermes/plugins/
hermes --reload
写一个自定义 Plugin 的结构:
~/.hermes/plugins/task-manager/
├── __init__.py
├── tools/
│ └── task_tools.py
├── hooks/
│ └── audit_hook.py
└── plugin.yaml
plugin.yaml 示例:
name: task-manager
version: "1.0.0"
tools:
- name: query_task
file: tools/task_tools.py
handler: query_task
hooks:
- event: after_tool_call
handler: hooks/audit_hook.py:log_tool_usage
重启后即可使用:
hermes run --toolset task-manager,web
4.5 工具集组合与继承
工具集支持通过
includes 属性复用其他工具集:
"content_creation": {
"description": "内容创作综合工具集",
"tools": ["text_rewrite", "image_generate"],
"includes": ["text_processing", "image_gen"]
}
可视化工具集结构:
from toolsets import print_toolset_tree
print_toolset_tree("content_creation")
4.6 动态工具集:运行时创建
不需要修改文件,在运行时动态创建工具集:
from toolsets import create_custom_toolset
create_custom_toolset(
name="my_dynamic_toolset",
tools=["text_transform"],
includes=["web", "vision"]
)
本讲小结
| 概念 |
作用 |
关键操作 |
| Tool |
单个可执行动作 |
写函数 + JSON Schema + registry.register() |
| Skill |
动作流程编排 |
YAML 配置 workflow |
| Plugin |
平台级能力扩展 |
放入 ~/.hermes/plugins/,自动加载 |
下一讲我们将进入
Supervisor 与 Worker 进阶玩法——如何让多 Agent 团队真正像一个高效运转的项目组。
想第一时间看实战指南系列?关注公众号,设为星标,精彩不错过。
评论区