mirror of
https://github.com/farcasclaudiu/openclaw.git
synced 2026-06-29 11:02:12 +03:00
Docs: normalize zh-CN terminology + tone
What: switch to 你/你的 tone; standardize Skills/Gateway网关/local loopback/私信 wording Why: align zh-CN docs with issue 6995 feedback + idiomatic tech style Tests: pnpm docs:build
This commit is contained in:
+65
-65
@@ -1,9 +1,9 @@
|
||||
---
|
||||
read_when:
|
||||
- 添加或修改技能
|
||||
- 更改技能门控或加载规则
|
||||
summary: 技能:托管型与工作区型、门控规则,以及配置/环境变量连接
|
||||
title: 技能
|
||||
- 添加或修改 Skills
|
||||
- 更改 Skills 门控或加载规则
|
||||
summary: Skills:托管型与工作区型、门控规则,以及配置/环境变量连接
|
||||
title: Skills
|
||||
x-i18n:
|
||||
generated_at: "2026-02-01T21:43:46Z"
|
||||
model: claude-opus-4-5
|
||||
@@ -13,47 +13,47 @@ x-i18n:
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 技能(OpenClaw)
|
||||
# Skills(OpenClaw)
|
||||
|
||||
OpenClaw 使用与 **[AgentSkills](https://agentskills.io) 兼容**的技能文件夹来教智能体如何使用工具。每个技能是一个目录,包含带有 YAML frontmatter 和说明的 `SKILL.md` 文件。OpenClaw 加载**内置技能**以及可选的本地覆盖,并在加载时根据环境、配置和二进制文件是否存在进行过滤。
|
||||
OpenClaw 使用与 **[AgentSkills](https://agentskills.io) 兼容**的 Skills 文件夹来教智能体如何使用工具。每个 Skills 是一个目录,包含带有 YAML frontmatter 和说明的 `SKILL.md` 文件。OpenClaw 加载**内置 Skills**以及可选的本地覆盖,并在加载时根据环境、配置和二进制文件是否存在进行过滤。
|
||||
|
||||
## 位置和优先级
|
||||
|
||||
技能从**三个**位置加载:
|
||||
Skills 从**三个**位置加载:
|
||||
|
||||
1. **内置技能**:随安装包一起分发(npm 包或 OpenClaw.app)
|
||||
2. **托管/本地技能**:`~/.openclaw/skills`
|
||||
3. **工作区技能**:`<workspace>/skills`
|
||||
1. **内置 Skills**:随安装包一起分发(npm 包或 OpenClaw.app)
|
||||
2. **托管/本地 Skills**:`~/.openclaw/skills`
|
||||
3. **工作区 Skills**:`<workspace>/skills`
|
||||
|
||||
如果技能名称冲突,优先级为:
|
||||
如果 Skills 名称冲突,优先级为:
|
||||
|
||||
`<workspace>/skills`(最高)→ `~/.openclaw/skills` → 内置技能(最低)
|
||||
`<workspace>/skills`(最高)→ `~/.openclaw/skills` → 内置 Skills(最低)
|
||||
|
||||
此外,你可以通过 `~/.openclaw/openclaw.json` 中的 `skills.load.extraDirs` 配置额外的技能文件夹(最低优先级)。
|
||||
此外,你可以通过 `~/.openclaw/openclaw.json` 中的 `skills.load.extraDirs` 配置额外的 Skills 文件夹(最低优先级)。
|
||||
|
||||
## 按智能体与共享技能
|
||||
## 按智能体与共享 Skills
|
||||
|
||||
在**多智能体**设置中,每个智能体拥有自己的工作区。这意味着:
|
||||
|
||||
- **按智能体技能**位于该智能体专属的 `<workspace>/skills` 中。
|
||||
- **共享技能**位于 `~/.openclaw/skills`(托管/本地),对同一机器上的**所有智能体**可见。
|
||||
- **共享文件夹**也可以通过 `skills.load.extraDirs`(最低优先级)添加,如果你希望多个智能体使用同一套技能包。
|
||||
- **按智能体 Skills**位于该智能体专属的 `<workspace>/skills` 中。
|
||||
- **共享 Skills**位于 `~/.openclaw/skills`(托管/本地),对同一机器上的**所有智能体**可见。
|
||||
- **共享文件夹**也可以通过 `skills.load.extraDirs`(最低优先级)添加,如果你希望多个智能体使用同一套 Skills 包。
|
||||
|
||||
如果同一技能名称存在于多个位置,适用通常的优先级规则:工作区优先,然后是托管/本地,最后是内置。
|
||||
如果同一 Skills 名称存在于多个位置,适用通常的优先级规则:工作区优先,然后是托管/本地,最后是内置。
|
||||
|
||||
## 插件 + 技能
|
||||
## 插件 + Skills
|
||||
|
||||
插件可以通过在 `openclaw.plugin.json` 中列出 `skills` 目录(相对于插件根目录的路径)来附带自己的技能。插件技能在插件启用时加载,并参与正常的技能优先级规则。你可以通过插件配置项上的 `metadata.openclaw.requires.config` 进行门控。参见[插件](/plugin)了解发现/配置,参见[工具](/tools)了解这些技能教授的工具功能。
|
||||
插件可以通过在 `openclaw.plugin.json` 中列出 `skills` 目录(相对于插件根目录的路径)来附带自己的 Skills。插件 Skills 在插件启用时加载,并参与正常的 Skills 优先级规则。你可以通过插件配置项上的 `metadata.openclaw.requires.config` 进行门控。参见[插件](/plugin)了解发现/配置,参见[工具](/tools)了解这些 Skills 教授的工具功能。
|
||||
|
||||
## ClawHub(安装 + 同步)
|
||||
|
||||
ClawHub 是 OpenClaw 的公共技能注册中心。浏览地址:[clawhub.com](https://clawhub.com)。使用它来发现、安装、更新和备份技能。完整指南:[ClawHub](/tools/clawhub)。
|
||||
ClawHub 是 OpenClaw 的公共 Skills 注册中心。浏览地址:[clawhub.com](https://clawhub.com)。使用它来发现、安装、更新和备份 Skills。完整指南:[ClawHub](/tools/clawhub)。
|
||||
|
||||
常用流程:
|
||||
|
||||
- 将技能安装到你的工作区:
|
||||
- 将 Skills 安装到你的工作区:
|
||||
- `clawhub install <skill-slug>`
|
||||
- 更新所有已安装的技能:
|
||||
- 更新所有已安装的 Skills:
|
||||
- `clawhub update --all`
|
||||
- 同步(扫描 + 发布更新):
|
||||
- `clawhub sync --all`
|
||||
@@ -62,7 +62,7 @@ ClawHub 是 OpenClaw 的公共技能注册中心。浏览地址:[clawhub.com](
|
||||
|
||||
## 安全说明
|
||||
|
||||
- 将第三方技能视为**不可信代码**。启用前请先阅读其内容。
|
||||
- 将第三方 Skills 视为**不可信代码**。启用前请先阅读其内容。
|
||||
- 对于不可信输入和高风险工具,优先使用沙箱运行。参见[沙箱](/gateway/sandboxing)。
|
||||
- `skills.entries.*.env` 和 `skills.entries.*.apiKey` 会将密钥注入该智能体轮次的**宿主**进程中(而非沙箱)。请勿将密钥暴露在提示词和日志中。
|
||||
- 更广泛的威胁模型和检查清单,请参见[安全](/gateway/security)。
|
||||
@@ -83,11 +83,11 @@ description: Generate or edit images via Gemini 3 Pro Image
|
||||
- 我们遵循 AgentSkills 规范的布局/意图。
|
||||
- 内嵌智能体使用的解析器仅支持**单行** frontmatter 键。
|
||||
- `metadata` 应为**单行 JSON 对象**。
|
||||
- 在说明中使用 `{baseDir}` 引用技能文件夹路径。
|
||||
- 在说明中使用 `{baseDir}` 引用 Skills 文件夹路径。
|
||||
- 可选的 frontmatter 键:
|
||||
- `homepage` — 在 macOS 技能 UI 中显示为"网站"的 URL(也支持通过 `metadata.openclaw.homepage` 设置)。
|
||||
- `user-invocable` — `true|false`(默认:`true`)。为 `true` 时,技能作为用户斜杠命令暴露。
|
||||
- `disable-model-invocation` — `true|false`(默认:`false`)。为 `true` 时,技能从模型提示词中排除(仍可通过用户调用使用)。
|
||||
- `homepage` — 在 macOS Skills UI 中显示为"网站"的 URL(也支持通过 `metadata.openclaw.homepage` 设置)。
|
||||
- `user-invocable` — `true|false`(默认:`true`)。为 `true` 时,Skills 作为用户斜杠命令暴露。
|
||||
- `disable-model-invocation` — `true|false`(默认:`false`)。为 `true` 时,Skills 从模型提示词中排除(仍可通过用户调用使用)。
|
||||
- `command-dispatch` — `tool`(可选)。设为 `tool` 时,斜杠命令绕过模型直接分派到工具。
|
||||
- `command-tool` — 当设置了 `command-dispatch: tool` 时要调用的工具名称。
|
||||
- `command-arg-mode` — `raw`(默认)。用于工具分派时,将原始参数字符串转发给工具(不进行核心解析)。
|
||||
@@ -97,7 +97,7 @@ description: Generate or edit images via Gemini 3 Pro Image
|
||||
|
||||
## 门控(加载时过滤)
|
||||
|
||||
OpenClaw 使用 `metadata`(单行 JSON)**在加载时过滤技能**:
|
||||
OpenClaw 使用 `metadata`(单行 JSON)**在加载时过滤 Skills**:
|
||||
|
||||
```markdown
|
||||
---
|
||||
@@ -116,25 +116,25 @@ metadata:
|
||||
|
||||
`metadata.openclaw` 下的字段:
|
||||
|
||||
- `always: true` — 始终包含该技能(跳过其他门控)。
|
||||
- `emoji` — macOS 技能 UI 使用的可选表情符号。
|
||||
- `homepage` — macOS 技能 UI 中显示为"网站"的可选 URL。
|
||||
- `os` — 可选的平台列表(`darwin`、`linux`、`win32`)。如果设置,技能仅在这些操作系统上可用。
|
||||
- `always: true` — 始终包含该 Skills(跳过其他门控)。
|
||||
- `emoji` — macOS Skills UI 使用的可选表情符号。
|
||||
- `homepage` — macOS Skills UI 中显示为"网站"的可选 URL。
|
||||
- `os` — 可选的平台列表(`darwin`、`linux`、`win32`)。如果设置,Skills 仅在这些操作系统上可用。
|
||||
- `requires.bins` — 列表;每个都必须存在于 `PATH` 中。
|
||||
- `requires.anyBins` — 列表;至少一个必须存在于 `PATH` 中。
|
||||
- `requires.env` — 列表;环境变量必须存在**或**在配置中提供。
|
||||
- `requires.config` — `openclaw.json` 路径列表,必须为真值。
|
||||
- `primaryEnv` — 与 `skills.entries.<name>.apiKey` 关联的环境变量名。
|
||||
- `install` — macOS 技能 UI 使用的可选安装器规格数组(brew/node/go/uv/download)。
|
||||
- `install` — macOS Skills UI 使用的可选安装器规格数组(brew/node/go/uv/download)。
|
||||
|
||||
关于沙箱的说明:
|
||||
|
||||
- `requires.bins` 在技能加载时在**宿主**上检查。
|
||||
- `requires.bins` 在 Skills 加载时在**宿主**上检查。
|
||||
- 如果智能体在沙箱中运行,二进制文件也必须存在于**容器内部**。
|
||||
通过 `agents.defaults.sandbox.docker.setupCommand`(或自定义镜像)安装它。
|
||||
`setupCommand` 在容器创建后运行一次。
|
||||
包安装还需要网络出站权限、可写的根文件系统以及沙箱中的 root 用户。
|
||||
示例:`summarize` 技能(`skills/summarize/SKILL.md`)需要 `summarize` CLI 存在于沙箱容器中才能在其中运行。
|
||||
示例:`summarize` Skills(`skills/summarize/SKILL.md`)需要 `summarize` CLI 存在于沙箱容器中才能在其中运行。
|
||||
|
||||
安装器示例:
|
||||
|
||||
@@ -165,19 +165,19 @@ metadata:
|
||||
|
||||
说明:
|
||||
|
||||
- 如果列出了多个安装器,Gateway 会选择**单个**首选选项(有 brew 时选 brew,否则选 node)。
|
||||
- 如果列出了多个安装器,Gateway网关会选择**单个**首选选项(有 brew 时选 brew,否则选 node)。
|
||||
- 如果所有安装器都是 `download`,OpenClaw 会列出每个条目,以便你查看可用的产物。
|
||||
- 安装器规格可包含 `os: ["darwin"|"linux"|"win32"]` 以按平台过滤选项。
|
||||
- Node 安装遵循 `openclaw.json` 中的 `skills.install.nodeManager`(默认:npm;选项:npm/pnpm/yarn/bun)。
|
||||
这仅影响**技能安装**;Gateway 运行时仍应使用 Node(不建议将 Bun 用于 WhatsApp/Telegram)。
|
||||
- Go 安装:如果缺少 `go` 但有 `brew`,Gateway 会先通过 Homebrew 安装 Go,并尽可能将 `GOBIN` 设置为 Homebrew 的 `bin`。
|
||||
这仅影响**Skills 安装**;Gateway网关运行时仍应使用 Node(不建议将 Bun 用于 WhatsApp/Telegram)。
|
||||
- Go 安装:如果缺少 `go` 但有 `brew`,Gateway网关会先通过 Homebrew 安装 Go,并尽可能将 `GOBIN` 设置为 Homebrew 的 `bin`。
|
||||
- Download 安装:`url`(必需)、`archive`(`tar.gz` | `tar.bz2` | `zip`)、`extract`(默认:检测到归档时自动)、`stripComponents`、`targetDir`(默认:`~/.openclaw/tools/<skillKey>`)。
|
||||
|
||||
如果没有 `metadata.openclaw`,技能始终可用(除非在配置中禁用,或被 `skills.allowBundled` 对内置技能进行了限制)。
|
||||
如果没有 `metadata.openclaw`,Skills 始终可用(除非在配置中禁用,或被 `skills.allowBundled` 对内置 Skills 进行了限制)。
|
||||
|
||||
## 配置覆盖(`~/.openclaw/openclaw.json`)
|
||||
|
||||
内置/托管技能可以切换启用状态并提供环境变量值:
|
||||
内置/托管 Skills 可以切换启用状态并提供环境变量值:
|
||||
|
||||
```json5
|
||||
{
|
||||
@@ -201,44 +201,44 @@ metadata:
|
||||
}
|
||||
```
|
||||
|
||||
注意:如果技能名称包含连字符,请给键加引号(JSON5 允许带引号的键)。
|
||||
注意:如果 Skills 名称包含连字符,请给键加引号(JSON5 允许带引号的键)。
|
||||
|
||||
配置键默认匹配**技能名称**。如果技能定义了 `metadata.openclaw.skillKey`,请在 `skills.entries` 下使用该键。
|
||||
配置键默认匹配**Skills 名称**。如果 Skills 定义了 `metadata.openclaw.skillKey`,请在 `skills.entries` 下使用该键。
|
||||
|
||||
规则:
|
||||
|
||||
- `enabled: false` 禁用技能,即使它是内置/已安装的。
|
||||
- `enabled: false` 禁用 Skills,即使它是内置/已安装的。
|
||||
- `env`:仅在进程中该变量**尚未设置**时注入。
|
||||
- `apiKey`:为声明了 `metadata.openclaw.primaryEnv` 的技能提供的便捷方式。
|
||||
- `config`:用于自定义按技能字段的可选容器;自定义键必须放在此处。
|
||||
- `allowBundled`:仅针对**内置**技能的可选允许列表。如果设置,只有列表中的内置技能才可用(托管/工作区技能不受影响)。
|
||||
- `apiKey`:为声明了 `metadata.openclaw.primaryEnv` 的 Skills 提供的便捷方式。
|
||||
- `config`:用于自定义按 Skills 字段的可选容器;自定义键必须放在此处。
|
||||
- `allowBundled`:仅针对**内置**Skills 的可选允许列表。如果设置,只有列表中的内置 Skills 才可用(托管/工作区 Skills 不受影响)。
|
||||
|
||||
## 环境注入(按智能体运行)
|
||||
|
||||
当智能体运行开始时,OpenClaw:
|
||||
|
||||
1. 读取技能元数据。
|
||||
1. 读取 Skills 元数据。
|
||||
2. 将 `skills.entries.<key>.env` 或 `skills.entries.<key>.apiKey` 应用到 `process.env`。
|
||||
3. 使用**符合条件**的技能构建系统提示词。
|
||||
3. 使用**符合条件**的 Skills 构建系统提示词。
|
||||
4. 运行结束后恢复原始环境。
|
||||
|
||||
这是**限定在智能体运行范围内**的,而非全局 shell 环境。
|
||||
|
||||
## 会话快照(性能)
|
||||
|
||||
OpenClaw 在**会话开始时**对符合条件的技能进行快照,并在同一会话的后续轮次中复用该列表。对技能或配置的更改在下一个新会话中生效。
|
||||
OpenClaw 在**会话开始时**对符合条件的 Skills 进行快照,并在同一会话的后续轮次中复用该列表。对 Skills 或配置的更改在下一个新会话中生效。
|
||||
|
||||
技能也可以在会话中途刷新,当技能监视器启用时或当新的符合条件的远程节点出现时(见下文)。可以将其理解为**热重载**:刷新后的列表会在下一个智能体轮次中被使用。
|
||||
Skills 也可以在会话中途刷新,当 Skills 监视器启用时或当新的符合条件的远程节点出现时(见下文)。可以将其理解为**热重载**:刷新后的列表会在下一个智能体轮次中被使用。
|
||||
|
||||
## 远程 macOS 节点(Linux Gateway)
|
||||
## 远程 macOS 节点(Linux Gateway网关)
|
||||
|
||||
如果 Gateway 运行在 Linux 上,但有一个**macOS 节点**已连接且**允许 `system.run`**(执行审批安全级别未设为 `deny`),OpenClaw 可以在该节点上存在所需二进制文件时,将仅限 macOS 的技能视为可用。智能体应通过 `nodes` 工具(通常是 `nodes.run`)执行这些技能。
|
||||
如果 Gateway网关运行在 Linux 上,但有一个**macOS 节点**已连接且**允许 `system.run`**(执行审批安全级别未设为 `deny`),OpenClaw 可以在该节点上存在所需二进制文件时,将仅限 macOS 的 Skills 视为可用。智能体应通过 `nodes` 工具(通常是 `nodes.run`)执行这些 Skills。
|
||||
|
||||
这依赖于节点报告其命令支持情况以及通过 `system.run` 进行的二进制探测。如果 macOS 节点之后离线,技能仍然可见;在节点重新连接之前,调用可能会失败。
|
||||
这依赖于节点报告其命令支持情况以及通过 `system.run` 进行的二进制探测。如果 macOS 节点之后离线,Skills 仍然可见;在节点重新连接之前,调用可能会失败。
|
||||
|
||||
## 技能监视器(自动刷新)
|
||||
## Skills 监视器(自动刷新)
|
||||
|
||||
默认情况下,OpenClaw 监视技能文件夹,并在 `SKILL.md` 文件更改时更新技能快照。在 `skills.load` 下配置:
|
||||
默认情况下,OpenClaw 监视 Skills 文件夹,并在 `SKILL.md` 文件更改时更新 Skills 快照。在 `skills.load` 下配置:
|
||||
|
||||
```json5
|
||||
{
|
||||
@@ -251,12 +251,12 @@ OpenClaw 在**会话开始时**对符合条件的技能进行快照,并在同
|
||||
}
|
||||
```
|
||||
|
||||
## Token 影响(技能列表)
|
||||
## Token 影响(Skills 列表)
|
||||
|
||||
当有符合条件的技能时,OpenClaw 会将一个紧凑的 XML 可用技能列表注入系统提示词(通过 `pi-coding-agent` 中的 `formatSkillsForPrompt`)。开销是确定性的:
|
||||
当有符合条件的 Skills 时,OpenClaw 会将一个紧凑的 XML 可用 Skills 列表注入系统提示词(通过 `pi-coding-agent` 中的 `formatSkillsForPrompt`)。开销是确定性的:
|
||||
|
||||
- **基础开销(仅在有 ≥1 个技能时):**195 个字符。
|
||||
- **每个技能:**97 个字符 + XML 转义后的 `<name>`、`<description>` 和 `<location>` 值的长度。
|
||||
- **基础开销(仅在有 ≥1 个 Skills 时):**195 个字符。
|
||||
- **每个 Skills:**97 个字符 + XML 转义后的 `<name>`、`<description>` 和 `<location>` 值的长度。
|
||||
|
||||
公式(字符数):
|
||||
|
||||
@@ -267,17 +267,17 @@ total = 195 + Σ (97 + len(name_escaped) + len(description_escaped) + len(locati
|
||||
说明:
|
||||
|
||||
- XML 转义会将 `& < > " '` 展开为实体(`&`、`<` 等),增加长度。
|
||||
- Token 数量因模型分词器而异。粗略的 OpenAI 风格估算约为 ~4 字符/token,因此**97 字符 ≈ 24 个 token**(每个技能),加上你实际的字段长度。
|
||||
- Token 数量因模型分词器而异。粗略的 OpenAI 风格估算约为 ~4 字符/token,因此**97 字符 ≈ 24 个 token**(每个 Skills),加上你实际的字段长度。
|
||||
|
||||
## 托管技能生命周期
|
||||
## 托管 Skills 生命周期
|
||||
|
||||
OpenClaw 将一组基线技能作为**内置技能**随安装包(npm 包或 OpenClaw.app)一起分发。`~/.openclaw/skills` 用于本地覆盖(例如,在不更改内置副本的情况下固定/修补某个技能)。工作区技能由用户拥有,在名称冲突时覆盖两者。
|
||||
OpenClaw 将一组基线 Skills 作为**内置 Skills**随安装包(npm 包或 OpenClaw.app)一起分发。`~/.openclaw/skills` 用于本地覆盖(例如,在不更改内置副本的情况下固定/修补某个 Skills)。工作区 Skills 由用户拥有,在名称冲突时覆盖两者。
|
||||
|
||||
## 配置参考
|
||||
|
||||
参见[技能配置](/tools/skills-config)了解完整的配置模式。
|
||||
参见[Skills配置](/tools/skills-config)了解全部配置模式。
|
||||
|
||||
## 想要更多技能?
|
||||
## 想要更多 Skills?
|
||||
|
||||
浏览 https://clawhub.com。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user