Skills

Skill 是可复用的本地工作流。一个 skill 以一个 SKILL.md 文件为根,描述一种 可重复的任务模式,Agent 需要时可以加载。

什么是 skill

一个 skill 通常包含:

Skill 不会自动生效。运行时会提供一份可用 skill 的目录,只有当出现匹配的 任务时,Agent 才会打开对应的 SKILL.md。

位置

仓库内的 skill 通常放在:

.codex/skills/<skill-name>/SKILL.md
skills/<skill-name>/SKILL.md

本仓库中的示例 skill 有:

Agent 如何使用 skill

  1. 运行时提供一份 skills 目录,包含名称、描述和路径
  2. 只有当 skill 匹配当前任务时,Agent 才会选择它
  3. Agent 读取该 skill 的 SKILL.md
  4. Agent 用普通的工具调用执行其中的工作流

这样能让 skill 保持显式,也避免加载无关的指引。

用 CLI 管理 skill

Holon 把 skill 管理分成两层:

Skill Library(全局)

Skill Library 是你本地的 skill 目录。用下面的命令管理:

查看 library 目录

holon skills catalog

列出本地 Skill Library 中注册的所有 skill。

向 library 添加 skill

# 从本地目录或 SKILL.md 文件添加
holon skills add /path/to/skill-dir

# 从远程源添加
holon skills add https://github.com/user/repo/tree/main/skills/my-skill --remote

# 把 skill 复制到用户目录,而不是引用它
holon skills add /path/to/skill --copy

从 library 移除 skill

holon skills remove my-skill

检查 library 一致性

# 对照 .skill-lock.json 检查所有 library 条目
holon skills check

# 检查某个具体 skill
holon skills check my-skill

注意: 安装一个已安装的全局 skill 是幂等的:holon skills add 会跳过 安装并报告已有条目,不报错。在脚本和自动化里 可以放心重复执行。

用 lock 文件校准 library

# 校准所有 library 条目
holon skills reconcile

# 校准某个具体 skill
holon skills reconcile my-skill

从远程源更新 skill

holon skills update

拉取远程 skill 源并与 lock 文件(.skill-lock.json)比对。上游有变化的 skill 会被下载并更新。更新会保留 npx skills v3 的 lock 格式(source、 subdir、mode、etag),以便互通。

Agent Skills(按 Agent)

skill 进入 library 后,再为具体 Agent 启用:

列出某个 Agent 已启用的 skill

# 列出默认 Agent 的
holon skills list

# 列出某个具体 Agent 的
holon skills list --agent reviewer

列出该 Agent 当前已启用的所有 skill,包括名称、作用域(agent、workspace 或 user)和来源。

为 Agent 启用 skill

# 为默认 Agent 启用
holon skills enable my-skill

# 为某个具体 Agent 启用
holon skills enable my-skill --agent reviewer

# 启用并复制到 Agent home
holon skills enable my-skill --copy

为 Agent 禁用 skill

# 为默认 Agent 禁用
holon skills disable my-skill

# 为某个具体 Agent 禁用
holon skills disable my-skill --agent reviewer

兼容别名: holon skills install 和 holon skills uninstall 仍被接受, 但会映射到新的 add/enable 和 remove/disable 模型。为了清晰,优先用新命令。

Skill 的 uses 简写

添加 GitHub 上托管的 skill 时,可以用 uses 简写语法代替仓库 URL:

# 完整 URL 形式
holon skills add https://github.com/holon-run/holon/tree/main/skills/ghx --remote

# uses 简写,效果相同
holon skills add holon-run/holon/skills/ghx@main

uses 形式(owner/repo/path@ref)会在内部规范化为完整的 GitHub URL。它也 接受 owner/repo/path#ref 作为兼容输入。

Skill 源类型

源标志示例
本地路径(默认)holon skills add ./skills/my-skill
远程 URL--remoteholon skills add https://... --remote

命令速查

层命令用途
Libraryholon skills catalog列出 library 目录
Libraryholon skills update从远程源拉取并更新 skill
Libraryholon skills refresh重新扫描本地根目录,刷新运行时目录
Libraryholon skills add <source>向 library 添加 skill
Libraryholon skills remove <name>从 library 移除
Libraryholon skills check [name]检查 lock 文件一致性
Libraryholon skills reconcile [name]与 lock 文件校准
Agentholon skills list [--agent]列出已启用的 skill
Agentholon skills enable <name>为 Agent 启用
Agentholon skills disable <name>为 Agent 禁用

注意: --builtin 标志和模板清单里的 kind = "builtin" 已在 v0.26.0 移除。官方 Holon skill 现在和其他 GitHub 托管的 skill 用同样的方式引用。

用 HTTP 管理 skill

HTTP 控制平面把 library 操作和 Agent 操作分开:

Library 端点

方法路径用途
GET/api/skills/catalog列出 library 目录
GET/api/skills/catalog/{skill_id}获取 skill 详情
POST/api/skills/catalog/add向 library 添加 skill
POST/api/skills/catalog/refresh刷新运行时目录
POST/api/skills/catalog/remove从 library 移除
POST/api/skills/catalog/reconcile与 lock 文件校准
POST/api/skills/catalog/check检查一致性
POST/api/skills/catalog/update从远程源更新 skill

Agent 端点

方法路径用途
GET/agents/:agent_id/skills列出 Agent 的 skill
POST/control/agents/:agent_id/skills/enable为 Agent 启用
POST/control/agents/:agent_id/skills/disable为 Agent 禁用

已弃用: POST /api/control/agents/:agent_id/skills/install 和 POST /api/control/agents/:agent_id/skills/uninstall 仍保留以兼容,但已被 enable/disable 和 add/remove 取代。

非阻塞安装任务

通过 HTTP API 安装 skill(例如从 Web GUI)时,安装会作为后台任务运行,不会 阻塞请求。任务进度可在 GET /api/jobs/{job_id} 查看,并通过 localStorage 在页面重新加载后保留。

TUI 集成

终端 UI 在 CLI 之外也提供 skill 管理:

有了这些 TUI 功能,你无需离开交互会话就能管理 skill。

如何写好一个 skill

让 skill 保持:

适合写成 skill 的主题:

不适合写成 skill 的主题:

与 AGENTS.md 的关系

这样分工:

它们是不同的层:

面用途
AGENTS.md常驻指令和边界
SKILL.md某一类任务的可复用工作流
工作项当前目标和进度

另见