需手动编写结构化自定义技能文档:一、存于~/.hermes/skills/custom/下,单层.md文件;二、开头含yaml frontmatter,含name、description等必需字段;三、正文按“目标→执行步骤→注意事项→验证方法”组织;四、保存后执行hermes skills reload验证。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望为Hermes Agent扩展特定功能,但当前系统中缺少对应技能,则需要手动编写结构化的自定义技能文档。以下是完成该任务的具体步骤:
一、确认技能存储路径与目录结构
所有自定义技能必须存放于~/.hermes/skills/custom/目录下,且每个技能需以独立的Markdown文件形式存在。文件夹层级不可嵌套,文件名须以.md结尾,且不包含空格或特殊符号。该路径是Agent启动时自动扫描的唯一自定义技能加载区。
1、打开终端,执行命令进入目标目录:
cd ~/.hermes/skills/custom/
2、检查是否存在custom子目录,若无则创建:
mkdir -p ~/.hermes/skills/custom/
3、确认当前用户对该目录具有读写权限:
ls -ld ~/.hermes/skills/custom/
二、构建标准Frontmatter元数据块
每个技能文件开头必须包含YAML格式的Frontmatter区块,用于声明技能基础属性。该区块控制技能是否被识别、如何触发及依赖哪些工具。缺失任一必需字段将导致技能加载失败。
1、在文件顶部插入三横线分隔符---,开始Frontmatter定义。
2、填写必需字段:
name(唯一标识符,仅字母数字与短横线)、
description(不超过120字的功能简述)、
version(语义化版本号,如1.0.0)、
triggers(至少一个中文或英文触发词数组)。
3、声明所用工具:
在tools_required字段下逐行列出该技能执行过程中调用的所有内置工具名称,例如- read_file、- write_file、- web_search。
三、撰写正文:明确目标与执行步骤
Frontmatter之后为Markdown正文,需严格遵循“目标→步骤→注意事项”逻辑链。正文不参与技能匹配,但决定Agent能否正确执行任务。标题层级仅允许使用##(对应HTML
)及以下,禁止使用###以上标题。
1、首个二级标题必须为## 目标,用一句话说明该技能解决的具体问题,避免模糊表述。
2、紧接着使用## 执行步骤作为第二级标题,其下每一步骤须编号并以动词开头,描述可被Agent直接解析的原子操作,例如“调用web_search工具查询XXX”、“从input.json读取字段members”。
3、若涉及用户输入交互,需明确标注询问时机与预期格式,例如:“当未提供date参数时,向用户提问:‘请指定站会日期,格式为YYYY-MM-DD’”。
四、添加注意事项与验证方法
该部分用于提升技能鲁棒性,防止因边界条件或环境差异导致失败。Agent在执行前会主动检索此节内容,并据此调整行为策略。缺失此节将显著增加运行时错误概率。
1、新增## 注意事项二级标题,列出三项以内高频陷阱,每项以破折号引导,例如:“- 若members列表为空,自动跳过摘要生成,返回提示‘未提供成员信息’”。
2、新增## 验证方法二级标题,提供一条可立即执行的CLI命令,用于人工校验技能是否注册成功,例如:hermes skills list | grep "your-skill-name"。
3、确保所有代码块使用标准Markdown反引号包裹,不使用缩进式代码块,避免解析失败。
五、保存并验证技能注册状态
文件保存后,Agent不会实时重载,必须通过显式命令触发扫描。验证过程需排除缓存干扰,确保文件内容已持久写入磁盘且编码为UTF-8无BOM格式。
1、使用支持UTF-8编码的编辑器(如VS Code、Vim)保存文件,禁用自动转换编码选项。
2、执行命令强制刷新技能索引:
hermes skills reload
3、运行列表命令确认新技能出现在输出中:
hermes skills list --format short
4、若未显示,检查终端输出的错误日志,重点关注Frontmatter parse error或invalid trigger format类提示。











