乐于分享
好东西不私藏

@tencent-weixin/openclaw-weixin插件安装执行流程

@tencent-weixin/openclaw-weixin插件安装执行流程

本文主要是根据日志,分析pnpm openclaw plugins install @tencent-weixin/openclaw-weixin 命令的执行流程。

一.安装插件操作命令

(base) mi@llm:~/aiagent/openclaw$ pnpm openclaw plugins install "@tencent-weixin/openclaw-weixin"
(base) mi@llm:~/aiagent/openclaw$ pnpm openclaw plugins install "@tencent-weixin/openclaw-weixin"> openclaw@2026.3.14 openclaw /home/mi/aiagent/openclaw> node scripts/run-node.mjs plugins install @tencent-weixin/openclaw-weixinConfig warnings:\n- plugins.entries.brave: plugin brave: plugin id mismatch (manifest uses "brave", entry hints "brave-plugin")- plugins.entries.google: plugin google: plugin id mismatch (manifest uses "google", entry hints "google-plugin")- plugins.entries.perplexity: plugin perplexity: plugin id mismatch (manifest uses "perplexity", entry hints "perplexity-plugin")- plugins.entries.xai: plugin xai: plugin id mismatch (manifest uses "xai", entry hints "xai-plugin")09:44:41 [plugins] feishu_doc: Registered feishu_doc, feishu_app_scopes09:44:41 [plugins] feishu_chat: Registered feishu_chat tool09:44:41 [plugins] feishu_wiki: Registered feishu_wiki tool09:44:41 [plugins] feishu_drive: Registered feishu_drive tool09:44:41 [plugins] feishu_bitable: Registered bitable tools🦞 OpenClaw 2026.3.14 (9fc72e5) — The lobster in your shell. 🦞◇  Config warnings ─────────────────────────────────────────────────────────────────────────╮│                                                                                           ││  - plugins.entries.brave: plugin brave: plugin id mismatch (manifest uses "brave", entry  ││    hints "brave-plugin")                                                                  ││  - plugins.entries.google: plugin google: plugin id mismatch (manifest uses "google",     ││    entry hints "google-plugin")                                                           ││  - plugins.entries.perplexity: plugin perplexity: plugin id mismatch (manifest uses       ││    "perplexity", entry hints "perplexity-plugin")                                         ││  - plugins.entries.xai: plugin xai: plugin id mismatch (manifest uses "xai", entry hints  ││    "xai-plugin")                                                                          ││                                                                                           │├───────────────────────────────────────────────────────────────────────────────────────────╯◇  Doctor warnings ──────────────────────────────────────────────────────────────────────────╮│                                                                                            ││  - channels.feishu.groupPolicy is "allowlist" but groupAllowFrom (and allowFrom) is empty  ││    — all group messages will be silently dropped. Add sender IDs to                        ││    channels.feishu.groupAllowFrom or channels.feishu.allowFrom, or set groupPolicy to      ││    "open".                                                                                 ││                                                                                            │├────────────────────────────────────────────────────────────────────────────────────────────╯Config warnings:\n- plugins.entries.brave: plugin brave: plugin id mismatch (manifest uses "brave", entry hints "brave-plugin")- plugins.entries.google: plugin google: plugin id mismatch (manifest uses "google", entry hints "google-plugin")- plugins.entries.perplexity: plugin perplexity: plugin id mismatch (manifest uses "perplexity", entry hints "perplexity-plugin")- plugins.entries.xai: plugin xai: plugin id mismatch (manifest uses "xai", entry hints "xai-plugin")Downloading @tencent-weixin/openclaw-weixin…Extracting /tmp/openclaw-npm-pack-kBSYCu/tencent-weixin-openclaw-weixin-1.0.2.tgz…Plugin manifest id "openclaw-weixin" differs from npm package name "@tencent-weixin/openclaw-weixin"; using manifest id as the config key.WARNING: Plugin "openclaw-weixin" contains dangerous code patterns: Environment variable access combined with network send — possible credential harvesting (/tmp/openclaw-plugin-8x6q3H/extract/package/src/messaging/process-message.ts:432)                                                                                                                                                                Installing to /home/mi/.openclaw/extensions/openclaw-weixin…Installing plugin dependencies…09:45:08 [plugins] plugins.allow is empty; discovered non-bundled plugins may auto-load: openclaw-weixin (/home/mi/.openclaw/extensions/openclaw-weixin/index.ts). Set plugins.allow to explicit trusted ids.                                                                                                                                                                                                 09:45:08 [plugins] feishu_doc: Registered feishu_doc, feishu_app_scopes09:45:08 [plugins] feishu_chat: Registered feishu_chat tool09:45:08 [plugins] feishu_wiki: Registered feishu_wiki tool09:45:08 [plugins] feishu_drive: Registered feishu_drive tool09:45:08 [plugins] feishu_bitable: Registered bitable toolsConfig warnings:- plugins.entries.brave: plugin brave: plugin id mismatch (manifest uses "brave", entry hints "brave-plugin")- plugins.entries.google: plugin google: plugin id mismatch (manifest uses "google", entry hints "google-plugin")- plugins.entries.perplexity: plugin perplexity: plugin id mismatch (manifest uses "perplexity", entry hints "perplexity-plugin")- plugins.entries.xai: plugin xai: plugin id mismatch (manifest uses "xai", entry hints "xai-plugin")Config overwrite: /home/mi/.openclaw/openclaw.json (sha256 5cac0ea63e73cdd19e03eddf8d04df99aae73c219f9473ac3ec5024737164cb1 -> b312e29d8ed7c6aaa5e987eaa0ba45135ff5431bfd7df237585d8cccc460a2c0, backup=/home/mi/.openclaw/openclaw.json.bak)Installed plugin: openclaw-weixinRestart the gateway to load plugins.

二.安装插件执行流程

根据日志分析,pnpm openclaw plugins install @tencent-weixin/openclaw-weixin 命令的执行流程:

1. 初始化阶段

  • 执行入口:通过 node scripts/run-node.mjs 脚本启动插件安装流程。

  • 配置加载:系统加载现有的 openclaw.json 配置文件。在此过程中,可能会显示配置警告(例如,日志中未明确显示,但可能存在的插件 ID 不匹配等兼容性提示)。

2. 已有插件加载

系统启动时,会先加载已安装的插件。从日志中可以看到,已成功注册了多个飞书(feishu)相关的插件及其工具。

  • feishu_doc: Registered feishu_doc, feishu_app_scopes

  • feishu_chat: Registered feishu_chat tool

  • feishu_wiki: Registered feishu_wiki tool

  • feishu_drive: Registered feishu_drive tool

  • feishu_bitable: Registered bitable tools

3. 插件下载与解压

  • 下载:从 npm 仓库下载指定的插件包 @tencent-weixin/openclaw-weixin

  • 解压:将下载的 .tgz 压缩包解压到一个临时目录(例如:/tmp/openclaw-npm-pack-KBSyCU/)。

4. 插件验证与安全检查

  • ID 校验:系统检测到插件 manifest 文件中的 id(值为 "openclaw-weixin")与 npm 包名("@tencent-weixin/openclaw-weixin")不一致。最终,系统会使用 manifest 中的 id 作为配置文件中的配置键。

  • 安全扫描:安全扫描机制检测到插件包含潜在的危险代码模式(如访问环境变量和发送网络请求),并发出警告,提示可能存在凭证窃取的风险。

5. 安装与依赖安装

  • 复制文件:将解压后的插件文件复制到正式的插件安装目录:/home/mi/.openclaw/extensions/openclaw-weixin/

  • 安装依赖:进入插件目录,安装其自身的 npm 依赖项,确保插件运行环境完整。

6. 配置更新

  • 备份配置:在修改前,自动将当前配置文件 openclaw.json 备份为 openclaw.json.bak

  • 写入配置:更新原配置文件 openclaw.json,将新插件的配置信息(如 openclaw-weixin)添加到 plugins.entries 部分。

7. 完成与提示

  • 安装成功:控制台输出 Installed plugin: openclaw-weixin,确认安装完成。

  • 重启提示:提示需要重启网关服务,以使新安装的插件生效。

关键文件路径:

类型
路径
临时下载目录
/tmp/openclaw-npm-pack-*
插件安装目录
/home/mi/.openclaw/extensions/openclaw-weixin/
配置文件
/home/mi/.openclaw/openclaw.json
配置备份
/home/mi/.openclaw/openclaw.json.bak

参考文献

[0] @tencent-weixin/openclaw-weixin插件安装执行流程:https://my.feishu.cn/wiki/U3fTwdyP4ii7ZikkCJ1cJkWRnmc

[1] 微信插件包@tencent-weixin/openclaw-weixin:https://www.npmjs.com/package/@tencent-weixin/openclaw-weixin


知识星球:Dify源码剖析及答疑,OpenClaw源码剖析及答疑。加微信buxingtianxia21进NLP工程化资料群,Dify源码交流群,OpenClaw源码交流群。