必须手动启用自定义工具才能执行本地操作;工具须置于~/.hermes/skills/下、文件名以.py结尾且无空格或中文;需验证语法依赖、补全name/description属性;调用时agent依据name匹配工具;失败时可通过日志、交互调试和参数校验三步定位。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

让Hermes Agent执行你指定的本地操作,比如读取项目日志、调用内部API或解析私有格式文件,必须先启用你开发好的自定义工具——它不会自动生效,也不在默认工具列表中。
确认自定义工具已正确存放
打开终端,进入Hermes Agent识别自定义工具的固定路径:~/.hermes/skills/。
检查你的工具目录是否位于该路径下,例如:~/.hermes/skills/file_query_tools/;如果放在其他位置(如项目根目录或桌面),Hermes Agent将完全忽略它。
【工具文件名必须以.py结尾,且不含空格或中文】。比如file_query_tool.py合法,我的查询工具.py或file query tool.py会导致导入失败。
启用工具前验证语法与依赖
进入你的工具目录,运行:python file_query_tool.py。
若报错ModuleNotFoundError: No module named 'hermes',说明未激活Hermes虚拟环境——先执行source ~/.hermes/venv/bin/activate再试。
若无任何输出(即脚本静默通过),说明Python语法和基础继承关系正确;若有AttributeError提示缺少name或description,需立即补全类属性,否则工具注册阶段就会被跳过。
在会话中调用自定义工具
启动Hermes Agent交互终端:hermes chat。
直接向Agent发出自然语言指令,例如:“请读取我桌面上config.json的内容”。
Agent会自动匹配到file_query工具(依据你在name字段声明的标识符),并构造结构化参数传入。
⚠️ 注意:首次调用时,Agent会在控制台打印Using tool: file_query,紧接着显示工具返回结果;如果只打印Tool not found,请返回第一步检查路径和文件名。
调试工具执行失败的三步定位法
方法一:查看实时日志
在另一个终端窗口运行:tail -f ~/.hermes/logs/agent.log,然后复现调用。日志中会出现完整错误堆栈,包括FileNotFoundError或PermissionError等真实原因。
方法二:手动触发工具函数
进入工具所在目录,启动Python交互环境:python -i file_query_tool.py,然后执行:tool = FileQueryTool(); tool._run(file_path="/absolute/path/to/config.json")。这能绕过Agent调度,直击工具逻辑层。
方法三:检查参数注入是否越界
打开file_query_tool.py,确认_run方法接收的参数与args_schema定义严格一致。例如,若schema要求file_path: str,但LLM传入了{"path": "/xxx"},工具会因参数键名不匹配而静默失败。











