Internal preview

WeHub Research Blog

这是一篇暂时内部分享的技术博客预览。请输入团队预览口令。

Runtime deep dive

OpenClaw:为什么 gateway runtime 把 skill 做成安装、安全和依赖门

OpenClaw:为什么 gateway runtime 把 skill 做成安装、安全和依赖门。Agent Skills portable core / runtime adapter deep dive.

2026-06-06Internal previewAgent Skills · Runtime Adapter

OpenClaw:为什么 gateway runtime 把 skill 做成安装、安全和依赖门

OpenClaw 的 skill 不是静态提示片段,而是挂进 agent gateway 的能力包。它要决定一个 skill 是否能在当前机器、当前 agent、当前 sandbox、当前 channel、当前 secret scope 里安全出现。

这让 OpenClaw 的设计天然比 CLI/IDE skill 更重。CLI 可以把很多风险交给用户确认;IDE 可以依赖项目 trust;gateway 则可能长期在线,连接 Discord、Feishu、远端节点、本地工具和第三方 skill 包。一个 skill 一旦进入可用列表,模型就可能尝试调用它。

它解决的 runtime 问题

OpenClaw 要回答的是:一个不完全可信的能力包,怎样被安装、验证、依赖检查、注入上下文,并在多个 channel 中安全运行。

metadata.openclaw 的意义就在这里。它不是装饰字段,而是 gating 信息:需要哪些二进制,哪些 env,哪些 openclaw.json 配置,哪些 OS,怎样安装依赖,哪个 API key 是主 secret。只有满足这些条件,skill 才应该变成 eligible。

OpenClaw 还会处理 command dispatch、user invocable、disable model invocation、ClawHub verify、secret 注入、sandbox 可见性、eligible skill snapshot。它关注的是运行资格,而不只是写法。

为什么这样设计合理

Gateway runtime 的失败模式比普通 coding assistant 更危险。依赖缺失会导致 agent 反复尝试;secret scope 错误可能泄漏凭证;channel 语义错误可能在 Discord/Feishu 双发或漏发;第三方 skill 包可能带供应链风险。

因此 OpenClaw 需要把“能不能用”前置到 runtime,而不是等模型读完正文后自己判断。它更像一个 capability manager。

迁移时要剥离什么

  • metadata.openclaw、依赖探测、安装脚本、ClawHub metadata。
  • skills.entries.*.envapiKey、secret 注入。
  • command-dispatch: tool、slash command routing。
  • OpenClaw message / channel / Discord / Feishu 语义。
  • sandbox、host process、eligible snapshot、watcher 行为。

Adapter 应该写什么

OpenClaw adapter 应该写依赖、env、配置项、安装/verify 策略、secret scope、是否暴露 slash command、是否允许模型自动调用、channel 输出协议、sandbox 可见性。portable core 不应该写 OpenClaw 的消息标签或 gateway-only 工具名。

Sources

继续阅读