mirror of
https://github.com/farcasclaudiu/openclaw.git
synced 2026-06-28 17:01:53 +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:
@@ -15,7 +15,7 @@ x-i18n:
|
||||
# `openclaw agent`(直接运行智能体)
|
||||
|
||||
`openclaw agent` 无需入站聊天消息即可运行单次智能体轮次。
|
||||
默认情况下它**通过 Gateway** 运行;添加 `--local` 可强制使用当前机器上的嵌入式
|
||||
默认情况下它**通过 Gateway网关** 运行;添加 `--local` 可强制使用当前机器上的嵌入式
|
||||
运行时。
|
||||
|
||||
## 行为
|
||||
@@ -33,7 +33,7 @@ x-i18n:
|
||||
- 可选通过 `--deliver` + `--channel` 将回复投递回渠道(目标格式与 `openclaw message --target` 一致)。
|
||||
- 使用 `--reply-channel`/`--reply-to`/`--reply-account` 可在不改变会话的情况下覆盖投递设置。
|
||||
|
||||
如果 Gateway 不可达,CLI 会**回退**到嵌入式本地运行。
|
||||
如果 Gateway网关不可达,CLI 会**回退**到嵌入式本地运行。
|
||||
|
||||
## 示例
|
||||
|
||||
|
||||
@@ -41,13 +41,13 @@ openclaw browser open https://x.com
|
||||
|
||||
## X/Twitter:推荐流程
|
||||
|
||||
- **阅读/搜索/话题串:** 使用 **bird** CLI 技能(无需浏览器,稳定可靠)。
|
||||
- **阅读/搜索/话题串:** 使用 **bird** CLI Skills(无需浏览器,稳定可靠)。
|
||||
- 仓库:https://github.com/steipete/bird
|
||||
- **发布更新:** 使用**宿主**浏览器(手动登录)。
|
||||
|
||||
## 沙箱 + 宿主浏览器访问
|
||||
|
||||
沙箱化的浏览器会话**更容易**触发机器人检测。对于 X/Twitter(及其他严格的网站),建议使用**宿主**浏览器。
|
||||
沙箱隔离的浏览器会话**更容易**触发机器人检测。对于 X/Twitter(及其他严格的网站),建议使用**宿主**浏览器。
|
||||
|
||||
如果智能体处于沙箱中,浏览器工具默认使用沙箱。要允许宿主控制:
|
||||
|
||||
|
||||
+18
-18
@@ -17,7 +17,7 @@ x-i18n:
|
||||
# 浏览器(openclaw 托管)
|
||||
|
||||
OpenClaw 可以运行一个由智能体控制的**专用 Chrome/Brave/Edge/Chromium 配置文件**。
|
||||
它与你的个人浏览器隔离,通过 Gateway 内部的一个小型本地控制服务进行管理(仅限回环地址)。
|
||||
它与你的个人浏览器隔离,通过 Gateway网关内部的一个小型本地控制服务进行管理(仅限 local loopback)。
|
||||
|
||||
初学者视角:
|
||||
|
||||
@@ -44,7 +44,7 @@ openclaw browser --browser-profile openclaw open https://example.com
|
||||
openclaw browser --browser-profile openclaw snapshot
|
||||
```
|
||||
|
||||
如果出现 "Browser disabled",请在配置中启用它(见下文)并重启 Gateway。
|
||||
如果出现 "Browser disabled",请在配置中启用它(见下文)并重启 Gateway网关。
|
||||
|
||||
## 配置文件:`openclaw` 与 `chrome`
|
||||
|
||||
@@ -81,10 +81,10 @@ openclaw browser --browser-profile openclaw snapshot
|
||||
|
||||
说明:
|
||||
|
||||
- 浏览器控制服务绑定到回环地址的端口,该端口由 `gateway.port` 派生(默认值:`18791`,即 gateway + 2)。中继使用下一个端口(`18792`)。
|
||||
- 如果你覆盖了 Gateway 端口(`gateway.port` 或 `OPENCLAW_GATEWAY_PORT`),派生的浏览器端口会相应偏移以保持在同一"族"内。
|
||||
- 浏览器控制服务绑定到 local loopback 的端口,该端口由 `gateway.port` 派生(默认值:`18791`,即 gateway + 2)。中继使用下一个端口(`18792`)。
|
||||
- 如果你覆盖了 Gateway网关端口(`gateway.port` 或 `OPENCLAW_GATEWAY_PORT`),派生的浏览器端口会相应偏移以保持在同一"族"内。
|
||||
- `cdpUrl` 未设置时默认为中继端口。
|
||||
- `remoteCdpTimeoutMs` 适用于远程(非回环)CDP 可达性检查。
|
||||
- `remoteCdpTimeoutMs` 适用于远程(非 local loopback)CDP 可达性检查。
|
||||
- `remoteCdpHandshakeTimeoutMs` 适用于远程 CDP WebSocket 可达性检查。
|
||||
- `attachOnly: true` 表示"永远不启动本地浏览器;仅在已运行时附加"。
|
||||
- `color` + 每个配置文件的 `color` 为浏览器 UI 着色,以便你识别当前活动的配置文件。
|
||||
@@ -127,8 +127,8 @@ openclaw config set browser.executablePath "/usr/bin/google-chrome"
|
||||
|
||||
## 本地控制与远程控制
|
||||
|
||||
- **本地控制(默认):** Gateway 启动回环控制服务,并可启动本地浏览器。
|
||||
- **远程控制(节点主机):** 在拥有浏览器的机器上运行节点主机;Gateway 将浏览器操作代理到该节点。
|
||||
- **本地控制(默认):** Gateway网关启动 local loopback 控制服务,并可启动本地浏览器。
|
||||
- **远程控制(节点主机):** 在拥有浏览器的机器上运行节点主机;Gateway网关将浏览器操作代理到该节点。
|
||||
- **远程 CDP:** 设置 `browser.profiles.<name>.cdpUrl`(或 `browser.cdpUrl`)以附加到远程基于 Chromium 的浏览器。在这种情况下,OpenClaw 不会启动本地浏览器。
|
||||
|
||||
远程 CDP URL 可以包含认证信息:
|
||||
@@ -140,7 +140,7 @@ OpenClaw 在调用 `/json/*` 端点和连接 CDP WebSocket 时会保留认证信
|
||||
|
||||
## 节点浏览器代理(零配置默认)
|
||||
|
||||
如果你在拥有浏览器的机器上运行了**节点主机**,OpenClaw 可以自动将浏览器工具调用路由到该节点,无需额外的浏览器配置。这是远程 Gateway 的默认路径。
|
||||
如果你在拥有浏览器的机器上运行了**节点主机**,OpenClaw 可以自动将浏览器工具调用路由到该节点,无需额外的浏览器配置。这是远程 Gateway网关的默认路径。
|
||||
|
||||
说明:
|
||||
|
||||
@@ -148,7 +148,7 @@ OpenClaw 在调用 `/json/*` 端点和连接 CDP WebSocket 时会保留认证信
|
||||
- 配置文件来自节点自身的 `browser.profiles` 配置(与本地相同)。
|
||||
- 如果不需要可以禁用:
|
||||
- 在节点上:`nodeHost.browserProxy.enabled=false`
|
||||
- 在 Gateway 上:`gateway.nodes.browser.mode="off"`
|
||||
- 在 Gateway网关上:`gateway.nodes.browser.mode="off"`
|
||||
|
||||
## Browserless(托管远程 CDP)
|
||||
|
||||
@@ -182,8 +182,8 @@ OpenClaw 在调用 `/json/*` 端点和连接 CDP WebSocket 时会保留认证信
|
||||
|
||||
核心要点:
|
||||
|
||||
- 浏览器控制仅限回环地址;访问通过 Gateway 的认证或节点配对进行。
|
||||
- 保持 Gateway 和所有节点主机在私有网络上(Tailscale);避免公开暴露。
|
||||
- 浏览器控制仅限 local loopback;访问通过 Gateway网关的认证或节点配对进行。
|
||||
- 保持 Gateway网关和所有节点主机在私有网络上(Tailscale);避免公开暴露。
|
||||
- 将远程 CDP URL/令牌视为敏感信息;建议使用环境变量或密钥管理器。
|
||||
|
||||
远程 CDP 建议:
|
||||
@@ -216,12 +216,12 @@ OpenClaw 也可以通过本地 CDP 中继 + Chrome 扩展驱动**你现有的 Ch
|
||||
|
||||
流程:
|
||||
|
||||
- Gateway 在本地运行(同一台机器)或节点主机在浏览器所在机器上运行。
|
||||
- 本地**中继服务器**在回环 `cdpUrl` 上监听(默认:`http://127.0.0.1:18792`)。
|
||||
- Gateway网关在本地运行(同一台机器)或节点主机在浏览器所在机器上运行。
|
||||
- 本地**中继服务器**在 local loopback `cdpUrl` 上监听(默认:`http://127.0.0.1:18792`)。
|
||||
- 你点击标签页上的 **OpenClaw Browser Relay** 扩展图标以附加(不会自动附加)。
|
||||
- 智能体通过普通的 `browser` 工具控制该标签页,选择正确的配置文件即可。
|
||||
|
||||
如果 Gateway 在其他地方运行,请在浏览器所在机器上运行节点主机,以便 Gateway 可以代理浏览器操作。
|
||||
如果 Gateway网关在其他地方运行,请在浏览器所在机器上运行节点主机,以便 Gateway网关可以代理浏览器操作。
|
||||
|
||||
### 沙箱会话
|
||||
|
||||
@@ -289,7 +289,7 @@ openclaw browser create-profile \
|
||||
|
||||
## 控制 API(可选)
|
||||
|
||||
仅用于本地集成,Gateway 暴露一个小型回环 HTTP API:
|
||||
仅用于本地集成,Gateway网关暴露一个小型 local loopback HTTP API:
|
||||
|
||||
- 状态/启动/停止:`GET /`、`POST /start`、`POST /stop`
|
||||
- 标签页:`GET /tabs`、`POST /tabs/open`、`POST /tabs/focus`、`DELETE /tabs/:targetId`
|
||||
@@ -310,7 +310,7 @@ openclaw browser create-profile \
|
||||
|
||||
部分功能(导航/操作/AI 快照/角色快照、元素截图、PDF)需要 Playwright。如果未安装 Playwright,这些端点会返回明确的 501 错误。ARIA 快照和基本截图在 openclaw 托管的 Chrome 上仍然可用。对于 Chrome 扩展中继驱动,ARIA 快照和截图需要 Playwright。
|
||||
|
||||
如果你看到 `Playwright is not available in this gateway build`,请安装完整的 Playwright 包(而非 `playwright-core`)并重启 Gateway,或者重新安装带浏览器支持的 OpenClaw。
|
||||
如果你看到 `Playwright is not available in this gateway build`,请安装完整的 Playwright 包(而非 `playwright-core`)并重启 Gateway网关,或者重新安装带浏览器支持的 OpenClaw。
|
||||
|
||||
## 工作原理(内部)
|
||||
|
||||
@@ -412,7 +412,7 @@ openclaw browser create-profile \
|
||||
- `--format ai`(安装 Playwright 时的默认值):返回带有数字引用(`aria-ref="<n>"`)的 AI 快照。
|
||||
- `--format aria`:返回无障碍树(无引用;仅供检查)。
|
||||
- `--efficient`(或 `--mode efficient`):紧凑角色快照预设(交互式 + 紧凑 + 深度 + 更低的 maxChars)。
|
||||
- 配置默认值(仅限工具/CLI):设置 `browser.snapshotDefaults.mode: "efficient"` 以在调用者未传递模式时使用高效快照(参见 [Gateway 配置](/gateway/configuration#browser-openclaw-managed-browser))。
|
||||
- 配置默认值(仅限工具/CLI):设置 `browser.snapshotDefaults.mode: "efficient"` 以在调用者未传递模式时使用高效快照(参见 [Gateway网关配置](/gateway/configuration#browser-openclaw-managed-browser))。
|
||||
- 角色快照选项(`--interactive`、`--compact`、`--depth`、`--selector`)强制使用基于角色的快照,引用格式如 `ref=e12`。
|
||||
- `--frame "<iframe 选择器>"` 将角色快照限定在 iframe 范围内(配合角色引用如 `e12` 使用)。
|
||||
- `--interactive` 输出扁平的、易于选取的交互式元素列表(最适合驱动操作)。
|
||||
@@ -514,7 +514,7 @@ JSON 格式的角色快照包含 `refs` 以及一个小型 `stats` 块(行数/
|
||||
- openclaw 浏览器配置文件可能包含已登录的会话;请将其视为敏感数据。
|
||||
- `browser act kind=evaluate` / `openclaw browser evaluate` 和 `wait --fn` 在页面上下文中执行任意 JavaScript。提示注入可能操纵此功能。如果不需要,请通过 `browser.evaluateEnabled=false` 禁用。
|
||||
- 有关登录和反机器人注意事项(X/Twitter 等),请参阅[浏览器登录 + X/Twitter 发帖](/tools/browser-login)。
|
||||
- 保持 Gateway/节点主机为私有(仅限回环地址或 tailnet)。
|
||||
- 保持 Gateway网关/节点主机为私有(仅限 local loopback 或 tailnet)。
|
||||
- 远程 CDP 端点功能强大;请通过隧道保护它们。
|
||||
|
||||
## 故障排除
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
read_when:
|
||||
- 你想让智能体控制现有的 Chrome 标签页(工具栏按钮)
|
||||
- 你需要通过 Tailscale 实现远程 Gateway + 本地浏览器自动化
|
||||
- 你需要通过 Tailscale 实现远程 Gateway网关 + 本地浏览器自动化
|
||||
- 你想了解浏览器接管的安全影响
|
||||
summary: Chrome 扩展:让 OpenClaw 控制你现有的 Chrome 标签页
|
||||
title: Chrome 扩展
|
||||
@@ -24,8 +24,8 @@ OpenClaw Chrome 扩展让智能体控制你**现有的 Chrome 标签页**(你
|
||||
|
||||
包含三个部分:
|
||||
|
||||
- **浏览器控制服务**(Gateway 或节点):智能体/工具调用的 API(通过 Gateway)
|
||||
- **本地中继服务器**(回环 CDP):在控制服务和扩展之间建立桥接(默认 `http://127.0.0.1:18792`)
|
||||
- **浏览器控制服务**(Gateway网关或节点):智能体/工具调用的 API(通过 Gateway网关)
|
||||
- **本地中继服务器**(local loopback CDP):在控制服务和扩展之间建立桥接(默认 `http://127.0.0.1:18792`)
|
||||
- **Chrome MV3 扩展**:使用 `chrome.debugger` 附加到活动标签页,并将 CDP 消息传递给中继
|
||||
|
||||
OpenClaw 随后通过常规的 `browser` 工具界面(选择正确的配置文件)控制附加的标签页。
|
||||
@@ -100,34 +100,34 @@ openclaw browser create-profile \
|
||||
|
||||
如果你看到 `!`:
|
||||
|
||||
- 确保 Gateway 在本地运行(默认设置),或者如果 Gateway 在其他地方运行,请在本机运行一个节点主机。
|
||||
- 确保 Gateway网关在本地运行(默认设置),或者如果 Gateway网关在其他地方运行,请在本机运行一个节点主机。
|
||||
- 打开扩展选项页面;它会显示中继是否可达。
|
||||
|
||||
## 远程 Gateway(使用节点主机)
|
||||
## 远程 Gateway网关(使用节点主机)
|
||||
|
||||
### 本地 Gateway(与 Chrome 在同一台机器上)——通常**无需额外步骤**
|
||||
### 本地 Gateway网关(与 Chrome 在同一台机器上)——通常**无需额外步骤**
|
||||
|
||||
如果 Gateway 与 Chrome 在同一台机器上运行,它会在回环地址上启动浏览器控制服务
|
||||
并自动启动中继服务器。扩展与本地中继通信;CLI/工具调用发送到 Gateway。
|
||||
如果 Gateway网关与 Chrome 在同一台机器上运行,它会在 local loopback 上启动浏览器控制服务
|
||||
并自动启动中继服务器。扩展与本地中继通信;CLI/工具调用发送到 Gateway网关。
|
||||
|
||||
### 远程 Gateway(Gateway 在其他机器上运行)——**运行一个节点主机**
|
||||
### 远程 Gateway网关(Gateway网关在其他机器上运行)——**运行一个节点主机**
|
||||
|
||||
如果你的 Gateway 在另一台机器上运行,请在运行 Chrome 的机器上启动一个节点主机。
|
||||
Gateway 会将浏览器操作代理到该节点;扩展 + 中继保持在浏览器所在机器的本地。
|
||||
如果你的 Gateway网关在另一台机器上运行,请在运行 Chrome 的机器上启动一个节点主机。
|
||||
Gateway网关会将浏览器操作代理到该节点;扩展 + 中继保持在浏览器所在机器的本地。
|
||||
|
||||
如果连接了多个节点,使用 `gateway.nodes.browser.node` 固定一个节点,或设置 `gateway.nodes.browser.mode`。
|
||||
|
||||
## 沙箱化(工具容器)
|
||||
## 沙箱隔离(工具容器)
|
||||
|
||||
如果你的智能体会话是沙箱化的(`agents.defaults.sandbox.mode != "off"`),`browser` 工具可能会受到限制:
|
||||
如果你的智能体会话是沙箱隔离的(`agents.defaults.sandbox.mode != "off"`),`browser` 工具可能会受到限制:
|
||||
|
||||
- 默认情况下,沙箱化会话通常指向**沙箱浏览器**(`target="sandbox"`),而非你的宿主机 Chrome。
|
||||
- 默认情况下,沙箱隔离会话通常指向**沙箱浏览器**(`target="sandbox"`),而非你的宿主机 Chrome。
|
||||
- Chrome 扩展中继接管需要控制**宿主机**的浏览器控制服务。
|
||||
|
||||
选项:
|
||||
|
||||
- 最简单:从**非沙箱化**的会话/智能体使用扩展。
|
||||
- 或允许沙箱化会话控制宿主机浏览器:
|
||||
- 最简单:从**非沙箱隔离**的会话/智能体使用扩展。
|
||||
- 或允许沙箱隔离会话控制宿主机浏览器:
|
||||
|
||||
```json5
|
||||
{
|
||||
@@ -149,7 +149,7 @@ Gateway 会将浏览器操作代理到该节点;扩展 + 中继保持在浏览
|
||||
|
||||
## 远程访问提示
|
||||
|
||||
- 将 Gateway 和节点主机保持在同一个 tailnet 上;避免将中继端口暴露到局域网或公网。
|
||||
- 将 Gateway网关和节点主机保持在同一个 tailnet 上;避免将中继端口暴露到局域网或公网。
|
||||
- 有意识地配对节点;如果你不需要远程控制,请禁用浏览器代理路由(`gateway.nodes.browser.mode="off"`)。
|
||||
|
||||
## "extension path" 的工作原理
|
||||
@@ -174,7 +174,7 @@ CLI 故意**不会**打印 `node_modules` 路径。请始终先运行 `openclaw
|
||||
建议:
|
||||
|
||||
- 优先使用专用的 Chrome 配置文件(与个人浏览分开)进行扩展中继使用。
|
||||
- 将 Gateway 和所有节点主机保持在仅限 tailnet 的环境中;依赖 Gateway 认证 + 节点配对。
|
||||
- 将 Gateway网关和所有节点主机保持在仅限 tailnet 的环境中;依赖 Gateway网关认证 + 节点配对。
|
||||
- 避免在局域网(`0.0.0.0`)上暴露中继端口,也避免使用 Funnel(公网)。
|
||||
- 中继会阻止非扩展来源,并要求 CDP 客户端提供内部认证令牌。
|
||||
|
||||
|
||||
+26
-26
@@ -1,9 +1,9 @@
|
||||
---
|
||||
read_when:
|
||||
- 向新用户介绍 ClawHub
|
||||
- 安装、搜索或发布技能
|
||||
- 安装、搜索或发布 Skills
|
||||
- 说明 ClawHub CLI 标志和同步行为
|
||||
summary: ClawHub 指南:公共技能注册中心 + CLI 工作流
|
||||
summary: ClawHub 指南:公共 Skills 注册中心 + CLI 工作流
|
||||
title: ClawHub
|
||||
x-i18n:
|
||||
generated_at: "2026-02-01T21:42:32Z"
|
||||
@@ -16,27 +16,27 @@ x-i18n:
|
||||
|
||||
# ClawHub
|
||||
|
||||
ClawHub 是 **OpenClaw 的公共技能注册中心**。它是一项免费服务:所有技能都是公开的、开放的,所有人都可以查看、共享和复用。技能就是一个包含 `SKILL.md` 文件(以及辅助文本文件)的文件夹。你可以在网页应用中浏览技能,也可以使用 CLI 来搜索、安装、更新和发布技能。
|
||||
ClawHub 是 **OpenClaw 的公共 Skills 注册中心**。它是一项免费服务:所有 Skills 都是公开的、开放的,所有人都可以查看、共享和复用。Skills 就是一个包含 `SKILL.md` 文件(以及辅助文本文件)的文件夹。你可以在网页应用中浏览 Skills,也可以使用 CLI 来搜索、安装、更新和发布 Skills。
|
||||
|
||||
网站:[clawhub.com](https://clawhub.com)
|
||||
|
||||
## 适用人群(新手友好)
|
||||
|
||||
如果你想为 OpenClaw 智能体添加新功能,ClawHub 是查找和安装技能的最简单方式。你不需要了解后端的工作原理。你可以:
|
||||
如果你想为 OpenClaw 智能体添加新功能,ClawHub 是查找和安装 Skills 的最简单方式。你不需要了解后端的工作原理。你可以:
|
||||
|
||||
- 使用自然语言搜索技能。
|
||||
- 将技能安装到你的工作区。
|
||||
- 之后使用一条命令更新技能。
|
||||
- 通过发布技能来备份你自己的技能。
|
||||
- 使用自然语言搜索 Skills。
|
||||
- 将 Skills 安装到你的工作区。
|
||||
- 之后使用一条命令更新 Skills。
|
||||
- 通过发布 Skills 来备份你自己的 Skills。
|
||||
|
||||
## 快速入门(非技术人员)
|
||||
|
||||
1. 安装 CLI(参见下一节)。
|
||||
2. 搜索你需要的内容:
|
||||
- `clawhub search "calendar"`
|
||||
3. 安装一个技能:
|
||||
3. 安装一个 Skills:
|
||||
- `clawhub install <skill-slug>`
|
||||
4. 启动一个新的 OpenClaw 会话,以加载新技能。
|
||||
4. 启动一个新的 OpenClaw 会话,以加载新 Skills。
|
||||
|
||||
## 安装 CLI
|
||||
|
||||
@@ -52,14 +52,14 @@ pnpm add -g clawhub
|
||||
|
||||
## 在 OpenClaw 中的定位
|
||||
|
||||
默认情况下,CLI 会将技能安装到当前工作目录下的 `./skills`。如果已配置 OpenClaw 工作区,`clawhub` 会回退到该工作区,除非你通过 `--workdir`(或 `CLAWHUB_WORKDIR`)进行覆盖。OpenClaw 从 `<workspace>/skills` 加载工作区技能,并会在**下一个**会话中生效。如果你已经在使用 `~/.openclaw/skills` 或内置技能,工作区技能优先级更高。
|
||||
默认情况下,CLI 会将 Skills 安装到当前工作目录下的 `./skills`。如果已配置 OpenClaw 工作区,`clawhub` 会回退到该工作区,除非你通过 `--workdir`(或 `CLAWHUB_WORKDIR`)进行覆盖。OpenClaw 从 `<workspace>/skills` 加载工作区 Skills,并会在**下一个**会话中生效。如果你已经在使用 `~/.openclaw/skills` 或内置 Skills,工作区 Skills 优先级更高。
|
||||
|
||||
有关技能加载、共享和权限控制的更多详情,请参阅
|
||||
[技能](/tools/skills)。
|
||||
有关 Skills 加载、共享和权限控制的更多详情,请参阅
|
||||
[Skills](/tools/skills)。
|
||||
|
||||
## 服务功能
|
||||
|
||||
- **公开浏览**技能及其 `SKILL.md` 内容。
|
||||
- **公开浏览**Skills 及其 `SKILL.md` 内容。
|
||||
- 基于嵌入向量(向量搜索)的**搜索**,而不仅仅是关键词匹配。
|
||||
- 支持语义化版本号、变更日志和标签(包括 `latest`)的**版本管理**。
|
||||
- 每个版本以 zip 格式**下载**。
|
||||
@@ -72,7 +72,7 @@ pnpm add -g clawhub
|
||||
全局选项(适用于所有命令):
|
||||
|
||||
- `--workdir <dir>`:工作目录(默认:当前目录;回退到 OpenClaw 工作区)。
|
||||
- `--dir <dir>`:技能目录,相对于工作目录(默认:`skills`)。
|
||||
- `--dir <dir>`:Skills 目录,相对于工作目录(默认:`skills`)。
|
||||
- `--site <url>`:网站基础 URL(浏览器登录)。
|
||||
- `--registry <url>`:注册中心 API 基础 URL。
|
||||
- `--no-input`:禁用提示(非交互模式)。
|
||||
@@ -115,7 +115,7 @@ pnpm add -g clawhub
|
||||
发布:
|
||||
|
||||
- `clawhub publish <path>`
|
||||
- `--slug <slug>`:技能标识符。
|
||||
- `--slug <slug>`:Skills 标识符。
|
||||
- `--name <name>`:显示名称。
|
||||
- `--version <version>`:语义化版本号。
|
||||
- `--changelog <text>`:变更日志文本(可以为空)。
|
||||
@@ -126,7 +126,7 @@ pnpm add -g clawhub
|
||||
- `clawhub delete <slug> --yes`
|
||||
- `clawhub undelete <slug> --yes`
|
||||
|
||||
同步(扫描本地技能 + 发布新增/更新的技能):
|
||||
同步(扫描本地 Skills + 发布新增/更新的 Skills):
|
||||
|
||||
- `clawhub sync`
|
||||
- `--root <dir...>`:额外的扫描根目录。
|
||||
@@ -139,33 +139,33 @@ pnpm add -g clawhub
|
||||
|
||||
## 智能体常用工作流
|
||||
|
||||
### 搜索技能
|
||||
### 搜索 Skills
|
||||
|
||||
```bash
|
||||
clawhub search "postgres backups"
|
||||
```
|
||||
|
||||
### 下载新技能
|
||||
### 下载新 Skills
|
||||
|
||||
```bash
|
||||
clawhub install my-skill-pack
|
||||
```
|
||||
|
||||
### 更新已安装的技能
|
||||
### 更新已安装的 Skills
|
||||
|
||||
```bash
|
||||
clawhub update --all
|
||||
```
|
||||
|
||||
### 备份你的技能(发布或同步)
|
||||
### 备份你的 Skills(发布或同步)
|
||||
|
||||
对于单个技能文件夹:
|
||||
对于单个 Skills 文件夹:
|
||||
|
||||
```bash
|
||||
clawhub publish ./my-skill --slug my-skill --name "My Skill" --version 1.0.0 --tags latest
|
||||
```
|
||||
|
||||
一次扫描并备份多个技能:
|
||||
一次扫描并备份多个 Skills:
|
||||
|
||||
```bash
|
||||
clawhub sync --all
|
||||
@@ -181,15 +181,15 @@ clawhub sync --all
|
||||
|
||||
### 本地更改与注册中心版本
|
||||
|
||||
更新时会使用内容哈希将本地技能内容与注册中心版本进行比较。如果本地文件与任何已发布版本不匹配,CLI 会在覆盖前询问确认(或在非交互模式下需要 `--force`)。
|
||||
更新时会使用内容哈希将本地 Skills 内容与注册中心版本进行比较。如果本地文件与任何已发布版本不匹配,CLI 会在覆盖前询问确认(或在非交互模式下需要 `--force`)。
|
||||
|
||||
### 同步扫描和回退根目录
|
||||
|
||||
`clawhub sync` 首先扫描当前工作目录。如果未找到技能,它会回退到已知的旧版位置(例如 `~/openclaw/skills` 和 `~/.openclaw/skills`)。这样设计是为了在不需要额外标志的情况下找到旧版技能安装。
|
||||
`clawhub sync` 首先扫描当前工作目录。如果未找到 Skills,它会回退到已知的旧版位置(例如 `~/openclaw/skills` 和 `~/.openclaw/skills`)。这样设计是为了在不需要额外标志的情况下找到旧版 Skills 安装。
|
||||
|
||||
### 存储和锁文件
|
||||
|
||||
- 已安装的技能记录在工作目录下的 `.clawhub/lock.json` 中。
|
||||
- 已安装的 Skills 记录在工作目录下的 `.clawhub/lock.json` 中。
|
||||
- 认证令牌存储在 ClawHub CLI 配置文件中(可通过 `CLAWHUB_CONFIG_PATH` 覆盖)。
|
||||
|
||||
### 遥测(安装计数)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
---
|
||||
title: 创建技能
|
||||
title: 创建 Skills
|
||||
x-i18n:
|
||||
generated_at: "2026-02-01T21:42:12Z"
|
||||
model: claude-opus-4-5
|
||||
@@ -9,19 +9,19 @@ x-i18n:
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 创建自定义技能 🛠
|
||||
# 创建自定义 Skills 🛠
|
||||
|
||||
OpenClaw 的设计易于扩展。"技能"是为你的助手添加新功能的主要方式。
|
||||
OpenClaw 的设计易于扩展。"Skills"是为你的助手添加新功能的主要方式。
|
||||
|
||||
## 什么是技能?
|
||||
## 什么是 Skills?
|
||||
|
||||
技能是一个包含 `SKILL.md` 文件(为 LLM 提供指令和工具定义)的目录,还可以选择性地包含一些脚本或资源。
|
||||
Skills 是一个包含 `SKILL.md` 文件(为 LLM 提供指令和工具定义)的目录,还可以选择性地包含一些脚本或资源。
|
||||
|
||||
## 分步指南:你的第一个技能
|
||||
## 分步指南:你的第一个 Skills
|
||||
|
||||
### 1. 创建目录
|
||||
|
||||
技能存放在你的工作区中,通常位于 `~/.openclaw/workspace/skills/`。为你的技能创建一个新文件夹:
|
||||
Skills 存放在你的工作区中,通常位于 `~/.openclaw/workspace/skills/`。为你的 Skills 创建一个新文件夹:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.openclaw/workspace/skills/hello-world
|
||||
@@ -48,14 +48,14 @@ When the user asks for a greeting, use the `echo` tool to say "Hello from your c
|
||||
|
||||
### 4. 刷新 OpenClaw
|
||||
|
||||
让你的智能体"刷新技能"或重启 Gateway。OpenClaw 将发现新目录并索引 `SKILL.md`。
|
||||
让你的智能体"刷新 Skills"或重启 Gateway网关。OpenClaw 将发现新目录并索引 `SKILL.md`。
|
||||
|
||||
## 最佳实践
|
||||
|
||||
- **保持简洁**:指示模型应该做*什么*,而不是如何成为一个 AI。
|
||||
- **安全第一**:如果你的技能使用 `bash`,请确保提示不会允许来自不受信任用户输入的任意命令注入。
|
||||
- **安全第一**:如果你的 Skills 使用 `bash`,请确保提示不会允许来自不受信任用户输入的任意命令注入。
|
||||
- **本地测试**:使用 `openclaw agent --message "use my new skill"` 进行测试。
|
||||
|
||||
## 共享技能
|
||||
## 共享 Skills
|
||||
|
||||
你还可以在 [ClawHub](https://clawhub.com) 上浏览和贡献技能。
|
||||
你还可以在 [ClawHub](https://clawhub.com) 上浏览和贡献 Skills。
|
||||
|
||||
@@ -16,9 +16,9 @@ x-i18n:
|
||||
|
||||
## 功能说明
|
||||
|
||||
- `/elevated on` 在 Gateway 主机上运行并保留 exec 审批(与 `/elevated ask` 相同)。
|
||||
- `/elevated full` 在 Gateway 主机上运行**并且**自动批准 exec(跳过 exec 审批)。
|
||||
- `/elevated ask` 在 Gateway 主机上运行但保留 exec 审批(与 `/elevated on` 相同)。
|
||||
- `/elevated on` 在 Gateway网关主机上运行并保留 exec 审批(与 `/elevated ask` 相同)。
|
||||
- `/elevated full` 在 Gateway网关主机上运行**并且**自动批准 exec(跳过 exec 审批)。
|
||||
- `/elevated ask` 在 Gateway网关主机上运行但保留 exec 审批(与 `/elevated on` 相同)。
|
||||
- `on`/`ask` **不会**强制设置 `exec.security=full`;已配置的安全/审批策略仍然适用。
|
||||
- 仅在智能体处于**沙箱环境**时改变行为(否则 exec 已经在主机上运行)。
|
||||
- 指令形式:`/elevated on|off|ask|full`、`/elev on|off|ask|full`。
|
||||
@@ -30,7 +30,7 @@ x-i18n:
|
||||
- **每会话状态**:`/elevated on|off|ask|full` 为当前会话密钥设置提升级别。
|
||||
- **内联指令**:消息中的 `/elevated on|ask|full` 仅对该条消息生效。
|
||||
- **群组**:在群聊中,仅当智能体被提及时才响应提升指令。绕过提及要求的纯命令消息视为已提及。
|
||||
- **主机执行**:提升模式将 `exec` 强制在 Gateway 主机上执行;`full` 还会设置 `security=full`。
|
||||
- **主机执行**:提升模式将 `exec` 强制在 Gateway网关主机上执行;`full` 还会设置 `security=full`。
|
||||
- **审批**:`full` 跳过 exec 审批;`on`/`ask` 在允许列表/审批规则要求时遵守审批流程。
|
||||
- **非沙箱智能体**:对执行位置无影响;仅影响门控、日志和状态。
|
||||
- **工具策略仍然适用**:如果 `exec` 被工具策略拒绝,则无法使用提升模式。
|
||||
|
||||
@@ -16,7 +16,7 @@ x-i18n:
|
||||
|
||||
# 执行审批
|
||||
|
||||
执行审批是**伴侣应用 / 节点主机的安全护栏**,用于允许沙箱化的智能体在真实主机(`gateway` 或 `node`)上运行命令。可以将其理解为一种安全联锁机制:只有当策略 + 允许列表 +(可选的)用户审批全部通过时,命令才会被允许执行。
|
||||
执行审批是**伴侣应用 / 节点主机的安全护栏**,用于允许沙箱隔离的智能体在真实主机(`gateway` 或 `node`)上运行命令。可以将其理解为一种安全联锁机制:只有当策略 + 允许列表 +(可选的)用户审批全部通过时,命令才会被允许执行。
|
||||
执行审批是在工具策略和提权网关**之上**的额外检查(除非提权设置为 `full`,此时会跳过审批)。
|
||||
生效策略取 `tools.exec.*` 和审批默认值中**更严格**的一个;如果审批字段被省略,则使用 `tools.exec` 的值。
|
||||
|
||||
@@ -26,7 +26,7 @@ x-i18n:
|
||||
|
||||
执行审批在执行主机上本地强制执行:
|
||||
|
||||
- **Gateway 主机** → Gateway 机器上的 `openclaw` 进程
|
||||
- **Gateway网关主机** → Gateway网关机器上的 `openclaw` 进程
|
||||
- **节点主机** → 节点运行器(macOS 伴侣应用或无头节点主机)
|
||||
|
||||
macOS 拆分:
|
||||
@@ -116,16 +116,16 @@ macOS 拆分:
|
||||
- **最近使用的命令**
|
||||
- **最近解析的路径**
|
||||
|
||||
## 自动允许技能 CLI
|
||||
## 自动允许 Skills CLI
|
||||
|
||||
启用**自动允许技能 CLI** 后,已知技能引用的可执行文件在节点上(macOS 节点或无头节点主机)会被视为已列入允许列表。此功能通过 Gateway RPC 的 `skills.bins` 获取技能二进制列表。如果需要严格的手动允许列表,请禁用此选项。
|
||||
启用**自动允许 Skills CLI** 后,已知 Skills 引用的可执行文件在节点上(macOS 节点或无头节点主机)会被视为已列入允许列表。此功能通过 Gateway网关 RPC 的 `skills.bins` 获取 Skills 二进制列表。如果需要严格的手动允许列表,请禁用此选项。
|
||||
|
||||
## 安全二进制(仅限标准输入)
|
||||
|
||||
`tools.exec.safeBins` 定义了一小组**仅限标准输入**的二进制文件(例如 `jq`),它们可以在允许列表模式下运行,**无需**显式添加到允许列表中。安全二进制会拒绝位置文件参数和类路径标记,因此只能操作传入的数据流。
|
||||
Shell 链式调用和重定向在允许列表模式下不会被自动允许。
|
||||
|
||||
当每个顶层段都满足允许列表(包括安全二进制或技能自动允许)时,Shell 链式调用(`&&`、`||`、`;`)是被允许的。重定向在允许列表模式下仍不受支持。
|
||||
当每个顶层段都满足允许列表(包括安全二进制或 Skills 自动允许)时,Shell 链式调用(`&&`、`||`、`;`)是被允许的。重定向在允许列表模式下仍不受支持。
|
||||
|
||||
默认安全二进制:`jq`、`grep`、`cut`、`sort`、`uniq`、`head`、`tail`、`tr`、`wc`。
|
||||
|
||||
@@ -133,15 +133,15 @@ Shell 链式调用和重定向在允许列表模式下不会被自动允许。
|
||||
|
||||
使用**控制 UI → 节点 → 执行审批**卡片来编辑默认值、按智能体的覆盖配置和允许列表。选择一个范围(默认值或某个智能体),调整策略,添加/删除允许列表模式,然后点击**保存**。UI 会显示每个模式的**最近使用**元数据,方便你保持列表整洁。
|
||||
|
||||
目标选择器可选择 **Gateway**(本地审批)或**节点**。节点必须广播 `system.execApprovals.get/set`(macOS 应用或无头节点主机)。
|
||||
目标选择器可选择 **Gateway网关**(本地审批)或**节点**。节点必须广播 `system.execApprovals.get/set`(macOS 应用或无头节点主机)。
|
||||
如果某个节点尚未广播执行审批功能,请直接编辑其本地的 `~/.openclaw/exec-approvals.json` 文件。
|
||||
|
||||
CLI:`openclaw approvals` 支持 Gateway 或节点编辑(参见 [审批 CLI](/cli/approvals))。
|
||||
CLI:`openclaw approvals` 支持 Gateway网关或节点编辑(参见 [审批 CLI](/cli/approvals))。
|
||||
|
||||
## 审批流程
|
||||
|
||||
当需要提示时,Gateway 向操作员客户端广播 `exec.approval.requested`。
|
||||
控制 UI 和 macOS 应用通过 `exec.approval.resolve` 进行处理,然后 Gateway 将已批准的请求转发至节点主机。
|
||||
当需要提示时,Gateway网关向操作员客户端广播 `exec.approval.requested`。
|
||||
控制 UI 和 macOS 应用通过 `exec.approval.resolve` 进行处理,然后 Gateway网关将已批准的请求转发至节点主机。
|
||||
|
||||
当需要审批时,执行工具会立即返回一个审批 ID。使用该 ID 来关联后续的系统事件(`Exec finished` / `Exec denied`)。如果在超时前未收到决定,该请求将被视为审批超时并以拒绝原因呈现。
|
||||
|
||||
@@ -193,7 +193,7 @@ CLI:`openclaw approvals` 支持 Gateway 或节点编辑(参见 [审批 CLI](
|
||||
### macOS IPC 流程
|
||||
|
||||
```
|
||||
Gateway -> Node Service (WS)
|
||||
Gateway网关 -> Node Service (WS)
|
||||
| IPC (UDS + token + HMAC + TTL)
|
||||
v
|
||||
Mac App (UI + approvals + system.run)
|
||||
@@ -214,7 +214,7 @@ Gateway -> Node Service (WS)
|
||||
- `Exec denied`
|
||||
|
||||
这些消息在节点报告事件后发布到智能体的会话中。
|
||||
Gateway 主机执行审批在命令完成时(以及可选地在运行时间超过阈值时)发出相同的生命周期事件。
|
||||
Gateway网关主机执行审批在命令完成时(以及可选地在运行时间超过阈值时)发出相同的生命周期事件。
|
||||
经过审批网关的执行会复用审批 ID 作为这些消息中的 `runId`,便于关联。
|
||||
|
||||
## 影响
|
||||
@@ -230,4 +230,4 @@ Gateway 主机执行审批在命令完成时(以及可选地在运行时间超
|
||||
|
||||
- [执行工具](/tools/exec)
|
||||
- [提权模式](/tools/elevated)
|
||||
- [技能](/tools/skills)
|
||||
- [Skills](/tools/skills)
|
||||
|
||||
@@ -42,7 +42,7 @@ x-i18n:
|
||||
- `node` 需要已配对的节点(伴侣应用或无头节点主机)。
|
||||
- 如果有多个节点可用,请设置 `exec.node` 或 `tools.exec.node` 来选择一个。
|
||||
- 在非 Windows 主机上,exec 在设置了 `SHELL` 时使用该 shell;如果 `SHELL` 是 `fish`,它会优先从 `PATH` 中选择 `bash`(或 `sh`)以避免 fish 不兼容的脚本,如果两者都不存在则回退到 `SHELL`。
|
||||
- 重要:沙箱**默认关闭**。如果沙箱关闭,`host=sandbox` 将直接在 Gateway 主机上运行(无容器)且**不需要审批**。要启用审批,请使用 `host=gateway` 并配置 exec 审批(或启用沙箱)。
|
||||
- 重要:沙箱**默认关闭**。如果沙箱关闭,`host=sandbox` 将直接在 Gateway网关主机上运行(无容器)且**不需要审批**。要启用审批,请使用 `host=gateway` 并配置 exec 审批(或启用沙箱)。
|
||||
|
||||
## 配置
|
||||
|
||||
@@ -69,11 +69,11 @@ x-i18n:
|
||||
|
||||
### PATH 处理
|
||||
|
||||
- `host=gateway`:将您的登录 shell `PATH` 合并到 exec 环境中(除非 exec 调用已设置 `env.PATH`)。守护进程本身仍使用最小 `PATH` 运行:
|
||||
- `host=gateway`:将你的登录 shell `PATH` 合并到 exec 环境中(除非 exec 调用已设置 `env.PATH`)。守护进程本身仍使用最小 `PATH` 运行:
|
||||
- macOS:`/opt/homebrew/bin`、`/usr/local/bin`、`/usr/bin`、`/bin`
|
||||
- Linux:`/usr/local/bin`、`/usr/bin`、`/bin`
|
||||
- `host=sandbox`:在容器内运行 `sh -lc`(登录 shell),因此 `/etc/profile` 可能会重置 `PATH`。OpenClaw 在 profile 加载后通过内部环境变量添加 `env.PATH`(无 shell 插值);`tools.exec.pathPrepend` 在此同样适用。
|
||||
- `host=node`:仅发送您传递的 env 覆盖到节点。`tools.exec.pathPrepend` 仅在 exec 调用已设置 `env.PATH` 时适用。无头节点主机仅在 `PATH` 为节点主机 PATH 前缀时接受 `PATH` 覆盖(不支持替换)。macOS 节点完全忽略 `PATH` 覆盖。
|
||||
- `host=node`:仅发送你传递的 env 覆盖到节点。`tools.exec.pathPrepend` 仅在 exec 调用已设置 `env.PATH` 时适用。无头节点主机仅在 `PATH` 为节点主机 PATH 前缀时接受 `PATH` 覆盖(不支持替换)。macOS 节点完全忽略 `PATH` 覆盖。
|
||||
|
||||
按智能体绑定节点(在配置中使用智能体列表索引):
|
||||
|
||||
@@ -98,14 +98,14 @@ openclaw config set agents.list[0].tools.exec.node "node-id-or-name"
|
||||
## 授权模型
|
||||
|
||||
`/exec` 仅对**已授权的发送者**生效(渠道允许列表/配对加 `commands.useAccessGroups`)。
|
||||
它仅更新**会话状态**,不会写入配置。要彻底禁用 exec,请通过工具策略拒绝它(`tools.deny: ["exec"]` 或按智能体设置)。除非您显式设置 `security=full` 和 `ask=off`,否则主机审批仍然适用。
|
||||
它仅更新**会话状态**,不会写入配置。要彻底禁用 exec,请通过工具策略拒绝它(`tools.deny: ["exec"]` 或按智能体设置)。除非你显式设置 `security=full` 和 `ask=off`,否则主机审批仍然适用。
|
||||
|
||||
## Exec 审批(伴侣应用 / 节点主机)
|
||||
|
||||
沙箱化的智能体可以要求在 `exec` 于 Gateway 或节点主机上运行前进行逐次审批。
|
||||
沙箱隔离的智能体可以要求在 `exec` 于 Gateway网关或节点主机上运行前进行逐次审批。
|
||||
请参阅 [Exec 审批](/tools/exec-approvals) 了解策略、允许列表和 UI 流程。
|
||||
|
||||
当需要审批时,exec 工具会立即返回 `status: "approval-pending"` 和一个审批 ID。一旦被批准(或拒绝/超时),Gateway 会发出系统事件(`Exec finished` / `Exec denied`)。如果命令在 `tools.exec.approvalRunningNoticeMs` 之后仍在运行,会发出一条 `Exec running` 通知。
|
||||
当需要审批时,exec 工具会立即返回 `status: "approval-pending"` 和一个审批 ID。一旦被批准(或拒绝/超时),Gateway网关会发出系统事件(`Exec finished` / `Exec denied`)。如果命令在 `tools.exec.approvalRunningNoticeMs` 之后仍在运行,会发出一条 `Exec running` 通知。
|
||||
|
||||
## 允许列表与安全二进制文件
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@ OpenClaw 可以使用 **Firecrawl** 作为 `web_fetch` 的备用提取器。它
|
||||
## 获取 API 密钥
|
||||
|
||||
1. 创建 Firecrawl 账户并生成 API 密钥。
|
||||
2. 将其存储在配置中,或在 Gateway 环境中设置 `FIRECRAWL_API_KEY`。
|
||||
2. 将其存储在配置中,或在 Gateway网关环境中设置 `FIRECRAWL_API_KEY`。
|
||||
|
||||
## 配置 Firecrawl
|
||||
|
||||
@@ -62,4 +62,4 @@ OpenClaw 对 Firecrawl 请求始终使用 `proxy: "auto"` 加上 `storeInCache:
|
||||
2. Firecrawl(如已配置)
|
||||
3. 基本 HTML 清理(最终备用方案)
|
||||
|
||||
参阅[网页工具](/tools/web)了解完整的网页工具设置。
|
||||
参阅[网页工具](/tools/web)了解全部网页工具设置。
|
||||
|
||||
+12
-12
@@ -1,8 +1,8 @@
|
||||
---
|
||||
read_when:
|
||||
- 添加或修改智能体工具
|
||||
- 停用或更改 `openclaw-*` 技能
|
||||
summary: OpenClaw 的智能体工具集(browser、canvas、nodes、message、cron),替代旧版 `openclaw-*` 技能
|
||||
- 停用或更改 `openclaw-*` Skills
|
||||
summary: OpenClaw 的智能体工具集(browser、canvas、nodes、message、cron),替代旧版 `openclaw-*` Skills
|
||||
title: 工具
|
||||
x-i18n:
|
||||
generated_at: "2026-02-01T21:44:06Z"
|
||||
@@ -16,7 +16,7 @@ x-i18n:
|
||||
# 工具(OpenClaw)
|
||||
|
||||
OpenClaw 提供**一等智能体工具**,涵盖 browser、canvas、nodes 和 cron。
|
||||
这些工具替代了旧的 `openclaw-*` 技能:工具是类型化的,无需 shell 调用,
|
||||
这些工具替代了旧的 `openclaw-*` Skills:工具是类型化的,无需 shell 调用,
|
||||
智能体应直接依赖这些工具。
|
||||
|
||||
## 禁用工具
|
||||
@@ -173,11 +173,11 @@ OpenClaw 提供**一等智能体工具**,涵盖 browser、canvas、nodes 和 c
|
||||
## 插件 + 工具
|
||||
|
||||
插件可以在核心工具集之外注册**额外的工具**(和 CLI 命令)。
|
||||
参见[插件](/plugin)了解安装和配置,以及[技能](/tools/skills)了解工具使用指导如何注入到提示词中。某些插件会随工具一起提供自己的技能(例如语音通话插件)。
|
||||
参见[插件](/plugin)了解安装和配置,以及[Skills](/tools/skills)了解工具使用指导如何注入到提示词中。某些插件会随工具一起提供自己的 Skills(例如语音通话插件)。
|
||||
|
||||
可选插件工具:
|
||||
|
||||
- [Lobster](/tools/lobster):类型化工作流运行时,支持可恢复的审批(需要 Gateway 主机上安装 Lobster CLI)。
|
||||
- [Lobster](/tools/lobster):类型化工作流运行时,支持可恢复的审批(需要 Gateway网关主机上安装 Lobster CLI)。
|
||||
- [LLM Task](/tools/llm-task):用于结构化工作流输出的纯 JSON LLM 步骤(可选 schema 验证)。
|
||||
|
||||
## 工具清单
|
||||
@@ -212,7 +212,7 @@ OpenClaw 提供**一等智能体工具**,涵盖 browser、canvas、nodes 和 c
|
||||
- `elevated` 受 `tools.elevated` 以及任何 `agents.list[].tools.elevated` 覆盖的门控(两者都必须允许),且是 `host=gateway` + `security=full` 的别名。
|
||||
- `elevated` 仅在智能体处于沙箱时改变行为(否则为空操作)。
|
||||
- `host=node` 可以指向 macOS 伴侣应用或无头节点主机(`openclaw node run`)。
|
||||
- Gateway/节点审批和允许列表:[Exec 审批](/tools/exec-approvals)。
|
||||
- Gateway网关/节点审批和允许列表:[Exec 审批](/tools/exec-approvals)。
|
||||
|
||||
### `process`
|
||||
|
||||
@@ -313,7 +313,7 @@ OpenClaw 提供**一等智能体工具**,涵盖 browser、canvas、nodes 和 c
|
||||
|
||||
说明:
|
||||
|
||||
- 底层使用 Gateway 的 `node.invoke`。
|
||||
- 底层使用 Gateway网关的 `node.invoke`。
|
||||
- 如果未提供 `node`,工具会选择默认值(单个已连接节点或本地 mac 节点)。
|
||||
- A2UI 仅支持 v0.8(无 `createSurface`);CLI 会拒绝 v0.9 JSONL 并报告行错误。
|
||||
- 快速测试:`openclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI"`。
|
||||
@@ -393,13 +393,13 @@ OpenClaw 提供**一等智能体工具**,涵盖 browser、canvas、nodes 和 c
|
||||
|
||||
说明:
|
||||
|
||||
- `send` 通过 Gateway 路由 WhatsApp;其他渠道直接发送。
|
||||
- `poll` 对 WhatsApp 和 MS Teams 使用 Gateway;Discord 投票直接发送。
|
||||
- `send` 通过 Gateway网关路由 WhatsApp;其他渠道直接发送。
|
||||
- `poll` 对 WhatsApp 和 MS Teams 使用 Gateway网关;Discord 投票直接发送。
|
||||
- 当消息工具调用绑定到活跃的聊天会话时,发送将被限制在该会话的目标范围内,以避免跨上下文泄露。
|
||||
|
||||
### `cron`
|
||||
|
||||
管理 Gateway 定时任务和唤醒。
|
||||
管理 Gateway网关定时任务和唤醒。
|
||||
|
||||
核心操作:
|
||||
|
||||
@@ -414,7 +414,7 @@ OpenClaw 提供**一等智能体工具**,涵盖 browser、canvas、nodes 和 c
|
||||
|
||||
### `gateway`
|
||||
|
||||
重启或向正在运行的 Gateway 进程应用更新(原地更新)。
|
||||
重启或向正在运行的 Gateway网关进程应用更新(原地更新)。
|
||||
|
||||
核心操作:
|
||||
|
||||
@@ -463,7 +463,7 @@ OpenClaw 提供**一等智能体工具**,涵盖 browser、canvas、nodes 和 c
|
||||
|
||||
## 参数(通用)
|
||||
|
||||
Gateway 支持的工具(`canvas`、`nodes`、`cron`):
|
||||
Gateway网关支持的工具(`canvas`、`nodes`、`cron`):
|
||||
|
||||
- `gatewayUrl`(默认 `ws://127.0.0.1:18789`)
|
||||
- `gatewayToken`(如果启用了认证)
|
||||
|
||||
@@ -159,7 +159,7 @@ steps:
|
||||
|
||||
## 安装 Lobster
|
||||
|
||||
在运行 OpenClaw Gateway 的**同一主机**上安装 Lobster CLI(参见 [Lobster 仓库](https://github.com/openclaw/lobster)),并确保 `lobster` 在 `PATH` 中。
|
||||
在运行 OpenClaw Gateway网关的**同一主机**上安装 Lobster CLI(参见 [Lobster 仓库](https://github.com/openclaw/lobster)),并确保 `lobster` 在 `PATH` 中。
|
||||
如果你想使用自定义二进制文件位置,请在工具调用中传入**绝对路径** `lobsterPath`。
|
||||
|
||||
## 启用工具
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
---
|
||||
read_when:
|
||||
- 添加或修改技能配置时
|
||||
- 添加或修改 Skills配置时
|
||||
- 调整内置允许列表或安装行为时
|
||||
summary: 技能配置结构与示例
|
||||
title: 技能配置
|
||||
summary: Skills配置结构与示例
|
||||
title: Skills配置
|
||||
x-i18n:
|
||||
generated_at: "2026-02-01T21:42:49Z"
|
||||
model: claude-opus-4-5
|
||||
@@ -13,9 +13,9 @@ x-i18n:
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 技能配置
|
||||
# Skills配置
|
||||
|
||||
所有技能相关配置位于 `~/.openclaw/openclaw.json` 的 `skills` 下。
|
||||
所有 Skills 相关配置位于 `~/.openclaw/openclaw.json` 的 `skills` 下。
|
||||
|
||||
```json5
|
||||
{
|
||||
@@ -28,7 +28,7 @@ x-i18n:
|
||||
},
|
||||
install: {
|
||||
preferBrew: true,
|
||||
nodeManager: "npm", // npm | pnpm | yarn | bun(Gateway 运行时仍为 Node;不推荐 bun)
|
||||
nodeManager: "npm", // npm | pnpm | yarn | bun(Gateway网关运行时仍为 Node;不推荐 bun)
|
||||
},
|
||||
entries: {
|
||||
"nano-banana-pro": {
|
||||
@@ -47,32 +47,32 @@ x-i18n:
|
||||
|
||||
## 字段
|
||||
|
||||
- `allowBundled`:可选的**内置**技能允许列表。设置后,只有列表中的内置技能可用(托管/工作区技能不受影响)。
|
||||
- `load.extraDirs`:要扫描的额外技能目录(优先级最低)。
|
||||
- `load.watch`:监视技能文件夹并刷新技能快照(默认:true)。
|
||||
- `load.watchDebounceMs`:技能监视器事件的防抖时间(毫秒,默认:250)。
|
||||
- `allowBundled`:可选的**内置**Skills 允许列表。设置后,只有列表中的内置 Skills 可用(托管/工作区 Skills 不受影响)。
|
||||
- `load.extraDirs`:要扫描的额外 Skills 目录(优先级最低)。
|
||||
- `load.watch`:监视 Skills 文件夹并刷新 Skills 快照(默认:true)。
|
||||
- `load.watchDebounceMs`:Skills 监视器事件的防抖时间(毫秒,默认:250)。
|
||||
- `install.preferBrew`:可用时优先使用 brew 安装器(默认:true)。
|
||||
- `install.nodeManager`:Node 安装器偏好(`npm` | `pnpm` | `yarn` | `bun`,默认:npm)。此选项仅影响**技能安装**;Gateway 运行时应仍使用 Node(不推荐在 WhatsApp/Telegram 中使用 Bun)。
|
||||
- `entries.<skillKey>`:按技能的覆盖配置。
|
||||
- `install.nodeManager`:Node 安装器偏好(`npm` | `pnpm` | `yarn` | `bun`,默认:npm)。此选项仅影响**Skills 安装**;Gateway网关运行时应仍使用 Node(不推荐在 WhatsApp/Telegram 中使用 Bun)。
|
||||
- `entries.<skillKey>`:按 Skills 的覆盖配置。
|
||||
|
||||
按技能字段:
|
||||
按 Skills 字段:
|
||||
|
||||
- `enabled`:设为 `false` 可禁用技能,即使它是内置/已安装的。
|
||||
- `enabled`:设为 `false` 可禁用 Skills,即使它是内置/已安装的。
|
||||
- `env`:为智能体运行注入的环境变量(仅在尚未设置时生效)。
|
||||
- `apiKey`:可选的便捷字段,用于声明了主要环境变量的技能。
|
||||
- `apiKey`:可选的便捷字段,用于声明了主要环境变量的 Skills。
|
||||
|
||||
## 说明
|
||||
|
||||
- `entries` 下的键默认映射到技能名称。如果技能定义了 `metadata.openclaw.skillKey`,请使用该键。
|
||||
- 启用监视器时,技能的更改会在下一个智能体回合时生效。
|
||||
- `entries` 下的键默认映射到 Skills 名称。如果 Skills 定义了 `metadata.openclaw.skillKey`,请使用该键。
|
||||
- 启用监视器时,Skills 的更改会在下一个智能体回合时生效。
|
||||
|
||||
### 沙箱化技能与环境变量
|
||||
### 沙箱隔离 Skills 与环境变量
|
||||
|
||||
当会话处于**沙箱**模式时,技能进程在 Docker 内运行。沙箱**不会**继承主机的 `process.env`。
|
||||
当会话处于**沙箱**模式时,Skills 进程在 Docker 内运行。沙箱**不会**继承主机的 `process.env`。
|
||||
|
||||
请使用以下方式之一:
|
||||
|
||||
- `agents.defaults.sandbox.docker.env`(或按智能体 `agents.list[].sandbox.docker.env`)
|
||||
- 将环境变量烘焙到您的自定义沙箱镜像中
|
||||
- 将环境变量烘焙到你的自定义沙箱镜像中
|
||||
|
||||
全局 `env` 和 `skills.entries.<skill>.env/apiKey` 仅适用于**主机**运行。
|
||||
|
||||
+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。
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ x-i18n:
|
||||
|
||||
# 斜杠命令
|
||||
|
||||
命令由 Gateway 处理。大多数命令必须作为以 `/` 开头的**独立**消息发送。
|
||||
命令由 Gateway网关处理。大多数命令必须作为以 `/` 开头的**独立**消息发送。
|
||||
仅限主机使用的 bash 聊天命令使用 `! <cmd>`(`/bash <cmd>` 为别名)。
|
||||
|
||||
有两个相关系统:
|
||||
@@ -55,8 +55,8 @@ x-i18n:
|
||||
- Auto:Discord/Telegram 启用;Slack 关闭(直到你添加斜杠命令);不支持原生命令的提供商忽略此项。
|
||||
- 设置 `channels.discord.commands.native`、`channels.telegram.commands.native` 或 `channels.slack.commands.native` 可按提供商覆盖(布尔值或 `"auto"`)。
|
||||
- `false` 会在启动时清除 Discord/Telegram 上之前注册的命令。Slack 命令在 Slack 应用中管理,不会自动移除。
|
||||
- `commands.nativeSkills`(默认 `"auto"`)在支持的平台上将**技能**命令注册为原生命令。
|
||||
- Auto:Discord/Telegram 启用;Slack 关闭(Slack 需要为每个技能创建一个斜杠命令)。
|
||||
- `commands.nativeSkills`(默认 `"auto"`)在支持的平台上将**Skills**命令注册为原生命令。
|
||||
- Auto:Discord/Telegram 启用;Slack 关闭(Slack 需要为每个 Skills 创建一个斜杠命令)。
|
||||
- 设置 `channels.discord.commands.nativeSkills`、`channels.telegram.commands.nativeSkills` 或 `channels.slack.commands.nativeSkills` 可按提供商覆盖(布尔值或 `"auto"`)。
|
||||
- `commands.bash`(默认 `false`)启用 `! <cmd>` 来运行主机 shell 命令(`/bash <cmd>` 为别名;需要 `tools.elevated` 允许列表)。
|
||||
- `commands.bashForegroundMs`(默认 `2000`)控制 bash 在切换到后台模式之前等待的时长(`0` 表示立即后台执行)。
|
||||
@@ -70,11 +70,11 @@ x-i18n:
|
||||
|
||||
- `/help`
|
||||
- `/commands`
|
||||
- `/skill <name> [input]`(按名称运行技能)
|
||||
- `/skill <name> [input]`(按名称运行 Skills)
|
||||
- `/status`(显示当前状态;在可用时包含当前模型提供商的用量/配额信息)
|
||||
- `/allowlist`(列出/添加/移除允许列表条目)
|
||||
- `/approve <id> allow-once|allow-always|deny`(处理执行审批提示)
|
||||
- `/context [list|detail|json]`(解释"上下文";`detail` 显示每个文件 + 每个工具 + 每个技能 + 系统提示的大小)
|
||||
- `/context [list|detail|json]`(解释"上下文";`detail` 显示每个文件 + 每个工具 + 每个 Skills + 系统提示的大小)
|
||||
- `/whoami`(显示你的发送者 ID;别名:`/id`)
|
||||
- `/subagents list|stop|log|info|send`(检查、停止、查看日志或向当前会话的子智能体运行发送消息)
|
||||
- `/config show|get|set|unset`(将配置持久化到磁盘,仅所有者可用;需要 `commands.config: true`)
|
||||
@@ -122,10 +122,10 @@ x-i18n:
|
||||
- 示例:`hey /status` 会触发状态回复,剩余文本继续通过正常流程处理。
|
||||
- 目前支持:`/help`、`/commands`、`/status`、`/whoami`(`/id`)。
|
||||
- 未授权的纯命令消息会被静默忽略,内联的 `/...` 标记会被当作纯文本处理。
|
||||
- **技能命令:**`user-invocable` 技能会作为斜杠命令暴露。名称会被规范化为 `a-z0-9_`(最多 32 个字符);冲突时会添加数字后缀(例如 `_2`)。
|
||||
- `/skill <name> [input]` 按名称运行技能(在原生命令限制阻止创建逐技能命令时很有用)。
|
||||
- 默认情况下,技能命令会作为普通请求转发给模型。
|
||||
- 技能可以选择性地声明 `command-dispatch: tool` 将命令直接路由到工具(确定性执行,无需模型)。
|
||||
- **Skills 命令:**`user-invocable` Skills 会作为斜杠命令暴露。名称会被规范化为 `a-z0-9_`(最多 32 个字符);冲突时会添加数字后缀(例如 `_2`)。
|
||||
- `/skill <name> [input]` 按名称运行 Skills(在原生命令限制阻止创建逐 Skills 命令时很有用)。
|
||||
- 默认情况下,Skills 命令会作为普通请求转发给模型。
|
||||
- Skills 可以选择性地声明 `command-dispatch: tool` 将命令直接路由到工具(确定性执行,无需模型)。
|
||||
- 示例:`/prose`(OpenProse 插件)——参见 [OpenProse](/prose)。
|
||||
- **原生命令参数:**Discord 使用自动补全来处理动态选项(省略必需参数时使用按钮菜单)。Telegram 和 Slack 在命令支持选项且省略参数时显示按钮菜单。
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
---
|
||||
read_when:
|
||||
- 您希望通过智能体进行后台/并行工作
|
||||
- 您正在修改 sessions_spawn 或子智能体工具策略
|
||||
- 你希望通过智能体进行后台/并行工作
|
||||
- 你正在修改 sessions_spawn 或子智能体工具策略
|
||||
summary: 子智能体:生成独立的智能体运行并将结果回报给请求者聊天
|
||||
title: 子智能体
|
||||
x-i18n:
|
||||
@@ -44,7 +44,7 @@ x-i18n:
|
||||
|
||||
- 启动子智能体运行(`deliver: false`,全局队列:`subagent`)
|
||||
- 然后运行回报步骤,将回报回复发布到请求者的聊天渠道
|
||||
- 默认模型:继承调用者,除非您设置了 `agents.defaults.subagents.model`(或按智能体 `agents.list[].subagents.model`);显式的 `sessions_spawn.model` 仍然优先。
|
||||
- 默认模型:继承调用者,除非你设置了 `agents.defaults.subagents.model`(或按智能体 `agents.list[].subagents.model`);显式的 `sessions_spawn.model` 仍然优先。
|
||||
|
||||
工具参数:
|
||||
|
||||
@@ -69,7 +69,7 @@ x-i18n:
|
||||
- 子智能体会话在 `agents.defaults.subagents.archiveAfterMinutes`(默认:60)后自动归档。
|
||||
- 归档使用 `sessions.delete` 并将转录重命名为 `*.deleted.<timestamp>`(同一文件夹)。
|
||||
- `cleanup: "delete"` 在回报后立即归档(仍通过重命名保留转录)。
|
||||
- 自动归档为尽力而为;如果 Gateway 重启,待处理的定时器会丢失。
|
||||
- 自动归档为尽力而为;如果 Gateway网关重启,待处理的定时器会丢失。
|
||||
- `runTimeoutSeconds` **不会**自动归档;它仅停止运行。会话保留直到自动归档。
|
||||
|
||||
## 认证
|
||||
@@ -149,7 +149,7 @@ x-i18n:
|
||||
|
||||
## 限制
|
||||
|
||||
- 子智能体回报为**尽力而为**。如果 Gateway 重启,待处理的"回报"工作会丢失。
|
||||
- 子智能体仍共享相同的 Gateway 进程资源;将 `maxConcurrent` 视为安全阀。
|
||||
- 子智能体回报为**尽力而为**。如果 Gateway网关重启,待处理的"回报"工作会丢失。
|
||||
- 子智能体仍共享相同的 Gateway网关进程资源;将 `maxConcurrent` 视为安全阀。
|
||||
- `sessions_spawn` 始终是非阻塞的:它会立即返回 `{ status: "accepted", runId, childSessionKey }`。
|
||||
- 子智能体上下文仅注入 `AGENTS.md` + `TOOLS.md`(不包含 `SOUL.md`、`IDENTITY.md`、`USER.md`、`HEARTBEAT.md` 或 `BOOTSTRAP.md`)。
|
||||
|
||||
@@ -90,7 +90,7 @@ Brave 提供免费额度和付费计划;请查看 Brave API 门户了解
|
||||
**推荐:**运行 `openclaw configure --section web`。它会将密钥存储在
|
||||
`~/.openclaw/openclaw.json` 的 `tools.web.search.apiKey` 下。
|
||||
|
||||
**环境变量替代方案:**在 Gateway 进程环境中设置 `BRAVE_API_KEY`。对于 Gateway 安装,将其放入 `~/.openclaw/.env`(或你的
|
||||
**环境变量替代方案:**在 Gateway网关进程环境中设置 `BRAVE_API_KEY`。对于 Gateway网关安装,将其放入 `~/.openclaw/.env`(或你的
|
||||
服务环境)。参见[环境变量](/help/faq#how-does-openclaw-load-environment-variables)。
|
||||
|
||||
## 使用 Perplexity(直连或通过 OpenRouter)
|
||||
@@ -128,7 +128,7 @@ Perplexity Sonar 模型内置网页搜索功能,并返回带有引用来源的
|
||||
}
|
||||
```
|
||||
|
||||
**环境变量替代方案:**在 Gateway 环境中设置 `OPENROUTER_API_KEY` 或 `PERPLEXITY_API_KEY`。对于 Gateway 安装,将其放入 `~/.openclaw/.env`。
|
||||
**环境变量替代方案:**在 Gateway网关环境中设置 `OPENROUTER_API_KEY` 或 `PERPLEXITY_API_KEY`。对于 Gateway网关安装,将其放入 `~/.openclaw/.env`。
|
||||
|
||||
如果未设置基础 URL,OpenClaw 会根据 API 密钥来源选择默认值:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user