chore(i18n): refresh zh-CN translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-05-02 21:43:28 +00:00
parent 54b51b95c9
commit 7d40ce562e
8 changed files with 485 additions and 596 deletions

View File

@ -1,26 +1,26 @@
---
read_when:
- 你需要检查模型原始输出是否存在推理泄漏
- 你想在迭代开发时以监听模式运行 Gateway 网关
- 你需要一可重复的调试工作流
summary: 调试工具:watch 模式、原始模型流和跟踪推理泄漏
- 你需要检查原始模型输出是否存在推理泄露
- 你想在迭代时以监视模式运行 Gateway 网关
- 你需要一可重复的调试工作流
summary: 调试工具:监视模式、原始模型流,以及跟踪推理泄露
title: 调试
x-i18n:
generated_at: "2026-05-02T16:10:00Z"
generated_at: "2026-05-02T21:41:41Z"
model: gpt-5.5
provider: openai
source_hash: de4bd994079f5463f4734404d1ba0768cb003609e16113f5f8f14179a190e917
source_hash: 7a72a1508915e37ffdc5317889cdfde7024de3f5702739640abc2f03c3abadb7
source_path: help/debugging.md
workflow: 16
---
用于流式输出的调试辅助工具,尤其适用于提供商将推理内容混入普通文本时。
调试流式输出的辅助工具,尤其适用于提供商把推理内容混入普通文本时。
## 运行时调试覆盖
在聊天中使用 `/debug` 设置**仅运行时**配置覆盖(内存中,不写入磁盘)。
`/debug` 默认禁用;使用 `commands.debug: true` 启用。
当你需要在不编辑 `openclaw.json` 的情况下切换晦涩设置时,这很方便。
在聊天中使用 `/debug` 设置**仅运行时**配置覆盖(保存在内存中,而不是磁盘上)。
`/debug` 默认禁用;通过 `commands.debug: true` 启用。
当你需要切换隐蔽设置而不编辑 `openclaw.json` 时,这很方便。
示例:
@ -31,12 +31,11 @@ x-i18n:
/debug reset
```
`/debug reset` 会清除所有覆盖,并恢复磁盘上的配置。
`/debug reset` 会清除所有覆盖,并恢复磁盘上的配置。
## 会话踪输出
## 会话踪输出
当你想在一个会话中查看插件拥有的追踪/调试行,
且不想开启完整详细模式时,使用 `/trace`
当你想在一个会话中查看插件拥有的跟踪/调试行,而不启用完整详细模式时,使用 `/trace`
示例:
@ -46,15 +45,15 @@ x-i18n:
/trace off
```
`/trace` 用于插件诊断,例如 Active Memory 调试摘要。
继续使用 `/verbose` 查看普通详细 Status/工具输出,并继续使用
`/trace` 用于插件诊断,例如主动记忆调试摘要。
继续使用 `/verbose` 查看普通详细 Status/工具输出,并继续使用
`/debug` 设置仅运行时配置覆盖。
## 插件生命周期
## 插件生命周期
当插件生命周期命令感觉很慢,并且你需要内置的阶段拆解来查看插件元数据、设备发现、注册表、
运行时镜像、配置变更和刷新工作时,使用 `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1`该追踪需要显式启用,并写入
stderr因此 JSON 命令输出仍可解析。
当插件生命周期命令感觉很慢,并且你需要内置阶段拆分来查看插件元数据、设备发现、注册表、
运行时镜像、配置变更和刷新工作时,使用 `OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1`
该跟踪是选择加入的,并写入 stderr因此 JSON 命令输出仍可解析。
示例:
@ -71,139 +70,29 @@ OPENCLAW_PLUGIN_LIFECYCLE_TRACE=1 openclaw plugins install tokenjuice --force
```
在使用 CPU 分析器之前,先用它调查插件生命周期。
如果命令从源码检出目录运行,建议在 `pnpm build` 后用
如果命令从源码检出目录运行,建议在 `pnpm build` 后用
`node dist/entry.js ...` 测量构建后的运行时;`pnpm openclaw ...`
也会测量源码运行器开销。
还会测到源码运行器的开销。
## 临时 CLI 调试计时
## CLI 启动和命令分析
OpenClaw 保留 `src/cli/debug-timing.ts` 作为本地调查的小型辅助工具。
它有意默认不接入 CLI 启动、命令路由或任何命令。仅在调试慢命令时使用,
然后在落地行为变更前移除 import 和 span。
当某个命令很慢,并且你需要快速阶段拆解来决定是使用 CPU 分析器还是修复特定子系统时,使用它。
### 添加临时 span
在你正在调查的代码附近添加辅助工具。例如,在调试
`openclaw models list` 时,`src/commands/models/list.list-command.ts`
中的临时补丁可能如下所示:
```ts
// Temporary debugging only. Remove before landing.
import { createCliDebugTiming } from "../../cli/debug-timing.js";
const timing = createCliDebugTiming({ command: "models list" });
const authStore = timing.time("debug:models:list:auth_store", () => ensureAuthProfileStore());
const loaded = await timing.timeAsync(
"debug:models:list:registry",
() => loadListModelRegistry(cfg, { sourceConfig }),
(result) => ({
models: result.models.length,
discoveredKeys: result.discoveredKeys.size,
}),
);
```
指南:
- 临时阶段名称以 `debug:` 为前缀。
- 只在怀疑较慢的区段周围添加少量 span。
- 优先使用 `registry`、`auth_store` 或 `rows` 这类宽泛阶段,而不是辅助函数名称。
- 对同步工作使用 `time()`,对 promise 使用 `timeAsync()`
- 保持 stdout 干净。该辅助工具写入 stderr因此命令 JSON 输出仍然可解析。
- 在打开最终修复 PR 之前,移除临时 import 和 span。
- 在 issue 或 PR 中包含计时输出或简短摘要,用于解释优化。
### 使用可读输出运行
可读模式最适合实时调试:
当命令感觉很慢时,使用仓库内置的启动基准测试:
```bash
OPENCLAW_DEBUG_TIMING=1 pnpm openclaw models list --all --provider moonshot
pnpm test:startup:bench:smoke
pnpm tsx scripts/bench-cli-startup.ts --preset real --case status --runs 3
pnpm tsx scripts/bench-cli-startup.ts --preset real --cpu-prof-dir .artifacts/cli-cpu
```
来自一次临时 `models list` 调查的示例输出:
```text
OpenClaw CLI debug timing: models list
0ms +0ms start all=true json=false local=false plain=false provider="moonshot"
2ms +2ms debug:models:list:import_runtime duration=2ms
17ms +14ms debug:models:list:load_config duration=14ms sourceConfig=true
20.3s +20.3s debug:models:list:auth_store duration=20.3s
20.3s +0ms debug:models:list:resolve_agent_dir duration=0ms agentDir=true
20.3s +0ms debug:models:list:resolve_provider_filter duration=0ms
25.3s +5.0s debug:models:list:ensure_models_json duration=5.0s
31.2s +5.9s debug:models:list:load_model_registry duration=5.9s models=869 availableKeys=38 discoveredKeys=868 availabilityError=false
31.2s +0ms debug:models:list:resolve_configured_entries duration=0ms entries=1
31.2s +0ms debug:models:list:build_configured_lookup duration=0ms entries=1
33.6s +2.4s debug:models:list:read_registry_models duration=2.4s models=871
35.2s +1.5s debug:models:list:append_discovered_rows duration=1.5s seenKeys=0 rows=0
36.9s +1.7s debug:models:list:append_catalog_supplement_rows duration=1.7s seenKeys=5 rows=5
Model Input Ctx Local Auth Tags
moonshot/kimi-k2-thinking text 256k no no
moonshot/kimi-k2-thinking-turbo text 256k no no
moonshot/kimi-k2-turbo text 250k no no
moonshot/kimi-k2.5 text+image 256k no no
moonshot/kimi-k2.6 text+image 256k no no
36.9s +0ms debug:models:list:print_model_table duration=0ms rows=5
36.9s +0ms complete rows=5
```
此输出中的发现:
| 阶段 | 时间 | 含义 |
| ---------------------------------------- | ---------: | ------------------------------------------------------------------------------------------------------- |
| `debug:models:list:auth_store` | 20.3s | auth-profile 存储加载是最大开销,应优先调查。 |
| `debug:models:list:ensure_models_json` | 5.0s | 同步 `models.json` 的开销足够大,值得检查缓存或跳过条件。 |
| `debug:models:list:load_model_registry` | 5.9s | 注册表构建和提供商可用性工作也是有意义的开销。 |
| `debug:models:list:read_registry_models` | 2.4s | 读取所有注册表模型并非免费,对 `--all` 可能很重要。 |
| 行追加阶段 | 总计 3.2s | 构建五个显示行仍需数秒,因此过滤路径值得进一步查看。 |
| `debug:models:list:print_model_table` | 0ms | 渲染不是瓶颈。 |
这些发现足以指导下一个补丁,而无需在生产路径中保留计时代码。
### 使用 JSON 输出运行
当你想保存或比较计时数据时,使用 JSON 模式:
如果要通过普通源码运行器进行一次性分析,设置
`OPENCLAW_RUN_NODE_CPU_PROF_DIR`
```bash
OPENCLAW_DEBUG_TIMING=json pnpm openclaw models list --all --provider moonshot \
2> .artifacts/models-list-timing.jsonl
OPENCLAW_RUN_NODE_CPU_PROF_DIR=.artifacts/cli-cpu pnpm openclaw status
```
每一行 stderr 都是一个 JSON 对象:
```json
{
"command": "models list",
"phase": "debug:models:list:registry",
"elapsedMs": 31200,
"deltaMs": 5900,
"durationMs": 5900,
"models": 869,
"discoveredKeys": 868
}
```
### 落地前清理
在打开最终 PR 之前:
```bash
rg 'createCliDebugTiming|debug:[a-z0-9_-]+:' src/commands src/cli \
--glob '!src/cli/debug-timing.*' \
--glob '!*.test.ts'
```
除非该 PR 明确添加永久诊断表面,否则该命令不应返回任何临时插桩调用点。
对于普通性能修复,只保留行为变更、测试,以及一条带计时证据的简短说明。
对于更深层的 CPU 热点,请使用 Node 性能分析(`--cpu-prof`)或外部分析器,而不是添加更多计时包装器。
源码运行器会添加 Node CPU profile 标志,并为该命令写入一个 `.cpuprofile`
在向命令代码添加临时插桩之前先使用它。
## Gateway 网关监视模式
@ -214,21 +103,22 @@ pnpm gateway:watch
```
默认情况下,这会启动或重启一个名为
`openclaw-gateway-watch-main` 的 tmux 会话(或按配置文件/端口区分的变体,例如
`openclaw-gateway-watch-main` 的 tmux 会话(或特定于 profile/端口的变体,例如
`openclaw-gateway-watch-dev-19001`),并从交互式终端自动附加。
非交互式 shell、CI 和 agent exec 调用会保持分离,并改为打印附加说明。需要时手动附加:
非交互式 shell、CI 和智能体 exec 调用会保持分离,并改为打印附加说明。
需要时手动附加:
```bash
tmux attach -t openclaw-gateway-watch-main
```
tmux 窗格运行原始监视器:
tmux 面板会运行原始监视器:
```bash
node scripts/watch-node.mjs gateway --force
```
不需要 tmux 时使用前台模式:
不需要 tmux 时使用前台模式:
```bash
pnpm gateway:watch:raw
@ -248,68 +138,67 @@ OPENCLAW_GATEWAY_WATCH_ATTACH=0 pnpm gateway:watch
pnpm gateway:watch --benchmark
```
监视包装器会在调用 Gateway 网关之前消费 `--benchmark`,并在
`.artifacts/gateway-watch-profiles/`为每次 Gateway 网关子进程退出写入一个 V8 `.cpuprofile`
停止或重启被监视的 gateway 以刷新当前 profile然后用 Chrome DevTools 或 Speedscope 打开:
监视包装器会在调用 Gateway 网关之前消费 `--benchmark`,并在每个 Gateway 网关子进程退出时,
`.artifacts/gateway-watch-profiles/` 下写入一个 V8 `.cpuprofile`
停止或重启被监视的 Gateway 网关以刷新当前 profile然后用 Chrome DevTools 或 Speedscope 打开:
```bash
npx speedscope .artifacts/gateway-watch-profiles/*.cpuprofile
```
当你希望把 profile 放到其他位置时,使用 `--benchmark-dir <path>`
如果你想把 profile 放在其他位置,使用 `--benchmark-dir <path>`
tmux 包装器会把常见的非密钥运行时选择器带入窗格,例如
tmux 包装器会把常见的非密钥运行时选择器带入面板,例如
`OPENCLAW_PROFILE`、`OPENCLAW_CONFIG_PATH`、`OPENCLAW_STATE_DIR`、
`OPENCLAW_GATEWAY_PORT``OPENCLAW_SKIP_CHANNELS`
提供商凭证放在你的常规 profile/配置中,或对一次性临时密钥使用原始前台模式
受管理的 tmux 窗格也默认使用彩色 Gateway 网关日志以提高可读性;
`OPENCLAW_GATEWAY_PORT``OPENCLAW_SKIP_CHANNELS`
提供商凭证放在你的普通 profile/配置中,或使用原始前台模式处理一次性临时密钥
受管理的 tmux 面板还会默认使用彩色 Gateway 网关日志以提升可读性;
启动 `pnpm gateway:watch` 时设置 `FORCE_COLOR=0` 可禁用 ANSI 输出。
监视器会在 `src/` 下与构建相关的文件、插件源码文件、
插件 `package.json``openclaw.plugin.json` 元数据、`tsconfig.json`、
`package.json` 以及 `tsdown.config.ts` 变更时重启。插件元数据变更会重启
gateway而不会强制执行 `tsdown` 重建;源码和配置变更仍会先重建
`dist`
监视器会在 `src/` 下与构建相关的文件、插件源码文件、插件 `package.json`
`openclaw.plugin.json` 元数据、`tsconfig.json`、`package.json` 和
`tsdown.config.ts` 发生变化时重启。插件元数据变更会重启 Gateway 网关,而不强制
`tsdown` 重新构建;源码和配置变更仍会先重新构建 `dist`
`gateway:watch` 后添加任何 gateway CLI 标志,它们会在每次重启时透传
重新运行同一个监视命令会重新生成具名 tmux 窗格,而原始监视器仍会保持其单监视器锁,
因此重复的监视器父进程会被替换,而不是不断堆积。
`gateway:watch` 后添加任何 Gateway 网关 CLI 标志,它们都会在每次重启时传递下去
重新运行同一条监视命令会重新生成命名 tmux 面板,而原始监视器仍会保留其单监视器锁,
因此重复的监视器父进程会被替换,而不是堆积起来
## 开发 profile + 开发 gateway--dev
## 开发 profile + 开发 Gateway 网关--dev
使用开发 profile 隔离状态,并启动一个安全、一次性的设置用于调试。
这里有**两个** `--dev` 标志:
使用开发 profile 隔离状态,并启动一个安全、可丢弃的设置用于调试。
有**两个** `--dev` 标志:
- **全局 `--dev`profile** 将状态隔离到 `~/.openclaw-dev`,并将
gateway 端口默认设为 `19001`(派生端口会随之偏移)。
- **全局 `--dev`profile** `~/.openclaw-dev` 下隔离状态,并将
Gateway 网关端口默认设为 `19001`(派生端口会随之偏移)。
- **`gateway --dev`:告诉 Gateway 网关在缺失时自动创建默认配置 +
工作区**(并跳过 BOOTSTRAP.md
推荐流程(开发 profile + 开发 bootstrap
推荐流程(开发 profile + 开发引导
```bash
pnpm gateway:dev
OPENCLAW_PROFILE=dev openclaw tui
```
如果你还没有全局安装,通过 `pnpm openclaw ...` 运行 CLI。
如果你还没有全局安装,通过 `pnpm openclaw ...` 运行 CLI。
这会执行
它会执行以下操作
1. **Profile 隔离**(全局 `--dev`
- `OPENCLAW_PROFILE=dev`
- `OPENCLAW_STATE_DIR=~/.openclaw-dev`
- `OPENCLAW_CONFIG_PATH=~/.openclaw-dev/openclaw.json`
- `OPENCLAW_GATEWAY_PORT=19001`browser/canvas 随之偏移)
- `OPENCLAW_GATEWAY_PORT=19001`浏览器/canvas 相应偏移)
2. **开发 bootstrap**`gateway --dev`
- 如果缺失,则写入最小配置(`gateway.mode=local`,绑定 loopback)。
2. **开发引导**`gateway --dev`
- 如果缺失,则写入最小配置(`gateway.mode=local`,绑定到环回地址)。
- 将 `agent.workspace` 设置为开发工作区。
- 设置 `agent.skipBootstrap=true` BOOTSTRAP.md
- 如果缺失,则植入工作区文件:
- 设置 `agent.skipBootstrap=true`不使用 BOOTSTRAP.md
- 如果缺失,则预置工作区文件:
`AGENTS.md`、`SOUL.md`、`TOOLS.md`、`IDENTITY.md`、`USER.md`、`HEARTBEAT.md`。
- 默认身份:**C3PO**(礼仪机器人)。
- 在开发模式跳过渠道提供商(`OPENCLAW_SKIP_CHANNELS=1`)。
- 在开发模式跳过渠道提供商(`OPENCLAW_SKIP_CHANNELS=1`)。
重置流程(全新开始):
@ -318,7 +207,7 @@ pnpm gateway:dev:reset
```
<Note>
`--dev` 是一个**全局**配置文件标志,会被某些运行器吞掉。如果你需要明确写出来,请使用环境变量形式:
`--dev` 是一个**全局** profile 标志,会被某些运行器吃掉。如果你需要明确写出它,请使用环境变量形式:
```bash
OPENCLAW_PROFILE=dev openclaw gateway --dev --reset
@ -326,11 +215,11 @@ OPENCLAW_PROFILE=dev openclaw gateway --dev --reset
</Note>
`--reset` 会清除配置、凭证、会话和 dev 工作区(使用
`trash`,不是 `rm`),然后重新创建默认的 dev 设置。
`--reset` 会清除配置、凭证、会话和开发工作区(使用
`trash`,不是 `rm`),然后重新创建默认开发设置。
<Tip>
如果已有非 dev Gateway 网关在运行launchd 或 systemd先停止它:
如果非开发 Gateway 网关已经在运行launchd 或 systemd先停止它:
```bash
openclaw gateway stop
@ -338,11 +227,10 @@ openclaw gateway stop
</Tip>
## 原始流日志记录OpenClaw
## 原始流日志OpenClaw
OpenClaw 可以在任何过滤/格式化之前记录**原始助手流**。
这是查看推理是以纯文本增量到达
(还是以单独的 thinking blocks 到达)的最佳方式。
这是查看推理内容是以普通文本增量到达,还是以独立 thinking 块到达的最佳方式。
通过 CLI 启用:
@ -350,13 +238,13 @@ OpenClaw 可以在任何过滤/格式化之前记录**原始助手流**。
pnpm gateway:watch --raw-stream
```
可选路径覆盖:
可选路径覆盖:
```bash
pnpm gateway:watch --raw-stream --raw-stream-path ~/.openclaw/logs/raw-stream.jsonl
```
等效环境变量:
等效环境变量:
```bash
OPENCLAW_RAW_STREAM=1
@ -367,10 +255,10 @@ OPENCLAW_RAW_STREAM_PATH=~/.openclaw/logs/raw-stream.jsonl
`~/.openclaw/logs/raw-stream.jsonl`
## 原始块日志记录pi-mono
## 原始数据块日志pi-mono
要在解析为块之前捕获**原始 OpenAI 兼容块**
pi-mono 提供了单独的记录器:
要在**原始 OpenAI 兼容数据块**被解析成块之前捕获它们
pi-mono 提供了一个独立日志记录器:
```bash
PI_RAW_STREAM=1
@ -386,16 +274,16 @@ PI_RAW_STREAM_PATH=~/.pi-mono/logs/raw-openai-completions.jsonl
`~/.pi-mono/logs/raw-openai-completions.jsonl`
> 注意:这由使用 pi-mono 的
> 注意:这只会由使用 pi-mono 的
> `openai-completions` 提供商的进程发出。
## 安全注意事项
## 安全说明
- 原始流日志可能包含完整提示词、工具输出和用户数据。
- 将日志保留在本地,并在调试后删除它们
- 如果你共享日志,先清理密钥和 PII。
- 将日志保留在本地,并在调试后删除。
- 如果你共享日志,先清理密钥和 PII。
## 相关内容
## 相关
- [故障排除](/zh-CN/help/troubleshooting)
- [常见问题](/zh-CN/help/faq)

View File

@ -1,22 +1,22 @@
---
read_when:
- 你正在决定某个插件是随核心 npm 包一起发布,还是单独安装
- 你正在决定插件是随核心 npm 包一起发布,还是单独安装
- 你正在更新内置插件包元数据或发布自动化
- 你需要内部与外部插件的权威列表
summary: 随核心一起交付、对外发布或仅保留源码的 OpenClaw 插件生成清单
- 你需要权威的内部与外部插件列表
summary: 随核心交付、对外发布或仅保留源码的 OpenClaw 插件生成清单
title: 插件清单
x-i18n:
generated_at: "2026-05-02T20:49:32Z"
generated_at: "2026-05-02T21:41:45Z"
model: gpt-5.5
provider: openai
source_hash: cbc10cbf65483b4a3983643e1b8f2e5b31e8b54b3649a8121ad636a53eecd999
source_hash: 8c5be5c92951264fd197de7d9efe864a215a8da1b36eb2d62f57a63182cde2a0
source_path: plugins/plugin-inventory.md
workflow: 16
---
# 插件清单
本页面由 `extensions/*/package.json`、`openclaw.plugin.json`
此页面根据 `extensions/*/package.json`、`openclaw.plugin.json`
以及根 npm 包的 `files` 排除项生成。使用以下命令重新生成:
```bash
@ -25,74 +25,77 @@ pnpm plugins:inventory:gen
## 定义
- **核心 npm 包:** 内置于 `openclaw` npm 包,无需单独安装插件即可使用。
- **官方外部包:** 由 OpenClaw 维护的插件,不包含在核心 npm 包中,通过 ClawHub 和/或 npm 安装
- **仅源代码检出:** 仓库本地插件,不包含在已发布的 npm 构件中,也不会作为可安装包进行宣传。
- **核心 npm 包:**内置于 `openclaw` npm 包,无需单独安装插件即可使用。
- **官方外部包:**由 OpenClaw 维护、从核心 npm 包中省略,并通过 ClawHub 和/或 npm 安装的插件
- **仅源码检出:**仓库本地插件,从已发布的 npm 构件中省略,且不会作为可安装包宣传。
码检出不同于 npm 安装:执行 `pnpm install` 后,内置
插件会从 `extensions/<id>` 加载,因此本地编辑和包本地工作区
依赖可用。
源码检出不同于 npm 安装:执行 `pnpm install` 后,内置
插件会从 `extensions/<id>` 加载,因此本地编辑和包本地工作区
依赖可用。
## 核心 npm 包
| 插件 | 描述 | 分发 | 接口面 |
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [alibaba](/zh-CN/plugins/reference/alibaba) | 添加视频生成提供商支持。 | `@openclaw/alibaba-provider`<br />内置于 OpenClaw | contracts: videoGenerationProviders |
| [amazon-bedrock](/zh-CN/plugins/reference/amazon-bedrock) | 为 OpenClaw 添加 Amazon Bedrock 模型提供商支持。 | `@openclaw/amazon-bedrock-provider`<br />内置于 OpenClaw | providers: amazon-bedrock; contracts: memoryEmbeddingProviders |
| [amazon-bedrock-mantle](/zh-CN/plugins/reference/amazon-bedrock-mantle) | 为 OpenClaw 添加 Amazon Bedrock Mantle 模型提供商支持。 | `@openclaw/amazon-bedrock-mantle-provider`<br />内置于 OpenClaw | providers: amazon-bedrock-mantle |
| [anthropic](/zh-CN/plugins/reference/anthropic) | 为 OpenClaw 添加 Anthropic 模型提供商支持。 | `@openclaw/anthropic-provider`<br />内置于 OpenClaw | providers: anthropic; contracts: mediaUnderstandingProviders |
| [anthropic-vertex](/zh-CN/plugins/reference/anthropic-vertex) | 为 OpenClaw 添加 Anthropic Vertex 模型提供商支持。 | `@openclaw/anthropic-vertex-provider`<br />内置于 OpenClaw | providers: anthropic-vertex |
| [arcee](/zh-CN/plugins/reference/arcee) | 为 OpenClaw 添加 Arcee 模型提供商支持。 | `@openclaw/arcee-provider`<br />内置于 OpenClaw | providers: arcee |
| [azure-speech](/zh-CN/plugins/reference/azure-speech) | Azure AI Speech 文本转语音MP3、原生 Ogg/Opus 语音留言、PCM 电话音频)。 | `@openclaw/azure-speech`<br />内置于 OpenClaw | contracts: speechProviders |
| [bonjour](/zh-CN/plugins/reference/bonjour) | 通过 Bonjour/mDNS 广播本地 OpenClaw gateway。 | `@openclaw/bonjour`<br />内置于 OpenClaw | plugin |
| [browser](/zh-CN/plugins/reference/browser) | 添加智能体可调用工具。 | `@openclaw/browser-plugin`<br />内置于 OpenClaw | contracts: tools; skills |
| [byteplus](/zh-CN/plugins/reference/byteplus) | 为 OpenClaw 添加 BytePlus、BytePlus Plan 模型提供商支持。 | `@openclaw/byteplus-provider`<br />内置于 OpenClaw | providers: byteplus, byteplus-plan; contracts: videoGenerationProviders |
| [cerebras](/zh-CN/plugins/reference/cerebras) | 为 OpenClaw 添加 Cerebras 模型提供商支持。 | `@openclaw/cerebras-provider`<br />内置于 OpenClaw | providers: cerebras |
| [chutes](/zh-CN/plugins/reference/chutes) | 为 OpenClaw 添加 Chutes 模型提供商支持。 | `@openclaw/chutes-provider`<br />内置于 OpenClaw | providers: chutes |
| [cloudflare-ai-gateway](/zh-CN/plugins/reference/cloudflare-ai-gateway) | 为 OpenClaw 添加 Cloudflare AI Gateway 模型提供商支持。 | `@openclaw/cloudflare-ai-gateway-provider`<br />内置于 OpenClaw | providers: cloudflare-ai-gateway |
| [comfy](/zh-CN/plugins/reference/comfy) | 为 OpenClaw 添加 ComfyUI 模型提供商支持。 | `@openclaw/comfy-provider`<br />内置于 OpenClaw | providers: comfy; contracts: imageGenerationProviders, musicGenerationProviders, videoGenerationProviders |
| [copilot-proxy](/zh-CN/plugins/reference/copilot-proxy) | 为 OpenClaw 添加 Copilot Proxy 模型提供商支持。 | `@openclaw/copilot-proxy`<br />内置于 OpenClaw | providers: copilot-proxy |
| [deepgram](/zh-CN/plugins/reference/deepgram) | 添加媒体理解提供商支持。添加实时转录提供商支持。 | `@openclaw/deepgram-provider`<br />内置于 OpenClaw | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders |
| [deepinfra](/zh-CN/plugins/reference/deepinfra) | 为 OpenClaw 添加 DeepInfra 模型提供商支持。 | `@openclaw/deepinfra-provider`<br />内置于 OpenClaw | providers: deepinfra; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, speechProviders, videoGenerationProviders |
| [deepseek](/zh-CN/plugins/reference/deepseek) | 为 OpenClaw 添加 DeepSeek 模型提供商支持。 | `@openclaw/deepseek-provider`<br />内置于 OpenClaw | providers: deepseek |
| [document-extract](/zh-CN/plugins/reference/document-extract) | 从本地文档附件中提取文本和备用页面图像。 | `@openclaw/document-extract-plugin`<br />内置于 OpenClaw | contracts: documentExtractors |
| [duckduckgo](/zh-CN/plugins/reference/duckduckgo) | 添加 Web 搜索提供商支持。 | `@openclaw/duckduckgo-plugin`<br />包含在 OpenClaw 中 | 契约webSearchProviders |
| [elevenlabs](/zh-CN/plugins/reference/elevenlabs) | 添加媒体理解提供商支持。添加实时转录提供商支持。添加文本转语音提供商支持。 | `@openclaw/elevenlabs-speech`<br />包含在 OpenClaw 中 | 契约mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders |
| [exa](/zh-CN/plugins/reference/exa) | 添加 Web 搜索提供商支持。 | `@openclaw/exa-plugin`<br />包含在 OpenClaw 中 | 契约webSearchProviders |
| [fal](/zh-CN/plugins/reference/fal) | 为 OpenClaw 添加 fal 模型提供商支持。 | `@openclaw/fal-provider`<br />包含在 OpenClaw 中 | 提供商fal契约imageGenerationProviders, videoGenerationProviders |
| [file-transfer](/zh-CN/plugins/reference/file-transfer) | 通过专用节点命令在已配对节点上获取、列出和写入文件。通过对最大 16 MB 的二进制文件在 node.invoke 上使用 base64绕过 bash stdout 截断。 | `@openclaw/file-transfer`<br />包含在 OpenClaw 中 | 契约tools |
| [firecrawl](/zh-CN/plugins/reference/firecrawl) | 添加可由智能体调用的工具。添加 Web 获取提供商支持。添加 Web 搜索提供商支持。 | `@openclaw/firecrawl-plugin`<br />包含在 OpenClaw 中 | 契约tools, webFetchProviders, webSearchProviders |
| [fireworks](/zh-CN/plugins/reference/fireworks) | 为 OpenClaw 添加 Fireworks 模型提供商支持。 | `@openclaw/fireworks-provider`<br />包含在 OpenClaw 中 | 提供商fireworks |
| [github-copilot](/zh-CN/plugins/reference/github-copilot) | 为 OpenClaw 添加 GitHub Copilot 模型提供商支持。 | `@openclaw/github-copilot-provider`<br />包含在 OpenClaw 中 | 提供商github-copilot契约memoryEmbeddingProviders |
| [google](/zh-CN/plugins/reference/google) | 为 OpenClaw 添加 Google、Google Gemini CLI、Google Vertex 模型提供商支持。 | `@openclaw/google-plugin`<br />包含在 OpenClaw 中 | 提供商google, google-gemini-cli, google-vertex契约imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, musicGenerationProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders, webSearchProviders |
| [gradium](/zh-CN/plugins/reference/gradium) | 添加文本转语音提供商支持。 | `@openclaw/gradium-speech`<br />包含在 OpenClaw 中 | 契约speechProviders |
| [groq](/zh-CN/plugins/reference/groq) | 为 OpenClaw 添加 Groq 模型提供商支持。 | `@openclaw/groq-provider`<br />包含在 OpenClaw 中 | 提供商groq契约mediaUnderstandingProviders |
| [huggingface](/zh-CN/plugins/reference/huggingface) | 为 OpenClaw 添加 Hugging Face 模型提供商支持。 | `@openclaw/huggingface-provider`<br />包含在 OpenClaw 中 | 提供商huggingface |
| [imessage](/zh-CN/plugins/reference/imessage) | 添加用于发送和接收 OpenClaw 消息的 iMessage 渠道界面。 | `@openclaw/imessage`<br />包含在 OpenClaw 中 | 渠道imessage |
| [inworld](/zh-CN/plugins/reference/inworld) | Inworld 流式文本转语音MP3、OGG_OPUS、PCM 电话音频)。 | `@openclaw/inworld-speech`<br />包含在 OpenClaw 中 | 契约speechProviders |
| [irc](/zh-CN/plugins/reference/irc) | 添加用于发送和接收 OpenClaw 消息的 IRC 渠道界面。 | `@openclaw/irc`<br />包含在 OpenClaw 中 | 渠道irc |
| [kilocode](/zh-CN/plugins/reference/kilocode) | 为 OpenClaw 添加 Kilocode 模型提供商支持。 | `@openclaw/kilocode-provider`<br />包含在 OpenClaw 中 | 提供商kilocode |
| [kimi](/zh-CN/plugins/reference/kimi) | 为 OpenClaw 添加 Kimi、Kimi Coding 模型提供商支持。 | `@openclaw/kimi-provider`<br />包含在 OpenClaw 中 | 提供商kimi, kimi-coding |
| [litellm](/zh-CN/plugins/reference/litellm) | 为 OpenClaw 添加 LiteLLM 模型提供商支持。 | `@openclaw/litellm-provider`<br />包含在 OpenClaw 中 | 提供商litellm契约imageGenerationProviders |
| [llm-task](/zh-CN/plugins/reference/llm-task) | 用于结构化任务的通用仅 JSON LLM 工具,可从工作流调用。 | `@openclaw/llm-task`<br />包含在 OpenClaw 中 | 契约tools |
| [lmstudio](/zh-CN/plugins/reference/lmstudio) | 为 OpenClaw 添加 LM Studio 模型提供商支持。 | `@openclaw/lmstudio-provider`<br />包含在 OpenClaw 中 | 提供商lmstudio契约memoryEmbeddingProviders |
| [memory-core](/zh-CN/plugins/reference/memory-core) | 添加记忆嵌入提供商支持。添加可由智能体调用的工具。 | `@openclaw/memory-core`<br />包含在 OpenClaw 中 | 契约memoryEmbeddingProviders, tools |
| [memory-wiki](/zh-CN/plugins/reference/memory-wiki) | OpenClaw 的持久化 wiki 编译器和适合 Obsidian 的知识库。 | `@openclaw/memory-wiki`<br />包含在 OpenClaw 中 | contracts: tools; skills |
| [acpx](/zh-CN/plugins/reference/acpx) | 内嵌 ACP 运行时后端,由插件拥有会话和传输管理。 | `@openclaw/acpx`<br />包含在 OpenClaw 中 | skills |
| [alibaba](/zh-CN/plugins/reference/alibaba) | 添加视频生成提供商支持。 | `@openclaw/alibaba-provider`<br />包含在 OpenClaw 中 | contracts: videoGenerationProviders |
| [amazon-bedrock](/zh-CN/plugins/reference/amazon-bedrock) | 为 OpenClaw 添加 Amazon Bedrock 模型提供商支持。 | `@openclaw/amazon-bedrock-provider`<br />包含在 OpenClaw 中 | providers: amazon-bedrock; contracts: memoryEmbeddingProviders |
| [amazon-bedrock-mantle](/zh-CN/plugins/reference/amazon-bedrock-mantle) | 为 OpenClaw 添加 Amazon Bedrock Mantle 模型提供商支持。 | `@openclaw/amazon-bedrock-mantle-provider`<br />包含在 OpenClaw 中 | providers: amazon-bedrock-mantle |
| [anthropic](/zh-CN/plugins/reference/anthropic) | 为 OpenClaw 添加 Anthropic 模型提供商支持。 | `@openclaw/anthropic-provider`<br />包含在 OpenClaw 中 | providers: anthropic; contracts: mediaUnderstandingProviders |
| [anthropic-vertex](/zh-CN/plugins/reference/anthropic-vertex) | 为 OpenClaw 添加 Anthropic Vertex 模型提供商支持。 | `@openclaw/anthropic-vertex-provider`<br />包含在 OpenClaw 中 | providers: anthropic-vertex |
| [arcee](/zh-CN/plugins/reference/arcee) | 为 OpenClaw 添加 Arcee 模型提供商支持。 | `@openclaw/arcee-provider`<br />包含在 OpenClaw 中 | providers: arcee |
| [azure-speech](/zh-CN/plugins/reference/azure-speech) | Azure AI Speech 文本转语音MP3、原生 Ogg/Opus 语音消息、PCM 电话音频)。 | `@openclaw/azure-speech`<br />包含在 OpenClaw 中 | contracts: speechProviders |
| [bonjour](/zh-CN/plugins/reference/bonjour) | 通过 Bonjour/mDNS 广播本地 OpenClaw gateway。 | `@openclaw/bonjour`<br />包含在 OpenClaw 中 | plugin |
| [browser](/zh-CN/plugins/reference/browser) | 添加智能体可调用工具。 | `@openclaw/browser-plugin`<br />包含在 OpenClaw 中 | contracts: tools; skills |
| [byteplus](/zh-CN/plugins/reference/byteplus) | 为 OpenClaw 添加 BytePlus、BytePlus Plan 模型提供商支持。 | `@openclaw/byteplus-provider`<br />包含在 OpenClaw 中 | providers: byteplus, byteplus-plan; contracts: videoGenerationProviders |
| [cerebras](/zh-CN/plugins/reference/cerebras) | 为 OpenClaw 添加 Cerebras 模型提供商支持。 | `@openclaw/cerebras-provider`<br />包含在 OpenClaw 中 | providers: cerebras |
| [chutes](/zh-CN/plugins/reference/chutes) | 为 OpenClaw 添加 Chutes 模型提供商支持。 | `@openclaw/chutes-provider`<br />包含在 OpenClaw 中 | providers: chutes |
| [cloudflare-ai-gateway](/zh-CN/plugins/reference/cloudflare-ai-gateway) | 为 OpenClaw 添加 Cloudflare AI Gateway 模型提供商支持。 | `@openclaw/cloudflare-ai-gateway-provider`<br />包含在 OpenClaw 中 | providers: cloudflare-ai-gateway |
| [comfy](/zh-CN/plugins/reference/comfy) | 为 OpenClaw 添加 ComfyUI 模型提供商支持。 | `@openclaw/comfy-provider`<br />包含在 OpenClaw 中 | providers: comfy; contracts: imageGenerationProviders, musicGenerationProviders, videoGenerationProviders |
| [copilot-proxy](/zh-CN/plugins/reference/copilot-proxy) | 为 OpenClaw 添加 Copilot Proxy 模型提供商支持。 | `@openclaw/copilot-proxy`<br />包含在 OpenClaw 中 | providers: copilot-proxy |
| [deepgram](/zh-CN/plugins/reference/deepgram) | 添加媒体理解提供商支持。添加实时转录提供商支持。 | `@openclaw/deepgram-provider`<br />包含在 OpenClaw 中 | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders |
| [deepinfra](/zh-CN/plugins/reference/deepinfra) | 为 OpenClaw 添加 DeepInfra 模型提供商支持。 | `@openclaw/deepinfra-provider`<br />包含在 OpenClaw 中 | providers: deepinfra; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, speechProviders, videoGenerationProviders |
| [deepseek](/zh-CN/plugins/reference/deepseek) | 为 OpenClaw 添加 DeepSeek 模型提供商支持。 | `@openclaw/deepseek-provider`<br />包含在 OpenClaw 中 | providers: deepseek |
| [document-extract](/zh-CN/plugins/reference/document-extract) | 从本地文档附件中提取文本和回退页面图像。 | `@openclaw/document-extract-plugin`<br />已包含在 OpenClaw 中 | contracts: documentExtractors |
| [duckduckgo](/zh-CN/plugins/reference/duckduckgo) | 添加 Web 搜索提供商支持。 | `@openclaw/duckduckgo-plugin`<br />已包含在 OpenClaw 中 | contracts: webSearchProviders |
| [elevenlabs](/zh-CN/plugins/reference/elevenlabs) | 添加媒体理解提供商支持。添加实时转写提供商支持。添加文本转语音提供商支持。 | `@openclaw/elevenlabs-speech`<br />已包含在 OpenClaw 中 | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders |
| [exa](/zh-CN/plugins/reference/exa) | 添加 Web 搜索提供商支持。 | `@openclaw/exa-plugin`<br />已包含在 OpenClaw 中 | contracts: webSearchProviders |
| [fal](/zh-CN/plugins/reference/fal) | 为 OpenClaw 添加 fal 模型提供商支持。 | `@openclaw/fal-provider`<br />已包含在 OpenClaw 中 | providers: fal; contracts: imageGenerationProviders, videoGenerationProviders |
| [file-transfer](/zh-CN/plugins/reference/file-transfer) | 通过专用节点命令在已配对节点上获取、列出和写入文件。通过对最大 16 MB 的二进制文件在 node.invoke 上使用 base64绕过 bash stdout 截断。 | `@openclaw/file-transfer`<br />已包含在 OpenClaw 中 | contracts: tools |
| [firecrawl](/zh-CN/plugins/reference/firecrawl) | 添加智能体可调用的工具。添加 Web 获取提供商支持。添加 Web 搜索提供商支持。 | `@openclaw/firecrawl-plugin`<br />已包含在 OpenClaw 中 | contracts: tools, webFetchProviders, webSearchProviders |
| [fireworks](/zh-CN/plugins/reference/fireworks) | 为 OpenClaw 添加 Fireworks 模型提供商支持。 | `@openclaw/fireworks-provider`<br />已包含在 OpenClaw 中 | providers: fireworks |
| [github-copilot](/zh-CN/plugins/reference/github-copilot) | 为 OpenClaw 添加 GitHub Copilot 模型提供商支持。 | `@openclaw/github-copilot-provider`<br />已包含在 OpenClaw 中 | providers: github-copilot; contracts: memoryEmbeddingProviders |
| [google](/zh-CN/plugins/reference/google) | 为 OpenClaw 添加 Google、Google Gemini CLI、Google Vertex 模型提供商支持。 | `@openclaw/google-plugin`<br />已包含在 OpenClaw 中 | providers: google, google-gemini-cli, google-vertex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, musicGenerationProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders, webSearchProviders |
| [googlechat](/zh-CN/plugins/reference/googlechat) | 添加 Google Chat 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/googlechat`<br />已包含在 OpenClaw 中 | channels: googlechat |
| [gradium](/zh-CN/plugins/reference/gradium) | 添加文本转语音提供商支持。 | `@openclaw/gradium-speech`<br />已包含在 OpenClaw 中 | contracts: speechProviders |
| [groq](/zh-CN/plugins/reference/groq) | 为 OpenClaw 添加 Groq 模型提供商支持。 | `@openclaw/groq-provider`<br />已包含在 OpenClaw 中 | providers: groq; contracts: mediaUnderstandingProviders |
| [huggingface](/zh-CN/plugins/reference/huggingface) | 为 OpenClaw 添加 Hugging Face 模型提供商支持。 | `@openclaw/huggingface-provider`<br />已包含在 OpenClaw 中 | providers: huggingface |
| [imessage](/zh-CN/plugins/reference/imessage) | 添加 iMessage 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/imessage`<br />已包含在 OpenClaw 中 | channels: imessage |
| [inworld](/zh-CN/plugins/reference/inworld) | Inworld 流式文本转语音MP3、OGG_OPUS、PCM 电话音频)。 | `@openclaw/inworld-speech`<br />已包含在 OpenClaw 中 | contracts: speechProviders |
| [irc](/zh-CN/plugins/reference/irc) | 添加 IRC 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/irc`<br />已包含在 OpenClaw 中 | channels: irc |
| [kilocode](/zh-CN/plugins/reference/kilocode) | 为 OpenClaw 添加 Kilocode 模型提供商支持。 | `@openclaw/kilocode-provider`<br />已包含在 OpenClaw 中 | providers: kilocode |
| [kimi](/zh-CN/plugins/reference/kimi) | 为 OpenClaw 添加 Kimi、Kimi Coding 模型提供商支持。 | `@openclaw/kimi-provider`<br />已包含在 OpenClaw 中 | providers: kimi, kimi-coding |
| [line](/zh-CN/plugins/reference/line) | 添加 LINE 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/line`<br />已包含在 OpenClaw 中 | channels: line |
| [litellm](/zh-CN/plugins/reference/litellm) | 为 OpenClaw 添加 LiteLLM 模型提供商支持。 | `@openclaw/litellm-provider`<br />已包含在 OpenClaw 中 | providers: litellm; contracts: imageGenerationProviders |
| [llm-task](/zh-CN/plugins/reference/llm-task) | 用于结构化任务的通用仅 JSON LLM 工具,可从工作流调用。 | `@openclaw/llm-task`<br />包含在 OpenClaw 中 | contracts: tools |
| [lmstudio](/zh-CN/plugins/reference/lmstudio) | 为 OpenClaw 添加 LM Studio 模型提供商支持。 | `@openclaw/lmstudio-provider`<br />包含在 OpenClaw 中 | providers: lmstudio; contracts: memoryEmbeddingProviders |
| [memory-core](/zh-CN/plugins/reference/memory-core) | 添加记忆嵌入提供商支持。添加智能体可调用的工具。 | `@openclaw/memory-core`<br />包含在 OpenClaw 中 | contracts: memoryEmbeddingProviders, tools |
| [memory-wiki](/zh-CN/plugins/reference/memory-wiki) | 面向 OpenClaw 的持久化 wiki 编译器和 Obsidian 友好的知识库。 | `@openclaw/memory-wiki`<br />包含在 OpenClaw 中 | contracts: tools; skills |
| [microsoft](/zh-CN/plugins/reference/microsoft) | 添加文本转语音提供商支持。 | `@openclaw/microsoft-speech`<br />包含在 OpenClaw 中 | contracts: speechProviders |
| [microsoft-foundry](/zh-CN/plugins/reference/microsoft-foundry) | 为 OpenClaw 添加 Microsoft Foundry 模型提供商支持。 | `@openclaw/microsoft-foundry`<br />包含在 OpenClaw 中 | providers: microsoft-foundry |
| [migrate-claude](/zh-CN/plugins/reference/migrate-claude) | 将 Claude Code 和 Claude Desktop 指令、MCP 服务器、Skills 和安全配置导入 OpenClaw。 | `@openclaw/migrate-claude`<br />包含在 OpenClaw 中 | contracts: migrationProviders |
| [migrate-claude](/zh-CN/plugins/reference/migrate-claude) | 将 Claude Code 和 Claude Desktop 指令、MCP 服务器、Skills 以及安全配置导入 OpenClaw。 | `@openclaw/migrate-claude`<br />包含在 OpenClaw 中 | contracts: migrationProviders |
| [migrate-hermes](/zh-CN/plugins/reference/migrate-hermes) | 将 Hermes 配置、记忆、Skills 和支持的凭证导入 OpenClaw。 | `@openclaw/migrate-hermes`<br />包含在 OpenClaw 中 | contracts: migrationProviders |
| [minimax](/zh-CN/plugins/reference/minimax) | 为 OpenClaw 添加 MiniMax、MiniMax Portal 模型提供商支持。 | `@openclaw/minimax-provider`<br />包含在 OpenClaw 中 | providers: minimax, minimax-portal; contracts: imageGenerationProviders, mediaUnderstandingProviders, musicGenerationProviders, speechProviders, videoGenerationProviders, webSearchProviders |
| [mistral](/zh-CN/plugins/reference/mistral) | 为 OpenClaw 添加 Mistral 模型提供商支持。 | `@openclaw/mistral-provider`<br />包含在 OpenClaw 中 | providers: mistral; contracts: mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders |
| [moonshot](/zh-CN/plugins/reference/moonshot) | 为 OpenClaw 添加 Moonshot 模型提供商支持。 | `@openclaw/moonshot-provider`<br />包含在 OpenClaw 中 | providers: moonshot; contracts: mediaUnderstandingProviders, webSearchProviders |
| [nvidia](/zh-CN/plugins/reference/nvidia) | 为 OpenClaw 添加 NVIDIA 模型提供商支持。 | `@openclaw/nvidia-provider`<br />包含在 OpenClaw 中 | providers: nvidia |
| [ollama](/zh-CN/plugins/reference/ollama) | 为 OpenClaw 添加 Ollama 模型提供商支持。 | `@openclaw/ollama-provider`<br />包含在 OpenClaw 中 | providers: ollama; contracts: memoryEmbeddingProviders, webSearchProviders |
| [open-prose](/zh-CN/plugins/reference/open-prose) | 带有 /prose 斜杠命令的 OpenProse VM 技能包。 | `@openclaw/open-prose`<br />包含在 OpenClaw 中 | skills |
| [open-prose](/zh-CN/plugins/reference/open-prose) | 带有 `/prose` 斜杠命令的 OpenProse VM Skills 包。 | `@openclaw/open-prose`<br />包含在 OpenClaw 中 | skills |
| [openai](/zh-CN/plugins/reference/openai) | 为 OpenClaw 添加 OpenAI、OpenAI Codex 模型提供商支持。 | `@openclaw/openai-provider`<br />包含在 OpenClaw 中 | providers: openai, openai-codex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders |
| [opencode](/zh-CN/plugins/reference/opencode) | 为 OpenClaw 添加 OpenCode 模型提供商支持。 | `@openclaw/opencode-provider`<br />包含在 OpenClaw 中 | providers: opencode; contracts: mediaUnderstandingProviders |
| [opencode-go](/zh-CN/plugins/reference/opencode-go) | 为 OpenClaw 添加 OpenCode Go 模型提供商支持。 | `@openclaw/opencode-go-provider`<br />包含在 OpenClaw 中 | providers: opencode-go; contracts: mediaUnderstandingProviders |
| [openrouter](/zh-CN/plugins/reference/openrouter) | 为 OpenClaw 添加 OpenRouter 模型提供商支持。 | `@openclaw/openrouter-provider`<br />包含在 OpenClaw 中 | providers: openrouter; contracts: imageGenerationProviders, mediaUnderstandingProviders, speechProviders, videoGenerationProviders |
| [openshell](/zh-CN/plugins/reference/openshell) | 由 OpenShell 提供支持的沙箱后端,具备镜像本地工作区和基于 SSH 的命令执行。 | `@openclaw/openshell-sandbox`<br />包含在 OpenClaw 中 | plugin |
| [openshell](/zh-CN/plugins/reference/openshell) | 由 OpenShell 提供支持的沙箱后端,带有镜像的本地工作区和基于 SSH 的命令执行。 | `@openclaw/openshell-sandbox`<br />包含在 OpenClaw 中 | plugin |
| [perplexity](/zh-CN/plugins/reference/perplexity) | 添加 Web 搜索提供商支持。 | `@openclaw/perplexity-plugin`<br />包含在 OpenClaw 中 | contracts: webSearchProviders |
| [qianfan](/zh-CN/plugins/reference/qianfan) | 为 OpenClaw 添加 Qianfan 模型提供商支持。 | `@openclaw/qianfan-provider`<br />包含在 OpenClaw 中 | providers: qianfan |
| [qwen](/zh-CN/plugins/reference/qwen) | 为 OpenClaw 添加 Qwen、Qwen Cloud、Model Studio、DashScope 模型提供商支持。 | `@openclaw/qwen-provider`<br />包含在 OpenClaw 中 | providers: qwen, qwencloud, modelstudio, dashscope; contracts: mediaUnderstandingProviders, videoGenerationProviders |
@ -100,13 +103,13 @@ pnpm plugins:inventory:gen
| [searxng](/zh-CN/plugins/reference/searxng) | 添加 Web 搜索提供商支持。 | `@openclaw/searxng-plugin`<br />包含在 OpenClaw 中 | contracts: webSearchProviders |
| [senseaudio](/zh-CN/plugins/reference/senseaudio) | 添加媒体理解提供商支持。 | `@openclaw/senseaudio-provider`<br />包含在 OpenClaw 中 | contracts: mediaUnderstandingProviders |
| [sglang](/zh-CN/plugins/reference/sglang) | 为 OpenClaw 添加 SGLang 模型提供商支持。 | `@openclaw/sglang-provider`<br />包含在 OpenClaw 中 | providers: sglang |
| [signal](/zh-CN/plugins/reference/signal) | 添加 Signal 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/signal`<br />包含在 OpenClaw 中 | channels: signal |
| [skill-workshop](/zh-CN/plugins/reference/skill-workshop) | 将可重复工作流捕获为工作区 Skills支持待审核、安全写入和 Skills 提示词刷新。 | `@openclaw/skill-workshop`<br />包含在 OpenClaw 中 | contracts: tools |
| [slack](/zh-CN/plugins/reference/slack) | 添加 Slack 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/slack`<br />包含在 OpenClaw 中 | channels: slack |
| [signal](/zh-CN/plugins/reference/signal) | 添加用于发送和接收 OpenClaw 消息的 Signal 渠道界面。 | `@openclaw/signal`<br />包含在 OpenClaw 中 | channels: signal |
| [skill-workshop](/zh-CN/plugins/reference/skill-workshop) | 将可重复工作流捕获为工作区 Skills支持待审核、安全写入和技能提示刷新。 | `@openclaw/skill-workshop`<br />包含在 OpenClaw 中 | contracts: tools |
| [slack](/zh-CN/plugins/reference/slack) | 添加用于发送和接收 OpenClaw 消息的 Slack 渠道界面。 | `@openclaw/slack`<br />包含在 OpenClaw 中 | channels: slack |
| [stepfun](/zh-CN/plugins/reference/stepfun) | 为 OpenClaw 添加 StepFun、StepFun Plan 模型提供商支持。 | `@openclaw/stepfun-provider`<br />包含在 OpenClaw 中 | providers: stepfun, stepfun-plan |
| [synthetic](/zh-CN/plugins/reference/synthetic) | 为 OpenClaw 添加 Synthetic 模型提供商支持。 | `@openclaw/synthetic-provider`<br />包含在 OpenClaw 中 | providers: synthetic |
| [tavily](/zh-CN/plugins/reference/tavily) | 添加可由智能体调用的工具。添加 Web 搜索提供商支持。 | `@openclaw/tavily-plugin`<br />包含在 OpenClaw 中 | contracts: tools, webSearchProviders; skills |
| [telegram](/zh-CN/plugins/reference/telegram) | 添加 Telegram 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/telegram`<br />包含在 OpenClaw 中 | channels: telegram |
| [tavily](/zh-CN/plugins/reference/tavily) | 添加智能体调用的工具。添加 Web 搜索提供商支持。 | `@openclaw/tavily-plugin`<br />包含在 OpenClaw 中 | contracts: tools, webSearchProviders; skills |
| [telegram](/zh-CN/plugins/reference/telegram) | 添加用于发送和接收 OpenClaw 消息的 Telegram 渠道界面。 | `@openclaw/telegram`<br />包含在 OpenClaw 中 | channels: telegram |
| [tencent](/zh-CN/plugins/reference/tencent) | 为 OpenClaw 添加 Tencent TokenHub 模型提供商支持。 | `@openclaw/tencent-provider`<br />包含在 OpenClaw 中 | providers: tencent-tokenhub |
| [together](/zh-CN/plugins/reference/together) | 为 OpenClaw 添加 Together 模型提供商支持。 | `@openclaw/together-provider`<br />包含在 OpenClaw 中 | providers: together; contracts: videoGenerationProviders |
| [tokenjuice](/zh-CN/plugins/reference/tokenjuice) | 使用 tokenjuice reducers 压缩 exec 和 bash 工具结果。 | `@openclaw/tokenjuice`<br />包含在 OpenClaw 中 | contracts: agentToolResultMiddleware |
@ -116,49 +119,46 @@ pnpm plugins:inventory:gen
| [vllm](/zh-CN/plugins/reference/vllm) | 为 OpenClaw 添加 vLLM 模型提供商支持。 | `@openclaw/vllm-provider`<br />包含在 OpenClaw 中 | providers: vllm |
| [volcengine](/zh-CN/plugins/reference/volcengine) | 为 OpenClaw 添加 Volcengine、Volcengine Plan 模型提供商支持。 | `@openclaw/volcengine-provider`<br />包含在 OpenClaw 中 | providers: volcengine, volcengine-plan; contracts: speechProviders |
| [voyage](/zh-CN/plugins/reference/voyage) | 添加记忆嵌入提供商支持。 | `@openclaw/voyage-provider`<br />包含在 OpenClaw 中 | contracts: memoryEmbeddingProviders |
| [vydra](/zh-CN/plugins/reference/vydra) | 为 OpenClaw 添加 Vydra 模型提供商支持。 | `@openclaw/vydra-provider`<br />包含在 OpenClaw 中 | providers: vydra; contracts: imageGenerationProviders, speechProviders, videoGenerationProviders |
| [web-readability](/zh-CN/plugins/reference/web-readability) | 从本地 HTML Web 获取响应中提取可读的文章内容。 | `@openclaw/web-readability-plugin`<br />包含在 OpenClaw 中 | contracts: webContentExtractors |
| [webhooks](/zh-CN/plugins/reference/webhooks) | 经过身份验证的入站 Webhook将外部自动化绑定到 OpenClaw TaskFlows。 | `@openclaw/webhooks`<br />包含在 OpenClaw 中 | plugin |
| [xai](/zh-CN/plugins/reference/xai) | 为 OpenClaw 添加 xAI 模型提供商支持。 | `@openclaw/xai-plugin`<br />包含在 OpenClaw 中 | providers: xai; contracts: imageGenerationProviders, mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders, tools, videoGenerationProviders, webSearchProviders |
| [xiaomi](/zh-CN/plugins/reference/xiaomi) | 为 OpenClaw 添加 Xiaomi 模型提供商支持。 | `@openclaw/xiaomi-provider`<br />包含在 OpenClaw 中 | providers: xiaomi; contracts: speechProviders |
| [zai](/zh-CN/plugins/reference/zai) | 为 OpenClaw 添加 Z.AI 模型提供商支持。 | `@openclaw/zai-provider`<br />包含在 OpenClaw 中 | providers: zai; contracts: mediaUnderstandingProviders |
| [vydra](/zh-CN/plugins/reference/vydra) | 为 OpenClaw 添加 Vydra 模型提供商支持。 | `@openclaw/vydra-provider`<br />随 OpenClaw 内置 | providers: vydra; contracts: imageGenerationProviders, speechProviders, videoGenerationProviders |
| [web-readability](/zh-CN/plugins/reference/web-readability) | 从本地 HTML 网页抓取响应中提取可读的文章内容。 | `@openclaw/web-readability-plugin`<br />随 OpenClaw 内置 | contracts: webContentExtractors |
| [webhooks](/zh-CN/plugins/reference/webhooks) | 经过身份验证的入站 Webhook将外部自动化绑定到 OpenClaw TaskFlows。 | `@openclaw/webhooks`<br />随 OpenClaw 内置 | 插件 |
| [xai](/zh-CN/plugins/reference/xai) | 为 OpenClaw 添加 xAI 模型提供商支持。 | `@openclaw/xai-plugin`<br />随 OpenClaw 内置 | providers: xai; contracts: imageGenerationProviders, mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders, tools, videoGenerationProviders, webSearchProviders |
| [xiaomi](/zh-CN/plugins/reference/xiaomi) | 为 OpenClaw 添加 Xiaomi 模型提供商支持。 | `@openclaw/xiaomi-provider`<br />随 OpenClaw 内置 | providers: xiaomi; contracts: speechProviders |
| [zai](/zh-CN/plugins/reference/zai) | 为 OpenClaw 添加 Z.AI 模型提供商支持。 | `@openclaw/zai-provider`<br />随 OpenClaw 内置 | providers: zai; contracts: mediaUnderstandingProviders |
## 官方外部包
## 官方外部软件
| 插件 | 描述 | 分发 | 表面 |
| 插件 | 描述 | 分发方式 | Surface |
| ------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------- |
| [acpx](/zh-CN/plugins/reference/acpx) | 嵌入式 ACP 运行时后端,包含插件自有的会话和传输管理。 | `@openclaw/acpx`<br />ClawHub + npm | Skills |
| [bluebubbles](/zh-CN/plugins/reference/bluebubbles) | 添加用于发送和接收 OpenClaw 消息的 BlueBubbles 渠道表面。 | `@openclaw/bluebubbles`<br />ClawHub + npm | channels: bluebubbles |
| [brave](/zh-CN/plugins/reference/brave) | 添加 Web 搜索提供商支持。 | `@openclaw/brave-plugin`<br />ClawHub + npm | contracts: webSearchProviders |
| [codex](/zh-CN/plugins/reference/codex) | Codex app-server harness 和由 Codex 管理的 GPT 模型目录。 | `@openclaw/codex`<br />ClawHub + npm | providers: codex; contracts: mediaUnderstandingProviders, migrationProviders |
| [diagnostics-otel](/zh-CN/plugins/reference/diagnostics-otel) | OpenClaw 诊断 OpenTelemetry exporter。 | `@openclaw/diagnostics-otel`<br />ClawHub: `clawhub:@openclaw/diagnostics-otel`; npm | plugin |
| [diagnostics-prometheus](/zh-CN/plugins/reference/diagnostics-prometheus) | OpenClaw 诊断 Prometheus exporter。 | `@openclaw/diagnostics-prometheus`<br />ClawHub: `clawhub:@openclaw/diagnostics-prometheus`; npm | plugin |
| [diffs](/zh-CN/plugins/reference/diffs) | 面向智能体的只读 diff 查看器和文件渲染器。 | `@openclaw/diffs`<br />ClawHub + npm | contracts: tools; Skills |
| [discord](/zh-CN/plugins/reference/discord) | 添加用于发送和接收 OpenClaw 消息的 Discord 渠道表面。 | `@openclaw/discord`<br />ClawHub + npm | channels: discord |
| [feishu](/zh-CN/plugins/reference/feishu) | 添加用于发送和接收 OpenClaw 消息的 Feishu 渠道表面。 | `@openclaw/feishu`<br />ClawHub + npm | channels: feishu; contracts: tools; Skills |
| [google-meet](/zh-CN/plugins/reference/google-meet) | 通过 Chrome 或 Twilio 传输协议加入 Google Meet 通话。 | `@openclaw/google-meet`<br />ClawHub + npm | contracts: tools |
| [googlechat](/zh-CN/plugins/reference/googlechat) | 添加用于发送和接收 OpenClaw 消息的 Google Chat 渠道表面。 | `@openclaw/googlechat`<br />ClawHub + npm | channels: googlechat |
| [line](/zh-CN/plugins/reference/line) | 添加用于发送和接收 OpenClaw 消息的 LINE 渠道表面。 | `@openclaw/line`<br />ClawHub + npm | channels: line |
| [lobster](/zh-CN/plugins/reference/lobster) | 带有可恢复审批的类型化工作流工具。 | `@openclaw/lobster`<br />ClawHub + npm | contracts: tools |
| [matrix](/zh-CN/plugins/reference/matrix) | 添加用于发送和接收 OpenClaw 消息的 Matrix 渠道表面。 | `@openclaw/matrix`<br />ClawHub + npm | channels: matrix |
| [mattermost](/zh-CN/plugins/reference/mattermost) | 添加用于发送和接收 OpenClaw 消息的 Mattermost 渠道表面。 | `@openclaw/mattermost`<br />ClawHub + npm | channels: mattermost |
| [memory-lancedb](/zh-CN/plugins/reference/memory-lancedb) | 添加可由智能体调用的工具。 | `@openclaw/memory-lancedb`<br />ClawHub + npm | contracts: tools |
| [msteams](/zh-CN/plugins/reference/msteams) | 添加用于发送和接收 OpenClaw 消息的 Microsoft Teams 渠道表面。 | `@openclaw/msteams`<br />ClawHub + npm | channels: msteams |
| [nextcloud-talk](/zh-CN/plugins/reference/nextcloud-talk) | 添加用于发送和接收 OpenClaw 消息的 Nextcloud Talk 渠道表面。 | `@openclaw/nextcloud-talk`<br />ClawHub + npm | channels: nextcloud-talk |
| [nostr](/zh-CN/plugins/reference/nostr) | 添加用于发送和接收 OpenClaw 消息的 Nostr 渠道表面。 | `@openclaw/nostr`<br />ClawHub + npm | channels: nostr |
| [qqbot](/zh-CN/plugins/reference/qqbot) | 添加用于发送和接收 OpenClaw 消息的 QQ Bot 渠道表面。 | `@openclaw/qqbot`<br />ClawHub + npm | channels: qqbot; contracts: tools; Skills |
| [synology-chat](/zh-CN/plugins/reference/synology-chat) | 添加用于发送和接收 OpenClaw 消息的 Synology Chat 渠道表面。 | `@openclaw/synology-chat`<br />ClawHub + npm | channels: synology-chat |
| [tlon](/zh-CN/plugins/reference/tlon) | 添加用于发送和接收 OpenClaw 消息的 Tlon 渠道表面。 | `@openclaw/tlon`<br />ClawHub + npm | channels: tlon; contracts: tools; Skills |
| [twitch](/zh-CN/plugins/reference/twitch) | 添加用于发送和接收 OpenClaw 消息的 Twitch 渠道表面。 | `@openclaw/twitch`<br />ClawHub + npm | channels: twitch |
| [voice-call](/zh-CN/plugins/reference/voice-call) | 添加可由智能体调用的工具。 | `@openclaw/voice-call`<br />ClawHub + npm | contracts: tools |
| [whatsapp](/zh-CN/plugins/reference/whatsapp) | 添加用于发送和接收 OpenClaw 消息的 WhatsApp 渠道表面。 | `@openclaw/whatsapp`<br />ClawHub + npm | channels: whatsapp |
| [zalo](/zh-CN/plugins/reference/zalo) | 添加用于发送和接收 OpenClaw 消息的 Zalo 渠道表面。 | `@openclaw/zalo`<br />ClawHub + npm | channels: zalo |
| [zalouser](/zh-CN/plugins/reference/zalouser) | 添加用于发送和接收 OpenClaw 消息的 Zalo Personal 渠道表面。 | `@openclaw/zalouser`<br />ClawHub + npm | channels: zalouser; contracts: tools |
| [bluebubbles](/zh-CN/plugins/reference/bluebubbles) | 添加 BlueBubbles 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/bluebubbles`<br />ClawHub + npm | channels: bluebubbles |
| [brave](/zh-CN/plugins/reference/brave) | 添加 Web 搜索提供商支持。 | `@openclaw/brave-plugin`<br />ClawHub + npm | contracts: webSearchProviders |
| [codex](/zh-CN/plugins/reference/codex) | Codex 应用服务器 harness以及由 Codex 管理的 GPT 模型目录。 | `@openclaw/codex`<br />ClawHub + npm | providers: codex; contracts: mediaUnderstandingProviders, migrationProviders |
| [diagnostics-otel](/zh-CN/plugins/reference/diagnostics-otel) | OpenClaw diagnostics OpenTelemetry 导出器。 | `@openclaw/diagnostics-otel`<br />ClawHub: `clawhub:@openclaw/diagnostics-otel`; npm | plugin |
| [diagnostics-prometheus](/zh-CN/plugins/reference/diagnostics-prometheus) | OpenClaw diagnostics Prometheus 导出器。 | `@openclaw/diagnostics-prometheus`<br />ClawHub: `clawhub:@openclaw/diagnostics-prometheus`; npm | plugin |
| [diffs](/zh-CN/plugins/reference/diffs) | 面向智能体的只读差异查看器和文件渲染器。 | `@openclaw/diffs`<br />ClawHub + npm | contracts: tools; skills |
| [discord](/zh-CN/plugins/reference/discord) | 添加 Discord 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/discord`<br />ClawHub + npm | channels: discord |
| [feishu](/zh-CN/plugins/reference/feishu) | 添加 Feishu 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/feishu`<br />ClawHub + npm | channels: feishu; contracts: tools; skills |
| [google-meet](/zh-CN/plugins/reference/google-meet) | 通过 Chrome 或 Twilio 传输协议加入 Google Meet 通话。 | `@openclaw/google-meet`<br />ClawHub + npm | contracts: tools |
| [lobster](/zh-CN/plugins/reference/lobster) | 带有可恢复审批的类型化工作流工具。 | `@openclaw/lobster`<br />ClawHub + npm | contracts: tools |
| [matrix](/zh-CN/plugins/reference/matrix) | 添加 Matrix 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/matrix`<br />ClawHub + npm | channels: matrix |
| [mattermost](/zh-CN/plugins/reference/mattermost) | 添加 Mattermost 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/mattermost`<br />ClawHub + npm | channels: mattermost |
| [memory-lancedb](/zh-CN/plugins/reference/memory-lancedb) | 添加智能体可调用的工具。 | `@openclaw/memory-lancedb`<br />ClawHub + npm | contracts: tools |
| [msteams](/zh-CN/plugins/reference/msteams) | 添加 Microsoft Teams 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/msteams`<br />ClawHub + npm | channels: msteams |
| [nextcloud-talk](/zh-CN/plugins/reference/nextcloud-talk) | 添加 Nextcloud Talk 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/nextcloud-talk`<br />ClawHub + npm | channels: nextcloud-talk |
| [nostr](/zh-CN/plugins/reference/nostr) | 添加 Nostr 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/nostr`<br />ClawHub + npm | channels: nostr |
| [qqbot](/zh-CN/plugins/reference/qqbot) | 添加 QQ Bot 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/qqbot`<br />ClawHub + npm | channels: qqbot; contracts: tools; skills |
| [synology-chat](/zh-CN/plugins/reference/synology-chat) | 添加 Synology Chat 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/synology-chat`<br />ClawHub + npm | channels: synology-chat |
| [tlon](/zh-CN/plugins/reference/tlon) | 添加 Tlon 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/tlon`<br />ClawHub + npm | channels: tlon; contracts: tools; skills |
| [twitch](/zh-CN/plugins/reference/twitch) | 添加 Twitch 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/twitch`<br />ClawHub + npm | channels: twitch |
| [voice-call](/zh-CN/plugins/reference/voice-call) | 添加智能体可调用的工具。 | `@openclaw/voice-call`<br />ClawHub + npm | contracts: tools |
| [whatsapp](/zh-CN/plugins/reference/whatsapp) | 添加 WhatsApp 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/whatsapp`<br />ClawHub + npm | channels: whatsapp |
| [zalo](/zh-CN/plugins/reference/zalo) | 添加 Zalo 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/zalo`<br />ClawHub + npm | channels: zalo |
| [zalouser](/zh-CN/plugins/reference/zalouser) | 添加 Zalo Personal 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/zalouser`<br />ClawHub + npm | channels: zalouser; contracts: tools |
## 仅源码检出
| 插件 | 描述 | 分发 | 表面 |
| ------------------------------------------- | ------------------------------------------------------------------------ | ------------------------------------------------ | -------------------- |
| [qa-channel](/zh-CN/plugins/reference/qa-channel) | 添加用于发送和接收 OpenClaw 消息的 QA Channel 表面。 | `@openclaw/qa-channel`<br />仅源码检出 | channels: qa-channel |
| [qa-lab](/zh-CN/plugins/reference/qa-lab) | OpenClaw QA lab 插件,带有私有调试器 UI 和场景运行器。 | `@openclaw/qa-lab`<br />仅源码检出 | plugin |
| [qa-matrix](/zh-CN/plugins/reference/qa-matrix) | Matrix QA 传输运行器和底。 | `@openclaw/qa-matrix`<br />仅源码检出 | plugin |
| 插件 | 描述 | 分发方式 | Surface |
| ------------------------------------------- | -------------------------------------------------------------------- | ------------------------------------------------ | -------------------- |
| [qa-channel](/zh-CN/plugins/reference/qa-channel) | 添加 QA Channel 界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/qa-channel`<br />仅源码检出 | channels: qa-channel |
| [qa-lab](/zh-CN/plugins/reference/qa-lab) | OpenClaw QA 实验室插件,带有私有调试器 UI 和场景运行器。 | `@openclaw/qa-lab`<br />仅源码检出 | plugin |
| [qa-matrix](/zh-CN/plugins/reference/qa-matrix) | Matrix QA 传输运行器和底层执行环境 | `@openclaw/qa-matrix`<br />仅源码检出 | plugin |

View File

@ -1,127 +1,127 @@
---
read_when:
- 你需要一个针对特定 OpenClaw 插件的参考页面
- 你正在审核插件文档覆盖情况
- 你需要某个特定 OpenClaw 插件的参考页面
- 你正在审计插件文档覆盖范围
summary: OpenClaw 插件参考页面的生成索引
title: 插件参考
x-i18n:
generated_at: "2026-05-02T20:49:23Z"
generated_at: "2026-05-02T21:41:29Z"
model: gpt-5.5
provider: openai
source_hash: 05c0eb24148019d7dd4565a120a581c1ed9652b7321fd8bb5fb2a971684631c3
source_hash: e5bd3e3b2b77b8d8b636fa33195d294c61191cea1af16d6c0e2058046b37f5f7
source_path: plugins/reference.md
workflow: 16
---
# 插件参考
此页面 `extensions/*/package.json`
`openclaw.plugin.json` 生成。使用以下命令重新生成:
此页面根据 `extensions/*/package.json`
`openclaw.plugin.json` 生成。使用以下命令重新生成
```bash
pnpm plugins:inventory:gen
```
| 插件 | 描述 | 分发 | 接面 |
| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [acpx](/zh-CN/plugins/reference/acpx) | 嵌入式 ACP 运行时后端,包含插件自有的会话和传输管理。 | `@openclaw/acpx`<br />ClawHub + npm | Skills |
| [alibaba](/zh-CN/plugins/reference/alibaba) | 添加视频生成提供商支持。 | `@openclaw/alibaba-provider`<br />内置于 OpenClaw | contracts: videoGenerationProviders |
| [amazon-bedrock](/zh-CN/plugins/reference/amazon-bedrock) | 为 OpenClaw 添加 Amazon Bedrock 模型提供商支持。 | `@openclaw/amazon-bedrock-provider`<br />内置于 OpenClaw | providers: amazon-bedrock; contracts: memoryEmbeddingProviders |
| [amazon-bedrock-mantle](/zh-CN/plugins/reference/amazon-bedrock-mantle) | 为 OpenClaw 添加 Amazon Bedrock Mantle 模型提供商支持。 | `@openclaw/amazon-bedrock-mantle-provider`<br />内置于 OpenClaw | providers: amazon-bedrock-mantle |
| [anthropic](/zh-CN/plugins/reference/anthropic) | 为 OpenClaw 添加 Anthropic 模型提供商支持。 | `@openclaw/anthropic-provider`<br />内置于 OpenClaw | providers: anthropic; contracts: mediaUnderstandingProviders |
| [anthropic-vertex](/zh-CN/plugins/reference/anthropic-vertex) | 为 OpenClaw 添加 Anthropic Vertex 模型提供商支持。 | `@openclaw/anthropic-vertex-provider`<br />内置于 OpenClaw | providers: anthropic-vertex |
| [arcee](/zh-CN/plugins/reference/arcee) | 为 OpenClaw 添加 Arcee 模型提供商支持。 | `@openclaw/arcee-provider`<br />内置于 OpenClaw | providers: arcee |
| [azure-speech](/zh-CN/plugins/reference/azure-speech) | Azure AI Speech 文本转语音MP3、原生 Ogg/Opus 语音消息、PCM 电话音频)。 | `@openclaw/azure-speech`<br />内置于 OpenClaw | contracts: speechProviders |
| [bluebubbles](/zh-CN/plugins/reference/bluebubbles) | 添加 BlueBubbles 渠道接入面,用于发送和接收 OpenClaw 消息。 | `@openclaw/bluebubbles`<br />ClawHub + npm | channels: bluebubbles |
| [bonjour](/zh-CN/plugins/reference/bonjour) | 通过 Bonjour/mDNS 广播本地 OpenClaw Gateway 网关。 | `@openclaw/bonjour`<br />内置于 OpenClaw | plugin |
| [brave](/zh-CN/plugins/reference/brave) | 添加 Web 搜索提供商支持。 | `@openclaw/brave-plugin`<br />ClawHub + npm | contracts: webSearchProviders |
| [browser](/zh-CN/plugins/reference/browser) | 添加可由智能体调用的工具。 | `@openclaw/browser-plugin`<br />内置于 OpenClaw | contracts: tools; Skills |
| [byteplus](/zh-CN/plugins/reference/byteplus) | 为 OpenClaw 添加 BytePlus、BytePlus Plan 模型提供商支持。 | `@openclaw/byteplus-provider`<br />内置于 OpenClaw | providers: byteplus, byteplus-plan; contracts: videoGenerationProviders |
| [cerebras](/zh-CN/plugins/reference/cerebras) | 为 OpenClaw 添加 Cerebras 模型提供商支持。 | `@openclaw/cerebras-provider`<br />内置于 OpenClaw | providers: cerebras |
| [chutes](/zh-CN/plugins/reference/chutes) | 为 OpenClaw 添加 Chutes 模型提供商支持。 | `@openclaw/chutes-provider`<br />内置于 OpenClaw | providers: chutes |
| [cloudflare-ai-gateway](/zh-CN/plugins/reference/cloudflare-ai-gateway) | 为 OpenClaw 添加 Cloudflare AI Gateway 模型提供商支持。 | `@openclaw/cloudflare-ai-gateway-provider`<br />内置于 OpenClaw | providers: cloudflare-ai-gateway |
| [codex](/zh-CN/plugins/reference/codex) | Codex 应用服务器 harness,以及 Codex 管理的 GPT 模型目录。 | `@openclaw/codex`<br />ClawHub + npm | providers: codex; contracts: mediaUnderstandingProviders, migrationProviders |
| [comfy](/zh-CN/plugins/reference/comfy) | 为 OpenClaw 添加 ComfyUI 模型提供商支持。 | `@openclaw/comfy-provider`<br />内置于 OpenClaw | providers: comfy; contracts: imageGenerationProviders, musicGenerationProviders, videoGenerationProviders |
| 插件 | 描述 | 分发 | 接面 |
| ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [acpx](/zh-CN/plugins/reference/acpx) | 内嵌 ACP 运行时后端,由插件负责会话和传输管理。 | `@openclaw/acpx`<br />包含在 OpenClaw 中 | Skills |
| [alibaba](/zh-CN/plugins/reference/alibaba) | 添加视频生成提供商支持。 | `@openclaw/alibaba-provider`<br />包含在 OpenClaw 中 | 契约videoGenerationProviders |
| [amazon-bedrock](/zh-CN/plugins/reference/amazon-bedrock) | 为 OpenClaw 添加 Amazon Bedrock 模型提供商支持。 | `@openclaw/amazon-bedrock-provider`<br />包含在 OpenClaw 中 | 提供商amazon-bedrock契约memoryEmbeddingProviders |
| [amazon-bedrock-mantle](/zh-CN/plugins/reference/amazon-bedrock-mantle) | 为 OpenClaw 添加 Amazon Bedrock Mantle 模型提供商支持。 | `@openclaw/amazon-bedrock-mantle-provider`<br />包含在 OpenClaw 中 | 提供商amazon-bedrock-mantle |
| [anthropic](/zh-CN/plugins/reference/anthropic) | 为 OpenClaw 添加 Anthropic 模型提供商支持。 | `@openclaw/anthropic-provider`<br />包含在 OpenClaw 中 | 提供商anthropic契约mediaUnderstandingProviders |
| [anthropic-vertex](/zh-CN/plugins/reference/anthropic-vertex) | 为 OpenClaw 添加 Anthropic Vertex 模型提供商支持。 | `@openclaw/anthropic-vertex-provider`<br />包含在 OpenClaw 中 | 提供商anthropic-vertex |
| [arcee](/zh-CN/plugins/reference/arcee) | 为 OpenClaw 添加 Arcee 模型提供商支持。 | `@openclaw/arcee-provider`<br />包含在 OpenClaw 中 | 提供商arcee |
| [azure-speech](/zh-CN/plugins/reference/azure-speech) | Azure AI Speech 文本转语音MP3、原生 Ogg/Opus 语音消息、PCM 电话音频)。 | `@openclaw/azure-speech`<br />包含在 OpenClaw 中 | 契约speechProviders |
| [bluebubbles](/zh-CN/plugins/reference/bluebubbles) | 添加 BlueBubbles 渠道接口面,用于发送和接收 OpenClaw 消息。 | `@openclaw/bluebubbles`<br />ClawHub + npm | 渠道bluebubbles |
| [bonjour](/zh-CN/plugins/reference/bonjour) | 通过 Bonjour/mDNS 发布本地 OpenClaw Gateway 网关。 | `@openclaw/bonjour`<br />包含在 OpenClaw 中 | 插件 |
| [brave](/zh-CN/plugins/reference/brave) | 添加 Web 搜索提供商支持。 | `@openclaw/brave-plugin`<br />ClawHub + npm | 契约webSearchProviders |
| [browser](/zh-CN/plugins/reference/browser) | 添加智能体调用的工具。 | `@openclaw/browser-plugin`<br />包含在 OpenClaw 中 | 契约toolsSkills |
| [byteplus](/zh-CN/plugins/reference/byteplus) | 为 OpenClaw 添加 BytePlus、BytePlus Plan 模型提供商支持。 | `@openclaw/byteplus-provider`<br />包含在 OpenClaw 中 | 提供商byteplus、byteplus-plan契约videoGenerationProviders |
| [cerebras](/zh-CN/plugins/reference/cerebras) | 为 OpenClaw 添加 Cerebras 模型提供商支持。 | `@openclaw/cerebras-provider`<br />包含在 OpenClaw 中 | 提供商cerebras |
| [chutes](/zh-CN/plugins/reference/chutes) | 为 OpenClaw 添加 Chutes 模型提供商支持。 | `@openclaw/chutes-provider`<br />包含在 OpenClaw 中 | 提供商chutes |
| [cloudflare-ai-gateway](/zh-CN/plugins/reference/cloudflare-ai-gateway) | 为 OpenClaw 添加 Cloudflare AI Gateway 网关模型提供商支持。 | `@openclaw/cloudflare-ai-gateway-provider`<br />包含在 OpenClaw 中 | 提供商cloudflare-ai-gateway |
| [codex](/zh-CN/plugins/reference/codex) | Codex 应用服务器 harness 和由 Codex 管理的 GPT 模型目录。 | `@openclaw/codex`<br />ClawHub + npm | 提供商codex契约mediaUnderstandingProviders、migrationProviders |
| [comfy](/zh-CN/plugins/reference/comfy) | 为 OpenClaw 添加 ComfyUI 模型提供商支持。 | `@openclaw/comfy-provider`<br />包含在 OpenClaw 中 | 提供商comfy契约imageGenerationProviders、musicGenerationProviders、videoGenerationProviders |
| [copilot-proxy](/zh-CN/plugins/reference/copilot-proxy) | 为 OpenClaw 添加 Copilot Proxy 模型提供商支持。 | `@openclaw/copilot-proxy`<br />包含在 OpenClaw 中 | providers: copilot-proxy |
| [deepgram](/zh-CN/plugins/reference/deepgram) | 添加媒体理解提供商支持。添加实时转录提供商支持。 | `@openclaw/deepgram-provider`<br />包含在 OpenClaw 中 | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders |
| [deepinfra](/zh-CN/plugins/reference/deepinfra) | 为 OpenClaw 添加 DeepInfra 模型提供商支持。 | `@openclaw/deepinfra-provider`<br />包含在 OpenClaw 中 | providers: deepinfra; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, speechProviders, videoGenerationProviders |
| [deepseek](/zh-CN/plugins/reference/deepseek) | 为 OpenClaw 添加 DeepSeek 模型提供商支持。 | `@openclaw/deepseek-provider`<br />包含在 OpenClaw 中 | providers: deepseek |
| [diagnostics-otel](/zh-CN/plugins/reference/diagnostics-otel) | OpenClaw 诊断 OpenTelemetry 导出器。 | `@openclaw/diagnostics-otel`<br />ClawHub: `clawhub:@openclaw/diagnostics-otel`; npm | plugin |
| [diagnostics-prometheus](/zh-CN/plugins/reference/diagnostics-prometheus) | OpenClaw 诊断 Prometheus 导出器。 | `@openclaw/diagnostics-prometheus`<br />ClawHub: `clawhub:@openclaw/diagnostics-prometheus`; npm | plugin |
| [diagnostics-otel](/zh-CN/plugins/reference/diagnostics-otel) | OpenClaw 诊断 OpenTelemetry exporter。 | `@openclaw/diagnostics-otel`<br />ClawHub: `clawhub:@openclaw/diagnostics-otel`; npm | plugin |
| [diagnostics-prometheus](/zh-CN/plugins/reference/diagnostics-prometheus) | OpenClaw 诊断 Prometheus exporter。 | `@openclaw/diagnostics-prometheus`<br />ClawHub: `clawhub:@openclaw/diagnostics-prometheus`; npm | plugin |
| [diffs](/zh-CN/plugins/reference/diffs) | 面向智能体的只读 diff 查看器和文件渲染器。 | `@openclaw/diffs`<br />ClawHub + npm | contracts: tools; skills |
| [discord](/zh-CN/plugins/reference/discord) | 添加 Discord 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/discord`<br />ClawHub + npm | channels: discord |
| [document-extract](/zh-CN/plugins/reference/document-extract) | 从本地文档附件中提取文本和备用页面图像。 | `@openclaw/document-extract-plugin`<br />包含在 OpenClaw 中 | contracts: documentExtractors |
| [duckduckgo](/zh-CN/plugins/reference/duckduckgo) | 添加 Web 搜索提供商支持。 | `@openclaw/duckduckgo-plugin`<br />包含在 OpenClaw 中 | contracts: webSearchProviders |
| [duckduckgo](/zh-CN/plugins/reference/duckduckgo) | 添加网页搜索提供商支持。 | `@openclaw/duckduckgo-plugin`<br />包含在 OpenClaw 中 | contracts: webSearchProviders |
| [elevenlabs](/zh-CN/plugins/reference/elevenlabs) | 添加媒体理解提供商支持。添加实时转录提供商支持。添加文本转语音提供商支持。 | `@openclaw/elevenlabs-speech`<br />包含在 OpenClaw 中 | contracts: mediaUnderstandingProviders, realtimeTranscriptionProviders, speechProviders |
| [exa](/zh-CN/plugins/reference/exa) | 添加 Web 搜索提供商支持。 | `@openclaw/exa-plugin`<br />包含在 OpenClaw 中 | contracts: webSearchProviders |
| [exa](/zh-CN/plugins/reference/exa) | 添加网页搜索提供商支持。 | `@openclaw/exa-plugin`<br />包含在 OpenClaw 中 | contracts: webSearchProviders |
| [fal](/zh-CN/plugins/reference/fal) | 为 OpenClaw 添加 fal 模型提供商支持。 | `@openclaw/fal-provider`<br />包含在 OpenClaw 中 | providers: fal; contracts: imageGenerationProviders, videoGenerationProviders |
| [feishu](/zh-CN/plugins/reference/feishu) | 添加 Feishu 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/feishu`<br />ClawHub + npm | channels: feishu; contracts: tools; skills |
| [file-transfer](/zh-CN/plugins/reference/file-transfer) | 通过专用节点命令在配对节点上获取、列出和写入文件。通过对最大 16 MB 的二进制文件在 node.invoke 上使用 base64绕过 bash stdout 截断。 | `@openclaw/file-transfer`<br />包含在 OpenClaw 中 | contracts: tools |
| [firecrawl](/zh-CN/plugins/reference/firecrawl) | 添加智能体可调用的工具。添加 Web 获取提供商支持。添加 Web 搜索提供商支持。 | `@openclaw/firecrawl-plugin`<br />包含在 OpenClaw 中 | contracts: tools, webFetchProviders, webSearchProviders |
| [file-transfer](/zh-CN/plugins/reference/file-transfer) | 通过专用节点命令在配对节点上获取、列出和写入文件。通过对最大 16 MB 的二进制文件使用基于 `node.invoke``base64`,绕过 `bash stdout` 截断。 | `@openclaw/file-transfer`<br />包含在 OpenClaw 中 | contracts: tools |
| [firecrawl](/zh-CN/plugins/reference/firecrawl) | 添加智能体可调用的工具。添加网页抓取提供商支持。添加网页搜索提供商支持。 | `@openclaw/firecrawl-plugin`<br />包含在 OpenClaw 中 | contracts: tools, webFetchProviders, webSearchProviders |
| [fireworks](/zh-CN/plugins/reference/fireworks) | 为 OpenClaw 添加 Fireworks 模型提供商支持。 | `@openclaw/fireworks-provider`<br />包含在 OpenClaw 中 | providers: fireworks |
| [github-copilot](/zh-CN/plugins/reference/github-copilot) | 为 OpenClaw 添加 GitHub Copilot 模型提供商支持。 | `@openclaw/github-copilot-provider`<br />包含在 OpenClaw 中 | providers: github-copilot; contracts: memoryEmbeddingProviders |
| [google](/zh-CN/plugins/reference/google) | 为 OpenClaw 添加 Google、Google Gemini CLI、Google Vertex 模型提供商支持。 | `@openclaw/google-plugin`<br />包含在 OpenClaw 中 | providers: google, google-gemini-cli, google-vertex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, musicGenerationProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders, webSearchProviders |
| [google-meet](/zh-CN/plugins/reference/google-meet) | 通过 Chrome 或 Twilio 传输协议加入 Google Meet 通话。 | `@openclaw/google-meet`<br />ClawHub + npm | contracts: tools |
| [googlechat](/zh-CN/plugins/reference/googlechat) | 添加 Google Chat 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/googlechat`<br />ClawHub + npm | channels: googlechat |
| [googlechat](/zh-CN/plugins/reference/googlechat) | 添加用于发送和接收 OpenClaw 消息的 Google Chat 渠道接入面。 | `@openclaw/googlechat`<br />内置于 OpenClaw | channels: googlechat |
| [gradium](/zh-CN/plugins/reference/gradium) | 添加文本转语音提供商支持。 | `@openclaw/gradium-speech`<br />内置于 OpenClaw | contracts: speechProviders |
| [groq](/zh-CN/plugins/reference/groq) | 为 OpenClaw 添加 Groq 模型提供商支持。 | `@openclaw/groq-provider`<br />内置于 OpenClaw | providers: groq; contracts: mediaUnderstandingProviders |
| [huggingface](/zh-CN/plugins/reference/huggingface) | 为 OpenClaw 添加 Hugging Face 模型提供商支持。 | `@openclaw/huggingface-provider`<br />内置于 OpenClaw | providers: huggingface |
| [imessage](/zh-CN/plugins/reference/imessage) | 添加 iMessage 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/imessage`<br />内置于 OpenClaw | channels: imessage |
| [imessage](/zh-CN/plugins/reference/imessage) | 添加用于发送和接收 OpenClaw 消息的 iMessage 渠道接入面。 | `@openclaw/imessage`<br />内置于 OpenClaw | channels: imessage |
| [inworld](/zh-CN/plugins/reference/inworld) | Inworld 流式文本转语音MP3、OGG_OPUS、PCM 电话音频)。 | `@openclaw/inworld-speech`<br />内置于 OpenClaw | contracts: speechProviders |
| [irc](/zh-CN/plugins/reference/irc) | 添加 IRC 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/irc`<br />内置于 OpenClaw | channels: irc |
| [irc](/zh-CN/plugins/reference/irc) | 添加用于发送和接收 OpenClaw 消息的 IRC 渠道接入面。 | `@openclaw/irc`<br />内置于 OpenClaw | channels: irc |
| [kilocode](/zh-CN/plugins/reference/kilocode) | 为 OpenClaw 添加 Kilocode 模型提供商支持。 | `@openclaw/kilocode-provider`<br />内置于 OpenClaw | providers: kilocode |
| [kimi](/zh-CN/plugins/reference/kimi) | 为 OpenClaw 添加 Kimi、Kimi Coding 模型提供商支持。 | `@openclaw/kimi-provider`<br />内置于 OpenClaw | providers: kimi, kimi-coding |
| [line](/zh-CN/plugins/reference/line) | 添加 LINE 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/line`<br />ClawHub + npm | channels: line |
| [line](/zh-CN/plugins/reference/line) | 添加用于发送和接收 OpenClaw 消息的 LINE 渠道接入面。 | `@openclaw/line`<br />内置于 OpenClaw | channels: line |
| [litellm](/zh-CN/plugins/reference/litellm) | 为 OpenClaw 添加 LiteLLM 模型提供商支持。 | `@openclaw/litellm-provider`<br />内置于 OpenClaw | providers: litellm; contracts: imageGenerationProviders |
| [llm-task](/zh-CN/plugins/reference/llm-task) | 通用的仅 JSON LLM 工具,可从工作流调用,用于结构化任务。 | `@openclaw/llm-task`<br />内置于 OpenClaw | contracts: tools |
| [llm-task](/zh-CN/plugins/reference/llm-task) | 可从工作流调用的通用纯 JSON LLM 工具,用于结构化任务。 | `@openclaw/llm-task`<br />内置于 OpenClaw | contracts: tools |
| [lmstudio](/zh-CN/plugins/reference/lmstudio) | 为 OpenClaw 添加 LM Studio 模型提供商支持。 | `@openclaw/lmstudio-provider`<br />内置于 OpenClaw | providers: lmstudio; contracts: memoryEmbeddingProviders |
| [lobster](/zh-CN/plugins/reference/lobster) | 带可恢复审批的类型化工作流工具。 | `@openclaw/lobster`<br />ClawHub + npm | contracts: tools |
| [matrix](/zh-CN/plugins/reference/matrix) | 添加 Matrix 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/matrix`<br />ClawHub + npm | channels: matrix |
| [mattermost](/zh-CN/plugins/reference/mattermost) | 添加 Mattermost 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/mattermost`<br />ClawHub + npm | channels: mattermost |
| [lobster](/zh-CN/plugins/reference/lobster) | 带可恢复审批的类型化工作流工具。 | `@openclaw/lobster`<br />ClawHub + npm | contracts: tools |
| [matrix](/zh-CN/plugins/reference/matrix) | 添加用于发送和接收 OpenClaw 消息的 Matrix 渠道接入面。 | `@openclaw/matrix`<br />ClawHub + npm | channels: matrix |
| [mattermost](/zh-CN/plugins/reference/mattermost) | 添加用于发送和接收 OpenClaw 消息的 Mattermost 渠道接入面。 | `@openclaw/mattermost`<br />ClawHub + npm | channels: mattermost |
| [memory-core](/zh-CN/plugins/reference/memory-core) | 添加记忆嵌入提供商支持。添加可由智能体调用的工具。 | `@openclaw/memory-core`<br />内置于 OpenClaw | contracts: memoryEmbeddingProviders, tools |
| [memory-lancedb](/zh-CN/plugins/reference/memory-lancedb) | 添加可由智能体调用的工具。 | `@openclaw/memory-lancedb`<br />ClawHub + npm | contracts: tools |
| [memory-wiki](/zh-CN/plugins/reference/memory-wiki) | 为 OpenClaw 提供持久化 wiki 编译器和 Obsidian 友好的知识库。 | `@openclaw/memory-wiki`<br />内置于 OpenClaw | contracts: tools; skills |
| [memory-wiki](/zh-CN/plugins/reference/memory-wiki) | 面向 OpenClaw 的持久化 wiki 编译器和 Obsidian 友好的知识库。 | `@openclaw/memory-wiki`<br />内置于 OpenClaw | contracts: tools; skills |
| [microsoft](/zh-CN/plugins/reference/microsoft) | 添加文本转语音提供商支持。 | `@openclaw/microsoft-speech`<br />内置于 OpenClaw | contracts: speechProviders |
| [microsoft-foundry](/zh-CN/plugins/reference/microsoft-foundry) | OpenClaw 添加 Microsoft Foundry 模型提供商支持。 | `@openclaw/microsoft-foundry`<br />OpenClaw 内置 | providers: microsoft-foundry |
| [migrate-claude](/zh-CN/plugins/reference/migrate-claude) | 将 Claude Code 和 Claude Desktop 指令、MCP 服务器、Skills 和安全配置导入 OpenClaw。 | `@openclaw/migrate-claude`<br />OpenClaw 内置 | contracts: migrationProviders |
| [migrate-hermes](/zh-CN/plugins/reference/migrate-hermes) | 将 Hermes 配置、记忆、Skills 和受支持的凭证导入 OpenClaw。 | `@openclaw/migrate-hermes`<br />OpenClaw 内置 | contracts: migrationProviders |
| [minimax](/zh-CN/plugins/reference/minimax) | OpenClaw 添加 MiniMax、MiniMax Portal 模型提供商支持。 | `@openclaw/minimax-provider`<br />OpenClaw 内置 | providers: minimax, minimax-portal; contracts: imageGenerationProviders, mediaUnderstandingProviders, musicGenerationProviders, speechProviders, videoGenerationProviders, webSearchProviders |
| [mistral](/zh-CN/plugins/reference/mistral) | OpenClaw 添加 Mistral 模型提供商支持。 | `@openclaw/mistral-provider`<br />OpenClaw 内置 | providers: mistral; contracts: mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders |
| [moonshot](/zh-CN/plugins/reference/moonshot) | OpenClaw 添加 Moonshot 模型提供商支持。 | `@openclaw/moonshot-provider`<br />OpenClaw 内置 | providers: moonshot; contracts: mediaUnderstandingProviders, webSearchProviders |
| [microsoft-foundry](/zh-CN/plugins/reference/microsoft-foundry) | OpenClaw 添加 Microsoft Foundry 模型提供商支持。 | `@openclaw/microsoft-foundry`<br />包含在 OpenClaw 中 | providers: microsoft-foundry |
| [migrate-claude](/zh-CN/plugins/reference/migrate-claude) | 将 Claude Code 和 Claude Desktop 指令、MCP 服务器、Skills 和安全配置导入 OpenClaw。 | `@openclaw/migrate-claude`<br />包含在 OpenClaw 中 | contracts: migrationProviders |
| [migrate-hermes](/zh-CN/plugins/reference/migrate-hermes) | 将 Hermes 配置、记忆、Skills 和受支持的凭证导入 OpenClaw。 | `@openclaw/migrate-hermes`<br />包含在 OpenClaw 中 | contracts: migrationProviders |
| [minimax](/zh-CN/plugins/reference/minimax) | OpenClaw 添加 MiniMax、MiniMax Portal 模型提供商支持。 | `@openclaw/minimax-provider`<br />包含在 OpenClaw 中 | providers: minimax, minimax-portal; contracts: imageGenerationProviders, mediaUnderstandingProviders, musicGenerationProviders, speechProviders, videoGenerationProviders, webSearchProviders |
| [mistral](/zh-CN/plugins/reference/mistral) | OpenClaw 添加 Mistral 模型提供商支持。 | `@openclaw/mistral-provider`<br />包含在 OpenClaw 中 | providers: mistral; contracts: mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders |
| [moonshot](/zh-CN/plugins/reference/moonshot) | OpenClaw 添加 Moonshot 模型提供商支持。 | `@openclaw/moonshot-provider`<br />包含在 OpenClaw 中 | providers: moonshot; contracts: mediaUnderstandingProviders, webSearchProviders |
| [msteams](/zh-CN/plugins/reference/msteams) | 添加 Microsoft Teams 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/msteams`<br />ClawHub + npm | channels: msteams |
| [nextcloud-talk](/zh-CN/plugins/reference/nextcloud-talk) | 添加 Nextcloud Talk 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/nextcloud-talk`<br />ClawHub + npm | channels: nextcloud-talk |
| [nostr](/zh-CN/plugins/reference/nostr) | 添加 Nostr 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/nostr`<br />ClawHub + npm | channels: nostr |
| [nvidia](/zh-CN/plugins/reference/nvidia) | OpenClaw 添加 NVIDIA 模型提供商支持。 | `@openclaw/nvidia-provider`<br />OpenClaw 内置 | providers: nvidia |
| [ollama](/zh-CN/plugins/reference/ollama) | OpenClaw 添加 Ollama 模型提供商支持。 | `@openclaw/ollama-provider`<br />OpenClaw 内置 | providers: ollama; contracts: memoryEmbeddingProviders, webSearchProviders |
| [open-prose](/zh-CN/plugins/reference/open-prose) | OpenProse VM skill 包,带有一个 /prose 斜杠命令。 | `@openclaw/open-prose`<br />OpenClaw 内置 | skills |
| [openai](/zh-CN/plugins/reference/openai) | OpenClaw 添加 OpenAI、OpenAI Codex 模型提供商支持。 | `@openclaw/openai-provider`<br />OpenClaw 内置 | providers: openai, openai-codex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders |
| [opencode](/zh-CN/plugins/reference/opencode) | OpenClaw 添加 OpenCode 模型提供商支持。 | `@openclaw/opencode-provider`<br />OpenClaw 内置 | providers: opencode; contracts: mediaUnderstandingProviders |
| [opencode-go](/zh-CN/plugins/reference/opencode-go) | OpenClaw 添加 OpenCode Go 模型提供商支持。 | `@openclaw/opencode-go-provider`<br />OpenClaw 内置 | providers: opencode-go; contracts: mediaUnderstandingProviders |
| [openrouter](/zh-CN/plugins/reference/openrouter) | OpenClaw 添加 OpenRouter 模型提供商支持。 | `@openclaw/openrouter-provider`<br />OpenClaw 内置 | providers: openrouter; contracts: imageGenerationProviders, mediaUnderstandingProviders, speechProviders, videoGenerationProviders |
| [openshell](/zh-CN/plugins/reference/openshell) | 由 OpenShell 驱动的沙箱后端,提供镜像的本地工作区和基于 SSH 的命令执行。 | `@openclaw/openshell-sandbox`<br />OpenClaw 内置 | plugin |
| [perplexity](/zh-CN/plugins/reference/perplexity) | 添加 Web 搜索提供商支持。 | `@openclaw/perplexity-plugin`<br />OpenClaw 内置 | contracts: webSearchProviders |
| [qa-channel](/zh-CN/plugins/reference/qa-channel) | 添加 QA Channel 界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/qa-channel`<br />源码检出 | channels: qa-channel |
| [qa-lab](/zh-CN/plugins/reference/qa-lab) | OpenClaw QA 实验室插件,带有私有调试器 UI 和场景运行器。 | `@openclaw/qa-lab`<br />源码检出 | plugin |
| [qa-matrix](/zh-CN/plugins/reference/qa-matrix) | Matrix QA 传输运行器和底层基底。 | `@openclaw/qa-matrix`<br />仅源码检出 | 插件 |
| [qianfan](/zh-CN/plugins/reference/qianfan) | 为 OpenClaw 添加 Qianfan 模型提供商支持。 | `@openclaw/qianfan-provider`<br />内置于 OpenClaw | 提供商:qianfan |
| [qqbot](/zh-CN/plugins/reference/qqbot) | 添加 QQ Bot 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/qqbot`<br />ClawHub + npm | 渠道qqbot契约工具Skills |
| [qwen](/zh-CN/plugins/reference/qwen) | 为 OpenClaw 添加 Qwen、Qwen Cloud、Model Studio、DashScope 模型提供商支持。 | `@openclaw/qwen-provider`<br />内置于 OpenClaw | 提供商qwen、qwencloud、modelstudio、dashscope契约mediaUnderstandingProviders、videoGenerationProviders |
| [runway](/zh-CN/plugins/reference/runway) | 添加视频生成提供商支持。 | `@openclaw/runway-provider`<br />内置于 OpenClaw | 契约:videoGenerationProviders |
| [searxng](/zh-CN/plugins/reference/searxng) | 添加 Web 搜索提供商支持。 | `@openclaw/searxng-plugin`<br />内置于 OpenClaw | 契约:webSearchProviders |
| [senseaudio](/zh-CN/plugins/reference/senseaudio) | 添加媒体理解提供商支持。 | `@openclaw/senseaudio-provider`<br />内置于 OpenClaw | 契约:mediaUnderstandingProviders |
| [sglang](/zh-CN/plugins/reference/sglang) | 为 OpenClaw 添加 SGLang 模型提供商支持。 | `@openclaw/sglang-provider`<br />内置于 OpenClaw | 提供商:sglang |
| [signal](/zh-CN/plugins/reference/signal) | 添加 Signal 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/signal`<br />内置于 OpenClaw | 渠道:signal |
| [skill-workshop](/zh-CN/plugins/reference/skill-workshop) | 将可重复的工作流捕获为工作区 Skills支持待审核、安全写入和技能提示词刷新。 | `@openclaw/skill-workshop`<br />内置于 OpenClaw | 契约:工具 |
| [slack](/zh-CN/plugins/reference/slack) | 添加 Slack 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/slack`<br />内置于 OpenClaw | 渠道:slack |
| [stepfun](/zh-CN/plugins/reference/stepfun) | 为 OpenClaw 添加 StepFun、StepFun Plan 模型提供商支持。 | `@openclaw/stepfun-provider`<br />内置于 OpenClaw | 提供商stepfun、stepfun-plan |
| [synology-chat](/zh-CN/plugins/reference/synology-chat) | 添加 Synology Chat 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/synology-chat`<br />ClawHub + npm | 渠道synology-chat |
| [synthetic](/zh-CN/plugins/reference/synthetic) | 为 OpenClaw 添加 Synthetic 模型提供商支持。 | `@openclaw/synthetic-provider`<br />内置于 OpenClaw | 提供商:synthetic |
| [tavily](/zh-CN/plugins/reference/tavily) | 添加智能体可调用工具。添加 Web 搜索提供商支持。 | `@openclaw/tavily-plugin`<br />内置于 OpenClaw | 契约工具、webSearchProvidersSkills |
| [telegram](/zh-CN/plugins/reference/telegram) | 添加 Telegram 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/telegram`<br />内置于 OpenClaw | 渠道:telegram |
| [tencent](/zh-CN/plugins/reference/tencent) | 为 OpenClaw 添加 Tencent TokenHub 模型提供商支持。 | `@openclaw/tencent-provider`<br />内置于 OpenClaw | 提供商:tencent-tokenhub |
| [tlon](/zh-CN/plugins/reference/tlon) | 添加 Tlon 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/tlon`<br />ClawHub + npm | 渠道tlon契约工具Skills |
| [together](/zh-CN/plugins/reference/together) | 为 OpenClaw 添加 Together 模型提供商支持。 | `@openclaw/together-provider`<br />内置于 OpenClaw | 提供商together契约videoGenerationProviders |
| [tokenjuice](/zh-CN/plugins/reference/tokenjuice) | 使用 tokenjuice reducer 压缩 exec 和 bash 工具结果。 | `@openclaw/tokenjuice`<br />内置于 OpenClaw | 契约:agentToolResultMiddleware |
| [nvidia](/zh-CN/plugins/reference/nvidia) | OpenClaw 添加 NVIDIA 模型提供商支持。 | `@openclaw/nvidia-provider`<br />包含在 OpenClaw 中 | providers: nvidia |
| [ollama](/zh-CN/plugins/reference/ollama) | OpenClaw 添加 Ollama 模型提供商支持。 | `@openclaw/ollama-provider`<br />包含在 OpenClaw 中 | providers: ollama; contracts: memoryEmbeddingProviders, webSearchProviders |
| [open-prose](/zh-CN/plugins/reference/open-prose) | OpenProse VM Skill 包,带有 `/prose` 斜杠命令。 | `@openclaw/open-prose`<br />包含在 OpenClaw 中 | skills |
| [openai](/zh-CN/plugins/reference/openai) | OpenClaw 添加 OpenAI、OpenAI Codex 模型提供商支持。 | `@openclaw/openai-provider`<br />包含在 OpenClaw 中 | providers: openai, openai-codex; contracts: imageGenerationProviders, mediaUnderstandingProviders, memoryEmbeddingProviders, realtimeTranscriptionProviders, realtimeVoiceProviders, speechProviders, videoGenerationProviders |
| [opencode](/zh-CN/plugins/reference/opencode) | OpenClaw 添加 OpenCode 模型提供商支持。 | `@openclaw/opencode-provider`<br />包含在 OpenClaw 中 | providers: opencode; contracts: mediaUnderstandingProviders |
| [opencode-go](/zh-CN/plugins/reference/opencode-go) | OpenClaw 添加 OpenCode Go 模型提供商支持。 | `@openclaw/opencode-go-provider`<br />包含在 OpenClaw 中 | providers: opencode-go; contracts: mediaUnderstandingProviders |
| [openrouter](/zh-CN/plugins/reference/openrouter) | OpenClaw 添加 OpenRouter 模型提供商支持。 | `@openclaw/openrouter-provider`<br />包含在 OpenClaw 中 | providers: openrouter; contracts: imageGenerationProviders, mediaUnderstandingProviders, speechProviders, videoGenerationProviders |
| [openshell](/zh-CN/plugins/reference/openshell) | 由 OpenShell 驱动的沙箱后端,支持镜像本地工作区和基于 SSH 的命令执行。 | `@openclaw/openshell-sandbox`<br />包含在 OpenClaw 中 | plugin |
| [perplexity](/zh-CN/plugins/reference/perplexity) | 添加 Web 搜索提供商支持。 | `@openclaw/perplexity-plugin`<br />包含在 OpenClaw 中 | contracts: webSearchProviders |
| [qa-channel](/zh-CN/plugins/reference/qa-channel) | 添加 QA Channel 界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/qa-channel`<br />仅源码检出 | channels: qa-channel |
| [qa-lab](/zh-CN/plugins/reference/qa-lab) | OpenClaw QA 实验室插件,带有私有调试器 UI 和场景运行器。 | `@openclaw/qa-lab`<br />仅源码检出 | plugin |
| [qa-matrix](/zh-CN/plugins/reference/qa-matrix) | Matrix QA 传输运行器和基底。 | `@openclaw/qa-matrix`<br />源码检出 | 插件 |
| [qianfan](/zh-CN/plugins/reference/qianfan) | 为 OpenClaw 添加千帆模型提供商支持。 | `@openclaw/qianfan-provider`<br />包含在 OpenClaw 中 | 提供商: qianfan |
| [qqbot](/zh-CN/plugins/reference/qqbot) | 添加 QQ Bot 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/qqbot`<br />ClawHub + npm | 渠道: qqbot; 契约: tools; Skills |
| [qwen](/zh-CN/plugins/reference/qwen) | 为 OpenClaw 添加 Qwen、Qwen Cloud、Model Studio、DashScope 模型提供商支持。 | `@openclaw/qwen-provider`<br />包含在 OpenClaw 中 | 提供商: qwen, qwencloud, modelstudio, dashscope; 契约: mediaUnderstandingProviders, videoGenerationProviders |
| [runway](/zh-CN/plugins/reference/runway) | 添加视频生成提供商支持。 | `@openclaw/runway-provider`<br />包含在 OpenClaw 中 | 契约: videoGenerationProviders |
| [searxng](/zh-CN/plugins/reference/searxng) | 添加 Web 搜索提供商支持。 | `@openclaw/searxng-plugin`<br />包含在 OpenClaw 中 | 契约: webSearchProviders |
| [senseaudio](/zh-CN/plugins/reference/senseaudio) | 添加媒体理解提供商支持。 | `@openclaw/senseaudio-provider`<br />包含在 OpenClaw 中 | 契约: mediaUnderstandingProviders |
| [sglang](/zh-CN/plugins/reference/sglang) | 为 OpenClaw 添加 SGLang 模型提供商支持。 | `@openclaw/sglang-provider`<br />包含在 OpenClaw 中 | 提供商: sglang |
| [signal](/zh-CN/plugins/reference/signal) | 添加 Signal 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/signal`<br />包含在 OpenClaw 中 | 渠道: signal |
| [skill-workshop](/zh-CN/plugins/reference/skill-workshop) | 将可重复工作流捕获为工作区 Skills包含待处理评审、安全写入和 skill 提示词刷新。 | `@openclaw/skill-workshop`<br />包含在 OpenClaw 中 | 契约: tools |
| [slack](/zh-CN/plugins/reference/slack) | 添加 Slack 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/slack`<br />包含在 OpenClaw 中 | 渠道: slack |
| [stepfun](/zh-CN/plugins/reference/stepfun) | 为 OpenClaw 添加 StepFun、StepFun Plan 模型提供商支持。 | `@openclaw/stepfun-provider`<br />包含在 OpenClaw 中 | 提供商: stepfun, stepfun-plan |
| [synology-chat](/zh-CN/plugins/reference/synology-chat) | 添加 Synology Chat 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/synology-chat`<br />ClawHub + npm | 渠道: synology-chat |
| [synthetic](/zh-CN/plugins/reference/synthetic) | 为 OpenClaw 添加 Synthetic 模型提供商支持。 | `@openclaw/synthetic-provider`<br />包含在 OpenClaw 中 | 提供商: synthetic |
| [tavily](/zh-CN/plugins/reference/tavily) | 添加智能体可调用工具。添加 Web 搜索提供商支持。 | `@openclaw/tavily-plugin`<br />包含在 OpenClaw 中 | 契约: tools, webSearchProviders; Skills |
| [telegram](/zh-CN/plugins/reference/telegram) | 添加 Telegram 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/telegram`<br />包含在 OpenClaw 中 | 渠道: telegram |
| [tencent](/zh-CN/plugins/reference/tencent) | 为 OpenClaw 添加 Tencent TokenHub 模型提供商支持。 | `@openclaw/tencent-provider`<br />包含在 OpenClaw 中 | 提供商: tencent-tokenhub |
| [tlon](/zh-CN/plugins/reference/tlon) | 添加 Tlon 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/tlon`<br />ClawHub + npm | 渠道: tlon; 契约: tools; Skills |
| [together](/zh-CN/plugins/reference/together) | 为 OpenClaw 添加 Together 模型提供商支持。 | `@openclaw/together-provider`<br />包含在 OpenClaw 中 | 提供商: together; 契约: videoGenerationProviders |
| [tokenjuice](/zh-CN/plugins/reference/tokenjuice) | 使用 tokenjuice reducers 压缩 exec 和 bash 工具结果。 | `@openclaw/tokenjuice`<br />包含在 OpenClaw 中 | 契约: agentToolResultMiddleware |
| [tts-local-cli](/zh-CN/plugins/reference/tts-local-cli) | 添加文本转语音提供商支持。 | `@openclaw/tts-local-cli`<br />包含在 OpenClaw 中 | contracts: speechProviders |
| [twitch](/zh-CN/plugins/reference/twitch) | 添加 Twitch 渠道界面,用于发送和接收 OpenClaw 消息。 | `@openclaw/twitch`<br />ClawHub + npm | channels: twitch |
| [venice](/zh-CN/plugins/reference/venice) | 为 OpenClaw 添加 Venice 模型提供商支持。 | `@openclaw/venice-provider`<br />包含在 OpenClaw 中 | providers: venice |

View File

@ -1,27 +1,27 @@
---
read_when:
- 你正在安装、配置或审计 acpx 插件
summary: 具备插件自有会话和传输管理的嵌入式 ACP 运行时后端
summary: 内嵌 ACP 运行时后端,由插件负责会话和传输管理
title: ACPx 插件
x-i18n:
generated_at: "2026-05-02T15:11:47Z"
generated_at: "2026-05-02T21:41:24Z"
model: gpt-5.5
provider: openai
source_hash: 254a6fc1bc68cb18c7bdd9c10d5c8ff370c80b1c58cc082be9b206a8a44e1013
source_hash: 1a0452131c85969d16cd1ebb603bd2369be8cd929841b6756165f64ede4109a4
source_path: plugins/reference/acpx.md
workflow: 16
---
# ACPx 插件
内嵌 ACP 运行时后端,带有插件自有的会话和传输管理。
内嵌 ACP 运行时后端,具备插件拥有的会话和传输管理。
## 分发
- 包:`@openclaw/acpx`
- 安装路径:ClawHub + npm
- 软件包:`@openclaw/acpx`
- 安装路径:包含在 OpenClaw 中
## 接口
## 暴露面
Skills

View File

@ -1,25 +1,25 @@
---
read_when:
- 你正在安装、配置或审 googlechat 插件
summary: 新增 Google Chat 渠道支持,用于发送和接收 OpenClaw 消息。
- 你正在安装、配置或审 googlechat 插件
summary: 新增 Google Chat 渠道能力,用于发送和接收 OpenClaw 消息。
title: Google Chat 插件
x-i18n:
generated_at: "2026-05-02T15:14:35Z"
generated_at: "2026-05-02T21:41:29Z"
model: gpt-5.5
provider: openai
source_hash: 5806bfb6c5a21bfb83bccd20a998795c00a8ad69af69649aee52db72ae7f6cc4
source_hash: 793341b8a6f977521b102ce8b53db0921d2445170335ccf92166fa638cc8b367
source_path: plugins/reference/googlechat.md
workflow: 16
---
# Google Chat 插件
添加用于发送和接收 OpenClaw 消息的 Google Chat 渠道界面
添加 Google Chat 渠道界面,用于发送和接收 OpenClaw 消息。
## 分发
- 包:`@openclaw/googlechat`
- 安装路径:ClawHub + npm
- 软件包:`@openclaw/googlechat`
- 安装路径:包含在 OpenClaw 中
## 界面

View File

@ -1,27 +1,27 @@
---
read_when:
- 你正在安装、配置或审核 line 插件
summary: 添加用于发送和接收 OpenClaw 消息的 LINE 渠道功能面
- 你正在安装、配置或审计 Line 插件
summary: 新增 LINE 渠道功能面,用于发送和接收 OpenClaw 消息
title: LINE 插件
x-i18n:
generated_at: "2026-05-02T15:15:04Z"
generated_at: "2026-05-02T21:41:31Z"
model: gpt-5.5
provider: openai
source_hash: 469a8781af08abd50a475fe58e4ff4e93b592d4a412f17b01d34640422e0cc6f
source_hash: d7c00de98a476429a479d1e29a53751924e88fe8f2d01aa887d21ee79772c84f
source_path: plugins/reference/line.md
workflow: 16
---
# LINE 插件
添加用于发送和接收 OpenClaw 消息的 LINE 渠道表面
添加 LINE 渠道界面,用于发送和接收 OpenClaw 消息。
## 分发
- 包:`@openclaw/line`
- 安装路径ClawHub + npm
- 安装方式:包含在 OpenClaw 中
##
##
channels: line

View File

@ -1,37 +1,37 @@
---
read_when:
- 你正在为一个插件编写测试
- 你需要来自插件 SDK 的测试工具
- 你正在为插件编写测试
- 你需要插件 SDK 的测试工具
- 你想了解内置插件的契约测试
sidebarTitle: Testing
summary: OpenClaw 插件的测试工具模式
summary: OpenClaw 插件的测试工具模式
title: 插件测试
x-i18n:
generated_at: "2026-04-28T02:58:32Z"
model: gpt-5.4
generated_at: "2026-05-02T21:41:36Z"
model: gpt-5.5
provider: openai
source_hash: 7edf81e7662784356fcb0f481dd3fcdde05cc59da2a6c1b38eae1008b3ead96c
source_hash: 67092d71302d566ee9ed3f3f1e32b5aa6f4eabf522a9656ad13cad812550f1e8
source_path: plugins/sdk-testing.md
workflow: 15
workflow: 16
---
OpenClaw 插件的测试工具、模式和 lint 强制规则参考。
OpenClaw 插件的测试实用工具、模式和 lint 强制规则参考。
<Tip>
**在找测试示例?** 操作指南包含完整的测试示例:
**在找测试示例?** 操作指南包含完整的测试示例:
[渠道插件测试](/zh-CN/plugins/sdk-channel-plugins#step-6-test) 和
[提供商插件测试](/zh-CN/plugins/sdk-provider-plugins#step-6-test)。
</Tip>
## 测试工具
## 测试实用工具
**插件 API mock 导入:** `openclaw/plugin-sdk/plugin-test-api`
**插件 API 模拟导入:** `openclaw/plugin-sdk/plugin-test-api`
**智能体运行时契约导入:** `openclaw/plugin-sdk/agent-runtime-test-contracts`
**渠道契约导入:** `openclaw/plugin-sdk/channel-contract-testing`
**渠道测试辅助导入:** `openclaw/plugin-sdk/channel-test-helpers`
**渠道测试辅助工具导入:** `openclaw/plugin-sdk/channel-test-helpers`
**渠道目标测试导入:** `openclaw/plugin-sdk/channel-target-testing`
@ -41,19 +41,18 @@ OpenClaw 插件的测试工具、模式和 lint 强制规则参考。
**提供商契约导入:** `openclaw/plugin-sdk/provider-test-contracts`
**提供商 HTTP mock 导入:** `openclaw/plugin-sdk/provider-http-test-mocks`
**提供商 HTTP 模拟导入:** `openclaw/plugin-sdk/provider-http-test-mocks`
**环境/网络测试导入:** `openclaw/plugin-sdk/test-env`
**通用夹具导入:** `openclaw/plugin-sdk/test-fixtures`
**Node 内置模块 mock 导入:** `openclaw/plugin-sdk/test-node-mocks`
**Node 内置模块模拟导入:** `openclaw/plugin-sdk/test-node-mocks`
为新的插件测试,优先使用下面这些更聚焦的子路径。宽泛的
`openclaw/plugin-sdk/testing` barrel 仅用于兼容旧版本。
仓库防护规则会拒绝新增对 `plugin-sdk/testing`
`plugin-sdk/test-utils` 的真实导入;这些名称仅保留为已弃用的兼容性
接口,用于外部插件和兼容性记录测试。
新的插件测试请优先使用下面这些聚焦的子路径。宽泛的
`openclaw/plugin-sdk/testing` barrel 仅用于旧版兼容。
仓库防护规则会拒绝从 `plugin-sdk/testing`
`plugin-sdk/test-utils` 新增真实导入;这些名称仅保留为外部插件和兼容性记录测试的已弃用兼容接口。
```typescript
import {
@ -82,84 +81,86 @@ import { mockNodeBuiltinModule } from "openclaw/plugin-sdk/test-node-mocks";
| 导出项 | 用途 |
| ---------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `createTestPluginApi` | 为直接注册单元测试构建最小化的插件 API mock。从 `plugin-sdk/plugin-test-api` 导入 |
| `AUTH_PROFILE_RUNTIME_CONTRACT` | 用于原生智能体运行时适配器的共享 auth-profile 契约夹具。从 `plugin-sdk/agent-runtime-test-contracts` 导入 |
| `DELIVERY_NO_REPLY_RUNTIME_CONTRACT` | 用于原生智能体运行时适配器的共享投递抑制契约夹具。从 `plugin-sdk/agent-runtime-test-contracts` 导入 |
| `OUTCOME_FALLBACK_RUNTIME_CONTRACT` | 用于原生智能体运行时适配器的共享回退分类契约夹具。从 `plugin-sdk/agent-runtime-test-contracts` 导入 |
| `createParameterFreeTool` | 为原生运行时契约测试构建动态工具 schema 夹具。从 `plugin-sdk/agent-runtime-test-contracts` 导入 |
| `expectChannelInboundContextContract` | 断言渠道入站上下文结构。从 `plugin-sdk/channel-contract-testing` 导入 |
| `installChannelOutboundPayloadContractSuite` | 安装渠道出站负载契约测试套件。从 `plugin-sdk/channel-contract-testing` 导入 |
| `createStartAccountContext` | 构建渠道账生命周期上下文。从 `plugin-sdk/channel-test-helpers` 导入 |
| `installChannelActionsContractSuite` | 安装通用渠道消息操作契约测试套件。从 `plugin-sdk/channel-test-helpers` 导入 |
| `installChannelSetupContractSuite` | 安装通用渠道设置契约测试套件。从 `plugin-sdk/channel-test-helpers` 导入 |
| `installChannelStatusContractSuite` | 安装通用渠道 Status 契约测试套件。从 `plugin-sdk/channel-test-helpers` 导入 |
| `expectDirectoryIds` | 从目录列表函数中断言渠道目录 ID。从 `plugin-sdk/channel-test-helpers` 导入 |
| `assertBundledChannelEntries` | 断言内置渠道入口点暴露了预期的公开契约。从 `plugin-sdk/channel-test-helpers` 导入 |
| `formatEnvelopeTimestamp` | 格式化确定性的 envelope 时间戳。从 `plugin-sdk/channel-test-helpers` 导入 |
| `createTestPluginApi` | 为直接注册单元测试构建最小插件 API 模拟对象。从 `plugin-sdk/plugin-test-api` 导入 |
| `AUTH_PROFILE_RUNTIME_CONTRACT` | 面向原生智能体运行时适配器的共享鉴权配置文件契约夹具。从 `plugin-sdk/agent-runtime-test-contracts` 导入 |
| `DELIVERY_NO_REPLY_RUNTIME_CONTRACT` | 面向原生智能体运行时适配器的共享投递抑制契约夹具。从 `plugin-sdk/agent-runtime-test-contracts` 导入 |
| `OUTCOME_FALLBACK_RUNTIME_CONTRACT` | 面向原生智能体运行时适配器的共享回退分类契约夹具。从 `plugin-sdk/agent-runtime-test-contracts` 导入 |
| `createParameterFreeTool` | 为原生运行时契约测试构建动态工具 schema 夹具。从 `plugin-sdk/agent-runtime-test-contracts` 导入 |
| `expectChannelInboundContextContract` | 断言渠道入站上下文形状。从 `plugin-sdk/channel-contract-testing` 导入 |
| `installChannelOutboundPayloadContractSuite` | 安装渠道出站载荷契约用例。从 `plugin-sdk/channel-contract-testing` 导入 |
| `createStartAccountContext` | 构建渠道账生命周期上下文。从 `plugin-sdk/channel-test-helpers` 导入 |
| `installChannelActionsContractSuite` | 安装通用渠道消息操作契约用例。从 `plugin-sdk/channel-test-helpers` 导入 |
| `installChannelSetupContractSuite` | 安装通用渠道设置契约用例。从 `plugin-sdk/channel-test-helpers` 导入 |
| `installChannelStatusContractSuite` | 安装通用渠道 Status 契约用例。从 `plugin-sdk/channel-test-helpers` 导入 |
| `expectDirectoryIds` | 断言来自目录列表函数的渠道目录 ID。从 `plugin-sdk/channel-test-helpers` 导入 |
| `assertBundledChannelEntries` | 断言内置渠道入口点暴露预期的公共契约。从 `plugin-sdk/channel-test-helpers` 导入 |
| `formatEnvelopeTimestamp` | 格式化确定性的信封时间戳。从 `plugin-sdk/channel-test-helpers` 导入 |
| `expectPairingReplyText` | 断言渠道配对回复文本并提取其中的代码。从 `plugin-sdk/channel-test-helpers` 导入 |
| `describePluginRegistrationContract` | 安装插件注册契约检查。从 `plugin-sdk/plugin-test-contracts` 导入 |
| `registerSingleProviderPlugin` | 在加载器冒烟测试中注册一个提供商插件。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `registerProviderPlugin` | 捕获单个插件中的所有提供商类型。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `registerProviderPlugin` | 从一个插件捕获所有提供商类型。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `registerProviderPlugins` | 捕获多个插件中的提供商注册。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `requireRegisteredProvider` | 断言某个提供商集合包含指定 id。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `createRuntimeEnv` | 构建一个带 mock 的 CLI/插件运行时环境。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `createPluginSetupWizardStatus` | 为渠道插件构建设置向导 Status 辅助工具。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `describeOpenAIProviderRuntimeContract` | 安装提供商家族运行时契约检查。从 `plugin-sdk/provider-test-contracts` 导入 |
| `expectPassthroughReplayPolicy` | 断言提供商重放策略会透传提供商自有工具和元数据。从 `plugin-sdk/provider-test-contracts` 导入 |
| `runRealtimeSttLiveTest` | 使用共享音频夹具运行实时 STT 提供商的在线测试。从 `plugin-sdk/provider-test-contracts` 导入 |
| `normalizeTranscriptForMatch` | 在模糊断言前规范化在线转录输出。从 `plugin-sdk/provider-test-contracts` 导入 |
| `expectExplicitVideoGenerationCapabilities` | 断言视频提供商声明显式生成模式能力。从 `plugin-sdk/provider-test-contracts` 导入 |
| `expectExplicitMusicGenerationCapabilities` | 断言音乐提供商声明显式生成/编辑能力。从 `plugin-sdk/provider-test-contracts` 导入 |
| `mockSuccessfulDashscopeVideoTask` | 安装一个成功的 DashScope 兼容视频任务响应。从 `plugin-sdk/provider-test-contracts` 导入 |
| `getProviderHttpMocks` | 访问按需启用的提供商 HTTP/auth Vitest mocks。从 `plugin-sdk/provider-http-test-mocks` 导入 |
| `installProviderHttpMockCleanup` | 在每个测试后重置提供商 HTTP/auth mocks。从 `plugin-sdk/provider-http-test-mocks` 导入 |
| `installCommonResolveTargetErrorCases` | 用于目标解析错误处理的共享测试用例。从 `plugin-sdk/channel-target-testing` 导入 |
| `shouldAckReaction` | 检查渠道是否应添加 ack reaction。从 `plugin-sdk/channel-feedback` 导入 |
| `removeAckReactionAfterReply` | 在回复送达后移除 ack reaction。从 `plugin-sdk/channel-feedback` 导入 |
| `createTestRegistry` | 构建渠道插件注册表夹具。从 `plugin-sdk/plugin-test-runtime``plugin-sdk/channel-test-helpers` 导入 |
| `createEmptyPluginRegistry` | 构建空插件注册表夹具。从 `plugin-sdk/plugin-test-runtime``plugin-sdk/channel-test-helpers` 导入 |
| `setActivePluginRegistry` | 为插件运行时测试安装注册表夹具。从 `plugin-sdk/plugin-test-runtime``plugin-sdk/channel-test-helpers` 导入 |
| `createRequestCaptureJsonFetch` | 在媒体辅助测试中捕获 JSON fetch 请求。从 `plugin-sdk/test-env` 导入 |
| `withServer` | 在可销毁的本地 HTTP 服务器上运行测试。从 `plugin-sdk/test-env` 导入 |
| `createMockIncomingRequest` | 构建最小化的入站 HTTP 请求对象。从 `plugin-sdk/test-env` 导入 |
| `withFetchPreconnect` | 在安装预连接钩子的情况下运行 fetch 测试。从 `plugin-sdk/test-env` 导入 |
| `withEnv` / `withEnvAsync` | 临时修环境变量。从 `plugin-sdk/test-env` 导入 |
| `requireRegisteredProvider` | 断言提供商集合包含某个 ID。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `createRuntimeEnv` | 构建模拟的 CLI/插件运行时环境。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `createPluginSetupWizardStatus` | 为渠道插件构建设置状态辅助工具。从 `plugin-sdk/plugin-test-runtime` 导入 |
| `describeOpenAIProviderRuntimeContract` | 安装提供商系列运行时契约检查。从 `plugin-sdk/provider-test-contracts` 导入 |
| `expectPassthroughReplayPolicy` | 断言提供商重放策略会透传提供商自有工具和元数据。从 `plugin-sdk/provider-test-contracts` 导入 |
| `runRealtimeSttLiveTest` | 使用共享音频夹具运行实时 STT 提供商 live 测试。从 `plugin-sdk/provider-test-contracts` 导入 |
| `normalizeTranscriptForMatch` | 在模糊断言前规范化 live 转录输出。从 `plugin-sdk/provider-test-contracts` 导入 |
| `expectExplicitVideoGenerationCapabilities` | 断言视频提供商声明显式生成模式能力。从 `plugin-sdk/provider-test-contracts` 导入 |
| `expectExplicitMusicGenerationCapabilities` | 断言音乐提供商声明显式生成/编辑能力。从 `plugin-sdk/provider-test-contracts` 导入 |
| `mockSuccessfulDashscopeVideoTask` | 安装成功的 DashScope 兼容视频任务响应。从 `plugin-sdk/provider-test-contracts` 导入 |
| `getProviderHttpMocks` | 访问可选启用的提供商 HTTP/鉴权 Vitest 模拟。从 `plugin-sdk/provider-http-test-mocks` 导入 |
| `installProviderHttpMockCleanup` | 在每个测试后重置提供商 HTTP/鉴权模拟。从 `plugin-sdk/provider-http-test-mocks` 导入 |
| `installCommonResolveTargetErrorCases` | 面向目标解析错误处理的共享测试用例。从 `plugin-sdk/channel-target-testing` 导入 |
| `shouldAckReaction` | 检查渠道是否应添加确认回应。从 `plugin-sdk/channel-feedback` 导入 |
| `removeAckReactionAfterReply` | 在回复投递后移除确认回应。从 `plugin-sdk/channel-feedback` 导入 |
| `createTestRegistry` | 构建渠道插件注册表夹具。从 `plugin-sdk/plugin-test-runtime``plugin-sdk/channel-test-helpers` 导入 |
| `createEmptyPluginRegistry` | 构建空插件注册表夹具。从 `plugin-sdk/plugin-test-runtime``plugin-sdk/channel-test-helpers` 导入 |
| `setActivePluginRegistry` | 为插件运行时测试安装注册表夹具。从 `plugin-sdk/plugin-test-runtime``plugin-sdk/channel-test-helpers` 导入 |
| `createRequestCaptureJsonFetch` | 在媒体辅助工具测试中捕获 JSON fetch 请求。从 `plugin-sdk/test-env` 导入 |
| `withServer` | 针对一次性本地 HTTP 服务器运行测试。从 `plugin-sdk/test-env` 导入 |
| `createMockIncomingRequest` | 构建最小传入 HTTP 请求对象。从 `plugin-sdk/test-env` 导入 |
| `withFetchPreconnect` | 在安装预连接钩子的情况下运行 fetch 测试。从 `plugin-sdk/test-env` 导入 |
| `withEnv` / `withEnvAsync` | 临时修环境变量。从 `plugin-sdk/test-env` 导入 |
| `createTempHomeEnv` / `withTempHome` / `withTempDir` | 创建隔离的文件系统测试夹具。从 `plugin-sdk/test-env` 导入 |
| `createMockServerResponse` | 创建最小化的 HTTP 服务器响应 mock。从 `plugin-sdk/test-env` 导入 |
| `createMockServerResponse` | 创建最小 HTTP 服务器响应模拟。从 `plugin-sdk/test-env` 导入 |
| `createCliRuntimeCapture` | 在测试中捕获 CLI 运行时输出。从 `plugin-sdk/test-fixtures` 导入 |
| `importFreshModule` | 使用新的查询令牌导入 ESM 模块以绕过模块缓存。从 `plugin-sdk/test-fixtures` 导入 |
| `bundledPluginRoot` / `bundledPluginFile` | 解析内置插件源码或 dist 夹具路径。从 `plugin-sdk/test-fixtures` 导入 |
| `mockNodeBuiltinModule` | 安装精细化的 Node 内置模块 Vitest mocks。从 `plugin-sdk/test-node-mocks` 导入 |
| `mockNodeBuiltinModule` | 安装窄作用域的 Node 内置 Vitest 模拟。从 `plugin-sdk/test-node-mocks` 导入 |
| `createSandboxTestContext` | 构建沙箱测试上下文。从 `plugin-sdk/test-fixtures` 导入 |
| `writeSkill` | 写入 Skills 夹具。从 `plugin-sdk/test-fixtures` 导入 |
| `writeSkill` | 写入 skill 夹具。从 `plugin-sdk/test-fixtures` 导入 |
| `makeAgentAssistantMessage` | 构建智能体转录消息夹具。从 `plugin-sdk/test-fixtures` 导入 |
| `peekSystemEvents` / `resetSystemEventsForTest` | 检查并重置系统事件夹具。从 `plugin-sdk/test-fixtures` 导入 |
| `sanitizeTerminalText` | 清理终端输出以便断言。从 `plugin-sdk/test-fixtures` 导入 |
| `countLines` / `hasBalancedFences` | 断言分块输出结构。从 `plugin-sdk/test-fixtures` 导入 |
| `sanitizeTerminalText` | 清理终端输出以用于断言。从 `plugin-sdk/test-fixtures` 导入 |
| `countLines` / `hasBalancedFences` | 断言分块输出形状。从 `plugin-sdk/test-fixtures` 导入 |
| `runProviderCatalog` | 使用测试依赖执行提供商目录钩子 |
| `resolveProviderWizardOptions` | 在契约测试中解析提供商设置向导选项 |
| `resolveProviderModelPickerEntries` | 在契约测试中解析提供商模型选择器条目 |
| `buildProviderPluginMethodChoice` | 为断言构建提供商向导选项 ID |
| `buildProviderPluginMethodChoice` | 构建用于断言的提供商向导选项 ID |
| `setProviderWizardProvidersResolverForTest` | 为隔离测试注入提供商向导提供商 |
| `createProviderUsageFetch` | 构建提供商用量获取夹具 |
| `useFrozenTime` / `useRealTime` | 为时间敏感型测试冻结并恢复定时器。从 `plugin-sdk/test-env` 导入 |
| `createTestWizardPrompter` | 构建带 mock 的设置向导提示器 |
| `createRuntimeTaskFlow` | 创建隔离的运行时任务流状态 |
| `typedCases` | 为表驱动测试保留字面量类型。从 `plugin-sdk/test-fixtures` 导入 |
| `createProviderUsageFetch` | 构建提供商使用情况获取测试夹具 |
| `useFrozenTime` / `useRealTime` | 冻结并恢复时间敏感测试的计时器。从 `plugin-sdk/test-env` 导入 |
| `createTestWizardPrompter` | 构建模拟的设置向导提示器 |
| `createRuntimeTaskFlow` | 创建隔离的运行时任务流状态 |
| `typedCases` | 保留表驱动测试的字面量类型。从 `plugin-sdk/test-fixtures` 导入 |
内置插件契约测试套件也会使用 SDK 测试子路径中的仅测试用注册表、manifest、公共产物和运行时夹具辅助工具。依赖内置 OpenClaw 清单的仅核心测试套件应继续放在 `src/plugins/contracts` 下。
新的扩展测试应放在有文档说明的聚焦 SDK 子路径上,例如
内置插件契约套件还会使用 SDK 测试子路径,用于仅测试的
注册表、清单、公开构件和运行时 fixture 辅助工具。仅核心的
套件如果依赖内置 OpenClaw 清单,则保留在 `src/plugins/contracts` 下。
新的扩展测试应放在有文档说明且聚焦的 SDK 子路径上,例如
`plugin-sdk/plugin-test-api`、`plugin-sdk/channel-contract-testing`、
`plugin-sdk/agent-runtime-test-contracts`、`plugin-sdk/channel-test-helpers`、
`plugin-sdk/plugin-test-contracts`、`plugin-sdk/plugin-test-runtime`、
`plugin-sdk/provider-test-contracts`、`plugin-sdk/provider-http-test-mocks`、
`plugin-sdk/test-env``plugin-sdk/test-fixtures`,而不是直接导入宽泛的
`plugin-sdk/testing` 兼容 barrel、仓库中的 `src/**` 文件或仓库中的
`test/helpers/*` 桥接文件
`plugin-sdk/testing` 兼容 barrel、仓库 `src/**` 文件或仓库
`test/helpers/*` 桥接。
### 类型
聚焦的测试子路径也会重新导出测试文件中有用的类型:
聚焦的测试子路径也会重新导出测试文件中有用的类型:
```typescript
import type {
@ -198,19 +199,20 @@ describe("my-channel target resolution", () => {
### 测试注册契约
将手写的 `api` mock 传给 `register(api)` 的单元测试,并不会覆盖
OpenClaw 加载器的接收门禁。对于你的插件依赖的每个注册接口,至少添加一个由加载器驱动的冒烟测试,尤其是 hooks 和 memory 这类独占能力。
将手写的 `api` mock 传给 `register(api)` 的单元测试不会执行
OpenClaw 的加载器接收门禁。针对你的插件所依赖的每个注册表面,至少添加一个由加载器支撑的冒烟测试,尤其是钩子和
内存等独占能力。
真实加载器会在缺少必需元数据,或插件调用了其并不拥有的能力 API 时使插件注册失败。例如,
`api.registerHook(...)` 需要一个 hook 名称,而
`api.registerMemoryCapability(...)` 则要求插件 manifest 或导出的入口声明
`kind: "memory"`
当缺少必需元数据,或插件调用了它不拥有的能力 API 时,真实加载器会让插件注册失败。例如,
`api.registerHook(...)` 需要钩子名称,而
`api.registerMemoryCapability(...)` 要求插件清单或导出的
入口声明 `kind: "memory"`
### 测试运行时配置访问
测试内置渠道插件时,优先使用来自 `openclaw/plugin-sdk/channel-test-helpers`
的共享插件运行时 mock。已弃用的 `runtime.config.loadConfig()`
`runtime.config.writeConfigFile(...)` mock 默认会抛错,因此测试可以捕获对兼容性 API 的新增使用。只有当测试明确覆盖旧版兼容行为时,才应重写这些 mocks
测试内置渠道插件时,优先使用来自 `openclaw/plugin-sdk/channel-test-helpers`
的共享插件运行时 mock。已弃用的 `runtime.config.loadConfig()`
`runtime.config.writeConfigFile(...)` mock 默认会抛错,以便测试捕获兼容 API 的新用法。只有当测试明确覆盖旧版兼容行为时,才覆盖这些 mock
### 对渠道插件进行单元测试
@ -278,7 +280,7 @@ describe("my-provider plugin", () => {
### Mock 插件运行时
对于使用 `createPluginRuntimeStore` 的代码,在测试中 mock 运行时:
对于使用 `createPluginRuntimeStore` 的代码,在测试中 mock 运行时:
```typescript
import { createPluginRuntimeStore } from "openclaw/plugin-sdk/runtime-store";
@ -311,7 +313,7 @@ store.clearRuntime();
### 使用每实例 stub 进行测试
优先使用每实例单独的 stub而不是修改原型
优先使用每实例 stub而不是修改原型
```typescript
// Preferred: per-instance stub
@ -324,7 +326,7 @@ client.sendMessage = vi.fn().mockResolvedValue({ id: "msg-1" });
## 契约测试(仓库内插件)
内置插件带有用于验证注册归属的契约测试
内置插件有契约测试,用于验证注册所有权
```bash
pnpm test -- src/plugins/contracts/
@ -334,12 +336,12 @@ pnpm test -- src/plugins/contracts/
- 哪些插件注册了哪些提供商
- 哪些插件注册了哪些语音提供商
- 注册结构是否正确
- 是否符合运行时契约
- 注册形状正确性
- 运行时契约合规性
### 运行限定范围测试
### 运行限定范围测试
针对某个特定插件:
针对特定插件:
```bash
pnpm test -- <bundled-plugin-root>/my-channel/
@ -349,23 +351,23 @@ pnpm test -- <bundled-plugin-root>/my-channel/
```bash
pnpm test -- src/plugins/contracts/shape.contract.test.ts
pnpm test -- src/plugins/contracts/auth.contract.test.ts
pnpm test -- src/plugins/contracts/runtime.contract.test.ts
pnpm test -- src/plugins/contracts/auth-choice.contract.test.ts
pnpm test -- src/plugins/contracts/runtime-seams.contract.test.ts
```
## lint 强制规则(仓库内插件)
## Lint 强制检查(仓库内插件)
对于仓库内插件,`pnpm check` 会强制执行三条规则:
`pnpm check` 会对仓库内插件强制执行三条规则:
1. **禁止整体式根导入** —— 会拒绝 `openclaw/plugin-sdk` 根 barrel
2. **禁止直接导入 `src/`** —— 插件不能直接导入 `../../src/`
3. **禁止自导入** —— 插件不能导入它们自己的 `plugin-sdk/<name>` 子路径
1. **禁止单体根导入** -- 拒绝 `openclaw/plugin-sdk` 根 barrel
2. **禁止直接 `src/` 导入** -- 插件不能直接导入 `../../src/`
3. **禁止自导入** -- 插件不能导入自己的 `plugin-sdk/<name>` 子路径
外部插件不受这些 lint 规则约束,但建议遵循相同模式。
外部插件不受这些 lint 规则约束,但建议遵循相同模式。
## 测试配置
OpenClaw 使用带有 V8 覆盖率阈值的 Vitest。对于插件测试:
OpenClaw 使用 Vitest 和 V8 覆盖率阈值。对于插件测试:
```bash
# Run all tests
@ -381,7 +383,7 @@ pnpm test -- <bundled-plugin-root>/my-channel/ -t "resolves account"
pnpm test:coverage
```
如果本地运行导致内存压力:
如果本地运行造成内存压力:
```bash
OPENCLAW_VITEST_MAX_WORKERS=1 pnpm test

View File

@ -1,71 +1,71 @@
---
x-i18n:
generated_at: "2026-04-25T01:40:01Z"
model: gpt-5.4
generated_at: "2026-05-02T21:41:05Z"
model: gpt-5.5
provider: openai
source_hash: cccaaa1b3e472279b7548ad5af5d50162db9e99a731e06be796de64ee9f8c8d8
source_hash: d9f2b5783c5762ebe7b5db108a89692e653c515138110b4fa9d23663e2ccbbd5
source_path: superpowers/specs/2026-04-22-tweakcn-custom-theme-import-design.md
workflow: 15
workflow: 16
---
# Tweakcn 自定义主题导入设计
状态:已于 2026-04-22 在终端中批准
Status已于 2026-04-22 在终端批准
## 摘要
添加一个且仅一个浏览器本地的自定义 Control UI 主题槽位,可通过 tweakcn 分享链接导入。现有内置主题族仍为 `claw`、`knot` 和 `dash`。新的 `custom` 族表现得像一个普通的 OpenClaw 主题族,并且当导入的 tweakcn 负载同时包含 light 和 dark 两套 token 时,支持 `light`、`dark` 和 `system` 模式。
添加正好一个浏览器本地的自定义 Control UI 主题槽,可从 tweakcn 分享链接导入。现有内置主题系列仍为 `claw`、`knot` 和 `dash`。新的 `custom` 系列表现得像普通的 OpenClaw 主题系列,并且在导入的 tweakcn 载荷包含明暗两套 token 集时,支持 `light`、`dark` 和 `system` 模式。
导入的主题仅存储在当前浏览器配置文件中,与其他 Control UI 设置一起保存。它不会写入 Gateway 网关配置,也不会在设备或浏览器之间同步。
导入的主题仅与其余 Control UI 设置一起存储在当前浏览器配置文件中。它不会写入 Gateway 网关配置,也不会跨设备或浏览器同步。
## 问题
Control UI 主题系统目前仅支持三个硬编码主题族
Control UI 主题系统目前被限定在三个硬编码主题系列内
- `ui/src/ui/theme.ts`
- `ui/src/ui/views/config.ts`
- `ui/src/styles/base.css`
用户可以在内置主题族及其模式变体之间切换,但无法在不修改仓库 CSS 的情况下从 tweakcn 导入主题。此次需求的目标比通用主题系统更小:保留这三个内置主题,并添加一个由用户控制、可通过 tweakcn 链接替换的导入槽位
用户可以在内置系列和模式变体之间切换,但如果不编辑仓库 CSS就无法引入 tweakcn 主题。请求的结果小于通用主题系统:保留三个内置主题,并添加一个由用户控制的导入槽,可从 tweakcn 链接替换
## 目标
- 保持现有内置主题不变。
- 添加一个导入的自定义槽,而不是主题库。
- 保持现有内置主题系列不变。
- 添加正好一个导入的自定义槽,而不是主题库。
- 接受 tweakcn 分享链接或直接的 `https://tweakcn.com/r/themes/{id}` URL。
- 仅将导入的主题持久化到浏览器本地存储中
- 让导入槽与现有 `light`、`dark` 和 `system` 模式控制一起工作。
- 保持安全的失败行为:错误导入绝不能破坏当前激活的 UI 主题。
- 仅在浏览器本地存储中持久化导入的主题
- 让导入槽与现有 `light`、`dark` 和 `system` 模式控件配合工作。
- 保持故障行为安全:错误导入绝不会破坏当前活动 UI 主题。
## 非目标
- 不做多主题库,也不做浏览器本地导入列表。
- 不 Gateway 网关侧持久化或跨设备同步。
- 不任意 CSS 编辑器或原始主题 JSON 编辑器。
- 不自动加载来自 tweakcn 的远程字体资源
- 不尝试支持只暴露一模式的 tweakcn 载。
- 不做超出 Control UI 所需接缝范围的全仓库主题重构。
- 不提供多主题库或浏览器本地导入列表。
- 不提供 Gateway 网关侧持久化或跨设备同步。
- 不提供任意 CSS 编辑器或原始主题 JSON 编辑器。
- 不从 tweakcn 自动加载远程字体资产
- 不尝试支持只暴露一模式的 tweakcn 载
- 不进行超出 Control UI 所需接缝之外的仓库级主题重构。
## 已确定的用户决策
## 已做出的用户决策
- 保留三个内置主题。
- 添加一个由 tweakcn 驱动的导入槽
- 添加一个由 tweakcn 驱动的导入槽。
- 将导入的主题存储在浏览器中,而不是 Gateway 网关配置中。
- 为导入的主题支持 `light`、`dark` 和 `system`
- 用下一次导入覆盖自定义槽是预期行为。
- 为导入支持 `light`、`dark` 和 `system`
- 用下一次导入覆盖自定义槽是预期行为。
## 推荐方案
向 Control UI 主题模型添加第四个主题族 id`custom`。仅当存在有效的 tweakcn 导入内容时,`custom` 族才可被选择。导入的负载会被标准化为 OpenClaw 专用的自定义主题记录,并与其他 UI 设置一起存储在浏览器本地存储中。
向 Control UI 主题模型添加第四个主题系列 ID`custom`。只有存在有效的 tweakcn 导入时,`custom` 系列才可选择。导入的载荷会规范化为 OpenClaw 专用的自定义主题记录,并与其余 UI 设置一起存储在浏览器本地存储中。
在运行时OpenClaw 渲染一个受控的 `<style>` 标签,用于定义已解析的自定义 CSS 变量块:
运行时OpenClaw 渲染一个受管理的 `<style>` 标签,用于定义解析后的自定义 CSS 变量块:
```css
:root[data-theme="custom"] { ... }
:root[data-theme="custom-light"] { ... }
```
样可将自定义主题变量限制在 `custom` 族范围内,并避免将内联 CSS 变量泄漏到内置主题族中。
会将自定义主题变量限定在 `custom` 系列内,并避免内联 CSS 变量泄漏到内置系列中。
## 架构
@ -73,23 +73,23 @@ Control UI 主题系统目前仅支持三个硬编码主题族:
更新 `ui/src/ui/theme.ts`
- `ThemeName` 扩展为包含 `custom`
- `ResolvedTheme` 扩展为包含 `custom``custom-light`
- 更新 `VALID_THEME_NAMES`
- 更新 `resolveTheme()`,使 `custom` 镜像现有主题族行为:
- 扩展 `ThemeName`包含 `custom`
- 扩展 `ResolvedTheme`包含 `custom``custom-light`
- 扩展 `VALID_THEME_NAMES`
- 更新 `resolveTheme()`,使 `custom` 映射现有系列行为:
- `custom + dark` -> `custom`
- `custom + light` -> `custom-light`
- `custom + system` -> 根据操作系统偏好解析为 `custom``custom-light`
- `custom + system` -> 根据操作系统偏好得到 `custom``custom-light`
不会为 `custom` 添加旧版别名。
### 持久化模型
使用一个可选的自定义主题负载扩展 `ui/src/ui/storage.ts` 中的 `UiSettings` 持久化
`ui/src/ui/storage.ts` 中扩展 `UiSettings` 持久化,加入一个可选的自定义主题载荷
- `customTheme?: ImportedCustomTheme`
推荐的存储结构
推荐的存储形态
```ts
type ImportedCustomTheme = {
@ -104,78 +104,78 @@ type ImportedCustomTheme = {
说明:
- `sourceUrl` 存储标准化后的原始用户输入。
- `themeId` 是从 URL 中提取的 tweakcn 主题 id
- `label` 为 tweakcn 的 `name` 字段(若存在),否则为 `Custom`
- `light``dark` 是已经标准化的 OpenClaw token 映射,而不是原始 tweakcn 载。
- 导入的负载与其他浏览器本地设置并列存储,并序列化到同一个 local-storage 文档中。
- 如果存储的自定义主题数据在加载时缺失或无效,则忽略该负载;如果持久化的主题族为 `custom`,则回退到 `theme: "claw"`
- `sourceUrl` 存储规范化后的原始用户输入。
- `themeId` 是从 URL 中提取的 tweakcn 主题 ID
- `label` 是存在时的 tweakcn `name` 字段,否则为 `Custom`
- `light``dark` 是已规范化的 OpenClaw token 映射,而不是原始 tweakcn 载
- 导入的载荷与其他浏览器本地设置并列存在,并序列化在同一个本地存储文档中。
- 如果加载时存储的自定义主题数据缺失或无效,则忽略该载荷;当持久化的系列为 `custom` 时,回退到 `theme: "claw"`
### 运行时应用
在 Control UI 运行时中添加一个窄范围的自定义主题样式表管理器,放在 `ui/src/ui/app-settings.ts``ui/src/ui/theme.ts` 附近维护
在 Control UI 运行时中添加一个窄范围的自定义主题样式表管理器,归属位置靠近 `ui/src/ui/app-settings.ts``ui/src/ui/theme.ts`
职责:
- 在 `document.head` 中创建或更新一个稳定的 `<style id="openclaw-custom-theme">` 标签。
- 仅当存在有效自定义主题载时输出 CSS。
- 当负载被清除时移除样式标签内容。
- 保持内置主题族 CSS 位于 `ui/src/styles/base.css` 中;不要把导入的 token 拼接进已检入的样式表。
- 仅当存在有效自定义主题载时输出 CSS。
- 清除载荷时移除样式标签内容。
- 将内置系列 CSS 保留在 `ui/src/styles/base.css` 中;不要把导入的 token 拼接进已检入的样式表。
当设置被加载、保存、导入或清除时,此管理器都会运行。
此管理器在设置加载、保存、导入或清除时运行。
### Light 模式选择器
### 浅色模式选择器
实现应优先使用 `data-theme-mode="light"` 来处理跨主题族的 light 模式样式,而不是对 `custom-light` 做特殊处理。如果现有选择器被固定为 `data-theme="light"` 且需要应用到所有 light 主题族,应在本次工作中一并扩展
实现应优先使用 `data-theme-mode="light"` 来处理跨系列浅色样式,而不是为 `custom-light` 做特殊分支。如果现有选择器固定为 `data-theme="light"`,且需要应用到每个浅色系列,则应作为这项工作的一部分扩展它
## 导入 UX
更新 `ui/src/ui/views/config.ts` `Appearance` 部分:
更新 `ui/src/ui/views/config.ts``Appearance` 部分:
- 在 `Claw`、`Knot` 和 `Dash` 旁边添加一 `Custom` 主题卡片。
- 当不存在已导入的自定义主题时,将卡片显示为禁用状态
- 在 `Claw`、`Knot` 和 `Dash` 旁边添加一 `Custom` 主题卡片。
- 当不存在已导入的自定义主题时,将卡片显示为禁用。
- 在主题网格下方添加一个导入面板,包含:
- 一个用于输入 tweakcn 分享链接或 `/r/themes/{id}` URL 的文本输入
- 一个用于 tweakcn 分享链接或 `/r/themes/{id}` URL 的文本输入
- 一个 `Import` 按钮
- 当已存在自定义负载时的一条 `Replace` 路径
- 当已存在自定义负载时的一个 `Clear` 操作
- 当存在负载时,显示导入主题标签和来源主机。
- 如果当前激活主题是 `custom`,导入替换后应立即生效
- 如果当前激活主题不是 `custom`,导入仅保存新负载,直到用户选择 `Custom` 卡片。
- 当自定义载荷已存在时提供一条 `Replace` 路径
- 当自定义载荷已存在时提供一个 `Clear` 操作
- 当载荷存在时,显示导入主题标签和来源主机。
- 如果当前活动主题是 `custom`,导入替换会立即应用
- 如果当前活动主题不是 `custom`,导入只会存储新的载荷,直到用户选择 `Custom` 卡片。
`ui/src/ui/views/config-quick.ts` 中的快速设置主题选择器也应仅在存在负载时显示 `Custom`
`ui/src/ui/views/config-quick.ts` 中的快速设置主题选择器也应仅在载荷存在时显示 `Custom`
## URL 解析远程获取
## URL 解析远程获取
浏览器导入路径接受:
- `https://tweakcn.com/themes/{id}`
- `https://tweakcn.com/r/themes/{id}`
实现应将两种形式都标准化为:
实现应将两种形式都规范化为:
- `https://tweakcn.com/r/themes/{id}`
随后浏览器直接获取标准化后的 `/r/themes/{id}` 端点。
然后浏览器直接获取规范化后的 `/r/themes/{id}` 端点。
对外部负载应使用一个窄范围 schema 验证器。由于这是一个不可信的外部边界,优先使用 zod schema。
对外部载荷使用窄范围 schema 校验器。因为这是不可信的外部边界,优先使用 zod schema。
需的远程字段:
需的远程字段:
- 顶层 `name`,可选字符串
- `cssVars.theme`,可选对象
- `cssVars.light`,对象
- `cssVars.dark`,对象
如果缺少 `cssVars.light``cssVars.dark` 之一,则拒绝导入。这是有意为之:已批准的产品行为是完整模式支持,而不是尽力合成缺失的一侧。
如果缺少 `cssVars.light``cssVars.dark` 中任意一个,则拒绝导入。这是有意为之:已批准的产品行为是完整模式支持,而不是尽力合成缺失的一侧。
## Token 映射
不要盲目镜像 tweakcn 变量。应将一个有边界的子集标准化为 OpenClaw token并在辅助函数中派生其余部分
不要盲目镜像 tweakcn 变量。将有界子集规范化为 OpenClaw token并在辅助函数中派生其余 token
### 直接导入的 token
从每个 tweakcn 模式块中导入
从每个 tweakcn 模式块中:
- `background`
- `foreground`
@ -198,16 +198,16 @@ type ImportedCustomTheme = {
- `ring`
- `radius`
当存在 `cssVars.theme` 时,从共享部分导入
从共享的 `cssVars.theme` 中(如果存在)
- `font-sans`
- `font-mono`
如果某个模式块覆盖 `font-sans`、`font-mono` 或 `radius`,则以模式本地值为准
如果某个模式块覆盖 `font-sans`、`font-mono` 或 `radius`,则模式本地值优先
### 为 OpenClaw 派生的 token
导入器基于导入的基础颜色派生 OpenClaw 专用变量:
导入器导入的基础颜色派生 OpenClaw 专用变量:
- `--bg-accent`
- `--bg-elevated`
@ -235,14 +235,14 @@ type ImportedCustomTheme = {
- `--danger-muted`
- `--danger-subtle`
派生规则应放在一个纯辅助函数中,以便独立测试。具体的颜色混合公式属于实现细节,但该辅助函数必须满足两个约束:
派生规则放在纯辅助函数中,以便独立测试。确切的颜色混合公式是实现细节,但该辅助函数必须满足两个约束:
- 保持接近导入主题意图的可读对比度
- 对相同导入负载产生稳定输出
- 对相同导入载荷生成稳定输出
### v1 中忽略的 token
以下 tweakcn token 在第一版中有意忽略:
这些 tweakcn token 在第一个版本中有意忽略:
- `chart-*`
- `sidebar-*`
@ -252,32 +252,32 @@ type ImportedCustomTheme = {
- `letter-spacing`
- `spacing`
样可以将范围聚焦于当前 Control UI 实际需要的 token
会把范围限定在当前 Control UI 实际需要的 token 上
### 字体
如果存在字体栈字符串,则导入,但 OpenClaw 在 v1 中不会加载远程字体资源。如果导入的字体栈引用了浏览器中不可用的字体,则按正常回退行为处理
如果存在字体栈字符串,则导入它们,但 OpenClaw 在 v1 中不会加载远程字体资产。如果导入的栈引用浏览器中不可用的字体,则适用正常回退行为
## 失败行为
## 故障行为
错误导入必须以闭方式失败。
错误导入必须以闭方式失败。
- URL 格式无效:显示内联验错误,不发起获取。
- 不支持的主机或路径结构:显示内联验证错误,不发起获取。
- 网络失败、非 OK 响应或 JSON 格式错误:显示内联错误,保持当前存储载不变。
- Schema 验证失败或缺少 light/dark 块:显示内联错误,保持当前存储载不变。
- Clear 操作:
- 删除已存储的自定义负载
- 删除受控自定义样式标签的内容
- 如果当前激活的是 `custom`,则将主题族切换`claw`
- 首次加载时存储的自定义载无效:
- 忽略该已存储负载
- URL 格式无效:显示内联验错误,不发起获取。
- 不支持的主机或路径形态:显示内联校验错误,不发起获取。
- 网络失败、非 OK 响应或 JSON 格式错误:显示内联错误,保持当前存储载不变。
- Schema 失败或缺少 light/dark 块:显示内联错误,保持当前存储载不变。
- 清除操作:
- 移除存储的自定义载荷
- 移除受管理的自定义样式标签内容
- 如果 `custom` 当前处于活动状态,则将主题系列切`claw`
- 首次加载时存储的自定义载无效:
- 忽略存储的载荷
- 不输出自定义 CSS
- 如果持久化的主题族是 `custom`,则回退到 `claw`
- 如果持久化的主题系列为 `custom`,则回退到 `claw`
在任何情况下,失败的导入都不应让当前文档处于已应用部分自定义 CSS 变量的状态
失败导入在任何时候都不应让活动文档应用了部分自定义 CSS 变量
## 预期会在实现中变更的文件
## 实现中预计会变更的文件
主要文件:
@ -288,40 +288,39 @@ type ImportedCustomTheme = {
- `ui/src/ui/views/config-quick.ts`
- `ui/src/styles/base.css`
可能新增的辅助文件
可能新增的辅助函数
- `ui/src/ui/custom-theme.ts`
- `ui/src/ui/custom-theme-import.ts`
测试:
- `ui/src/ui/app-settings.test.ts`
- `ui/src/ui/storage.node.test.ts`
- `ui/src/ui/views/config.browser.test.ts`
- 新增针对 URL 解析和负载标准化的聚焦测试
- 针对 URL 解析和载荷规范化的新聚焦测试
## 测试
最低实现覆盖范围:
- 将分享链接 URL 解析为 tweakcn 主题 id
- 将 `/themes/{id}``/r/themes/{id}` 标准化为获取 URL
- 拒绝不支持的主机和格式错误的 id
- 验证 tweakcn 负载结构
- 将有效的 tweakcn 负载映射为标准化的 OpenClaw light 和 dark token 映射
- 在浏览器本地设置中加载和保存自定义负载
- 将分享链接 URL 解析为 tweakcn 主题 ID
- 将 `/themes/{id}``/r/themes/{id}` 规范化为获取 URL
- 拒绝不支持的主机和格式错误的 ID
- 校验 tweakcn 载荷形态
- 将有效 tweakcn 载荷映射为规范化的 OpenClaw 浅色和深色 token 映射
- 在浏览器本地设置中加载并保存自定义载荷
- 为 `light`、`dark` 和 `system` 解析 `custom`
- 在没有负载时禁用 `Custom` 选择
- 当 `custom`激活时立即应用导入主题
- 在清除激活中的自定义主题时回退到 `claw`
- 当不存在载时禁用 `Custom` 选择
- 当 `custom`经处于活动状态时立即应用导入的主题
- 当活动自定义主题被清除时回退到 `claw`
手动验证目标:
- 从 Settings 中导入一个已知的 tweakcn 主题
- 从设置中导入一个已知的 tweakcn 主题
- 在 `light`、`dark` 和 `system` 之间切换
- 在 `custom` 与内置主题族之间切换
- 重新加载页面,并确认导入的自定义主题在本地持久化
- 在 `custom` 和内置系列之间切换
- 重新加载页面并确认导入的自定义主题在本地持久存在
## 发布说明
该功能刻意保持小范围。如果后续用户提出多个导入主题、重命名、导出或跨设备同步等需求,应将其视为后续设计。不要在本次实现中预先构建主题库抽象。
此功能刻意保持较小范围。如果用户之后要求多个导入主题、重命名、导出或跨设备同步,请将其视为后续设计。不要在本次实现中预先构建主题库抽象。