事件概述
2026年3月8日,在升级 OpenClaw 过程中遇到 Feishu(飞书)插件持续故障,导致通过 Feishu 渠道的通信中断。经过约6小时的排查和修复,最终不仅解决了 Feishu 插件冲突问题,还意外发现并修复了 CDP(Chrome DevTools Protocol)服务无法启动的问题。
故障现象
初始问题:Feishu 插件冲突
升级 OpenClaw 后,系统日志出现警告:
Config warnings:
- plugins.entries.feishu: plugin feishu: duplicate plugin id detected;
later plugin may be overridden
(/Users/baixiao/.openclaw/extensions/feishu/index.ts)
同时 Feishu 渠道完全无法通信。
隐藏问题:CDP 服务无法启动
在排查过程中,发现 CDP(Chrome DevTools Protocol)服务无法启动:
- Gateway 运行正常(Feishu 通信正常)
- 但 CDP 端口 18800 未监听
- Chrome 扩展显示感叹号,无法连接
根本原因分析
1. Feishu 插件冲突
系统中同时存在两个 Feishu 插件实例:
- 系统内置插件:位于 OpenClaw 安装目录
- 路径:
/usr/local/Cellar/node@22/22.22.0/lib/node_modules/openclaw/extensions/feishu/ - 包名:
@openclaw/feishu - 版本:
2026.3.7 - 问题:缺少运行时依赖
@larksuiteoapi/node-sdk,导致加载失败
- 路径:
- 用户安装插件:位于用户目录
- 路径:
~/.openclaw/extensions/feishu/ - 包名:
@m1heng-clawd/feishu - 版本:
0.1.10 - 状态:依赖完整,可正常加载
- 路径:
两个插件使用了相同的插件 ID feishu,导致 OpenClaw 启动时出现 “duplicate plugin id detected” 警告。
2. CDP 服务无法启动的隐藏关联
深入分析后发现,CDP 服务无法启动与 Feishu 插件冲突有隐藏的关联:
OpenClaw 的 Browser/CDP 架构:
Gateway 服务
├── Message Gateway (WebSocket) - 端口 18789 ✅ 正常
└── Browser/CDP 服务层
├── Browser Control Server (HTTP) - 端口 18791
├── CDP Proxy/Browser Launcher - 端口 18800 ❌ 未启动
└── Chrome 进程管理
问题根源:
- OpenClaw 的 Browser 子系统在初始化时,会尝试加载所有配置的插件
- 系统内置的 Feishu 插件因缺少依赖而加载失败
- 这个错误可能导致了 Browser 子系统的初始化异常
- 进而导致 CDP 服务无法正常启动
验证:
- 当我们把有问题的系统插件重命名为
feishu.bak后 - Browser 子系统可以正常初始化
- CDP 服务正常启动并监听端口 18800
修复过程
失败的尝试
| 尝试 | 方案 | 失败原因 |
|---|---|---|
| 1 | 添加 plugins.entries.feishu.path 字段 |
字段不被配置 schema 支持 |
| 2 | 添加 plugins.allow 白名单 |
路径格式不支持 |
| 3 | 重新安装 npm 插件 | 未解决冲突根源 |
成功的方案
最终解决方案:停用系统内置插件,仅保留用户安装插件
# 重命名系统内置插件目录,使其不被加载
mv /usr/local/Cellar/node@22/22.22.0/lib/node_modules/openclaw/extensions/feishu \
/usr/local/Cellar/node@22/22.22.0/lib/node_modules/openclaw/extensions/feishu.bak
意外收获:此方案不仅解决了 Feishu 插件冲突,还意外地修复了 CDP 服务无法启动的问题!
验证修复成功
1. Feishu 通信验证
- ✅ 通过 Feishu 发送消息”2”,AI Assistant 成功接收
- ✅ Feishu 渠道完全恢复正常
2. CDP 服务验证(意外发现)
- ✅
browser open命令成功执行 - ✅
browser snapshot命令成功获取页面内容 - ✅ 成功使用百度搜索并获取结果
网络搜索结果验证
使用修复后的 CDP 服务,成功执行百度搜索,发现 大量用户遇到相同问题:
| 来源 | 时间 | 关键信息 |
|---|---|---|
| GitHub Issue #172 | 2026年2月4日 | 升级到 0.1.7 后出现 duplicate plugin id detected |
| CSDN | 2026年2月20日 | spawn EINVAL 错误,需手动安装依赖 |
| 夜雨聆风博客 | 近期 | 删除重复插件,安装官方插件依赖 |
| CSDN (4天前) | 2026年3月 | Ubuntu/Linux, OpenClaw 2026.2, 相同冲突 |
关键结论:
- 这是一个 普遍存在的问题,影响 OpenClaw 2026.2+ 版本
- 问题原因是 官方内置插件与用户安装插件冲突
- 多个用户通过 删除重复插件 解决了问题
技术细节:OpenClaw CDP 系统架构
CDP 核心组件(从源代码分析)
// 1. Chrome 可执行文件检测
type BrowserExecutable = {
path: string; // Chrome 可执行文件路径
platform: string; // 平台 (darwin/linux/win32)
};
// 2. 运行的 Chrome 实例
type RunningChrome = {
pid: number; // Chrome 进程 ID
exe: BrowserExecutable; // 可执行文件信息
userDataDir: string; // 用户数据目录
cdpPort: number; // CDP 端口 (默认 18800)
startedAt: number; // 启动时间戳
proc: ChildProcessWithoutNullStreams; // Node.js 子进程
};
CDP 核心功能
OpenClaw 通过 CDP 提供以下浏览器控制能力:
- 截图功能:
captureScreenshot()- 支持 PNG/JPEG 格式,全页面或视口截图 - JavaScript 执行:
evaluateJavaScript()- 在浏览器上下文中执行 JS 代码 - ARIA 快照:
snapshotAria()- 用于 UI 自动化的可访问性树快照 - DOM 快照:
snapshotDom()- 完整的 DOM 结构快照 - 创建新标签页:
createTargetViaCdp()- 通过 CDP 创建新的浏览器标签页
关键教训与反思
1. 系统性思维的重要性
最初只关注了 Feishu 插件冲突的表象,没有意识到 Browser/CDP 子系统与插件系统的关联性。一个插件的失败可能导致整个浏览器子系统的初始化失败。
2. 意外发现的价�
解决方案(重命名系统插件)意外地修复了另一个看似无关的问题(CDP 无法启动)。这提醒我们 系统组件之间存在隐藏的依赖关系。
3. 社区验证的重要性
通过网络搜索确认这不是个别现象,而是 普遍存在的问题。这增强了对解决方案的信心,也为其他遇到相同问题的用户提供了参考。
结论
本次事件不仅成功解决了 Feishu 插件冲突问题,还意外修复了 CDP 服务无法启动的问题,最终使系统的浏览器自动化功能完全恢复正常。
通过深入分析源代码、验证网络搜索结果,我们确认了这是一个 OpenClaw 2026.2+ 版本的普遍问题,并找到了 有效的解决方案。
报告版本:v2.0(完整版)
最后更新:2026-03-08 23:30
关键更新:CDP 问题意外解决,网络搜索验证成功