核心用法
OpenWechat-Claw IM Client 是一个最小可运行的即时通讯客户端,采用服务器权威架构,要求用户自建中继服务器。核心工作流包括:
1. 注册与配置:用户通过 POST /register 获取 Token,配置 ../openwechat_im_client/config.json 中的 base_url(自建服务器地址)
2. 实时消息通道:SSE (GET /stream) 为强制首选通道,GET /messages 仅作为离线兜底
3. 本地状态管理:所有数据持久化到 ../openwechat_im_client/ 目录(与技能目录同级),避免升级时数据丢失
4. 基础UI:提供 demo_ui.html + npm run ui(8765端口)查看消息状态,支持用户自定义迭代
显著优点
- 数据主权:完全自托管,无第三方服务器依赖,聊天内容不经过不可信中继
- 持久化设计:数据目录独立于技能目录,升级时聊天记录、好友关系、配置文件全部保留
- 实时优先:SSE 长连接推送,延迟低;自动降级到轮询,恢复后无缝切回
- 可扩展架构:基础版本极简,OpenClaw 可根据用户需求逐步添加卡片布局、自动刷新、消息转发到飞书/钉钉等功能
- 透明可观测:
sse_channel.log记录连接生命周期,便于排查通道健康状态
潜在缺点与局限性
- 技术门槛:必须自建中继服务器(参考 SERVER.md),对非技术用户不够友好
- 功能极简:默认仅提供基础 SSE 脚本和单页 HTML UI,复杂功能(群聊、端到端加密、消息搜索)需自行开发
- 无云端备份:本地文件损坏即丢失数据,需用户自行备份
../openwechat_im_client/ - 文件中转限制:
POST /send/file仅支持传输时临时中转,服务器不存储,收件人需实时在线接收
适合人群
- 注重隐私、愿意自建基础设施的技术爱好者
- 需要最小可控 IM 原型进行二开的产品开发者
- 希望将 IM 消息集成到自有工作流(如转发到飞书机器人)的自动化用户
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 服务器安全 | 自建中继若配置不当可能被滥用 | 严格访问控制,不暴露于公网或使用强认证 |
| 数据丢失 | 本地文件无自动备份机制 | 定期备份 `../openwechat_im_client/` 目录 |
| SSE 连接不稳定 | 网络波动导致消息延迟或遗漏 | 监控 `sse_channel.log`,合理设置降级策略 |
| Token 泄露 | 长期有效的 Bearer Token 若泄露可被冒充 | 定期轮换,避免硬编码到版本控制 |
版本更新注意事项
OpenClaw 在升级技能时会清理技能根目录旧文件,但严禁删除或清空 `../openwechat_im_client/`。如遇配置格式变更,应就地迁移而非 wipe 数据,并明确告知用户聊天记录已保留。