现象不一定是 Skill 损坏
Skill 没有生效可能表现为:列表中看不到它、智能体不知道有这个能力、触发词出现后仍不使用,或者读取 Skill 时出现路径错误。这些现象分别对应发现、加载、匹配和运行四个阶段。
1. 先确认 Skill 的目录结构
一个可维护的 Skill 至少应有清晰的目录和 SKILL.md。先查文件是否位于当前 Hermes Profile 能读取的位置:
find ~/.hermes/skills -name SKILL.md -type f | sort
如果使用命名 Profile,要确认该 Profile 是否有自己的技能目录,以及你启动 Hermes 时是否切换到了正确的 Profile。
2. 检查 SKILL.md 的基本内容
文件应说明触发条件、执行步骤、工具要求和验证方式。只有标题没有触发条件的 Skill,模型可能无法判断什么时候应该使用;把所有任务都写成“必须使用”也会造成错误触发。
建议最少包含:
- 适用场景;
- 不适用场景;
- 输入和输出格式;
- 具体工具或命令;
- 常见失败方式;
- 完成后的验证步骤。
3. 用新会话做最小触发测试
修改 Skill 后,不要只在原对话里测试。旧会话可能保留了旧的系统提示词或技能索引。开启新会话,用一个明确、最小的任务测试:先要求列出相关 Skill,再给出一个确实符合触发条件的小任务。
4. 区分“没有加载”和“加载后执行失败”
如果模型完全不知道 Skill,重点检查路径和索引;如果模型提到了 Skill 但命令失败,重点检查依赖、权限、工作目录和环境变量;如果命令成功但结果不对,则需要改 Skill 的步骤和验收标准。
常见排查记录
每次修改最好记录:Skill 路径、Profile、触发输入、模型是否识别、工具调用、最终结果。这样可以避免把“模型没有选择 Skill”和“Skill 内部命令报错”混为一谈。
安全边界
Skill 中可以写变量名和脱敏示例,但不要写 API Key、Cookie、Token 或真实登录态。需要访问外部服务时,优先从环境变量或安全配置读取,并在日志中隐藏敏感值。