跳转至

创建技能

技能(Skills)教会智能体如何使用工具以及何时使用工具。每个技能都是一个目录,其中包含一个带有 YAML frontmatter 和 Markdown 指令的 SKILL.md 文件。OpenClaw 会按照定义的优先级顺序从多个根目录加载技能。

创建你的第一个技能

1. 创建技能目录

技能位于工作区的 skills/ 文件夹中:

mkdir -p ~/.openclaw/workspace/skills/hello-world

你可以将技能分组到子文件夹中以便于组织——技能仍然由 SKILL.md 的 frontmatter 命名,而不是文件夹路径:

mkdir -p ~/.openclaw/workspace/skills/personal/hello-world
# skill name is still "hello-world", invoked as /hello-world

2. 编写 SKILL.md

frontmatter 定义元数据;正文为智能体提供指令。

---
name: hello-world
description: A simple skill that prints a greeting.
---

# Hello World

When the user asks for a greeting, use the `exec` tool to run:

```bash
echo "Hello from your custom skill!"
```

命名规则:

  • 对于 name,使用小写字母、数字和连字符。
  • 保持目录名称与 frontmatter 中的 name 一致。
  • description 会展示给智能体,并用于斜杠命令发现——请保持在一行内,且不超过 160 个字符。

3. 验证技能已加载

openclaw skills list

默认情况下,OpenClaw 会监视技能根目录下的 SKILL.md 文件。如果监视器已禁用,或者你正在继续一个已有会话,请启动一个新会话,以便智能体收到刷新后的列表:

# From chat — archive current session and start fresh
/new

# Or restart the gateway
openclaw gateway restart

4. 测试

openclaw agent --message "give me a greeting"

或者打开聊天并直接询问智能体。使用 /skill hello-world 按名称显式调用它。

在共享 Gateway 上创建个人技能

对于应跟随你已登录 profile 而非归属于某个智能体工作区的技能,请使用 Plugins → Skills → My skills。在那里创建或导入 SKILL.md 包,然后查看已保存的修订版本和激活结果。你不需要宿主机 shell 访问权限,也不需要编辑共享 Gateway 设置的权限。

你也可以让智能体创建或改进个人技能。它的 skill_workshop 工具使用 Gateway 的授权库服务;它不会直接写入受管理的修订目录。结果会区分已发布的技能和待处理的提案,并说明会话何时可以使用它。如果你希望在当前会话中使用新修订版,或将其分享给团队,请明确提出。

单管理员(single-admin)默认设置仍然是上述工作区工作流。同一操作者(operator)的额外渠道身份不会将个人安装变成团队配置。关于所有权、共享、存储和会话行为,请参阅个人技能与修订。

SKILL.md 参考

必填字段

字段 说明
name 唯一 slug,使用小写字母、数字和连字符
description 单行描述,展示给智能体并出现在发现输出中

可选 frontmatter 键

字段 默认值 说明
user-invocable true 将技能作为用户斜杠命令公开
disable-model-invocation false 将技能排除在智能体的系统提示词之外(仍可通过 /skill 运行)
command-dispatch — 设置为 tool 可将斜杠命令直接路由到工具,绕过模型
command-tool — 当设置了 command-dispatch: tool 时要调用的工具名称
command-arg-mode raw 用于工具分发,将原始参数字符串转发给工具
homepage — 在 macOS Skills UI 中显示为“Website”的 URL

关于门控字段(requires.bins、requires.env 等),请参阅技能——门控。

使用 {baseDir}

引用技能目录内的文件,无需硬编码路径——智能体会将 {baseDir} 解析为技能自身的目录:

Run the helper script at `{baseDir}/scripts/run.sh`.

添加条件激活

对你的技能进行门控,使其仅在依赖项可用时才加载:

---
name: gemini-search
description: Search using Gemini CLI.
metadata: { "openclaw": { "requires": { "bins": ["gemini"] }, "primaryEnv": "GEMINI_API_KEY" } }
---
门控选项
键 说明
requires.bins 所有二进制文件都必须存在于 PATH 中
requires.anyBins PATH 中必须至少存在一个二进制文件
requires.env 每个环境变量都必须存在于进程或配置中
requires.config 每个 openclaw.json 路径都必须为真值(truthy)
os 平台过滤条件:["darwin"]、["linux"]、["win32"]
always 即使在 requires.* 检查失败时,也包含在兼容的操作系统上

完整参考:技能——门控。

环境与 API 密钥

在 openclaw.json 中为某个技能条目接入 API 密钥:

{
  skills: {
    entries: {
      "gemini-search": {
        enabled: true,
        apiKey: { source: "env", provider: "default", id: "GEMINI_API_KEY" },
      },
    },
  },
}

该密钥仅在该次智能体轮次期间注入宿主进程。它不会进入沙箱——请参阅沙箱环境变量。

通过 Skill Workshop 提案

对于由 agent 起草的技能,或者在技能上线前希望操作员审核时,请使用 Skill Workshop 提案,而不是直接编写 SKILL.md。

# Propose a brand-new skill
openclaw skills workshop propose-create \
  --name "hello-world" \
  --description "A simple skill that prints a greeting." \
  --proposal ./PROPOSAL.md

# Propose an update to an existing skill
openclaw skills workshop propose-update hello-world \
  --proposal ./PROPOSAL.md \
  --description "Updated greeting skill"

当提案包含支持文件时,使用 --proposal-dir:

openclaw skills workshop propose-create \
  --name "hello-world" \
  --description "A simple skill that prints a greeting." \
  --proposal-dir ./hello-world-proposal/

该目录的根目录下必须包含 PROPOSAL.md。支持文件应放在 assets/、examples/、references/、scripts/ 或 templates/ 下。

审核之后:

openclaw skills workshop inspect <proposal-id>
openclaw skills workshop evaluate <proposal-id>
openclaw skills workshop apply <proposal-id>

有关完整的提案生命周期,请参阅 Skill Workshop。

发布到 ClawHub

所有者是 ClawHub 发布者句柄,例如 @alice 或 @your-org。 你的账户拥有一个个人所有者。组织所有者可以拥有具有 owner、admin 或 publisher 角色的成员;这三种角色都可以发布。请选择你的个人所有者,或选择你具有发布者访问权限的组织。

1. 确保你的 SKILL.md 完整

确保已设置 name、description 以及任何 metadata.openclaw 门控字段。如果你有项目页面,请添加 homepage URL。

2. 安装独立的 ClawHub CLI 并登录

npm i -g clawhub
clawhub login

3. 发布

clawhub skill publish ./path/to/hello-world

添加 --version <version> 或 --owner <owner> 以覆盖推断的版本,或在特定所有者下发布。有关完整流程、所有者范围以及其他维护命令(clawhub sync、clawhub skill rename 等),请参阅 ClawHub — 发布 和 ClawHub CLI。

最佳实践

Tip

  • 保持简洁 — 指示模型做什么,而不是如何成为 AI。
  • 安全第一 — 如果你的技能使用 exec,请确保提示词不允许来自不可信输入的任意命令注入。
  • 本地测试 — 在共享之前使用 openclaw agent --message "..."。
  • 使用 ClawHub — 在从零开始构建之前,先在 clawhub.ai 浏览社区技能。

技能参考

加载顺序、门控、允许列表以及 SKILL.md 格式。

Skill Workshop

用于 agent 起草技能的提案队列。

技能配置

完整的 skills.* 配置架构。

ClawHub

在公共注册表中浏览和发布技能。

构建插件

插件可以随其文档化的工具一起发布技能。

斜杠命令

技能注册的命令如何被调用和门控。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw