夜雨聆风学习资料网

ARTICLE · 1184117

OpenClaw 插件怎么装才安全?选型、安装源和权限边界

OpenClaw 插件怎么装才安全?选型、安装源和权限边界

OpenClaw 插件怎么装才安全?选型、安装源和权限边界

源微信页触发了验证码拦截,正文以 OpenClaw 官方插件文档、插件清单、ClawHub 以及 Koi / Bitdefender / 安天对 ClawHub 投毒的公开审计为准。源标题把一串扩展写成「必装礼包」——本地已经写过 OpenClaw 运维面板和 CNB 部署,那些文回答的是 Gateway 怎么跑起来。本文换一层:通道插件、搜索插件、ClawHub 技能包不是一类东西;安装源、白名单和安装策略才是边界。 没有人人都该一键灌进去的十五件套。

GitHub 上 openclaw/openclaw 的社交卡片写得很直:The AI that really does things。仓库已经冲到约 39 万 Star。热度越高,ClawHub 上的仿冒包、文档里藏 curl | bash 的投毒就越划算。社区里至少有两份互相印证的数字:Koi 扫出过三百多个恶意技能;Bitdefender 称近两成样本带风险特征。把这些扩展当成「装得越多越智能」,等于把 Agent 的 exec、通道和密钥面一起打开。


一、先分清三层:Tool、Skill、Plugin

很多「必装插件」清单其实把三件事揉在一张表里。官方文档分得很清,装错层会装到错误的命令、错误的权限模型上。

Tool(工具) 是运行时器官。read / write / exec / browser 决定 Agent 碰不碰磁盘、能不能跑命令。没有工具,技能写得再漂亮也只是说明书。

Skill(技能) 是教科书:一个目录里的 SKILL.md 加脚本,教模型何时、按什么步骤去调已有工具。安装技能默认不新增权限,只改变提示词和流程。加载顺序从工作区 skills/、~/.agents/skills、托管目录一直落到捆绑技能;同名时高优先级覆盖低优先级。

Plugin(插件) 才是真正的运行时扩展:通道、模型供应商、语音、搜索 provider、harness、MCP。它会注册工具、钩子、Gateway 方法。装插件等于往进程里加载代码,官方原话是:Treat plugin installs like running code.

层级
典型产物
安装命令
失败时发生什么
Tool
exec
、browser、message
配置开关,一般不用装包
能力面直接变大或变小
Skill
SKILL.md
 + 脚本
openclaw skills install
 或 npx clawhub@latest install
提示词被投毒、诱导你执行「安装步骤」
Plugin
openclaw.plugin.json
 + npm 包
openclaw plugins install clawhub:<pkg>
通道、工具、钩子直接进 Gateway

源文把 gog、summarize、weather 和飞书通道写进同一份「插件清单」。工程上:gog 是技能(外加 gogcli 二进制),飞书是官方外部插件 @openclaw/feishu,browser 则已经打进核心包。混着装,你会以为 npx clawhub install feishu 能接通通道——通不了,通道要走 plugins install。


二、安装源比名字重要:clawhub、npm、git、本地

官方把发现面放在 ClawHub。搜索插件用 openclaw plugins search,搜索技能用 openclaw skills search。两套目录、两套安装器,不要用技能命令去装通道。

# 发现openclaw plugins search "calendar"openclaw skills search "calendar"# 插件:显式指定来源(推荐)openclaw plugins install clawhub:<package>openclaw plugins install clawhub:<package>@1.2.3openclaw plugins install npm:<package>openclaw plugins install git:github.com/<owner>/<repo>@<ref>openclaw plugins install --link ./my-plugin# 技能:装进当前 OpenClaw 工作区openclaw skills install @openclaw/demoopenclaw skills update --all

裸包名有兼容期行为:匹配捆绑 / 官方 id 时走捆绑或官方目录;其它裸名会落到 npm。@openclaw/* 若对应捆绑插件,会先解析到捆绑副本。生产环境不要赌裸名,写死前缀:

来源
什么时候用
非交互安装要注意
clawhub:
要扫描摘要、版本元数据、安装提示
官方与 ClawHub 视为可信任来源
npm:
要 dist-tag、精确版本
任意 npm 源需要 --force
git:
要某个 tag / commit
任意 git 源需要 --force
本地路径 / --link
自己开发或审计过的目录
--link
 仍要做能力同意
npm-pack:
已下载的 .tgz
先核 digest,再装

--force 只确认「我信任这个非 ClawHub 源」,不能越过 security.installPolicy 的拦截,也不能代替 --accept-capabilities。旧旗标 --dangerously-force-unsafe-install 在 2026.6 附近的安全改动里已经变成空操作:危险代码扫描器拿掉了,最终裁断交给本地 policy。

装完还要验证运行时,而不是只看冷清单:

openclaw plugins list --json \  | jq '.plugins[] | {id, enabled, format, source, dependencyStatus}'openclaw plugins enable <plugin-id>openclaw plugins inspect <plugin-id> --runtime --json

list 是配置 + 清单 + 注册表的冷检查,不证明正在跑的 Gateway 已经 import 了这份代码。--runtime 会在当前 CLI 进程里加载插件,报告工具、钩子、服务、Gateway 方法。真正生效还要对一次真实的 hook 或工具调用。Control UI 对本地 Gateway 通常能热替换;Gateway 没起来时,命令只写入下次启动。某些插件声明了必须重启,这时才 openclaw gateway restart。

第三方插件在安装或启用前会弹出 capability consent(能力同意):声明了哪些通道、工具、钩子、MCP、危险配置。捆绑插件和官方目录校验过的第一方包可豁免这次审查,但豁免不等于 OAuth、OS 权限或运行时工具批准。非交互安装必须显式带上:

openclaw plugins install clawhub:<package> --accept-capabilitiesopenclaw plugins enable <plugin-id> --accept-capabilities

doctor --fix / --yes不会自动替你点同意。本地路径因为没有制品完整性记录,每次安装都会再问一遍——这是特性,不是烦。


三、按场景选题,不要按「必装」堆十五个

下面这组扩展覆盖源文常点的名字,但按通道 / 搜索 / 办公技能 / 治理拆开。原则是:通道选一个主入口;搜索选一个 provider;办公技能按你人在哪套系统里干活;治理组件先于一切高权限技能。

1. 通道层:选入口,不要全开

通道插件决定 Agent 能从哪收消息、往哪回。每多开一个,就多一个群策略、一份 allowFrom、一次被 prompt 注入的表面。

候选
分发
安装
边界
telegram
核心包,已包含
openclaw plugins enable telegram
个人助理最省事;群必须 allowlist
feishu
官方外部包
openclaw plugins install @openclaw/feishu
国内团队首选;社区维护者 @m1heng
discord
官方外部包
openclaw plugins install @openclaw/discord
装完要配 Bot Token,再 gateway restart(若插件要求)
slack
官方外部包
openclaw plugins install @openclaw/slack
企业频道;别把 groupPolicy 留成 open
whatsapp
官方外部包
openclaw plugins install @openclaw/whatsapp
读历史、发不可撤回内容;默认不要装

飞书示例(凭证用占位符):

openclaw plugins install @openclaw/feishuopenclaw config set channels.feishu.enabled trueopenclaw config set channels.feishu.appId "cli_your-app-id"openclaw config set channels.feishu.appSecret "your-app-secret"openclaw plugins inspect feishu --runtime --json

扩展文档里的 @m1heng-clawd/feishu 是云文档 / 多维表格增强,不是官方通道本体。先让官方包跑通私聊,再考虑增强包。企业微信、钉钉、QQ 多半走社区包或 openclaw-china 这类聚合仓——来源是 git: 或本地 --link,非交互必须 --force,并且要进你自己的 allow 名单。

2. 搜索与浏览器:给眼睛,不给整台机器

没有检索,Agent 只能靠训练记忆。但「能上网」和「能在浏览器里登录网银」不是同一档风险。

候选
分发
作用
边界
browser
核心包,默认开
浏览器工具、openclaw browser CLI
替换前先 disable,避免两套运行时互抢
brave
官方外部 @openclaw/brave-plugin
独立索引搜索
配 API Key,设 maxResults
tavily
官方外部 @openclaw/tavily-plugin
Agent 向搜索
按查询计费,别开成无上限
firecrawl
官方外部 @openclaw/firecrawl-plugin
抓取 + 搜索 + 工具
JS 渲染、权限高;隔离环境再用
duckduckgo
 / searxng / exa
官方外部
备选搜索 provider
只留一个默认,别五个一起灌
openclaw plugins install @openclaw/brave-pluginopenclaw configure --section web# 或手动:tools.web.search.provider = brave ,apiKey 走环境变量 / SecretRef

agent-browser 这类 ClawHub 技能在社区排行榜上很靠前,VirusTotal Code Insight 也曾标过可疑模式(外联、eval、密钥)。它不是官方 browser 插件。需要网页自动化时,优先用捆绑 browser;社区技能只在你读完脚本、限制可访问域名之后再考虑。

3. 办公技能:人在哪套系统,就装哪套

这些多数是 Skill + 外部 CLI,不是 plugins install 能解决的。源文把它们叫插件,容易让人在 Control UI 的 Plugins 页空等。

邮件与日历。gog 走 Google 官方 OAuth,覆盖 Gmail / Calendar / Drive / Docs / Sheets。macOS 可用 brew install steipete/tap/gogcli;Linux 需自行编译,社区 Issue 里对无头环境的 OAuth 仍不友好,VPS 常用 SSH 转发把认证打回有浏览器的机器。不用 Google 生态就换 himalaya(IMAP/SMTP),不要为了「全家桶」去开一套你根本不用的 OAuth 面。

知识库。 本地仓库用 obsidian(低风险,文件在你磁盘上);云端 Gateway 用 notion(中风险,Token 能读你授权过的库)。两套一起装只会让模型改错地方。Apple Notes / Bear 只在 macOS 本地有意义,云主机装了也是空指针。

开发。github 技能建立在官方 gh 上:先 gh auth login,再 openclaw config set tools.github.enabled true。tmux、session-logs、coding-agent 适合本机开发者;在共享 Gateway 上开 coding-agent 等于让模型再去调一层 Codex / Claude Code,账单和权限会叠乘。

摘要与天气。summarize、weather 是低风险捆绑技能,适合每日简报。它们解决不了通道和检索,却最常被写成「必装前三」——可以装,但不要把它们当成安全基线。

社媒。bird(@steipete/bird)用浏览器 Cookie 读 X/Twitter,避开官方 API 月费,也把 Cookie 窃取面留给了技能进程。1password 是「全部或无」:Agent 能读库里所有条目。确需使用就建一个 AI 专用库,只放可轮换的集成 Token,不要塞主密码库。

一句话对照(技能侧,不是插件侧):

brew install steipete/tap/gogcli          # 可选:Google 办公brew install gh && gh auth login          # 开发者openclaw skills install summarizeopenclaw config set tools.github.enabled trueopenclaw configure --section web          # 搜索 provider

国内办公通道(飞书)走上一节的插件命令,不要写进这段 skills install。


四、边界写进配置:allow、deny、安装策略

选型决定装什么;边界决定没点名的东西进不来。官方配置骨架:

{  plugins: {    enabled: true,    allow: ["telegram", "feishu", "brave", "browser"],    deny: ["whatsapp", "voice-call", "untrusted-plugin"],    slots: { memory: "memory-core" },    entries: {      feishu: { enabled: true, config: {} },      brave: { enabled: true, config: {} }    }  }}

规则比看起来硬:

  • plugins.enabled: false
     关掉全部插件发现与加载。做 doctor 清理前要先开回来,否则陈旧 id 不会被扫掉。
  • deny 压过 allow,也压过单插件 enable。
  • allow
     是排他白名单:名单外的插件工具即使 tools.allow 写了 "*" 也不可用。
  • plugins.entries.<id>.enabled: false
     只停一个,配置还在。
  • 工作区来源的插件默认关闭,必须显式 enable 或写入 allow。
  • memory
     / contextEngine 是互斥槽:选中即视为激活。

技能侧同样建议白名单。社区常见写法是 skills.allowBundled,只加载点名的捆绑技能,避免「官方 53 个默认全开」。不要把 curl、ssh、无限制 rm 留给技能进程。

生产环境把裁断交给本地 install policy,而不是 ClawHub 的「已验证」徽章。policy 在 CLI 和 Gateway 安装路径上都会跑;超时或崩溃默认 fail-closed(失败即拒绝)。--force 过不了这一关。

{  security: {    installPolicy: {      enabled: true,      targets: ["skill", "plugin"],      exec: {        command: "/usr/local/bin/openclaw-install-policy",        args: ["--mode=production"],        timeoutMs: 30000,        noOutputTimeoutMs: 5000      }    }  }}

交互安装遇到 warning,要输入目标名称才能继续;非交互可用 --acknowledge-install-policy-warning,但每条 warning 仍会重评。Control UI 的「仍然安装」也只对这一次请求有效。policy 脚本建议:黑名单关键词 / 发布者直接拒;官方 catalog 放行;git / archive 默认拒;其余人工审。 配套练习在 practice/install-policy.sh。

装完还要审计,而且要分清深浅:

openclaw security auditopenclaw security audit --deepopenclaw security audit --fix   # 只做确定性收紧,不卸插件、不轮换密钥

普通 audit 不拉起每个插件运行时,看不到运行期采集器。--deep 才加载插件元数据、通道采集、Gateway probe,以及 plugins.code_safety* / skills.code_safety*。--fix 会把常见的 groupPolicy="open" 翻成 allowlist、收紧 state/config 文件权限;不会禁用 gateway / cron / exec,不会改 bind 与鉴权,也不会卸载插件。所以 audit 不是卸载按钮,白名单还是要你自己写。


五、排坑:清单文最容易踩的六处

1. 把 Skill 当 Plugin 装。npx clawhub@latest install @openclaw/feishu 不会注册飞书通道。通道看 openclaw plugins inspect feishu --runtime 有没有 channel surface。

2. 信任下载量与「已验证」。 ClawHavoc / 利爪浩劫把恶意步骤写进长达数百行的 SKILL.md「先决条件」。徽章是参考,本地 policy 才是裁断。名字只差一两个字母的包,按仿冒处理。

3. 执行文档里的第二段安装。 正规包把依赖写进 package.json。出现「请先 curl 下载 helper」「密码 zip」——直接停。安天的分析把这类文件视为新型脚本执行体:诱导你在宿主机上跑的,往往不是技能本身。

4. 非交互流水线漏了同意旗标。 CI 里 plugins install 卡住或静默跳过,多半是 capability consent。补 --accept-capabilities 之前,先在日志里把声明的工具和钩子读完。

5. 只 list 不 inspect --runtime。 安装记录在、Gateway 没加载,是最常见的「我明明装了」。热重载失败时看插件自己的 restart policy,必要时再重启 Gateway。

6. 高权限技能和主工作区混跑。firecrawl、voice-call、1password、任意钱包 / 交易类技能,放到独立目录或容器,网络和密钥与主 Agent 切开。源文推荐的 Docker 隔离方向是对的;不要在 --network=host 再挂载整个 ~/.openclaw 之后自称隔离。

社区「黄金组合」常见六件:gog、Brave 搜索、obsidian 或 notion、github、一个通道、summarize。它能覆盖日常,但每一件都有自己的 OAuth / Token / 群策略。组合的价值是少装,不是快装。 加密货币、空投、语音克隆、名字高度相似的「增强版」搜索,直接进 deny。

维护节奏可以很无聊:每周 openclaw plugins update --all 与 openclaw skills update --all;每月 security audit --deep,对照 allow 名单删掉不用的 id。卸载插件用 openclaw plugins uninstall;卸技能不要只 rm -rf ~/.openclaw/skills/<name> 却忘了从配置里拿掉引用。


六、本地练习:先跑白名单,再谈安装

本页 practice/ 不拉起完整 OpenClaw Gateway(那是部署文的范围)。它只验证三件事:allow/deny 谁说了算、policy 脚本 fail-closed、错误来源前缀会被拒绝。把 practice/openclaw.plugins.example.json 拷到测试目录,执行:

cd practicepython3 check_allowlist.pypython3 install-policy.py --mode=production < sample-request.json

预期:whatsapp 在 deny 里会被拒;未点名的 git 源返回 block;官方 catalog 里的 feishu 返回 allow。先让这三条变成肌肉记忆,再去机器上跑 openclaw plugins install。

相关学习资料