OpenClaw 微信插件 v2.0.1 → v2.1.8 对比分析报告

> 生成时间:2026-04-12

> 包名:@tencent-weixin/openclaw-weixin

> 对比版本:v2.0.1 → v2.1.8(跨 7 个小版本)

📊 版本概览

项目v2.0.1v2.1.8
发布时间2026-03-222026-04-07+
包体积52.1 kB56.2 kB (+7.9%)
解压体积182.5 kB196.9 kB (+7.9%)
文件数4242(2 删 2 增)
peerDependencies有 (openclaw >=2026.3.22)**移除**
新增字段-`ilink_appid: "bot"`

🆕 新功能

1. StreamingMarkdownFilter — Markdown 从零支持到部分支持 ⭐⭐⭐

最大亮点。 v2.0.1 中外发文本使用 markdownToPlainText 整段剥离所有 Markdown 语法,导致 AI 回复中的加粗、代码块、表格等格式全部丢失,用户收到纯文本。

v2.1.3 引入了全新的 StreamingMarkdownFilter(~180 行状态机),支持:

语法处理方式
代码块 (\`\`\`)✅ 原样保留
行内代码 (\`)✅ 原样保留
表格 (\...\)✅ 原样保留
水平线 (---, ***, ___)✅ 原样保留
粗体 (**)✅ 原样保留
斜体包裹非CJK内容✅ 原样保留
斜体/粗体包裹CJK内容⚠️ 剥离标记,保留文字
H5/H6 标题⚠️ 剥离标记
图片 (![alt](url))❌ 完全移除
删除线 (~~)⚠️ 剥离标记

采用流式设计(feed / flush),最小缓冲区,适合逐块 deliver 场景。

2. iLink 协议头 — 新增 App-ID 和 Client-Version

v2.1.x 在 API 请求头中新增了:

这意味着腾讯后端现在通过这些头识别客户端类型和版本,可能为后续不同渠道(公众号/小程序/企微)的差异化处理做准备

3. 扫码登录 IDC 重定向

新增 scaned_but_redirect 状态和 currentApiBaseUrl 字段,支持扫码后服务器端 IDC 切换。QR 码请求改用固定 baseUrl https://ilinkai.weixin.qq.com,不再依赖配置中的动态路由。

4. CDN 上传支持 upload_full_url

上传接口新增 upload_full_url 字段,与原有的 upload_param 并存。当服务端返回完整 URL 时可直接使用,提升上传兼容性。

🔧 Bug 修复

1. 插件注册重入问题(v2.1.7)⭐⭐

严重问题修复。 v2.0.1 中 channel.ts 在模块顶层 importmonitorWeixinProvider,这会在插件注册阶段拉起 monitor → process-message → command-auth 依赖链,导致 plugin/provider registry 重入。

v2.1.7 改为在 startAccount 内部 await import(...) 懒加载,彻底消除注册阶段副作用。

同理,process-message.ts 中的 resolveSenderCommandAuthorizationWithRuntimeresolveDirectDmAuthorizationOutcome 也改为懒加载。

2. dangerous code pattern 警告(v2.1.2)

在 OpenClaw 2026.3.31+ 上安装插件时不再触发危险代码模式提示。

3. 媒体下载兼容性增强

media-download.ts 新增 full_url 备选路径:当 encrypt_query_param 为空但 full_url 存在时,仍可下载媒体文件。这修复了某些场景下图片/文件/语音无法下载的问题。

🔄 架构变化

1. 移除 peerDependencies

v2.1.x 不再声明 peerDependencies: { openclaw: ">=2026.3.22" }。兼容性检查改由 compat.ts 运行时判断。好处:减少 npm 安装时的依赖冲突警告。

2. 移除 CLI 子命令

v2.0.1 有独立的 openclaw-weixin CLI 子命令(src/log-upload.ts),v2.1.2 完全移除,统一使用宿主的 openclaw plugins uninstall 流程。

3. 配置刷新机制重写

v2.0.1:登录后写入空 accounts: {} 占位符触发配置重载。

v2.1.2:改为写入 channelConfigUpdatedAt(ISO 8601 时间戳),每次登录更新,让网关从磁盘重新加载配置。

4. 块流式输出策略变化

process-message.tsdisableBlockStreamingfalse 改为 true。这意味着微信渠道禁用了 OpenClaw 的块流式输出,可能是为了配合 StreamingMarkdownFilter 的逐块处理。

5. MEDIA 指令新约束

system prompt 新增规则:MEDIA: 标签必须独占一行,不能与其它文本同行。

📁 文件变更汇总

变更文件
**新增**`src/messaging/markdown-filter.ts`
**删除**`src/log-upload.ts`
**重大修改**`src/channel.ts`, `src/api/api.ts`, `src/messaging/process-message.ts`, `src/auth/accounts.ts`, `src/auth/login-qr.ts`
**中等修改**`src/media/media-download.ts`, `src/cdn/upload.ts`, `src/cdn/cdn-upload.ts`, `src/cdn/pic-decrypt.ts`, `src/config/config-schema.ts`
**轻微修改**`src/compat.ts`, `index.ts`, `openclaw.plugin.json`, `package.json`

⚠️ Breaking Changes

1. CLI 子命令移除openclaw openclaw-weixin logs-upload 不再可用,需迁移到宿主命令

2. 配置格式变化logUploadUrl 字段被 channelConfigUpdatedAt 替代

3. 块流式输出禁用:回复行为从流式变为非流式

🏆 综合评分

维度评分说明
功能增量⭐⭐⭐⭐Markdown 部分支持是质的飞跃
稳定性⭐⭐⭐⭐⭐重入问题修复、媒体下载兼容性提升
架构质量⭐⭐⭐⭐懒加载、协议头规范、CLI 去耦
向后兼容⭐⭐⭐有 3 个 Breaking Change,但影响面小
**总评****⭐⭐⭐⭐ (8/10)****扎实的迭代版本,Markdown 支持是杀手级改进**

🔗 原始链接

💡 升级建议

1. 强烈建议升级。Markdown 部分支持显著改善用户体验,插件注册重入是严重 bug。

2. 如果使用了 openclaw openclaw-weixin logs-upload 命令,需要迁移替代方案。

3. 注意 disableBlockStreaming: true 可能影响回复速度感知(用户可能感觉回复变慢)。

4. 建议在升级前备份 openclaw.json