起飞就起飞

OpenClaw Feishu 插件故障事件分析(完整版)

Posted on By baixiao

事件概述

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 插件实例:

  1. 系统内置插件:位于 OpenClaw 安装目录
    • 路径:/usr/local/Cellar/node@22/22.22.0/lib/node_modules/openclaw/extensions/feishu/
    • 包名:@openclaw/feishu
    • 版本:2026.3.7
    • 问题:缺少运行时依赖 @larksuiteoapi/node-sdk,导致加载失败
  2. 用户安装插件:位于用户目录
    • 路径:~/.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 提供以下浏览器控制能力:

  1. 截图功能captureScreenshot() - 支持 PNG/JPEG 格式,全页面或视口截图
  2. JavaScript 执行evaluateJavaScript() - 在浏览器上下文中执行 JS 代码
  3. ARIA 快照snapshotAria() - 用于 UI 自动化的可访问性树快照
  4. DOM 快照snapshotDom() - 完整的 DOM 结构快照
  5. 创建新标签页createTargetViaCdp() - 通过 CDP 创建新的浏览器标签页

关键教训与反思

1. 系统性思维的重要性

最初只关注了 Feishu 插件冲突的表象,没有意识到 Browser/CDP 子系统与插件系统的关联性。一个插件的失败可能导致整个浏览器子系统的初始化失败。

2. 意外发现的价�

解决方案(重命名系统插件)意外地修复了另一个看似无关的问题(CDP 无法启动)。这提醒我们 系统组件之间存在隐藏的依赖关系

3. 社区验证的重要性

通过网络搜索确认这不是个别现象,而是 普遍存在的问题。这增强了对解决方案的信心,也为其他遇到相同问题的用户提供了参考。

结论

本次事件不仅成功解决了 Feishu 插件冲突问题,还意外修复了 CDP 服务无法启动的问题,最终使系统的浏览器自动化功能完全恢复正常。

通过深入分析源代码、验证网络搜索结果,我们确认了这是一个 OpenClaw 2026.2+ 版本的普遍问题,并找到了 有效的解决方案


报告版本:v2.0(完整版)
最后更新:2026-03-08 23:30
关键更新:CDP 问题意外解决,网络搜索验证成功