chore(i18n): refresh zh-CN translations
This commit is contained in:
parent
1c550add65
commit
139468583b
File diff suppressed because it is too large
Load Diff
@ -1,27 +1,27 @@
|
||||
---
|
||||
read_when:
|
||||
- 你想使用内置的 Codex app-server 测试工具
|
||||
- 你想使用内置的 Codex 应用服务器测试工具
|
||||
- 你需要 Codex 模型引用和配置示例
|
||||
- 你想为仅使用 Codex 的部署禁用 Pi 回退
|
||||
summary: 通过内置的 Codex app-server 测试工具运行 OpenClaw 嵌入式智能体轮次
|
||||
- 你想为仅使用 Codex 的部署禁用 Pi 回退机制
|
||||
summary: 通过内置的 Codex 应用服务器测试工具运行 OpenClaw 嵌入式智能体轮次
|
||||
title: Codex 测试工具
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T15:20:02Z"
|
||||
generated_at: "2026-04-23T16:04:44Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 4537cdc043768f19cd097b4542dfb3447bf3342c7c300832e160b795263c2a52
|
||||
source_hash: 07e7fb033cd4025e53d65a719bab7bd704335933bf19bfb10648cede42cdee46
|
||||
source_path: plugins/codex-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# Codex 测试工具
|
||||
|
||||
内置的 `codex` 插件让 OpenClaw 能通过 Codex app-server 运行嵌入式智能体轮次,而不是使用内置的 PI 测试工具。
|
||||
内置的 `codex` 插件让 OpenClaw 通过 Codex 应用服务器运行嵌入式智能体轮次,而不是使用内置的 Pi 测试工具。
|
||||
|
||||
当你希望由 Codex 接管底层智能体会话时,可以使用它:模型发现、原生线程恢复、原生压缩,以及 app-server 执行。
|
||||
OpenClaw 仍负责聊天渠道、会话文件、模型选择、工具、审批、媒体传递,以及可见的转录镜像。
|
||||
当你希望由 Codex 接管底层智能体会话时,请使用此方式:模型发现、原生线程恢复、原生压缩以及应用服务器执行。
|
||||
OpenClaw 仍然负责聊天渠道、会话文件、模型选择、工具、审批、媒体传递,以及可见的转录镜像。
|
||||
|
||||
原生 Codex 轮次也会遵循共享插件钩子,因此 prompt shim、感知压缩的自动化、工具中间件和生命周期观察器都能与 PI 测试工具保持一致:
|
||||
原生 Codex 轮次也会遵循共享的插件钩子,因此提示词 shim、感知压缩的自动化、工具中间件和生命周期观察器都会与 Pi 测试工具保持一致:
|
||||
|
||||
- `before_prompt_build`
|
||||
- `before_compaction`, `after_compaction`
|
||||
@ -30,34 +30,40 @@ OpenClaw 仍负责聊天渠道、会话文件、模型选择、工具、审批
|
||||
- `before_message_write`
|
||||
- `agent_end`
|
||||
|
||||
内置插件还可以注册一个 Codex app-server 扩展工厂,以添加异步 `tool_result` 中间件。
|
||||
内置插件还可以注册一个 Codex 应用服务器扩展工厂,以添加异步 `tool_result` 中间件。
|
||||
|
||||
该测试工具默认关闭。只有在启用 `codex` 插件且解析后的模型是 `codex/*` 模型时,或者你显式强制设置 `embeddedHarness.runtime: "codex"` 或 `OPENCLAW_AGENT_RUNTIME=codex` 时,才会选中它。
|
||||
如果你从未配置 `codex/*`,现有的 PI、OpenAI、Anthropic、Gemini、本地和自定义提供商运行都会保持当前行为。
|
||||
如果你从未配置 `codex/*`,现有的 Pi、OpenAI、Anthropic、Gemini、本地和自定义提供商运行都会保持当前行为。
|
||||
|
||||
## 选择正确的模型前缀
|
||||
|
||||
OpenClaw 为 OpenAI 访问和 Codex 风格访问提供了不同路径:
|
||||
OpenClaw 为 OpenAI 访问方式和 Codex 风格的访问方式提供了不同路径:
|
||||
|
||||
| 模型引用 | 运行时路径 | 适用场景 |
|
||||
| -------------------- | ------------------------------------------ | ----------------------------------------------------------------------- |
|
||||
| `openai/gpt-5.4` | 通过 OpenClaw/PI 管线的 OpenAI 提供商路径 | 你希望通过 `OPENAI_API_KEY` 直接访问 OpenAI Platform API。 |
|
||||
| `openai-codex/gpt-5.4` | 通过 PI 的 OpenAI Codex OAuth 提供商路径 | 你希望使用 ChatGPT/Codex OAuth,但不使用 Codex app-server 测试工具。 |
|
||||
| `codex/gpt-5.4` | 内置 Codex 提供商加 Codex 测试工具 | 你希望为嵌入式智能体轮次使用原生 Codex app-server 执行。 |
|
||||
| 模型引用 | 运行时路径 | 使用场景 |
|
||||
| ---------------------- | -------------------------------------------- | ----------------------------------------------------------------------- |
|
||||
| `openai/gpt-5.4` | 通过 OpenClaw/Pi 流程的 OpenAI 提供商 | 你想通过 `OPENAI_API_KEY` 直接访问 OpenAI Platform API。 |
|
||||
| `openai-codex/gpt-5.4` | 通过 Pi 的 OpenAI Codex OAuth 提供商 | 你想使用 ChatGPT/Codex OAuth,但不使用 Codex 应用服务器测试工具。 |
|
||||
| `codex/gpt-5.4` | 内置 Codex 提供商加 Codex 测试工具 | 你希望嵌入式智能体轮次使用原生 Codex 应用服务器执行。 |
|
||||
|
||||
Codex 测试工具只接管 `codex/*` 模型引用。现有的 `openai/*`、`openai-codex/*`、Anthropic、Gemini、xAI、本地和自定义提供商引用都会保留其常规路径。
|
||||
Codex 测试工具只会接管 `codex/*` 模型引用。现有的 `openai/*`、`openai-codex/*`、Anthropic、Gemini、xAI、本地和自定义提供商引用都会保持其正常路径。
|
||||
|
||||
测试工具选择不是实时会话控制。当嵌入式轮次运行时,OpenClaw 会在该会话上记录所选测试工具的 id,并在同一会话 id 的后续轮次中继续使用它。若你希望未来的会话使用另一种测试工具,请更改 `embeddedHarness` 配置或 `OPENCLAW_AGENT_RUNTIME`;在现有对话于 Pi 和 Codex 之间切换前,请使用 `/new` 或 `/reset` 启动一个新会话。
|
||||
这样可以避免同一份转录被重放到两个不兼容的原生会话系统中。
|
||||
|
||||
在测试工具固定机制引入之前创建的旧会话,一旦已有转录历史,就会被视为固定到 Pi。更改配置后,使用 `/new` 或 `/reset` 可让该对话改为使用 Codex。
|
||||
|
||||
`/status` 会在 `Fast` 旁边显示生效的非 Pi 测试工具,例如 `Fast · codex`。默认的 Pi 测试工具不会显示。
|
||||
|
||||
## 要求
|
||||
|
||||
- OpenClaw,并且可用内置 `codex` 插件。
|
||||
- Codex app-server `0.118.0` 或更高版本。
|
||||
- app-server 进程可用的 Codex 身份验证。
|
||||
- OpenClaw,且可使用内置的 `codex` 插件。
|
||||
- Codex 应用服务器 `0.118.0` 或更高版本。
|
||||
- 应用服务器进程可用的 Codex 身份验证。
|
||||
|
||||
该插件会阻止较旧版本或未带版本信息的 app-server 握手。
|
||||
这样可确保 OpenClaw 始终使用它已针对其进行测试的协议表面。
|
||||
该插件会阻止过旧或未标明版本的应用服务器握手。
|
||||
这样可以让 OpenClaw 保持在已验证过的协议范围内运行。
|
||||
|
||||
对于实时测试和 Docker 冒烟测试,身份验证通常来自 `OPENAI_API_KEY`,以及可选的 Codex CLI 文件,例如 `~/.codex/auth.json` 和 `~/.codex/config.toml`。
|
||||
请使用与你本地 Codex app-server 相同的身份验证材料。
|
||||
对于实时测试和 Docker 冒烟测试,身份验证通常来自 `OPENAI_API_KEY`,以及可选的 Codex CLI 文件,例如 `~/.codex/auth.json` 和 `~/.codex/config.toml`。请使用与你本地 Codex 应用服务器相同的认证材料。
|
||||
|
||||
## 最小配置
|
||||
|
||||
@ -84,7 +90,7 @@ Codex 测试工具只接管 `codex/*` 模型引用。现有的 `openai/*`、`ope
|
||||
}
|
||||
```
|
||||
|
||||
如果你的配置使用 `plugins.allow`,也需要把 `codex` 包含进去:
|
||||
如果你的配置使用 `plugins.allow`,也要在其中加入 `codex`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -99,12 +105,11 @@ Codex 测试工具只接管 `codex/*` 模型引用。现有的 `openai/*`、`ope
|
||||
}
|
||||
```
|
||||
|
||||
将 `agents.defaults.model` 或某个智能体模型设置为 `codex/<model>` 也会自动启用内置 `codex` 插件。
|
||||
显式插件条目在共享配置中仍然很有用,因为它能让部署意图更清晰。
|
||||
将 `agents.defaults.model` 或某个智能体模型设置为 `codex/<model>` 时,也会自动启用内置的 `codex` 插件。在共享配置中,显式写出插件条目仍然很有用,因为这能清楚表明部署意图。
|
||||
|
||||
## 添加 Codex 而不替换其他模型
|
||||
## 添加 Codex,但不替换其他模型
|
||||
|
||||
当你希望 `codex/*` 模型使用 Codex,而其余所有模型使用 PI 时,请保留 `runtime: "auto"`:
|
||||
如果你希望 `codex/*` 模型使用 Codex,而其他模型仍使用 Pi,请保留 `runtime: "auto"`:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -136,16 +141,16 @@ Codex 测试工具只接管 `codex/*` 模型引用。现有的 `openai/*`、`ope
|
||||
}
|
||||
```
|
||||
|
||||
采用这种形式后:
|
||||
采用这种配置时:
|
||||
|
||||
- `/model codex` 或 `/model codex/gpt-5.4` 会使用 Codex app-server 测试工具。
|
||||
- `/model codex` 或 `/model codex/gpt-5.4` 会使用 Codex 应用服务器测试工具。
|
||||
- `/model gpt` 或 `/model openai/gpt-5.4` 会使用 OpenAI 提供商路径。
|
||||
- `/model opus` 会使用 Anthropic 提供商路径。
|
||||
- 如果选择的是非 Codex 模型,PI 仍然是兼容性测试工具。
|
||||
- 如果选择的是非 Codex 模型,Pi 仍然会作为兼容性测试工具。
|
||||
|
||||
## 仅使用 Codex 的部署
|
||||
|
||||
当你需要证明每个嵌入式智能体轮次都使用 Codex 测试工具时,请禁用 PI 回退:
|
||||
当你需要证明每一次嵌入式智能体轮次都使用 Codex 测试工具时,请禁用 Pi 回退:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -169,11 +174,11 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
禁用回退后,如果 Codex 插件被禁用、请求的模型不是 `codex/*` 引用、app-server 版本过旧,或者 app-server 无法启动,OpenClaw 都会提前失败。
|
||||
禁用回退后,如果 Codex 插件被禁用、请求的模型不是 `codex/*` 引用、应用服务器版本过旧,或应用服务器无法启动,OpenClaw 都会尽早失败。
|
||||
|
||||
## 按智能体使用 Codex
|
||||
|
||||
你可以让某个智能体仅使用 Codex,同时让默认智能体保持正常的自动选择:
|
||||
你可以只让某一个智能体专用 Codex,而默认智能体仍保持正常的自动选择:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -204,11 +209,12 @@ openclaw gateway run
|
||||
}
|
||||
```
|
||||
|
||||
使用常规会话命令切换智能体和模型。`/new` 会创建一个全新的 OpenClaw 会话,而 Codex 测试工具会按需创建或恢复其 sidecar app-server 线程。`/reset` 会清除该线程的 OpenClaw 会话绑定。
|
||||
使用常规会话命令切换智能体和模型。`/new` 会创建一个新的 OpenClaw 会话,而 Codex 测试工具会按需为其创建或恢复配套的应用服务器线程。`/reset` 会清除该线程对应的 OpenClaw 会话绑定,并让下一轮再次根据当前配置解析测试工具。
|
||||
|
||||
## 模型发现
|
||||
|
||||
默认情况下,`codex` 插件会向 app-server 查询可用模型。如果发现失败或超时,它会使用内置的回退目录:
|
||||
默认情况下,Codex 插件会向应用服务器请求可用模型。
|
||||
如果发现失败或超时,它会使用内置的回退目录:
|
||||
|
||||
- `codex/gpt-5.4`
|
||||
- `codex/gpt-5.4-mini`
|
||||
@ -234,7 +240,7 @@ openclaw gateway run
|
||||
}
|
||||
```
|
||||
|
||||
如果你希望启动时避免探测 Codex,而是固定使用回退目录,可以禁用发现:
|
||||
如果你希望启动时避免探测 Codex,并固定使用回退目录,请禁用发现:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -253,18 +259,19 @@ openclaw gateway run
|
||||
}
|
||||
```
|
||||
|
||||
## App-server 连接和策略
|
||||
## 应用服务器连接与策略
|
||||
|
||||
默认情况下,插件会使用以下命令在本地启动 Codex:
|
||||
默认情况下,插件会用以下命令在本地启动 Codex:
|
||||
|
||||
```bash
|
||||
codex app-server --listen stdio://
|
||||
```
|
||||
|
||||
默认情况下,OpenClaw 会以 YOLO 模式启动本地 Codex 测试工具会话:
|
||||
`approvalPolicy: "never"`、`approvalsReviewer: "user"` 和 `sandbox: "danger-full-access"`。这是一种适用于自主心跳的受信任本地操作姿态:Codex 可以使用 shell 和网络工具,而不会停在无人可答复的原生审批提示上。
|
||||
`approvalPolicy: "never"`、`approvalsReviewer: "user"`,以及
|
||||
`sandbox: "danger-full-access"`。这是用于自主心跳的受信任本地操作员姿态:Codex 可以使用 shell 和网络工具,而不会因为无人响应的原生审批提示而中断。
|
||||
|
||||
如果你希望启用由 Codex guardian 审核的审批,请设置 `appServer.mode:
|
||||
如果要启用由 Codex Guardian 审核的审批,请设置 `appServer.mode:
|
||||
"guardian"`:
|
||||
|
||||
```json5
|
||||
@ -285,11 +292,11 @@ codex app-server --listen stdio://
|
||||
}
|
||||
```
|
||||
|
||||
Guardian 是原生 Codex 审批审核器。当 Codex 请求离开沙箱、在工作区外写入,或添加网络访问等权限时,Codex 会将该审批请求路由给一个 reviewer 子智能体,而不是向人类发出提示。该 reviewer 会应用 Codex 的风险框架,并批准或拒绝该具体请求。如果你希望比 YOLO 模式有更多保护措施,但仍需要无人值守的智能体持续推进,请使用 Guardian。
|
||||
Guardian 是原生的 Codex 审批审核器。当 Codex 请求离开沙箱、在工作区外写入,或添加诸如网络访问之类的权限时,Codex 会将该审批请求路由给一个审核子智能体,而不是向人工发出提示。审核器会应用 Codex 的风险框架,并批准或拒绝该具体请求。如果你希望比 YOLO 模式有更多防护措施,但仍需要无人值守的智能体持续推进,请使用 Guardian。
|
||||
|
||||
`guardian` 预设会展开为 `approvalPolicy: "on-request"`、`approvalsReviewer: "guardian_subagent"` 和 `sandbox: "workspace-write"`。各个单独的策略字段仍会覆盖 `mode`,因此高级部署可以将该预设与显式选项混合使用。
|
||||
`guardian` 预设会展开为 `approvalPolicy: "on-request"`、`approvalsReviewer: "guardian_subagent"` 和 `sandbox: "workspace-write"`。各个策略字段仍会覆盖 `mode`,因此高级部署可以将该预设与显式选项混合使用。
|
||||
|
||||
对于已经在运行的 app-server,请使用 WebSocket 传输:
|
||||
对于已经在运行的应用服务器,请使用 WebSocket 传输:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -313,22 +320,22 @@ Guardian 是原生 Codex 审批审核器。当 Codex 请求离开沙箱、在工
|
||||
|
||||
支持的 `appServer` 字段:
|
||||
|
||||
| 字段 | 默认值 | 含义 |
|
||||
| 字段 | 默认值 | 含义 |
|
||||
| ------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
||||
| `transport` | `"stdio"` | `"stdio"` 会启动 Codex;`"websocket"` 会连接到 `url`。 |
|
||||
| `command` | `"codex"` | 用于 stdio 传输的可执行文件。 |
|
||||
| `args` | `["app-server", "--listen", "stdio://"]` | 用于 stdio 传输的参数。 |
|
||||
| `url` | 未设置 | WebSocket app-server URL。 |
|
||||
| `authToken` | 未设置 | 用于 WebSocket 传输的 Bearer token。 |
|
||||
| `headers` | `{}` | 额外的 WebSocket 请求头。 |
|
||||
| `requestTimeoutMs` | `60000` | app-server 控制平面调用的超时时间。 |
|
||||
| `mode` | `"yolo"` | 用于 YOLO 或 guardian 审核执行的预设。 |
|
||||
| `approvalPolicy` | `"never"` | 发送到线程启动、恢复和轮次的原生 Codex 审批策略。 |
|
||||
| `sandbox` | `"danger-full-access"` | 发送到线程启动和恢复的原生 Codex 沙箱模式。 |
|
||||
| `approvalsReviewer` | `"user"` | 使用 `"guardian_subagent"` 可让 Codex Guardian 审核提示。 |
|
||||
| `serviceTier` | 未设置 | 可选的 Codex app-server 服务层级:`"fast"`、`"flex"` 或 `null`。无效的旧值会被忽略。 |
|
||||
| `transport` | `"stdio"` | `"stdio"` 会启动 Codex;`"websocket"` 会连接到 `url`。 |
|
||||
| `command` | `"codex"` | 用于 stdio 传输的可执行文件。 |
|
||||
| `args` | `["app-server", "--listen", "stdio://"]` | 用于 stdio 传输的参数。 |
|
||||
| `url` | 未设置 | WebSocket 应用服务器 URL。 |
|
||||
| `authToken` | 未设置 | 用于 WebSocket 传输的 Bearer token。 |
|
||||
| `headers` | `{}` | 额外的 WebSocket 标头。 |
|
||||
| `requestTimeoutMs` | `60000` | 应用服务器控制平面调用的超时时间。 |
|
||||
| `mode` | `"yolo"` | 用于 YOLO 或 Guardian 审核执行的预设。 |
|
||||
| `approvalPolicy` | `"never"` | 发送到线程启动/恢复/轮次的原生 Codex 审批策略。 |
|
||||
| `sandbox` | `"danger-full-access"` | 发送到线程启动/恢复的原生 Codex 沙箱模式。 |
|
||||
| `approvalsReviewer` | `"user"` | 使用 `"guardian_subagent"` 让 Codex Guardian 审核提示。 |
|
||||
| `serviceTier` | 未设置 | 可选的 Codex 应用服务器服务层级:`"fast"`、`"flex"` 或 `null`。无效的旧版值会被忽略。 |
|
||||
|
||||
较旧的环境变量在匹配配置字段未设置时,仍可作为本地测试的回退方式使用:
|
||||
当对应配置字段未设置时,较旧的环境变量仍可作为本地测试的回退方式:
|
||||
|
||||
- `OPENCLAW_CODEX_APP_SERVER_BIN`
|
||||
- `OPENCLAW_CODEX_APP_SERVER_ARGS`
|
||||
@ -337,10 +344,11 @@ Guardian 是原生 Codex 审批审核器。当 Codex 请求离开沙箱、在工
|
||||
- `OPENCLAW_CODEX_APP_SERVER_SANDBOX`
|
||||
|
||||
`OPENCLAW_CODEX_APP_SERVER_GUARDIAN=1` 已被移除。请改用
|
||||
`plugins.entries.codex.config.appServer.mode: "guardian"`,或者在一次性本地测试中使用
|
||||
`OPENCLAW_CODEX_APP_SERVER_MODE=guardian`。对于可重复的部署,更推荐使用配置,因为这样可以将插件行为与 Codex 测试工具的其余设置放在同一个经过审查的文件中。
|
||||
`plugins.entries.codex.config.appServer.mode: "guardian"`,或在一次性本地测试时使用
|
||||
`OPENCLAW_CODEX_APP_SERVER_MODE=guardian`。对于可重复部署,推荐使用配置,
|
||||
因为这样可以将插件行为与 Codex 测试工具设置的其余部分放在同一个经过审查的文件中。
|
||||
|
||||
## 常见配方
|
||||
## 常见用法
|
||||
|
||||
使用默认 stdio 传输的本地 Codex:
|
||||
|
||||
@ -356,7 +364,7 @@ Guardian 是原生 Codex 审批审核器。当 Codex 请求离开沙箱、在工
|
||||
}
|
||||
```
|
||||
|
||||
仅使用 Codex 的测试工具验证,并禁用 PI 回退:
|
||||
仅使用 Codex 的测试工具验证,禁用 Pi 回退:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -395,7 +403,7 @@ Guardian 是原生 Codex 审批审核器。当 Codex 请求离开沙箱、在工
|
||||
}
|
||||
```
|
||||
|
||||
带显式请求头的远程 app-server:
|
||||
带显式标头的远程应用服务器:
|
||||
|
||||
```json5
|
||||
{
|
||||
@ -418,54 +426,69 @@ Guardian 是原生 Codex 审批审核器。当 Codex 请求离开沙箱、在工
|
||||
}
|
||||
```
|
||||
|
||||
模型切换仍由 OpenClaw 控制。当一个 OpenClaw 会话附加到现有 Codex 线程时,下一个轮次会再次将当前选定的 `codex/*` 模型、提供商、审批策略、沙箱和服务层级发送到 app-server。
|
||||
从 `codex/gpt-5.4` 切换到 `codex/gpt-5.2` 时,会保留线程绑定,但会要求 Codex 使用新选定的模型继续。
|
||||
模型切换仍由 OpenClaw 控制。当一个 OpenClaw 会话附加到现有的 Codex 线程时,
|
||||
下一轮会再次将当前选定的 `codex/*` 模型、提供商、审批策略、沙箱和服务层级发送给
|
||||
应用服务器。从 `codex/gpt-5.4` 切换到 `codex/gpt-5.2` 时,会保留线程绑定,但会要求
|
||||
Codex 使用新选定的模型继续执行。
|
||||
|
||||
## Codex 命令
|
||||
|
||||
内置插件将 `/codex` 注册为一个已授权的斜杠命令。它是通用的,可在任何支持 OpenClaw 文本命令的渠道上工作。
|
||||
内置插件将 `/codex` 注册为授权斜杠命令。它是通用的,可在任何支持 OpenClaw 文本命令的渠道中使用。
|
||||
|
||||
常见形式:
|
||||
|
||||
- `/codex status` 显示实时 app-server 连接状态、模型、账户、速率限制、MCP 服务器和技能。
|
||||
- `/codex models` 列出实时 Codex app-server 模型。
|
||||
- `/codex status` 显示实时应用服务器连接状态、模型、账户、速率限制、MCP 服务器和 skills。
|
||||
- `/codex models` 列出实时 Codex 应用服务器模型。
|
||||
- `/codex threads [filter]` 列出最近的 Codex 线程。
|
||||
- `/codex resume <thread-id>` 将当前 OpenClaw 会话附加到现有 Codex 线程。
|
||||
- `/codex compact` 请求 Codex app-server 压缩已附加的线程。
|
||||
- `/codex compact` 请求 Codex 应用服务器压缩已附加的线程。
|
||||
- `/codex review` 为已附加的线程启动 Codex 原生审查。
|
||||
- `/codex account` 显示账户和速率限制状态。
|
||||
- `/codex mcp` 列出 Codex app-server MCP 服务器状态。
|
||||
- `/codex skills` 列出 Codex app-server Skills。
|
||||
- `/codex mcp` 列出 Codex 应用服务器 MCP 服务器状态。
|
||||
- `/codex skills` 列出 Codex 应用服务器 Skills。
|
||||
|
||||
`/codex resume` 会写入与测试工具用于常规轮次相同的 sidecar 绑定文件。下一条消息到来时,OpenClaw 会恢复该 Codex 线程,将当前选定的 OpenClaw `codex/*` 模型传入 app-server,并保持启用扩展历史记录。
|
||||
`/codex resume` 会写入与测试工具正常轮次所使用的同一个配套绑定文件。
|
||||
在下一条消息中,OpenClaw 会恢复该 Codex 线程,将当前选定的 OpenClaw `codex/*`
|
||||
模型传入应用服务器,并保持启用扩展历史记录。
|
||||
|
||||
该命令表面要求 Codex app-server `0.118.0` 或更高版本。如果未来版本或自定义 app-server 未暴露某个 JSON-RPC 方法,单独的控制方法会报告为 `unsupported by this Codex app-server`。
|
||||
该命令功能要求 Codex 应用服务器版本为 `0.118.0` 或更高。如果未来版本或自定义的应用服务器
|
||||
未暴露某个 JSON-RPC 方法,各个控制方法会显示为 `unsupported by this Codex app-server`。
|
||||
|
||||
## 工具、媒体和压缩
|
||||
## 工具、媒体与压缩
|
||||
|
||||
Codex 测试工具只改变底层嵌入式智能体执行器。
|
||||
Codex 测试工具仅改变底层嵌入式智能体执行器。
|
||||
|
||||
OpenClaw 仍然构建工具列表,并从测试工具接收动态工具结果。文本、图像、视频、音乐、TTS、审批和消息工具输出都会继续通过正常的 OpenClaw 传递路径处理。
|
||||
OpenClaw 仍然构建工具列表,并从测试工具接收动态工具结果。文本、图像、视频、音乐、TTS、
|
||||
审批和消息工具输出会继续通过正常的 OpenClaw 传递路径处理。
|
||||
|
||||
当 Codex 将 `_meta.codex_approval_kind` 标记为 `"mcp_tool_call"` 时,Codex MCP 工具审批征询会通过 OpenClaw 的插件审批流路由;其他征询和自由格式输入请求仍会以默认拒绝方式处理。
|
||||
当 Codex 将 `_meta.codex_approval_kind` 标记为 `"mcp_tool_call"` 时,Codex MCP 工具审批请求会通过 OpenClaw 的插件审批流程路由;其他请求输入和自由格式输入请求仍会以失败关闭的方式处理。
|
||||
|
||||
当选定模型使用 Codex 测试工具时,原生线程压缩会委托给 Codex app-server。OpenClaw 会保留一个转录镜像,用于渠道历史记录、搜索、`/new`、`/reset`,以及未来的模型或测试工具切换。该镜像包括用户提示、最终助手文本,以及 app-server 发出时的轻量级 Codex 推理或计划记录。当前,OpenClaw 只记录原生压缩开始和完成信号。它尚未提供人类可读的压缩摘要,也未提供 Codex 在压缩后保留了哪些条目的可审计列表。
|
||||
当所选模型使用 Codex 测试工具时,原生线程压缩会委托给 Codex 应用服务器。OpenClaw 会保留一份转录镜像,用于渠道历史记录、搜索、`/new`、`/reset`,以及未来的模型或测试工具切换。该镜像包括用户提示、最终助手文本,以及在应用服务器发出时包含轻量级的 Codex 推理或计划记录。目前,OpenClaw 只记录原生压缩开始和完成信号。它尚未提供人类可读的压缩摘要,也未提供 Codex 在压缩后保留了哪些条目的可审计列表。
|
||||
|
||||
媒体生成不需要 PI。图像、视频、音乐、PDF、TTS 和媒体理解仍会继续使用匹配的提供商/模型设置,例如 `agents.defaults.imageGenerationModel`、`videoGenerationModel`、`pdfModel` 和 `messages.tts`。
|
||||
媒体生成不需要 Pi。图像、视频、音乐、PDF、TTS 和媒体理解会继续使用相应的提供商/模型设置,例如 `agents.defaults.imageGenerationModel`、`videoGenerationModel`、`pdfModel` 和 `messages.tts`。
|
||||
|
||||
## 故障排除
|
||||
|
||||
**`/model` 中没有出现 Codex:** 启用 `plugins.entries.codex.enabled`,设置一个 `codex/*` 模型引用,或者检查 `plugins.allow` 是否排除了 `codex`。
|
||||
**`/model` 中未显示 Codex:** 启用 `plugins.entries.codex.enabled`,
|
||||
设置一个 `codex/*` 模型引用,或检查 `plugins.allow` 是否排除了 `codex`。
|
||||
|
||||
**OpenClaw 使用的是 PI 而不是 Codex:** 如果没有 Codex 测试工具接管该运行,OpenClaw 可能会使用 PI 作为兼容性后端。测试时可设置 `embeddedHarness.runtime: "codex"` 来强制选择 Codex,或设置 `embeddedHarness.fallback: "none"` 以便在没有匹配插件测试工具时直接失败。一旦选中了 Codex app-server,其失败会直接暴露出来,不需要额外的回退配置。
|
||||
**OpenClaw 使用的是 Pi 而不是 Codex:** 如果没有 Codex 测试工具接管该运行,
|
||||
OpenClaw 可能会使用 Pi 作为兼容性后端。测试时设置
|
||||
`embeddedHarness.runtime: "codex"` 以强制选择 Codex,或设置
|
||||
`embeddedHarness.fallback: "none"` 以在没有匹配的插件测试工具时直接失败。
|
||||
一旦选中了 Codex 应用服务器,它的失败会直接暴露出来,无需额外的回退配置。
|
||||
|
||||
**app-server 被拒绝:** 升级 Codex,使 app-server 握手报告版本 `0.118.0` 或更高。
|
||||
**应用服务器被拒绝:** 升级 Codex,使应用服务器握手报告版本
|
||||
`0.118.0` 或更高。
|
||||
|
||||
**模型发现很慢:** 降低 `plugins.entries.codex.config.discovery.timeoutMs`,或禁用发现。
|
||||
**模型发现很慢:** 降低 `plugins.entries.codex.config.discovery.timeoutMs`
|
||||
或禁用发现。
|
||||
|
||||
**WebSocket 传输立即失败:** 检查 `appServer.url`、`authToken`,以及远程 app-server 是否使用相同版本的 Codex app-server 协议。
|
||||
**WebSocket 传输立即失败:** 检查 `appServer.url`、`authToken`,
|
||||
并确认远程应用服务器使用相同的 Codex 应用服务器协议版本。
|
||||
|
||||
**某个非 Codex 模型使用了 PI:** 这是预期行为。Codex 测试工具只接管 `codex/*` 模型引用。
|
||||
**非 Codex 模型使用了 Pi:** 这是预期行为。Codex 测试工具只会接管
|
||||
`codex/*` 模型引用。
|
||||
|
||||
## 相关内容
|
||||
|
||||
|
||||
@ -1,51 +1,51 @@
|
||||
---
|
||||
read_when:
|
||||
- 你正在更改内嵌智能体运行时或 harness 注册表
|
||||
- 你正在从内置插件或受信任插件注册一个智能体 harness
|
||||
- 你正在更改嵌入式智能体运行时或 Harness 注册表
|
||||
- 你正在从内置或受信任的插件注册一个智能体 Harness
|
||||
- 你需要了解 Codex 插件与模型提供商之间的关系
|
||||
sidebarTitle: Agent Harness
|
||||
summary: 用于替换底层内嵌智能体执行器的实验性插件 SDK 接口 surface
|
||||
summary: 用于替换底层嵌入式智能体执行器的插件实验性 SDK 接口面
|
||||
title: 智能体 Harness 插件
|
||||
x-i18n:
|
||||
generated_at: "2026-04-22T23:23:44Z"
|
||||
generated_at: "2026-04-23T16:04:43Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: efaecca18210af0e9e641bd888c1edb55e08e96299158ff021d6c2dd0218ec25
|
||||
source_hash: ec858acedaae8670c730022f8cc700499ac3b95d3d4144584e01051b224fee64
|
||||
source_path: plugins/sdk-agent-harness.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 智能体 Harness 插件
|
||||
|
||||
**智能体 harness** 是为一次已准备好的 OpenClaw 智能体轮次提供底层执行的执行器。它不是模型提供商,不是渠道,也不是工具注册表。
|
||||
**智能体 harness** 是一个已准备好的 OpenClaw 智能体单次轮次的底层执行器。它不是模型提供商,不是渠道,也不是工具注册表。
|
||||
|
||||
仅对内置或受信任的原生插件使用此接口。该契约仍属实验性,因为其参数类型刻意映射当前的内嵌运行器。
|
||||
仅对内置或受信任的原生插件使用此接口面。该契约仍然是实验性的,因为参数类型有意映射当前的嵌入式运行器。
|
||||
|
||||
## 何时使用 harness
|
||||
|
||||
当某个模型家族拥有自己的原生会话运行时,而常规的 OpenClaw 提供商传输层并不是合适抽象时,注册智能体 harness。
|
||||
当某个模型家族拥有自己的原生会话运行时,而常规 OpenClaw 提供商传输抽象并不适合时,注册一个智能体 harness。
|
||||
|
||||
示例:
|
||||
例如:
|
||||
|
||||
- 拥有线程和上下文压缩能力的原生 coding-agent 服务器
|
||||
- 拥有线程与压缩能力的原生 coding-agent 服务器
|
||||
- 必须流式传输原生计划 / 推理 / 工具事件的本地 CLI 或守护进程
|
||||
- 除了 OpenClaw 会话转录之外,还需要自身 resume id 的模型运行时
|
||||
- 除 OpenClaw 会话转录之外,还需要自身 resume id 的模型运行时
|
||||
|
||||
不要仅为了添加一个新的 LLM API 而注册 harness。对于常规的 HTTP 或 WebSocket 模型 API,请构建一个[提供商插件](/zh-CN/plugins/sdk-provider-plugins)。
|
||||
不要仅仅为了添加一个新的 LLM API 而注册 harness。对于常规 HTTP 或 WebSocket 模型 API,请构建一个[提供商插件](/zh-CN/plugins/sdk-provider-plugins)。
|
||||
|
||||
## 核心仍负责的内容
|
||||
## 核心仍然负责的内容
|
||||
|
||||
在选择 harness 之前,OpenClaw 已经解析完成:
|
||||
在选择 harness 之前,OpenClaw 已经解析了:
|
||||
|
||||
- 提供商和模型
|
||||
- 运行时凭证状态
|
||||
- 思考等级和上下文预算
|
||||
- 思考级别和上下文预算
|
||||
- OpenClaw 转录 / 会话文件
|
||||
- 工作区、沙箱和工具策略
|
||||
- 渠道回复回调和流式传输回调
|
||||
- 模型回退和实时模型切换策略
|
||||
|
||||
这种划分是有意为之。Harness 负责运行一次已准备好的尝试;它不会选择提供商、替换渠道投递,也不会静默切换模型。
|
||||
这种划分是有意设计的。harness 运行的是一个已准备好的尝试;它不会选择提供商、替代渠道投递,或静默切换模型。
|
||||
|
||||
## 注册 harness
|
||||
|
||||
@ -85,55 +85,58 @@ export default definePluginEntry({
|
||||
|
||||
## 选择策略
|
||||
|
||||
OpenClaw 会在提供商 / 模型解析完成后选择 harness:
|
||||
OpenClaw 会在提供商 / 模型解析之后选择一个 harness:
|
||||
|
||||
1. `OPENCLAW_AGENT_RUNTIME=<id>` 会强制使用具有该 id 的已注册 harness。
|
||||
2. `OPENCLAW_AGENT_RUNTIME=pi` 会强制使用内置的 PI harness。
|
||||
3. `OPENCLAW_AGENT_RUNTIME=auto` 会让已注册的 harness 判断自己是否支持已解析的提供商 / 模型。
|
||||
4. 如果没有已注册 harness 匹配,OpenClaw 会使用 PI,除非禁用了 PI 回退。
|
||||
1. 现有会话中记录的 harness id 优先生效,因此配置 / 环境变量的变化不会将该转录热切换到另一个运行时。
|
||||
2. `OPENCLAW_AGENT_RUNTIME=<id>` 会为尚未固定的会话强制使用具有该 id 的已注册 harness。
|
||||
3. `OPENCLAW_AGENT_RUNTIME=pi` 会强制使用内置的 PI harness。
|
||||
4. `OPENCLAW_AGENT_RUNTIME=auto` 会询问已注册的 harness 是否支持已解析的提供商 / 模型。
|
||||
5. 如果没有匹配的已注册 harness,除非禁用了 PI 回退,否则 OpenClaw 会使用 PI。
|
||||
|
||||
插件 harness 失败会显示为运行失败。在 `auto` 模式下,仅当没有已注册的插件 harness 支持已解析的提供商 / 模型时,才会使用 PI 回退。一旦某个插件 harness 已声明接管某次运行,OpenClaw 就不会再通过 PI 重放同一轮次,因为这可能改变凭证 / 运行时语义,或导致副作用重复。
|
||||
插件 harness 失败会表现为运行失败。在 `auto` 模式下,仅当没有已注册的插件 harness 支持已解析的提供商 / 模型时,才会使用 PI 回退。一旦某个插件 harness 已接管一次运行,OpenClaw 就不会通过 PI 重放同一轮次,因为这可能改变凭证 / 运行时语义或造成副作用重复。
|
||||
|
||||
内置 Codex 插件将 `codex` 注册为其 harness id。核心将其视为普通的插件 harness id;Codex 专用别名应放在插件或运维配置中,而不是共享运行时选择器中。
|
||||
嵌入式运行后,所选 harness id 会与会话 id 一起持久化。在 harness 固定机制之前创建的旧会话,一旦拥有转录历史,就会被视为固定到 PI。要在 PI 与原生插件 harness 之间切换,请使用新的 / 重置后的会话。`/status` 会在 `Fast` 旁显示诸如 `codex` 之类的非默认 harness id;PI 作为默认兼容路径则会被隐藏。
|
||||
|
||||
内置 Codex 插件将 `codex` 注册为它的 harness id。核心将其视为普通的插件 harness id;Codex 专用别名应属于插件或操作员配置,而不应放在共享运行时选择器中。
|
||||
|
||||
## 提供商与 harness 配对
|
||||
|
||||
大多数 harness 也应该注册一个提供商。提供商会让模型引用、凭证状态、模型元数据和 `/model` 选择对 OpenClaw 其余部分可见。随后,harness 在 `supports(...)` 中声明该提供商。
|
||||
大多数 harness 也应同时注册一个提供商。提供商让模型引用、凭证状态、模型元数据和 `/model` 选择对 OpenClaw 的其余部分可见。然后,harness 在 `supports(...)` 中声明对该提供商的支持。
|
||||
|
||||
内置 Codex 插件遵循此模式:
|
||||
内置 Codex 插件遵循这种模式:
|
||||
|
||||
- provider id: `codex`
|
||||
- provider id:`codex`
|
||||
- 用户模型引用:`codex/gpt-5.4`、`codex/gpt-5.2`,或 Codex app server 返回的其他模型
|
||||
- harness id: `codex`
|
||||
- auth:合成的提供商可用性,因为 Codex harness 拥有原生 Codex 登录 / 会话
|
||||
- harness id:`codex`
|
||||
- 凭证:合成的提供商可用性,因为 Codex harness 拥有原生 Codex 登录 / 会话
|
||||
- app-server 请求:OpenClaw 向 Codex 发送裸模型 id,并让 harness 与原生 app-server 协议通信
|
||||
|
||||
Codex 插件是增量式的。普通的 `openai/gpt-*` 引用仍然是 OpenAI 提供商引用,并继续使用常规的 OpenClaw 提供商路径。当你想使用 Codex 管理的凭证、Codex 模型发现、原生线程和 Codex app-server 执行时,请选择 `codex/gpt-*`。`/model` 可以在 Codex app server 返回的 Codex 模型之间切换,而无需 OpenAI 提供商凭证。
|
||||
Codex 插件是增量式的。普通的 `openai/gpt-*` 引用仍然是 OpenAI 提供商引用,并继续使用常规 OpenClaw 提供商路径。当你需要 Codex 管理的凭证、Codex 模型发现、原生线程和 Codex app-server 执行时,请选择 `codex/gpt-*`。`/model` 可以在 Codex app server 返回的 Codex 模型之间切换,而无需 OpenAI 提供商凭证。
|
||||
|
||||
有关运维设置、模型前缀示例和仅适用于 Codex 的配置,请参见 [Codex Harness](/zh-CN/plugins/codex-harness)。
|
||||
有关操作员设置、模型前缀示例和仅限 Codex 的配置,请参阅 [Codex Harness](/zh-CN/plugins/codex-harness)。
|
||||
|
||||
OpenClaw 要求 Codex app-server 为 `0.118.0` 或更高版本。Codex 插件会检查 app-server 初始化握手,并阻止较旧或未带版本信息的服务器,以确保 OpenClaw 仅运行在它已测试过的协议接口之上。
|
||||
OpenClaw 要求 Codex app-server 版本为 `0.118.0` 或更高。Codex 插件会检查 app-server 初始化握手,并阻止较旧或未带版本信息的服务器,以确保 OpenClaw 只运行在其已测试过的协议接口面之上。
|
||||
|
||||
### Codex app-server 工具结果中间件
|
||||
|
||||
当清单声明 `contracts.embeddedExtensionFactories: ["codex-app-server"]` 时,内置插件还可以通过 `api.registerCodexAppServerExtensionFactory(...)` 挂载 Codex app-server 专用的 `tool_result` 中间件。这是受信任插件的扩展点,适用于那些需要在原生 Codex harness 内部运行、并在工具输出回投到 OpenClaw 转录之前完成的异步工具结果转换。
|
||||
当清单声明 `contracts.embeddedExtensionFactories: ["codex-app-server"]` 时,内置插件还可以通过 `api.registerCodexAppServerExtensionFactory(...)` 附加 Codex app-server 专用的 `tool_result` 中间件。这是受信任插件的接口,用于那些需要在原生 Codex harness 内部运行、并在工具输出被投影回 OpenClaw 转录之前执行的异步工具结果转换。
|
||||
|
||||
### 原生 Codex harness 模式
|
||||
|
||||
内置的 `codex` harness 是用于内嵌 OpenClaw 智能体轮次的原生 Codex 模式。请先启用内置 `codex` 插件;如果你的配置使用限制性 allowlist,还需将 `codex` 加入 `plugins.allow`。它与 `openai-codex/*` 不同:
|
||||
内置的 `codex` harness 是嵌入式 OpenClaw 智能体轮次的原生 Codex 模式。请先启用内置 `codex` 插件;如果你的配置使用了限制性 allowlist,还要将 `codex` 加入 `plugins.allow`。它与 `openai-codex/*` 不同:
|
||||
|
||||
- `openai-codex/*` 通过常规 OpenClaw 提供商路径使用 ChatGPT / Codex OAuth。
|
||||
- `codex/*` 使用内置 Codex 提供商,并通过 Codex app-server 路由该轮次。
|
||||
|
||||
在该模式运行时,Codex 负责原生线程 id、resume 行为、上下文压缩以及 app-server 执行。OpenClaw 仍负责聊天渠道、可见转录镜像、工具策略、审批、媒体投递和会话选择。当你需要证明只有 Codex app-server 路径可以接管此次运行时,请使用 `embeddedHarness.runtime: "codex"` 并设置 `embeddedHarness.fallback: "none"`。该配置仅是一个选择保护:Codex app-server 失败本来就会直接失败,而不会再通过 PI 重试。
|
||||
当此模式运行时,Codex 负责原生线程 id、resume 行为、压缩和 app-server 执行。OpenClaw 仍然负责聊天渠道、可见转录镜像、工具策略、审批、媒体投递和会话选择。当你需要证明只有 Codex app-server 路径可以接管运行时,请使用 `embeddedHarness.runtime: "codex"` 配合 `embeddedHarness.fallback: "none"`。该配置仅是一个选择保护:Codex app-server 失败本来就会直接失败,而不会通过 PI 重试。
|
||||
|
||||
## 禁用 PI 回退
|
||||
|
||||
默认情况下,OpenClaw 使用 `agents.defaults.embeddedHarness` 为 `{ runtime: "auto", fallback: "pi" }` 来运行内嵌智能体。在 `auto` 模式下,已注册的插件 harness 可以接管某个提供商 / 模型组合。如果没有匹配项,OpenClaw 会回退到 PI。
|
||||
默认情况下,OpenClaw 以 `agents.defaults.embeddedHarness` 设置为 `{ runtime: "auto", fallback: "pi" }` 来运行嵌入式智能体。在 `auto` 模式下,已注册的插件 harness 可以接管某个提供商 / 模型组合。如果没有任何匹配,OpenClaw 会回退到 PI。
|
||||
|
||||
当你需要在缺少插件 harness 选择时直接失败,而不是使用 PI 时,请设置 `fallback: "none"`。已选中的插件 harness 失败本就会硬失败。这不会阻止显式设置 `runtime: "pi"` 或 `OPENCLAW_AGENT_RUNTIME=pi`。
|
||||
当你需要在缺少插件 harness 选择时直接失败,而不是使用 PI 时,请设置 `fallback: "none"`。已选中的插件 harness 失败本来就会硬失败。这不会阻止显式的 `runtime: "pi"` 或 `OPENCLAW_AGENT_RUNTIME=pi`。
|
||||
|
||||
对于仅使用 Codex 的内嵌运行:
|
||||
对于仅限 Codex 的嵌入式运行:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -149,7 +152,7 @@ OpenClaw 要求 Codex app-server 为 `0.118.0` 或更高版本。Codex 插件会
|
||||
}
|
||||
```
|
||||
|
||||
如果你希望任意已注册的插件 harness 都可以接管匹配的模型,但又不希望 OpenClaw 静默回退到 PI,请保持 `runtime: "auto"` 并禁用回退:
|
||||
如果你希望任何已注册的插件 harness 都能接管匹配的模型,但又绝不希望 OpenClaw 静默回退到 PI,请保持 `runtime: "auto"` 并禁用回退:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -164,7 +167,7 @@ OpenClaw 要求 Codex app-server 为 `0.118.0` 或更高版本。Codex 插件会
|
||||
}
|
||||
```
|
||||
|
||||
每个智能体的覆盖配置使用相同结构:
|
||||
按智能体覆盖使用相同的结构:
|
||||
|
||||
```json
|
||||
{
|
||||
@ -189,7 +192,7 @@ OpenClaw 要求 Codex app-server 为 `0.118.0` 或更高版本。Codex 插件会
|
||||
}
|
||||
```
|
||||
|
||||
`OPENCLAW_AGENT_RUNTIME` 仍会覆盖已配置的 runtime。使用 `OPENCLAW_AGENT_HARNESS_FALLBACK=none` 可通过环境变量禁用 PI 回退。
|
||||
`OPENCLAW_AGENT_RUNTIME` 仍然会覆盖已配置的运行时。使用 `OPENCLAW_AGENT_HARNESS_FALLBACK=none` 可通过环境变量禁用 PI 回退。
|
||||
|
||||
```bash
|
||||
OPENCLAW_AGENT_RUNTIME=codex \
|
||||
@ -197,39 +200,39 @@ OPENCLAW_AGENT_HARNESS_FALLBACK=none \
|
||||
openclaw gateway run
|
||||
```
|
||||
|
||||
在禁用回退后,如果请求的 harness 未注册、不支持已解析的提供商 / 模型,或者在产生轮次副作用前就失败,会话将提早失败。这对于仅使用 Codex 的部署,以及必须证明 Codex app-server 路径确实被使用的实时测试,都是有意设计的行为。
|
||||
在禁用回退后,如果请求的 harness 未注册、不支持已解析的提供商 / 模型,或者在产生轮次副作用之前失败,则会话会尽早失败。这对仅限 Codex 的部署以及必须证明 Codex app-server 路径确实在使用中的实时测试而言,是有意设计的行为。
|
||||
|
||||
此设置仅控制内嵌智能体 harness。它不会禁用图像、视频、音乐、TTS、PDF 或其他提供商特定的模型路由。
|
||||
此设置只控制嵌入式智能体 harness。它不会禁用图像、视频、音乐、TTS、PDF 或其他提供商特定的模型路由。
|
||||
|
||||
## 原生会话与转录镜像
|
||||
|
||||
Harness 可以保留原生 session id、thread id 或守护进程侧的 resume token。请将这种绑定明确地与 OpenClaw 会话关联起来,并持续将用户可见的助手 / 工具输出镜像到 OpenClaw 转录中。
|
||||
harness 可以保留原生会话 id、线程 id 或守护进程侧的 resume token。请将这种绑定明确关联到 OpenClaw 会话,并继续将用户可见的助手 / 工具输出镜像到 OpenClaw 转录中。
|
||||
|
||||
OpenClaw 转录仍然是以下能力的兼容层:
|
||||
OpenClaw 转录仍然是以下场景的兼容层:
|
||||
|
||||
- 渠道可见的会话历史
|
||||
- 转录搜索和索引
|
||||
- 转录搜索与索引
|
||||
- 在后续轮次切换回内置 PI harness
|
||||
- 通用的 `/new`、`/reset` 和会话删除行为
|
||||
|
||||
如果你的 harness 存储了 sidecar 绑定,请实现 `reset(...)`,以便 OpenClaw 在所属 OpenClaw 会话被重置时清除它。
|
||||
如果你的 harness 存储了 sidecar 绑定,请实现 `reset(...)`,这样 OpenClaw 才能在所属 OpenClaw 会话被重置时清除它。
|
||||
|
||||
## 工具和媒体结果
|
||||
## 工具与媒体结果
|
||||
|
||||
核心会构造 OpenClaw 工具列表,并将其传入已准备好的尝试中。当 harness 执行动态工具调用时,请通过 harness 结果结构返回工具结果,而不是自行发送渠道媒体。
|
||||
核心会构建 OpenClaw 工具列表,并将其传入已准备好的尝试中。当 harness 执行动态工具调用时,请通过 harness 结果结构返回工具结果,而不是自行发送渠道媒体。
|
||||
|
||||
这样可以让文本、图像、视频、音乐、TTS、审批以及消息工具输出与 PI 支持的运行共享同一条投递路径。
|
||||
这样可以让文本、图像、视频、音乐、TTS、审批以及消息工具输出,与由 PI 支持的运行走同一条投递路径。
|
||||
|
||||
## 当前限制
|
||||
|
||||
- 公共导入路径是通用的,但某些 attempt / result 类型别名仍因兼容性而保留 `Pi` 命名。
|
||||
- 第三方 harness 安装仍属实验性。在你确实需要原生会话运行时之前,优先使用提供商插件。
|
||||
- 支持跨轮次切换 harness。不要在某一轮次中途切换 harness,尤其是在原生工具、审批、助手文本或消息发送已经开始之后。
|
||||
- 公共导入路径是通用的,但某些 attempt / result 类型别名仍然保留 `Pi` 名称以保持兼容性。
|
||||
- 第三方 harness 安装仍处于实验阶段。在你确实需要原生会话运行时之前,优先使用提供商插件。
|
||||
- 支持跨轮次切换 harness。不要在一轮进行过程中、在原生工具、审批、助手文本或消息发送已经开始之后切换 harness。
|
||||
|
||||
## 相关内容
|
||||
|
||||
- [SDK 概览](/zh-CN/plugins/sdk-overview)
|
||||
- [运行时辅助函数](/zh-CN/plugins/sdk-runtime)
|
||||
- [运行时辅助工具](/zh-CN/plugins/sdk-runtime)
|
||||
- [提供商插件](/zh-CN/plugins/sdk-provider-plugins)
|
||||
- [Codex Harness](/zh-CN/plugins/codex-harness)
|
||||
- [模型提供商](/zh-CN/concepts/model-providers)
|
||||
|
||||
@ -1,152 +1,81 @@
|
||||
---
|
||||
description: Real-world OpenClaw projects from the community
|
||||
read_when:
|
||||
- 寻找真实的 OpenClaw 使用示例
|
||||
- 更新社区项目精选
|
||||
- 在寻找真实的 OpenClaw 使用示例
|
||||
- 更新社区项目亮点
|
||||
summary: 由 OpenClaw 驱动的社区构建项目和集成
|
||||
title: 展示区
|
||||
x-i18n:
|
||||
generated_at: "2026-04-23T06:43:41Z"
|
||||
generated_at: "2026-04-23T16:04:42Z"
|
||||
model: gpt-5.4
|
||||
provider: openai
|
||||
source_hash: 5bf4bd2548709a01ad18331537f804b32c3213139c2234915aa17f7a2638f19f
|
||||
source_hash: b95dc12399a1a263c268671ffccfc86b069ec908a5bf40adc00663153c281d7d
|
||||
source_path: start/showcase.md
|
||||
workflow: 15
|
||||
---
|
||||
|
||||
# 展示区
|
||||
|
||||
<div className="showcase-hero">
|
||||
<p className="showcase-kicker">构建于聊天、终端、浏览器和客厅之中</p>
|
||||
<p className="showcase-lead">
|
||||
OpenClaw 项目不是玩具演示。人们正在通过他们早已使用的渠道,交付 PR 审查循环、移动应用、家庭自动化、语音系统、开发工具和重度记忆工作流。
|
||||
</p>
|
||||
<div className="showcase-actions">
|
||||
<a href="#videos">观看演示</a>
|
||||
<a href="#fresh-from-discord">浏览项目</a>
|
||||
<a href="https://discord.gg/clawd">分享你的项目</a>
|
||||
</div>
|
||||
<div className="showcase-highlights">
|
||||
<div className="showcase-highlight">
|
||||
<strong>聊天原生构建</strong>
|
||||
<span>Telegram、WhatsApp、Discord、Beeper、网页聊天,以及终端优先工作流。</span>
|
||||
</div>
|
||||
<div className="showcase-highlight">
|
||||
<strong>真实自动化</strong>
|
||||
<span>预订、购物、支持、报告和浏览器控制,无需等待 API。</span>
|
||||
</div>
|
||||
<div className="showcase-highlight">
|
||||
<strong>本地 + 物理世界</strong>
|
||||
<span>打印机、扫地机器人、摄像头、健康数据、家庭系统和个人知识库。</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
OpenClaw 项目不是玩具演示。人们正在通过自己已经在使用的渠道,交付 PR 审查闭环、移动应用、家庭自动化、语音系统、开发工具以及重度记忆工作流——基于 Telegram、WhatsApp、Discord 和终端的聊天原生构建;无需等待 API 的真实自动化,可用于预订、购物和支持;以及与打印机、扫地机器人、摄像头和家庭系统的现实世界集成。
|
||||
|
||||
<Info>
|
||||
**想被推荐展示?** 请在 [Discord 的 #self-promotion](https://discord.gg/clawd) 中分享你的项目,或在 [X 上标记 @openclaw](https://x.com/openclaw)。
|
||||
**想被收录展示?** 请在 [Discord 的 #self-promotion 频道](https://discord.gg/clawd) 分享你的项目,或在 [X 上标记 @openclaw](https://x.com/openclaw)。
|
||||
</Info>
|
||||
|
||||
<div className="showcase-jump-links">
|
||||
<a href="#videos">视频</a>
|
||||
<a href="#fresh-from-discord">Discord 最新精选</a>
|
||||
<a href="#automation-workflows">自动化</a>
|
||||
<a href="#knowledge-memory">记忆</a>
|
||||
<a href="#voice-phone">语音与电话</a>
|
||||
<a href="#infrastructure-deployment">基础设施</a>
|
||||
<a href="#home-hardware">家庭与硬件</a>
|
||||
<a href="#community-projects">社区</a>
|
||||
<a href="#submit-your-project">提交项目</a>
|
||||
</div>
|
||||
|
||||
## 视频
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
如果你想用最短路径从“这是什么?”走到“好,我懂了”,就从这里开始。
|
||||
</p>
|
||||
如果你想用最短路径从“这是什么?”到“好,我懂了”,请从这里开始。
|
||||
|
||||
<div className="showcase-video-grid">
|
||||
<div className="showcase-video-card">
|
||||
<div className="showcase-video-shell">
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/SaWSPZoPX34"
|
||||
title="OpenClaw:本应由 Siri 提供的自托管 AI(完整安装)"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
<h3>完整安装演练</h3>
|
||||
<p>VelvetShark,28 分钟。从安装、新手引导到端到端获得第一个可用助手。</p>
|
||||
<a href="https://www.youtube.com/watch?v=SaWSPZoPX34">在 YouTube 上观看</a>
|
||||
</div>
|
||||
<CardGroup cols={3}>
|
||||
|
||||
<div className="showcase-video-card">
|
||||
<div className="showcase-video-shell">
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/mMSKQvlmFuQ"
|
||||
title="OpenClaw 展示视频"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
<h3>社区展示集锦</h3>
|
||||
<p>快速浏览围绕 OpenClaw 构建的真实项目、界面和工作流。</p>
|
||||
<a href="https://www.youtube.com/watch?v=mMSKQvlmFuQ">在 YouTube 上观看</a>
|
||||
</div>
|
||||
<Card title="完整设置演练" href="https://www.youtube.com/watch?v=SaWSPZoPX34">
|
||||
VelvetShark,28 分钟。从安装、新手引导到获得第一个可用的助手,完整走通全流程。
|
||||
</Card>
|
||||
|
||||
<div className="showcase-video-card">
|
||||
<div className="showcase-video-shell">
|
||||
<iframe
|
||||
src="https://www.youtube-nocookie.com/embed/5kkIJNUGFho"
|
||||
title="OpenClaw 社区展示"
|
||||
loading="lazy"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
|
||||
allowFullScreen
|
||||
/>
|
||||
</div>
|
||||
<h3>真实世界中的项目</h3>
|
||||
<p>来自社区的示例,从聊天原生编码循环到硬件和个人自动化。</p>
|
||||
<a href="https://www.youtube.com/watch?v=5kkIJNUGFho">在 YouTube 上观看</a>
|
||||
</div>
|
||||
</div>
|
||||
<Card title="社区展示精选" href="https://www.youtube.com/watch?v=mMSKQvlmFuQ">
|
||||
更快速地浏览围绕 OpenClaw 构建的真实项目、界面和工作流。
|
||||
</Card>
|
||||
|
||||
<Card title="真实世界中的项目" href="https://www.youtube.com/watch?v=5kkIJNUGFho">
|
||||
来自社区的示例,从聊天原生编码闭环到硬件与个人自动化。
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
## Discord 最新精选
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
近期在编码、开发工具、移动端和聊天原生产品构建方面的亮点项目。
|
||||
</p>
|
||||
近期在编码、开发工具、移动端和聊天原生产品构建方面的亮眼项目。
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="PR 审查 → Telegram 反馈" icon="code-pull-request" href="https://x.com/i/status/2010878524543131691">
|
||||
<Card title="从 PR 审查到 Telegram 反馈" icon="code-pull-request" href="https://x.com/i/status/2010878524543131691">
|
||||
**@bangnokia** • `review` `github` `telegram`
|
||||
|
||||
OpenCode 完成更改 → 打开 PR → OpenClaw 审查 diff,并在 Telegram 中回复“细微建议”以及明确的合并结论(包括需要优先修复的关键问题)。
|
||||
OpenCode 完成更改并创建 PR,OpenClaw 审查 diff,然后在 Telegram 中回复建议以及明确的合并结论。
|
||||
|
||||
<img src="/assets/showcase/pr-review-telegram.jpg" alt="OpenClaw 在 Telegram 中交付 PR 审查反馈" />
|
||||
<img src="/assets/showcase/pr-review-telegram.jpg" alt="在 Telegram 中交付的 OpenClaw PR 审查反馈" />
|
||||
</Card>
|
||||
|
||||
<Card title="几分钟内构建酒窖 Skill" icon="wine-glass" href="https://x.com/i/status/2010916352454791216">
|
||||
**@prades_maxime** • `skills` `local` `csv`
|
||||
|
||||
向 “Robby”(@openclaw)请求一个本地酒窖 Skill。它会索取示例 CSV 导出和存储位置,然后快速构建/测试该 Skill(示例中为 962 瓶)。
|
||||
让 “Robby” (@openclaw) 为本地酒窖构建一个 Skill。它会请求示例 CSV 导出文件和存储路径,然后构建并测试该 Skill(示例中有 962 瓶酒)。
|
||||
|
||||
<img src="/assets/showcase/wine-cellar-skill.jpg" alt="OpenClaw 根据 CSV 构建本地酒窖 Skill" />
|
||||
<img src="/assets/showcase/wine-cellar-skill.jpg" alt="OpenClaw 从 CSV 构建本地酒窖 Skill" />
|
||||
</Card>
|
||||
|
||||
<Card title="Tesco 购物自动驾驶" icon="cart-shopping" href="https://x.com/i/status/2009724862470689131">
|
||||
**@marchattonhere** • `automation` `browser` `shopping`
|
||||
|
||||
每周餐单 → 常购商品 → 预订配送时段 → 确认订单。无需 API,只用浏览器控制。
|
||||
每周膳食计划、常购商品、预订配送时段、确认订单。无需 API,只靠浏览器控制。
|
||||
|
||||
<img src="/assets/showcase/tesco-shop.jpg" alt="通过聊天实现 Tesco 购物自动化" />
|
||||
<img src="/assets/showcase/tesco-shop.jpg" alt="通过聊天进行 Tesco 购物自动化" />
|
||||
</Card>
|
||||
|
||||
<Card title="SNAG 截图转 Markdown" icon="scissors" href="https://github.com/am-will/snag">
|
||||
**@am-will** • `devtools` `screenshots` `markdown`
|
||||
|
||||
热键选择屏幕区域 → Gemini 视觉 → Markdown 即刻进入你的剪贴板。
|
||||
通过热键选取屏幕区域,借助 Gemini vision,立即将 Markdown 放入剪贴板。
|
||||
|
||||
<img src="/assets/showcase/snag.png" alt="SNAG 截图转 Markdown 工具" />
|
||||
</Card>
|
||||
@ -154,23 +83,23 @@ OpenCode 完成更改 → 打开 PR → OpenClaw 审查 diff,并在 Telegram
|
||||
<Card title="Agents UI" icon="window-maximize" href="https://releaseflow.net/kitze/agents-ui">
|
||||
**@kitze** • `ui` `skills` `sync`
|
||||
|
||||
用于在 Agents、Claude、Codex 和 OpenClaw 之间管理技能/命令的桌面应用。
|
||||
桌面应用,用于在 Agents、Claude、Codex 和 OpenClaw 之间管理 Skills 和命令。
|
||||
|
||||
<img src="/assets/showcase/agents-ui.jpg" alt="Agents UI 应用" />
|
||||
</Card>
|
||||
|
||||
<Card title="Telegram 语音便笺(papla.media)" icon="microphone" href="https://papla.media/docs">
|
||||
<Card title="Telegram 语音消息(papla.media)" icon="microphone" href="https://papla.media/docs">
|
||||
**社区** • `voice` `tts` `telegram`
|
||||
|
||||
封装 papla.media TTS,并将结果作为 Telegram 语音便笺发送(不会有烦人的自动播放)。
|
||||
封装 papla.media TTS,并将结果作为 Telegram 语音消息发送(不会有烦人的自动播放)。
|
||||
|
||||
<img src="/assets/showcase/papla-tts.jpg" alt="来自 TTS 的 Telegram 语音便笺输出" />
|
||||
<img src="/assets/showcase/papla-tts.jpg" alt="来自 TTS 的 Telegram 语音消息输出" />
|
||||
</Card>
|
||||
|
||||
<Card title="CodexMonitor" icon="eye" href="https://clawhub.ai/odrobnik/codexmonitor">
|
||||
**@odrobnik** • `devtools` `codex` `brew`
|
||||
|
||||
通过 Homebrew 安装的辅助工具,用于列出/检查/监视本地 OpenAI Codex 会话(CLI + VS Code)。
|
||||
通过 Homebrew 安装的辅助工具,用于列出、检查和监视本地 OpenAI Codex 会话(CLI + VS Code)。
|
||||
|
||||
<img src="/assets/showcase/codexmonitor.png" alt="ClawHub 上的 CodexMonitor" />
|
||||
</Card>
|
||||
@ -186,7 +115,7 @@ OpenCode 完成更改 → 打开 PR → OpenClaw 审查 diff,并在 Telegram
|
||||
<Card title="维也纳交通(Wiener Linien)" icon="train" href="https://clawhub.ai/hjanuschka/wienerlinien">
|
||||
**@hjanuschka** • `travel` `transport` `skill`
|
||||
|
||||
提供维也纳公共交通的实时发车、故障、电梯状态和路线规划。
|
||||
提供维也纳公共交通的实时发车信息、中断情况、电梯状态和路线规划。
|
||||
|
||||
<img src="/assets/showcase/wienerlinien.png" alt="Wiener Linien Skill" />
|
||||
</Card>
|
||||
@ -194,13 +123,13 @@ OpenCode 完成更改 → 打开 PR → OpenClaw 审查 diff,并在 Telegram
|
||||
<Card title="ParentPay 学校餐食" icon="utensils">
|
||||
**@George5562** • `automation` `browser` `parenting`
|
||||
|
||||
通过 ParentPay 自动预订英国学校餐食。使用鼠标坐标可靠点击表格单元格。
|
||||
通过 ParentPay 自动预订英国学校餐食。使用鼠标坐标来可靠点击表格单元格。
|
||||
</Card>
|
||||
|
||||
<Card title="R2 上传(把我的文件发给我)" icon="cloud-arrow-up" href="https://clawhub.ai/skills/r2-upload">
|
||||
<Card title="R2 上传(Send Me My Files)" icon="cloud-arrow-up" href="https://clawhub.ai/skills/r2-upload">
|
||||
**@julianengel** • `files` `r2` `presigned-urls`
|
||||
|
||||
上传到 Cloudflare R2/S3,并生成安全的预签名下载链接。非常适合远程 OpenClaw 实例。
|
||||
上传到 Cloudflare R2/S3,并生成安全的预签名下载链接。对远程 OpenClaw 实例很有用。
|
||||
</Card>
|
||||
|
||||
<Card title="通过 Telegram 构建 iOS 应用" icon="mobile">
|
||||
@ -214,235 +143,216 @@ OpenCode 完成更改 → 打开 PR → OpenClaw 审查 diff,并在 Telegram
|
||||
<Card title="Oura Ring 健康助手" icon="heart-pulse">
|
||||
**@AS** • `health` `oura` `calendar`
|
||||
|
||||
个人 AI 健康助手,将 Oura ring 数据与日历、预约和健身安排集成。
|
||||
个人 AI 健康助手,将 Oura ring 数据与日历、预约和健身安排整合起来。
|
||||
|
||||
<img src="/assets/showcase/oura-health.png" alt="Oura ring 健康助手" />
|
||||
</Card>
|
||||
<Card title="Kev 的梦之队(14+ 智能体)" icon="robot" href="https://github.com/adam91holt/orchestrated-ai-articles">
|
||||
**@adam91holt** • `multi-agent` `orchestration` `architecture` `manifesto`
|
||||
|
||||
一个 Gateway 网关 下运行 14+ 个智能体,由 Opus 4.5 编排器委派给 Codex 工作智能体。完整的[技术说明](https://github.com/adam91holt/orchestrated-ai-articles)涵盖 Dream Team 阵容、模型选择、沙箱隔离、webhooks、心跳和委派流程。[Clawdspace](https://github.com/adam91holt/clawdspace) 用于智能体沙箱隔离。[博客文章](https://adams-ai-journey.ghost.io/2026-the-year-of-the-orchestrator/)。
|
||||
<Card title="Kev 的 Dream Team(14+ 个智能体)" icon="robot" href="https://github.com/adam91holt/orchestrated-ai-articles">
|
||||
**@adam91holt** • `multi-agent` `orchestration`
|
||||
|
||||
在同一个 Gateway 网关下运行 14+ 个智能体,由一个 Opus 4.5 编排器分派任务给 Codex 工作智能体。可查看[技术说明](https://github.com/adam91holt/orchestrated-ai-articles)以及用于智能体沙箱隔离的 [Clawdspace](https://github.com/adam91holt/clawdspace)。
|
||||
</Card>
|
||||
|
||||
<Card title="Linear CLI" icon="terminal" href="https://github.com/Finesssee/linear-cli">
|
||||
**@NessZerra** • `devtools` `linear` `cli` `issues`
|
||||
**@NessZerra** • `devtools` `linear` `cli`
|
||||
|
||||
适用于 Linear 的 CLI,可与智能体式工作流(Claude Code、OpenClaw)集成。在终端中管理 issue、项目和工作流。首个外部 PR 已合并!
|
||||
适用于 Linear 的 CLI,可与智能体工作流(Claude Code、OpenClaw)集成。在终端中管理 issue、项目和工作流。
|
||||
</Card>
|
||||
|
||||
<Card title="Beeper CLI" icon="message" href="https://github.com/blqke/beepcli">
|
||||
**@jules** • `messaging` `beeper` `cli` `automation`
|
||||
**@jules** • `messaging` `beeper` `cli`
|
||||
|
||||
通过 Beeper Desktop 读取、发送和归档消息。使用 Beeper 本地 MCP API,因此智能体可以在一个地方管理你的所有聊天(iMessage、WhatsApp 等)。
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="automation-workflows"></a>
|
||||
|
||||
## 自动化与工作流
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
涵盖排程、浏览器控制、支持循环,以及“直接替我把这件事做了”的产品能力。
|
||||
</p>
|
||||
日程安排、浏览器控制、支持闭环,以及产品中“直接替我把任务做完”的那一面。
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Winix 空气净化器控制" icon="wind" href="https://x.com/antonplex/status/2010518442471006253">
|
||||
**@antonplex** • `automation` `hardware` `air-quality`
|
||||
|
||||
Claude Code 发现并确认了净化器控制方式,然后由 OpenClaw 接手管理房间空气质量。
|
||||
Claude Code 发现并确认了净化器控制方式,随后由 OpenClaw 接手管理房间空气质量。
|
||||
|
||||
<img src="/assets/showcase/winix-air-purifier.jpg" alt="通过 OpenClaw 控制 Winix 空气净化器" />
|
||||
</Card>
|
||||
|
||||
<Card title="漂亮天空相机抓拍" icon="camera" href="https://x.com/signalgaining/status/2010523120604746151">
|
||||
**@signalgaining** • `automation` `camera` `skill` `images`
|
||||
**@signalgaining** • `automation` `camera` `skill`
|
||||
|
||||
由屋顶摄像头触发:每当天空看起来很美时,就让 OpenClaw 拍一张天空照片 —— 它设计了一个 Skill 并完成了拍摄。
|
||||
由屋顶摄像头触发:每当天空看起来很美时,请求 OpenClaw 拍下一张天空照片。它设计了一个 Skill 并完成了拍摄。
|
||||
|
||||
<img src="/assets/showcase/roof-camera-sky.jpg" alt="由 OpenClaw 捕获的屋顶摄像头天空快照" />
|
||||
<img src="/assets/showcase/roof-camera-sky.jpg" alt="由 OpenClaw 捕捉的屋顶摄像头天空快照" />
|
||||
</Card>
|
||||
|
||||
<Card title="可视化晨间简报场景" icon="robot" href="https://x.com/buddyhadry/status/2010005331925954739">
|
||||
**@buddyhadry** • `automation` `briefing` `images` `telegram`
|
||||
**@buddyhadry** • `automation` `briefing` `telegram`
|
||||
|
||||
一个定时提示词每天早晨生成一张“场景”图像(天气、任务、日期、喜欢的帖子/语录),由一个 OpenClaw 人设驱动。
|
||||
一个定时提示每天早晨通过 OpenClaw persona 生成一张场景图像(天气、任务、日期、喜欢的帖子或语录)。
|
||||
</Card>
|
||||
|
||||
<Card title="Padel 球场预订" icon="calendar-check" href="https://github.com/joshp123/padel-cli">
|
||||
**@joshp123** • `automation` `booking` `cli`
|
||||
|
||||
Playtomic 空位检查 + 预订 CLI。再也不会错过空闲球场。
|
||||
|
||||
|
||||
Playtomic 空闲时段检查器加预订 CLI。再也不会错过空场地。
|
||||
|
||||
<img src="/assets/showcase/padel-screenshot.jpg" alt="padel-cli 截图" />
|
||||
</Card>
|
||||
|
||||
<Card title="会计资料收集" icon="file-invoice-dollar">
|
||||
**社区** • `automation` `email` `pdf`
|
||||
|
||||
从电子邮件中收集 PDF,并为税务顾问整理文档。每月会计工作进入自动驾驶。
|
||||
|
||||
从电子邮件收集 PDF,并为税务顾问准备文档。每月会计工作进入自动驾驶。
|
||||
</Card>
|
||||
|
||||
<Card title="沙发土豆开发模式" icon="couch" href="https://davekiss.com">
|
||||
**@davekiss** • `telegram` `website` `migration` `astro`
|
||||
**@davekiss** • `telegram` `migration` `astro`
|
||||
|
||||
通过 Telegram 重建了整个个人网站,同时还在看 Netflix —— Notion → Astro,迁移了 18 篇文章,DNS 切换到 Cloudflare。全程没打开过笔记本电脑。
|
||||
一边看 Netflix,一边通过 Telegram 重建整个个人网站——从 Notion 到 Astro,迁移了 18 篇文章,DNS 迁移到 Cloudflare。全程没打开过笔记本电脑。
|
||||
</Card>
|
||||
|
||||
<Card title="求职智能体" icon="briefcase">
|
||||
**@attol8** • `automation` `api` `skill`
|
||||
|
||||
搜索职位列表,根据简历关键词进行匹配,并返回带链接的相关机会。使用 JSearch API 在 30 分钟内构建完成。
|
||||
搜索职位列表,与简历关键词匹配,并返回相关机会及链接。使用 JSearch API 在 30 分钟内构建完成。
|
||||
</Card>
|
||||
|
||||
<Card title="Jira Skill 构建器" icon="diagram-project" href="https://x.com/jdrhyne/status/2008336434827002232">
|
||||
**@jdrhyne** • `automation` `jira` `skill` `devtools`
|
||||
**@jdrhyne** • `jira` `skill` `devtools`
|
||||
|
||||
OpenClaw 连接到 Jira,然后即时生成了一个新 Skill(当时它甚至还不存在于 ClawHub 上)。
|
||||
OpenClaw 连接到 Jira,然后即时生成了一个新的 Skill(那时它甚至还未出现在 ClawHub 上)。
|
||||
</Card>
|
||||
|
||||
<Card title="通过 Telegram 使用 Todoist Skill" icon="list-check" href="https://x.com/iamsubhrajyoti/status/2009949389884920153">
|
||||
**@iamsubhrajyoti** • `automation` `todoist` `skill` `telegram`
|
||||
**@iamsubhrajyoti** • `todoist` `skill` `telegram`
|
||||
|
||||
自动化 Todoist 任务,并让 OpenClaw 直接在 Telegram 聊天中生成该 Skill。
|
||||
实现 Todoist 任务自动化,并让 OpenClaw 直接在 Telegram 聊天中生成该 Skill。
|
||||
</Card>
|
||||
|
||||
<Card title="TradingView 分析" icon="chart-line">
|
||||
**@bheem1798** • `finance` `browser` `automation`
|
||||
|
||||
通过浏览器自动化登录 TradingView,截取图表,并按需执行技术分析。无需 API——只需浏览器控制。
|
||||
通过浏览器自动化登录 TradingView,截取图表,并按需进行技术分析。无需 API——只要浏览器控制即可。
|
||||
</Card>
|
||||
|
||||
<Card title="Slack 自动支持" icon="slack">
|
||||
**@henrymascot** • `slack` `automation` `support`
|
||||
|
||||
监控公司 Slack 渠道,提供有帮助的回复,并将通知转发到 Telegram。甚至在没有被要求的情况下,自主修复了一个已部署应用中的生产 bug。
|
||||
监视公司的 Slack 渠道,提供有帮助的回复,并将通知转发到 Telegram。曾在无人要求的情况下,自主修复了已部署应用中的一个生产 bug。
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="knowledge-memory"></a>
|
||||
|
||||
## 知识与记忆
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
用于索引、搜索、记忆以及基于个人或团队知识进行推理的系统。
|
||||
</p>
|
||||
用于索引、搜索、记忆和推理个人或团队知识的系统。
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="xuezh 中文学习" icon="language" href="https://github.com/joshp123/xuezh">
|
||||
**@joshp123** • `learning` `voice` `skill`
|
||||
|
||||
通过 OpenClaw 提供发音反馈和学习流程的中文学习引擎。
|
||||
|
||||
|
||||
通过 OpenClaw 提供带发音反馈和学习流程的中文学习引擎。
|
||||
|
||||
<img src="/assets/showcase/xuezh-pronunciation.jpeg" alt="xuezh 发音反馈" />
|
||||
</Card>
|
||||
|
||||
<Card title="WhatsApp 记忆金库" icon="vault">
|
||||
**社区** • `memory` `transcription` `indexing`
|
||||
|
||||
导入完整的 WhatsApp 导出内容,转录 1000+ 条语音便笺,与 git 日志交叉核对,并输出带链接的 markdown 报告。
|
||||
|
||||
导入完整的 WhatsApp 导出内容,转录 1000+ 条语音消息,与 git 日志交叉核对,并输出带链接的 markdown 报告。
|
||||
</Card>
|
||||
|
||||
<Card title="Karakeep 语义搜索" icon="magnifying-glass" href="https://github.com/jamesbrooksco/karakeep-semantic-search">
|
||||
**@jamesbrooksco** • `search` `vector` `bookmarks`
|
||||
|
||||
使用 Qdrant + OpenAI/Ollama embeddings,为 Karakeep 书签添加向量搜索。
|
||||
|
||||
使用 Qdrant 加 OpenAI 或 Ollama embeddings,为 Karakeep 书签添加向量搜索。
|
||||
</Card>
|
||||
|
||||
<Card title="头脑特工队 2 记忆系统" icon="brain">
|
||||
<Card title="Inside-Out-2 记忆" icon="brain">
|
||||
**社区** • `memory` `beliefs` `self-model`
|
||||
|
||||
一个独立的记忆管理器,将会话文件转化为记忆 → 信念 → 持续演化的自我模型。
|
||||
|
||||
独立的记忆管理器,可将会话文件转化为记忆,再转化为信念,最终形成不断演化的自我模型。
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="voice-phone"></a>
|
||||
|
||||
## 语音与电话
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
以语音为优先的入口、电话桥接和重度依赖转录的工作流。
|
||||
</p>
|
||||
语音优先的入口、电话桥接,以及以转录为核心的工作流。
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Clawdia 电话桥" icon="phone" href="https://github.com/alejandroOPI/clawdia-bridge">
|
||||
<Card title="Clawdia 电话桥接" icon="phone" href="https://github.com/alejandroOPI/clawdia-bridge">
|
||||
**@alejandroOPI** • `voice` `vapi` `bridge`
|
||||
|
||||
Vapi 语音助手 ↔ OpenClaw HTTP 桥。与你的智能体进行接近实时的电话通话。
|
||||
|
||||
从 Vapi 语音助手到 OpenClaw HTTP 的桥接。让你与智能体进行接近实时的电话通话。
|
||||
</Card>
|
||||
|
||||
<Card title="OpenRouter 转录" icon="microphone" href="https://clawhub.ai/obviyus/openrouter-transcribe">
|
||||
**@obviyus** • `transcription` `multilingual` `skill`
|
||||
|
||||
通过 OpenRouter(Gemini 等)进行多语言音频转录。可在 ClawHub 上获取。
|
||||
通过 OpenRouter 进行多语言音频转录(Gemini 等)。可在 ClawHub 上获取。
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="infrastructure-deployment"></a>
|
||||
|
||||
## 基础设施与部署
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
让 OpenClaw 更易于运行和扩展的打包、部署和集成。
|
||||
</p>
|
||||
让 OpenClaw 更易于运行和扩展的打包、部署与集成。
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="Home Assistant 附加组件" icon="home" href="https://github.com/ngutman/openclaw-ha-addon">
|
||||
<Card title="Home Assistant 插件" icon="home" href="https://github.com/ngutman/openclaw-ha-addon">
|
||||
**@ngutman** • `homeassistant` `docker` `raspberry-pi`
|
||||
|
||||
运行在 Home Assistant OS 上的 OpenClaw Gateway 网关,支持 SSH 隧道和持久化状态。
|
||||
|
||||
运行在 Home Assistant OS 上的 OpenClaw gateway,支持 SSH 隧道和持久化状态。
|
||||
</Card>
|
||||
|
||||
<Card title="Home Assistant Skill" icon="toggle-on" href="https://clawhub.ai/skills/homeassistant">
|
||||
**ClawHub** • `homeassistant` `skill` `automation`
|
||||
|
||||
通过自然语言控制并自动化 Home Assistant 设备。
|
||||
|
||||
通过自然语言控制和自动化 Home Assistant 设备。
|
||||
</Card>
|
||||
|
||||
<Card title="Nix 打包" icon="snowflake" href="https://github.com/openclaw/nix-openclaw">
|
||||
**@openclaw** • `nix` `packaging` `deployment`
|
||||
|
||||
开箱即用的 Nix 化 OpenClaw 配置,用于可复现部署。
|
||||
|
||||
开箱即用的 nix 化 OpenClaw 配置,用于可复现部署。
|
||||
</Card>
|
||||
|
||||
<Card title="CalDAV 日历" icon="calendar" href="https://clawhub.ai/skills/caldav-calendar">
|
||||
**ClawHub** • `calendar` `caldav` `skill`
|
||||
|
||||
使用 khal/vdirsyncer 的日历 Skill。自托管日历集成。
|
||||
|
||||
使用 khal 和 vdirsyncer 的日历 Skill。自托管日历集成。
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
<a id="home-hardware"></a>
|
||||
## 家居与硬件
|
||||
|
||||
## 家庭与硬件
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
OpenClaw 的物理世界一面:家庭、传感器、摄像头、扫地机器人和其他设备。
|
||||
</p>
|
||||
OpenClaw 面向现实世界的一面:家庭、传感器、摄像头、扫地机器人以及其他设备。
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="GoHome 自动化" icon="house-signal" href="https://github.com/joshp123/gohome">
|
||||
**@joshp123** • `home` `nix` `grafana`
|
||||
|
||||
以 Nix 为原生的家庭自动化,使用 OpenClaw 作为交互界面,并配有精美的 Grafana 仪表板。
|
||||
|
||||
|
||||
以 OpenClaw 作为交互界面的 Nix 原生家庭自动化,并配有 Grafana 仪表板。
|
||||
|
||||
<img src="/assets/showcase/gohome-grafana.png" alt="GoHome Grafana 仪表板" />
|
||||
</Card>
|
||||
|
||||
<Card title="Roborock 扫地机器人" icon="robot" href="https://github.com/joshp123/gohome/tree/main/plugins/roborock">
|
||||
**@joshp123** • `vacuum` `iot` `plugin`
|
||||
|
||||
通过自然对话控制你的 Roborock 机器人吸尘器。
|
||||
|
||||
|
||||
通过自然对话控制你的 Roborock 机器人吸尘器。
|
||||
|
||||
<img src="/assets/showcase/roborock-screenshot.jpg" alt="Roborock 状态" />
|
||||
</Card>
|
||||
|
||||
@ -450,38 +360,28 @@ OpenClaw 连接到 Jira,然后即时生成了一个新 Skill(当时它甚至
|
||||
|
||||
## 社区项目
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
那些已经超越单一工作流,发展为更广泛产品或生态系统的项目。
|
||||
</p>
|
||||
那些已经超越单一工作流,成长为更广泛产品或生态系统的项目。
|
||||
|
||||
<CardGroup cols={2}>
|
||||
|
||||
<Card title="StarSwap Marketplace" icon="star" href="https://star-swap.com/">
|
||||
<Card title="StarSwap 市场" icon="star" href="https://star-swap.com/">
|
||||
**社区** • `marketplace` `astronomy` `webapp`
|
||||
|
||||
完整的天文设备交易市场。基于/围绕 OpenClaw 生态系统构建。
|
||||
|
||||
完整的天文设备交易市场。基于 OpenClaw 生态并围绕其构建。
|
||||
</Card>
|
||||
|
||||
</CardGroup>
|
||||
|
||||
---
|
||||
|
||||
## 提交你的项目
|
||||
|
||||
<p className="showcase-section-intro">
|
||||
如果你正在用 OpenClaw 构建有趣的东西,欢迎发给我们。清晰的截图和具体成果会更有帮助。
|
||||
</p>
|
||||
|
||||
有内容想分享?我们很乐意展示它!
|
||||
|
||||
<Steps>
|
||||
<Step title="分享它">
|
||||
在 [Discord 的 #self-promotion](https://discord.gg/clawd) 中发帖,或 [在 X 上 @openclaw](https://x.com/openclaw)
|
||||
<Step title="分享你的项目">
|
||||
在 [Discord 的 #self-promotion 频道](https://discord.gg/clawd) 发帖,或 [在 X 上发推并提及 @openclaw](https://x.com/openclaw)。
|
||||
</Step>
|
||||
<Step title="附上细节">
|
||||
告诉我们它的功能,附上仓库/演示链接,如果有截图也请一并分享
|
||||
<Step title="包含详细信息">
|
||||
告诉我们它的功能,附上仓库或演示链接,如果有截图也请一并分享。
|
||||
</Step>
|
||||
<Step title="获得展示">
|
||||
我们会将优秀项目添加到此页面
|
||||
我们会将亮眼的项目添加到此页面。
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user