1. 本周 OpenClaw 动态里最值得动手复现的部分
如果你正在跟进 OpenClaw 2026-W11 的社区节奏,大概率会被两个关键词反复刷屏:ClawHub 上的 Skills 发布,以及 gateway 的 PR 联调。这一周的信息量确实大——PR 提交速率从周初的每小时二十多个一路冲到七十五到一百个,七天里开放了 4663 个 PR、合并 653 个,CI 烧掉 765031 构建分钟。对想跟节奏的开发者来说,光看热闹没用,得能自己把 Skills 配起来、把 gateway 跑通、把 PR 提交前后的验证清单走一遍。
这篇就按这个思路来。我会先讲清楚 ClawHub Skills 和 gateway 到底解决什么问题、适合谁用,然后给出可以直接复制的 Skills 配置片段和 gateway 联调步骤,再补上本周几个真实报错的排查路径。中间会穿插我自己在复现时踩过的坑,尽量让你少走弯路。核心检索词先摆出来:OpenClaw ClawHub Skills 配置与 gateway 接入,这是本周社区 PR 实践里最需要落地的一环。
需要说明的是,本周 RankClaw 对 14706 个 Skills 的审计显示 7.5% 确认恶意,这个数字直接改变了 Skills 的安装策略——以前是"看到好用的就装",现在必须先看来源、再看 install 区块。所以下面的配置片段里,我会把安全校验也一并写进去,而不是只给一个能跑的最小示例。
2. TaoToken 前置准备:给 gateway 联调一个稳定的模型出口
在动手配 Skills 之前,得先把模型调用这条链路理顺。OpenClaw 的 gateway 本身不产出模型能力,它负责把 agent 的请求路由到具体的 provider。本周 Issue #41690 就是典型的 provider 配置问题——用户在models.providers.kimi-coding里写了compat.requiresOpenAiAnthropicToolPayload,结果 schema 校验直接报未识别 key。这类问题的根源往往不是 OpenClaw 本身,而是 provider 的兼容层没对齐。
我的做法是先把模型出口统一到一个兼容 OpenAI 与 Anthropic 两种 payload 格式的网关上,这样 Skills 里无论用哪种调用方式都不会因为 provider 差异翻车。TaoToken 在这里的角色就是一个统一的 API 入口,Base URL 是https://taotoken.net/api,模型 ID 按你实际要用的填,Key 在控制台生成。
具体操作路径是这样的:先到 TaoToken 控制台 创建一个 API Key,然后在 API Keys 管理页 确认权限范围。如果你只是想先验证模型能不能通,可以直接用 模型对话 发一条测试消息,确认返回正常再往下配。
这里有个容易忽略的点:OpenClaw 的 gateway 在 overload 或 error 场景下,本周之前是不记录 model 和 provider 的(PR #41236 才补上)。也就是说,如果你在联调阶段遇到 400 或超时,日志里可能只有一句干巴巴的报错,根本不知道是哪个模型触发的。所以前置阶段一定要把 provider 配置写清楚,别用默认值糊弄过去。
对于长期要跑 coding agent 的场景,可以考虑 Coding Plan,它在多轮工具调用上的额度策略比按次计费更适合 PR 联调这种高频场景。接入文档在 这里,配置字段和 OpenClaw 的 provider schema 是对得上的。
3. 可复制的 Skills 配置片段与 gateway 联调步骤
这一节是重点,直接给能跑的配置。先说 Skills 的目录结构。ClawHub 上的 Skill 安装后在本地通常落在~/.openclaw/skills/<skill-name>/下,核心文件是SKILL.md和可选的install区块。本周 RankClaw 披露的"幻象先决条件"攻击,就是利用install区块里声明的虚构依赖注入载荷。所以下面这份配置,我会把 install 区块显式锁死,只允许已知来源。
先看一个安全的 Skill 配置示例,文件路径~/.openclaw/skills/my-safe-skill/SKILL.md:
--- name: my-safe-skill version: 1.0.0 author: your-handle source: https://github.com/your-handle/my-safe-skill install: kind: npm package: some-real-package version: 2.3.1 permissions: filesystem: read-only shell: false network: false --- # My Safe Skill 这个 Skill 只做文本处理,不访问文件系统,不执行 shell,不发起网络请求。关键在permissions这一段。OpenClaw 的 Skills 默认没有沙箱,一旦安装就能访问完整文件系统、Shell、网络和所有配置的 API key。显式声明权限虽然不能完全阻止恶意 Skill,但至少能让 review 的人一眼看出这个 Skill 要什么。本周确认的 1185 个危险 Skill 里,凭证收割类(80+)就是靠"优化""缓存"的名义要求用户输入 API key,然后暂存到/tmp等待外泄。
接下来是 gateway 的配置。OpenClaw 的 gateway 配置文件通常在~/.openclaw/config.json,provider 部分要和你实际的模型出口对齐。下面这份是接 TaoToken 的最小配置:
{ "models": { "providers": { "taotoken": { "baseUrl": "https://taotoken.net/api", "apiKey": "${TAOTOKEN_API_KEY}", "model": "claude-sonnet-4-20250514", "compat": { "requiresOpenAiAnthropicToolPayload": true } } } }, "gateway": { "port": 19001, "auth": { "mode": "token", "tokenEnv": "OPENCLAW_GATEWAY_TOKEN" }, "rateLimit": { "controlPlaneWrite": "per-connection" } } }注意rateLimit.controlPlaneWrite这个字段。本周 PR #41983 修的就是 control-plane 写入速率限制全局共享的问题——之前所有连接共享同一个速率计数,高并发下合法连接会被误限流。改成per-connection后,每个连接独立计算,和已有的读限流行为一致。如果你在跑多 agent 并发,这个字段必须显式写上。
环境变量在启动前导出:
export TAOTOKEN_API_KEY="sk-your-key-here" export OPENCLAW_GATEWAY_TOKEN="your-gateway-token"然后启动 gateway:
openclaw gateway start --config ~/.openclaw/config.json如果 gateway 已经在跑,改完配置后需要重启:
openclaw gateway restart联调 Skills 和 gateway 的时候,建议先用一个最小 Skill 验证链路。创建一个只做 echo 的 Skill,确认 agent 能调用、gateway 能路由、模型能返回。这一步通了,再上复杂的 Skill。
4. 验证请求与成功结果:从 curl 到 agent 调用
配置写完不算完,得验证。最直接的方式是先用 curl 打 gateway 的健康检查端点:
curl -s http://127.0.0.1:19001/health | jq .正常返回应该包含 gateway 版本、uptime 和 provider 状态。如果 provider 显示unreachable,说明模型出口没通,回去检查baseUrl和apiKey。
接着验证模型调用。用 gateway 暴露的 chat 端点发一条测试消息:
curl -s -X POST http://127.0.0.1:19001/v1/chat/completions \ -H "Authorization: Bearer $OPENCLAW_GATEWAY_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "reply with ok"}], "max_tokens": 16 }' | jq .成功的话会返回一个标准的 chat completion 结构,choices[0].message.content里是ok。如果这里报 401,说明 gateway token 不对;如果报 400 且信息里提到thinking blocks cannot be modified,那就是本周 Issue #24612 那个 extended thinking 的 bug,临时绕过方案是在请求里加"thinking": "off"。
再验证 Skills 是否被正确加载:
openclaw skills list --config ~/.openclaw/config.json输出里应该能看到你刚创建的my-safe-skill,状态是loaded。如果状态是error,通常是SKILL.md的 frontmatter 格式有问题,或者install区块声明的依赖没装。
最后做一次端到端的 agent 调用。在 OpenClaw 的 TUI 里输入:
/skill my-safe-skill 处理这段文本:hello world如果 TUI 能实时显示返回结果,说明 Skills 和 gateway 的链路完全通了。本周 PR #41964 修的就是 TUI 在 Slack/Discord 等外部频道 session 中不实时显示消息的问题,如果你用的是 TUI 监控多渠道会话,这个 PR 合并后体验会明显改善。
验证通过后,建议把这次成功的配置和请求记录存下来。PR 提交的时候,这些就是你的复现证据。
5. 本篇常见错排查:401、local proxy failed、reading choices、OAuth
联调阶段最容易撞上的几个报错,这里逐个拆。
401 Unauthorized。两种可能:gateway token 不对,或者 provider 的 apiKey 不对。先确认OPENCLAW_GATEWAY_TOKEN和配置文件里的tokenEnv对得上,再确认TAOTOKEN_API_KEY已经导出。如果用的是 Claude Code 类的接入,OAuth 流程走完后 token 是存在本地的,但 gateway 重启后可能读不到,需要重新走一次授权。本周 Issue #41930 就是 Control UI 在 WebSocket 重连后丢失 localStorage 里的 gateway token,导致反复触发设备认证。临时方案是手动把 token 写回 localStorage,或者等这个 PR 合并。
local proxy failed。这个报错通常出现在 gateway 尝试连接 provider 的时候。检查baseUrl是不是写成了https://taotoken.net/api/(末尾多斜杠),有些 HTTP 客户端会把双斜杠当成路径错误。另外确认本机没有残留的代理环境变量,ClawAid 的 OBSERVE 阶段就会专门检查 plist 里的代理残留,因为代理环境变量会阻断连接。
reading choices 报错。这个一般出现在模型返回结构不符合预期的时候。比如你用的 provider 返回的是 Anthropic 格式,但 gateway 按 OpenAI 格式解析,就会在choices字段上失败。解决办法是在 provider 配置里显式声明compat.requiresOpenAiAnthropicToolPayload,让 gateway 知道用哪种 payload 格式。本周 Issue #41690 就是这个字段在kimi-codingprovider 下被标为未识别 key,需要等 Zod schema 补全。
OAuth 相关报错。如果你接的是需要 OAuth 的 provider,token 过期后会报认证失败。检查~/.openclaw/下的凭证文件,确认 refresh token 还在。如果用的是 Codex 类的auth.json,确认文件路径和权限正确。三件套要写全:Base URL、Key、Model ID,缺一个都会导致认证链路断掉。
排查的时候有个技巧:先把thinking设为off,排除 extended thinking 的干扰。本周 Issue #24612 在 context compaction 后,最新助手消息的 thinking/redacted_thinking blocks 被修改,Anthropic API 直接返回 400。这个 bug 目前没有官方修复,只能绕过。
6. 从 PR 提交到合并:本周实践后的接入建议
把上面的配置跑通之后,你对 ClawHub Skills 和 gateway 的联调应该有了完整的体感。本周的 PR 实践里,有几个点值得在提交前自查。
第一,PR 里不要带二进制制品。本周 PR #32345 被拒就是因为包含了openclaw-2026.3.2.tgz,维护者 hydro13 以供应链风险为由拒绝合并,同时指出 35 个 commit 混合了 Discord、gateway、memory、UI 等多类变更,无法作为安全补丁单独评估。后续 PR #35953 提出用 CI 阻断 binary 文件进入 PR diff,这个方向是对的。提交前跑一遍git diff --stat,确认没有意外的大文件。
第二,按安全边界拆分 PR。一个 PR 只做一件事,安全补丁就只改安全相关的文件。本周 hooks 统一注册表 PR #30853 还在架构审查中,mcaxtr 提了 7 条架构级意见,包括缺少单元测试、fs.readFileSync应改为异步、before_reset在 cleanup 失败时的副作用问题。这些意见本质上都是在说:变更范围太大,review 成本高。
第三,Skills 相关的 PR 要附上安全审计结果。RankClaw 的扫描显示排名 201-300 的 Skills 危险比例达 19%,远高于 Top 200 的 4%。如果你的 Skill 落在这个区间,提交时最好附上独立的审计报告,说明 install 区块的来源和权限声明。
对于想长期跟进 OpenClaw 社区节奏的开发者,建议把 gateway 的日志级别调到 debug,这样 PR #41236 合并后,overload 和 error 日志里会带上 model 和 provider 信息,定位问题会快很多。模型出口这块,统一走 TaoToken 的 API 能省掉不少 provider 兼容层的调试时间,尤其是需要同时用 OpenAI 和 Anthropic 两种 payload 格式的场景。
最后一步,把验证清单跑完再提交:gateway health 正常、模型调用返回 200、Skills 列表加载无 error、端到端 agent 调用有输出、git diff无二进制文件、PR 描述里写清楚复现步骤。这套走下来,你的 PR 被合并的概率会高很多。