Can’t load valid user skills in `~/.ollama/skills/`

这个报错通常出现在用户自定义 Ollama skill 的目录名或 SKILL.md frontmatter 的 name 字段不符合命名规范时。优先检查 ~/.ollama/skills/ 下的目录名和 frontmatter 中的 name 是否只包含小写字母、数字和连字符,并重点排查是否存在下

快速结论:这个报错通常出现在用户自定义 Ollama skill 的目录名或 SKILL.md frontmatter 的 name 字段不符合命名规范时。优先检查 ~/.ollama/skills/ 下的目录名和 frontmatter 中的 name 是否只包含小写字母、数字和连字符,并重点排查是否存在下划线。

适用环境:Linux 系统、NVIDIA GPU、Intel CPU、Ollama 0.32.5。

最快修复方案:将 skill 目录名及 SKILL.md frontmatter 中的 name 字段里的下划线改为连字符,例如把 local_search 重命名为 local-search,并确保 frontmatter 中的 name 同步修改,然后重启 Ollama agent 会话。

注意事项:skill 在 agent 启动时发现,修改后必须重新启动会话;目录名和 frontmatter 中的 name 都必须符合规则。若其他 skill 也包含类似非法字符,需要一并处理。该方案基于官方 YAML frontmatter 命名要求推断,本 Issue 中确认下划线是直接诱因。

问题场景

用户在 ~/.ollama/skills/ 下放置了三个自定义 skill,每个 skill 均以 <目录名>/SKILL.md 形式组织。启动 Ollama agent 会话时,前两个 skill(neurodocker-image-builderskill-creator)可以正常加载,但第三个 local_search 无法加载。执行 skill local_search 时提示 invalid skill name,同时会话启动时出现 warning 日志。

报错原文

Can't load valid user skills in `~/.ollama/skills/`
warning: ignored invalid agent skill: invalid skill directory "local_search"
Error: "invalid skill name"

原因分析

最可能原因是 skill 目录名或 SKILL.md frontmatter 中的 name 字段包含了非法字符(下划线 _)。Ollama 遵循的 skill 命名规则要求 name 只能使用小写字母、数字和连字符(-),不允许下划线、XML 标签、保留字等。此 Issue 中的 local_search 包含下划线,而另外两个正常加载的 skill 目录名均使用连字符,因此会被发现机制判定为无效 skill 并忽略。

环境排查

celebrityanime
celebrityanime
文章: 18294

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注