📄 wecom双插件架构方案.md

← 返回目录

🚀 WeCom双插件架构实施方案

📋 目标

在现有官方wecom插件基础上,额外挂载wecom-cli的MCP Skills,实现完整的企业微信功能覆盖。

🏗️ 架构设计

当前架构(单插件)

现有官方wecom插件
├── MCP工具: doc品类(8个工具)
├── 技能: 15个技能(大部分不可用)
└── 限制: 缺少关键工具(get_records, delete_records等)

目标架构(双插件)

插件1: 现有官方wecom插件
├── 功能: 基础连接、消息通道、权限管理
├── 保留: 现有的doc品类工具
└── 作用: 维持现有连接和基础功能

插件2: wecom-cli MCP Skills ├── 功能: 补充高级功能(智能表格增删改查等) ├── 品类: 可能包含doc、meeting、schedule、msg等 └── 作用: 提供完整的业务功能

🔧 实施步骤

阶段一:调研和准备

1. 获取wecom-cli源码
   git clone https://github.com/WecomTeam/wecom-cli.git
   

2. 分析wecom-cli功能 - 检查MCP Skills结构 - 识别可用的工具品类 - 评估与现有插件的兼容性

3. 设计集成方案 - 确定挂载方式(MCP Server vs 直接集成) - 规划工具命名空间 - 设计冲突解决机制

阶段二:配置和挂载

1. 配置wecom-cli MCP Server
   # 安装wecom-cli依赖
   cd wecom-cli
   npm install
   
   # 配置企业微信凭证
   cp .env.example .env
   # 编辑.env文件配置企业微信信息
   

2. 在OpenClaw中挂载MCP Server

   // OpenClaw配置文件
   {
     "mcpServers": {
       "wecom-cli": {
         "command": "node",
         "args": ["/path/to/wecom-cli/mcp-server.js"],
         "env": {
           "WECOM_CORP_ID": "...",
           "WECOM_SECRET": "..."
         }
       }
     }
   }
   

3. 测试连接和功能 - 验证MCP Server启动 - 测试工具可用性 - 检查与现有插件的兼容性

阶段三:功能整合

1. 工具映射表 | 功能 | 现有插件 | wecom-cli | 最终方案 | |------|----------|-----------|----------| | 智能表格读取 | ❌ 不可用 | ✅ 可用 | 使用wecom-cli | | 智能表格删除 | ❌ 不可用 | ✅ 可用 | 使用wecom-cli | | 智能表格添加 | ✅ 可用 | ✅ 可用 | 优先使用现有 | | 会议管理 | ❌ 不可用 | ✅ 可用 | 使用wecom-cli | | 消息发送 | ❌ 不可用 | ✅ 可用 | 使用wecom-cli |

2. 技能更新 - 更新现有技能,优先使用wecom-cli工具 - 创建新的技能,利用完整功能 - 确保向后兼容性

阶段四:部署和测试

1. 部署双插件
   # 保留现有插件
   cp -r ~/.openclaw/extensions/wecom-openclaw-plugin ~/.openclaw/extensions/wecom-openclaw-plugin-backup
   
   # 安装wecom-cli插件
   openclaw plugins install ./wecom-cli-bundle
   

2. 功能测试 - 测试加盟商状态同步完整流程 - 测试会议创建和管理 - 测试消息发送功能 - 测试日程管理

3. 性能测试 - 检查双插件资源占用 - 测试响应时间 - 验证稳定性

🎯 预期成果

功能增强

1. 智能表格完整CRUD - ✅ 读取记录(get_records) - ✅ 添加记录(add_records) - ✅ 更新记录(update_records) - ✅ 删除记录(delete_records)

2. 会议管理 - ✅ 创建会议 - ✅ 查询会议 - ✅ 更新会议 - ✅ 删除会议

3. 消息管理 - ✅ 发送消息 - ✅ 查询消息 - ✅ 发送文件/卡片

4. 日程管理 - ✅ 创建日程 - ✅ 查询日程 - ✅ 更新日程

5. 待办管理 - ✅ 创建待办 - ✅ 查询待办 - ✅ 更新待办

具体项目实现

1. 加盟商状态同步(完整版)
   读取状态表 → 检测变化 → 同步到进度表
   ✅读取 ✅判断 ✅添加 ✅删除
   

2. 会议自动创建

   读取日历 → 创建会议 → 发送通知
   ✅读取 ✅创建 ✅发送
   

3. 消息自动化

   触发条件 → 组织内容 → 发送消息
   ✅触发 ✅组织 ✅发送
   

🛠️ 技术细节

MCP Server配置

// wecom-cli MCP Server示例
const { McpServer } = require("@modelcontextprotocol/sdk/server/mcp.js");
const { StdioServerTransport } = require("@modelcontextprotocol/sdk/server/stdio.js");

const server = new McpServer({ name: "wecom-cli", version: "1.0.0" });

// 注册智能表格工具 server.tool( "smartsheet_get_records", "获取智能表格记录", { docid: "string", sheet_id: "string" }, async ({ docid, sheet_id }) => { // 调用企业微信API const records = await wecomAPI.getRecords(docid, sheet_id); return { records }; } );

// 更多工具注册...

工具命名规范

现有插件: wecom_mcp call doc 
wecom-cli: wecom_cli call  

为避免冲突,建议:

  • 现有插件: wecom_legacy call ...
  • wecom-cli: wecom call ...

错误处理

1. 工具回退机制
   async function callTool(method, args) {
     try {
       // 优先使用wecom-cli
       return await wecomCli.call(method, args);
     } catch (error) {
       // 回退到现有插件
       return await wecomLegacy.call(method, args);
     }
   }
   

2. 兼容性检查 - 检查工具可用性 - 验证参数格式 - 处理版本差异

📊 风险评估

技术风险

1. 插件冲突 - 风险: 工具名称冲突 - 缓解: 使用不同命名空间

2. 性能影响 - 风险: 双插件增加资源占用 - 缓解: 优化工具调用,避免重复

3. 稳定性问题 - 风险: 新插件可能不稳定 - 缓解: 充分测试,逐步上线

业务风险

1. 数据一致性 - 风险: 双插件可能导致数据不一致 - 缓解: 明确工具职责,避免重复操作

2. 功能重叠 - 风险: 相同功能在不同插件实现 - 缓解: 制定明确的工具使用策略

🚀 实施时间表

第1天:调研和准备

1. ✅ 双插件正常运行,无冲突 2. ✅ 所有预期功能可用 3. ✅ 性能在可接受范围内 4. ✅ 错误处理机制完善

业务标准

1. ✅ 加盟商状态同步完整实现 2. ✅ 会议管理功能可用 3. ✅ 消息发送功能可用 4. ✅ 用户体验良好

💡 后续优化

短期优化(1-2周)

1. 工具性能优化 2. 错误提示改进 3. 文档完善

中期优化(1-2月)

1. 插件合并(如果可行) 2. 功能扩展 3. 监控和告警

长期规划(3-6月)

1. 统一插件架构 2. 支持更多企业微信功能 3. 生态建设


方案制定: OpenClaw Agent 101 制定时间: 2026-03-30 16:35 目标: 实现完整的企业微信自动化能力 关键: 双插件互补,功能完整