[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74809":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":17,"lastSyncTime":34,"discoverSource":35},74809,"openclaw-china","BytePioneer-AI\u002Fopenclaw-china","BytePioneer-AI","OpenClaw中国插件：支持飞书，钉钉，QQ，企业微信，微信","",null,"TypeScript",3945,345,31,26,0,2,9,35,6,68.62,false,"main",true,[26,5,27,28,29,30],"openclaw","openclaw-dingding","openclaw-feishu","openclaw-qq","openclaw-weixin","2026-06-12 04:01:15","# 🦞 OpenClaw China — China IM Channels\n\n\u003Cp align=\"center\">\n  \u003Cstrong>面向中国 IM 平台的 OpenClaw 扩展插件集合\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg alt=\"downloads\" src=\"https:\u002F\u002Fraw.githubusercontent.com\u002FBytePioneer-AI\u002Fopenclaw-china-badges\u002Fmain\u002F.github\u002Fbadges\u002Fdownloads-total.svg\" \u002F>\n  \u003Ca href=\".\u002Fpackage.json\">\u003Cimg alt=\"license MIT\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-1f6feb?logo=open-source-initiative&logoColor=white\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Flinux.do\">\u003Cimg alt=\"LINUX DO\" src=\"https:\u002F\u002Fshorturl.at\u002FggSqS\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\nOpenClaw China 为 OpenClaw 提供面向中国常用通讯平台的渠道扩展，帮助你把 AI 助手接入钉钉、企业微信、企业微信自建应用、微信客服、微信公众号、QQ 和飞书等渠道。项目聚焦稳定的消息收发、统一的插件接入面，以及尽量低门槛的配置流程。\n\n\n\u003Cp>\n  文档目录：\u003Ca href=\"#快速开始\">快速开始\u003C\u002Fa> •\n  \u003Ca href=\"#总体架构\">总体架构\u003C\u002Fa> •\n  \u003Ca href=\"#功能支持\">功能支持\u003C\u002Fa> •\n  \u003Ca href=\"#更新日志\">更新日志\u003C\u002Fa> •\n  \u003Ca href=\"#演示\">演示\u003C\u002Fa> •\n  \u003Ca href=\"#-支持我们\">💗 支持我们\u003C\u002Fa> •\n  \u003Ca href=\"#加入交流群\">\u003Cstrong>加入交流群\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\n\n> **⭐ 如果这个项目对你有帮助，请给我们一个 Star！⭐**\n> \n>  您的支持是我们持续改进的动力\n>\n>  **生态项目推荐**：\n> \n>  [ClawMate](https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fclawmate) · 为 OpenClaw 添加一个有温度的角色伴侣。\n>\n>  [weixin-agent-gateway](https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fweixin-agent-gateway) · 在微信中接入 **Claude Code**、Codex、OpenCode、Kimi Code CLI、Qwen Code 等\n>\n\n\u003Ctable align=\"center\">\n  \u003Ctr>\n    \u003Ctd>\n      \u003Cstrong>加入交流群\u003C\u002Fstrong>\u003Cbr \u002F>\n      \u003Csub>对 OpenClaw 用法、插件感兴趣的可以扫码加入微信群交流。\u003C\u002Fsub>\n      \u003Cul>\n        \u003Cli>\u003Csub>安装问题可以加群询问\u003C\u002Fsub>\u003C\u002Fli>\n        \u003Cli>\u003Csub>提PR时遇到开发问题加群询问\u003C\u002Fsub>\u003C\u002Fli>\n        \u003Cli>\u003Csub>项目架构细节加群询问\u003C\u002Fsub>\u003C\u002Fli>\n        \u003Cli>\u003Csub>插件 \u003Cstrong>BUG\u003C\u002Fstrong> 建议提交 \u003Cstrong>issue\u003C\u002Fstrong>\u003C\u002Fsub>\u003C\u002Fli>\n      \u003C\u002Ful>\n      \u003Csub>\u003Cstrong>欢迎同学们一起开发~\u003C\u002Fstrong>\u003C\u002Fsub>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\">\n      \u003Cimg src=\"doc\u002Fimages\u002Fimage.png\" alt=\"交流群二维码\" width=\"180\" \u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003Ctable align=\"center\">\n  \u003Cthead>\n    \u003Ctr>\n      \u003Cth>平台\u003C\u002Fth>\n      \u003Cth>状态\u003C\u002Fth>\n      \u003Cth>配置复杂度\u003C\u002Fth>\n      \u003Cth>配置指南\u003C\u002Fth>\n    \u003C\u002Ftr>\n  \u003C\u002Fthead>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd>钉钉\u003C\u002Ftd>\n      \u003Ctd align=\"center\">✅ 可用\u003C\u002Ftd>\n      \u003Ctd align=\"center\">简单\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"doc\u002Fguides\u002Fdingtalk\u002Fconfiguration.md\">钉钉企业注册指南\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n       \u003Ctr>\n      \u003Ctd>QQ 机器人\u003C\u002Ftd>\n      \u003Ctd align=\"center\">✅ 可用\u003C\u002Ftd>\n      \u003Ctd align=\"center\">简单\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"doc\u002Fguides\u002Fqqbot\u002Fconfiguration.md\">QQ 渠道配置指南\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n     \u003Ctr>\n      \u003Ctd>企业微信（智能机器人）\u003C\u002Ftd>\n      \u003Ctd align=\"center\">✅ 可用\u003C\u002Ftd>\n      \u003Ctd align=\"center\">简单\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"doc\u002Fguides\u002Fwecom\u002Fconfiguration.md\">企业微信智能机器人配置指南\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>企业微信（自建应用-可接入微信）\u003C\u002Ftd>\n      \u003Ctd align=\"center\">✅ 可用\u003C\u002Ftd>\n      \u003Ctd align=\"center\">中等\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"doc\u002Fguides\u002Fwecom-app\u002Fconfiguration.md\">企业微信自建应用配置指南\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>微信客服（微信客服-外部微信用户）\u003C\u002Ftd>\n      \u003Ctd align=\"center\">✅ 可用\u003C\u002Ftd>\n      \u003Ctd align=\"center\">中等\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"doc\u002Fguides\u002Fwecom-kf\u002Fconfiguration.md\">微信客服配置指南\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>微信公众号（订阅号 \u002F 服务号 \u002F 测试号）\u003C\u002Ftd>\n      \u003Ctd align=\"center\">✅ 可用\u003C\u002Ftd>\n      \u003Ctd align=\"center\">中等\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"doc\u002Fguides\u002Fwechat-mp\u002Fconfiguration.md\">微信公众号配置指南\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>飞书（本仓库插件，停止维护）\u003C\u002Ftd>\n      \u003Ctd align=\"center\">✅ 可用\u003C\u002Ftd>\n      \u003Ctd align=\"center\">中等\u003C\u002Ftd>\n      \u003Ctd>-\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>微信（官方插件，非本仓库）\u003C\u002Ftd>\n      \u003Ctd align=\"center\">✅ 可用\u003C\u002Ftd>\n      \u003Ctd align=\"center\">简单\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.runoob.com\u002Fai-agent\u002Fopenclaw-weixin.html\">微信官方插件安装文档\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd>飞书（官方插件，非本仓库）\u003C\u002Ftd>\n      \u003Ctd align=\"center\">✅ 可用\u003C\u002Ftd>\n      \u003Ctd align=\"center\">中等\u003C\u002Ftd>\n      \u003Ctd>\u003Ca href=\"https:\u002F\u002Fwww.feishu.cn\u002Fcontent\u002Farticle\u002F7613711414611463386\">飞书官方插件安装文档\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\n## 谁在使用\n\n\u003Cp align=\"center\">\n  \u003Cstrong>目前已知已有以下公司 \u002F 团队在使用 OpenClaw China\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Ctable align=\"center\">\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" width=\"180\">\n        \u003Cimg src=\".\u002Fdoc\u002Fimages\u002F阿里云.png\" alt=\"阿里云\" height=\"44\">\u003Cbr>\n        \u003Cstrong>阿里云\u003C\u002Fstrong>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"180\">\n        \u003Cimg src=\".\u002Fdoc\u002Fimages\u002F火山引擎.png\" alt=\"火山引擎\" height=\"44\">\u003Cbr>\n        \u003Cstrong>火山引擎\u003C\u002Fstrong>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"180\">\n        \u003Cimg src=\".\u002Fdoc\u002Fimages\u002F财富云.png\" alt=\"财富云\" height=\"44\">\u003Cbr>\n        \u003Cstrong>财富云\u003C\u002Fstrong>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"180\">\n        \u003Cimg src=\".\u002Fdoc\u002Fimages\u002F北少云.jpg\" alt=\"北少云\" height=\"44\">\u003Cbr>\n        \u003Cstrong>北少云\u003C\u002Fstrong>\n      \u003C\u002Ftd>\n      \u003Ctd align=\"center\" width=\"180\">\n        \u003Cimg src=\".\u002Fdoc\u002Fimages\u002F西安铂傲智能.png\" alt=\"西安铂傲智能\" height=\"44\">\u003Cbr>\n        \u003Cstrong>西安铂傲智能\u003C\u002Fstrong>\n      \u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n> 本项目开源且可免费使用。\n>\n> 如果你的公司或团队也在使用 OpenClaw China，欢迎通过 Issue、PR、交流群或微信留下公司名称 \u002F Logo \u002F 使用场景，帮助我们持续维护项目，也让更多用户看到真实的落地案例。\n>\n> > 西安铂傲智能：助力西北实业公司实现智能客服、辅助拓客与低成本经营，覆盖便利店、建筑材料、地产、家居建材等业务场景。\n\n## 功能支持\n\n更多功能在努力开发中~\n\n**企业微信 3 个渠道 + 微信公众号怎么选**\n\n- `企业微信智能机器人（长连接）`：主要面向企业内部使用，支持企微内部私聊和群聊，不需要公网 IP，部署成本最低。不能接入微信。【企业内使用 | 推荐】\n\n- `企业微信自建应用（可接入普通微信）`：可接入普通微信，不支持群聊，需要公网 IP。【个人使用 | 推荐】\n\n- `微信客服（外部微信用户）`：适合让任意微信用户通过客服入口与企业的 OpenClaw 对话，不支持群聊，需要公网 IP。【企业外部客户使用 | 推荐】\n\n  > 按微信客服官方入口范围，理论上还可承接视频号小店、视频号主页、直播间、微信内网页、公众号菜单、小程序、搜一搜品牌官方区、支付凭证等入口，最终都是跳转到客服对话。\n\n- `微信公众号（订阅号 \u002F 服务号 \u002F 测试号）`：面向公众号粉丝的通用接入方式，支持文本消息收发。订阅号有 5 秒被动回复限制且不支持主动发送；服务号和测试号无限制，支持主动发送消息。需要公网 IP 和域名。\n\n| 功能 | 钉钉 | 飞书 | QQ | 企业微信\u003Cbr \u002F>智能机器人\u003Cbr \u002F>长连接 | 企业微信自建应用\u003Cbr \u002F>（可接入普通微信） | 微信客服\u003Cbr \u002F>（外部微信用户） | 微信公众号 |\n|------|:----:|:----:|:--:|:------------------:|:----------------:|:---------------:|:---------:|\n| 文本消息 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| Markdown | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |\n| 流式响应 | ✅ | - | ✅ | ✅ | ❌ | ❌ | ❌ |\n| 图片\u002F文件 | ✅  | ✅ | ✅ | ✅ | ✅ | ⚠️\u003Cbr \u002F>开发中 | ⚠️仅图片 |\n| 语音消息 | ✅ | - | ✅ | ✅ | ✅ | ⚠️\u003Cbr \u002F>开发中 | ✅ |\n| 私聊 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |\n| 群聊 | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ |\n| 多账户 | ✅ | -  | ✅ | ✅ | ✅ | ⚠️\u003Cbr \u002F>开发中 | ⚠️\u003Cbr \u002F>开发中 |\n| 主动发送消息\u003Cbr \u002F>（定时任务） | ✅ | ✅ | ✅ | ✅ | ✅ | ⚠️\u003Cbr \u002F>开发中 | ⚠️\u003Cbr \u002F>开发中 |\n\n> 说明：`qqbot` 现在支持 QQ 平台原生 `stream_messages` 流式输出，但只覆盖 `C2C` 私聊，且默认关闭，需要显式设置 `channels.qqbot-china.streaming=true`。群聊、频道、`replyFinalOnly=true`、结构化 Markdown 和媒体回复仍会回退到原有普通发送链路；tool \u002F progress 文本保持普通消息实时回发。\n>\n> `qqbot` 在 QQ 私聊里处理长 Markdown 表格时，会优先缓冲连续的结构化内容，再按“完整表头 + 完整行”安全切分；续块会自动补回表头。如果上游流式把同一行拆成几段，插件也会先在本地合并后再发送，尽量避免把半截表格直接发给 QQ。\n>\n> `wecom-kf` 当前已支持外部微信用户文本会话闭环和 `enter_session` 欢迎语；多账户、文件收发、定时任务仍在开发中。\n>\n> `wechat-mp` 当前已支持文本消息收发、slash command 透传（`CommandAuthorized=true`）、被动回复闭环、Markdown 降级（`renderMarkdown`），以及 `activeDeliveryMode` 控制的主动发送（`split` 逐条 \u002F `merged` 合并），超长消息自动按字节限制智能分片；图片、语音、视频、位置、链接等全量媒体收发已完成，语音支持 ASR 自动转文字（腾讯云 Flash ASR）；OAuth \u002F JS-SDK \u002F 自定义菜单仍在规划中。\n\n## 更新日志\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>点击展开更新日志\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n### 2026-04-23\n\n- 新增 `@openclaw-china\u002Fsetup` 一键安装脚本，可直接通过 `npx @openclaw-china\u002Fsetup` 引导安装与初始化 OpenClaw China。\n- `qqbot` 的配置入口切换为 `channels.qqbot-china`，用于避免与 OpenClaw 官方内置 QQ 插件的 `channels.qqbot` 配置名冲突。\n\n### 2026-03-29\n\n- `qqbot` 新增 QQ 平台原生 C2C 流式回复支持。开启 `channels.qqbot-china.streaming=true` 后，AI 正文会通过 `stream_messages` 以单条消息实时更新，呈现更接近打字机的效果。\n- 流式模式继续保留可见的 tool \u002F progress 文本；assistant 正文一旦成功进入流式会话，就不会再额外重复发送成普通文本消息。\n- 为避免破坏现有稳定性，群聊、频道、`replyFinalOnly=true`、带媒体的回复，以及命中结构化 Markdown 安全传输的 C2C 回复，仍保持原有发送策略。\n\n### 2026-03-22\n\n- `wechat-mp` 新增全量消息类型入站支持：图片、语音、视频、短视频、位置、链接消息。\n- `wechat-mp` 新增语音转文字（ASR）功能，集成腾讯云 Flash ASR 录音文件识别极速版。\n- `wechat-mp` 新增主动发送能力：模板消息、图片、语音、视频发送（自动上传媒体并发送）。\n- `wechat-mp` 新增发送能力检测：48 小时交互窗口检测、时间窗口配置、用户交互记录。\n- `wechat-mp` 新增指数退避重试机制，支持自定义重试参数。\n\n### 2026-03-21\n\n- `wecom` 智能机器人长连接 `ws` 模式修复空占位收尾文案问题。某些 OpenClaw 复杂回复路径下，渠道层可能先创建 thinking 占位气泡，但最终没有可展示内容；现在这类空占位会静默结束，不再错误显示 `✅ 处理完成。`。\n\n### 2026-03-20\n\n- `wechat-mp` 新增 Markdown 降级功能，可通过 `renderMarkdown` 配置项控制是否将 Markdown 转换为公众号友好的纯文本格式；setup 向导同步新增降级选项。\n- `wechat-mp` 新增超长消息自动分割功能，解决公众号客服消息 2048 字节限制问题：\n  - 新增 `getUtf8ByteLength` 和 `splitTextByByteLimit` 工具函数\n  - 优先在自然边界处分割：段落 `\\n\\n` → 分割线 `---` → 换行 `\\n` → 句末标点 → 空格\n  - 确保不截断多字节字符（中文等），分割后逐条发送\n  - 新增 14 个单元测试覆盖字节计算和分割逻辑\n- `wecom` 对外状态上报现在会暴露更完整的 runtime snapshot；长连接 `ws` 模式的底层 `ready` 状态也会正确映射为 `connected`，减少状态面板和探测结果误报“未连接”的情况。\n- Merge PR #193：`dingtalk` 现在会向 Gateway 透传 `x-openclaw-message-channel` 与 `x-openclaw-session-key` 请求头，修复缺少渠道标识时被默认识别为 `webchat`、导致 Agent 看到错误渠道信息的问题。\n\n### 2026-03-19\n\n- `dingtalk` 优化了实时回复投递链路，减少处理中间消息堆积到任务结束后再集中发送的问题。\n- `dingtalk` 更新了 reply dispatcher 接入方式，对齐 QQ 的实时分发思路。\n- 新增 `wechat-mp` 微信公众号渠道，打通首版最小闭环：支持回调 `GET\u002FPOST` 验证、`plain \u002F safe \u002F compat` 三种消息模式、文本消息入站与标准化、基础事件（subscribe\u002Funsubscribe\u002Fscan\u002Fclick\u002Fview）分发、`passive` 被动回复和 `active` 主动发送 skeleton。\n- `wechat-mp` 现在会把 slash command 显式标记为 `CommandAuthorized=true`，并支持 `activeDeliveryMode`：`split` 按日志 \u002F chunk 逐条主动发送，`merged` 在 reply pipeline 结束后合并为一条主动消息；`passive` 模式仍保持单次 HTTP 回包。\n- `openclaw china setup` 和统一渠道包现在已支持 `WeChat MP（微信公众号）`，可直接录入 `appId`、`appSecret`、回调 `token` \u002F `encodingAESKey`、`messageMode`、`replyMode` 等参数，并补齐相关类型与测试。\n- 发布脚本新增 `wechat-mp` 到统一发布流程。\n- 新增并完善微信公众号配置指南，覆盖订阅号\u002F服务号\u002F测试号三种接入路径、主动发送模式说明和使用场景截图。\n- `wecom-kf` 配置向导。\n- 修复 workspace 依赖与版本配置问题，减少本地联调和发布时的版本错配。\n\n### 2026-03-18\n\n- `dingtalk` 统一了回复阶段的媒体提取与文本清理逻辑。AI Card 流式预览、最终完成卡片和普通回复现在共用同一套预处理：会先从回复文本中提取本地图片\u002F文件、去重后单独发送，并清理残留的本地路径或 Markdown 媒体语法，减少正文夹带文件路径、重复发送媒体或预览与最终内容不一致的情况。\n- `wecom` 智能机器人长连接 `ws` 模式使用平台原生 thinking 占位，体验更佳。\n- Merge PR #183：强化 `wecom` 长连接关闭时的清理流程。停止或断开连接时会进入短暂的优雅关闭窗口，抑制预期的 websocket `1006` \u002F `invalid frame` 噪声，并及时清理残留回复上下文，降低停机、重连阶段的误报和脏状态风险。\n- `qqbot` 继续收紧了 QQ 私聊 Markdown 表格的安全切分。长表格现在会尽量按完整行贪心装箱，放不下下一整行时再提前断开，续块自动重复表头，减少“表头丢失”或“半行被切断”的情况。\n- `qqbot` 新增结构化 Markdown 续片合并逻辑。即使上游流式输出把同一行表格拆成多段，插件也会先按列数和上下文把碎片拼回去，再统一进入安全分片，降低 `| 1-50kg | ...` 这类中间列碎片直接发出的风险。\n- `qqbot` 放松了宽表自动收紧策略。默认 `auto` 安全分片仍会保留字节余量，但不再过度保守，10 列左右的长表格通常能在保持稳定渲染的前提下减少消息条数。\n\n### 2026-03-17\n\n- `qqbot` 优化了 QQ 私聊长思考时的 `对方正在输入中` 指示。收到 C2C 消息后会先发一次 typing，并支持通过配置切换为不续发、按空档续发或固定间隔续发。\n- 同步补充文档说明：这项能力对应 QQ 平台的 typing 指示，不等同于客户端自己的临时 loading 气泡常驻；如果你希望长思考时更早给用户稳定的可见反馈，建议把 `channels.qqbot-china.longTaskNoticeDelayMs` 调低到 `5000` 到 `10000`。\n- `wecom` 智能机器人长连接 `ws` 模式现已支持本地图片、文件、语音、视频的原生媒体发送。\n- Merge PR #148：调整 `wecom` 长连接消息的占位 ACK 时机。现在只有消息真正被 OpenClaw 接收并开始分发后，才会回发 `⏳` 占位，减少“实际未受理却先显示处理中”的误导。\n- `wecom` 新增内置 `wecom-doc` skill，支持创建和编辑企业微信文档、智能表格。\n\n### 2026-03-16\n\n- 新增 `wecom-kf` 微信客服渠道，打通首版最小闭环：支持回调 `GET\u002FPOST` 验证、`sync_msg` 拉取真实消息、外部微信用户文本消息入站、Agent 文本回复回发，以及 `enter_session` 欢迎语。\n- `openclaw china setup` 和统一渠道包现在已支持 `WeCom KF（微信客服）`，可直接录入 `corpId`、微信客服 `Secret`、回调 `Token` \u002F `EncodingAESKey`、`openKfId` 等参数，并补齐相关类型与测试。\n\n### 2026-03-15\n- `qqbot` 新增 `停止` \u002F `\u002Fstop` 快速通道。当前任务正在执行时，这类中断命令会绕过本地排队立即发送给 OpenClaw，并丢弃同一会话里尚未处理的排队消息，减少“停不下来还继续串消息”的情况。\n- `qqbot` 新增 `c2cMarkdownChunkStrategy`，默认 `markdown-block`。QQ 私聊 Markdown 现在会优先按标题、表格、引用、分割线、代码块和正文块这些安全边界切分；如需兼容旧的纯长度切分行为，可切回 `length`。\n\n### 2026-03-14\n- `qqbot` 新增私聊用户显示名别名映射 `displayAliases`。首期仅对 direct 用户生效，支持 `user:\u003Copenid>`、`\u003Copenid>`、`senderId` 等键名，方便按已有联系人信息覆盖默认显示名。\n- `qqbot` 现在会优先使用 `~\u002F.openclaw\u002Fqqbot\u002Fdata\u002Fknown-targets.json` 里的 `displayName` 作为私聊用户显示名；如果没有，再回退到 `displayAliases`，最后才使用稳定 ID，减少多账号和备注名场景下的识别成本。\n- `qqbot` 新增内置 `qqbot-contact-send` skill，并会随插件自动注册到新会话的 `\u003Cavailable_skills>`。模型可直接基于 `known-targets.json` 按联系人备注\u002F显示名解析发送对象，并默认优先使用当前会话的 `accountId` 过滤目标，降低误发给同名联系人的风险。\n- `qqbot` 在 QQ 私聊里开启 `\u002Fverbose on` 且 `replyFinalOnly=false` 后，assistant 的普通过渡说明和工具日志现在都会实时发送，并按真实生成顺序交错出现，不会再出现“日志先刷完、说明最后补发”的时序错乱。\n\n### 2026-03-13\n- `qqbot` 现在能看懂 QQ 私聊里的“引用上一条消息”。用户问“这个是什么”“你刚才说的哪个文件”时，模型会一起参考被引用的那条内容来回答。\n- 引用内容会自动缓存在本地 `~\u002F.openclaw\u002Fqqbot\u002Fdata\u002Fref-index.jsonl`，就算网关重启，之前的引用关系也还能继续识别。\n- 被引用的内容不只支持纯文本，也支持图片、语音、视频、文件这类消息的摘要；如果本地确实找不到旧消息，也不会再把“原始内容不可用”这种占位词喂给模型。\n\n### 2026-03-12\n- `qqbot` 在 QQ 私聊里开启 `\u002Fverbose on` 且 `replyFinalOnly=false` 后，执行过程中的工具输出和日志会边跑边发，一条一条实时出现，不会再等到最后一起发。\n- 如果你保持 `replyFinalOnly=true`，行为还是和以前一样：普通过程日志不发，只发最终文本结果；但图片、语音这类媒体结果照样能正常发出。\n\n### 2026-03-11\n- `dingtalk` 默认关闭 `AI Card` 流式响应。配置默认值、入站处理和 `openclaw china setup` 向导的推荐选项已统一改为 `enableAICard=false`；如需继续使用，可再显式开启。\n- `qqbot` 优化了 QQ 私聊里的 Markdown 回复，标题、引用、列表、图片这些格式更接近原文，不容易被改坏。\n- 文档里补充了 `c2cMarkdownDeliveryMode` 的使用建议。如果你遇到“带表格的回复显示很乱”，直接用 `proactive-all` 会更稳。\n- 现在带表格的内容默认整条一次发出，减少被 QQ 截断、拆坏格式的问题。\n\n### 2026-03-10\n- `dingtalk` 新增流式输出支持，并补齐网关认证配置。`openclaw china setup` 和钉钉接入文档现在支持录入 `channels.dingtalk.gatewayToken`；当流式调用因网关认证失败中断时，错误提示也会直接引导检查 `channels.dingtalk.gatewayToken` 或全局 `gateway.auth.token`。\n- 修复 `wecom-app` 开启 `\u002Fverbose on` 后“中间过程一直不发、最后一次性刷屏”的问题。现在长任务执行时会持续回消息，能更早看到进度。\n- 同步补充了 `wecom-app` 的验证步骤和排查说明，升级后更容易自查有没有生效。\n\n### 2026-03-09\n- `qqbot` 现在可以直接走标准配置流程接入和关闭，不用再自己额外拼一套配置步骤。\n- `qqbot` 新增“已知目标”记录和主动发送能力。机器人见过的用户或群会被记下来，后面可以直接给指定对象主动发文字或媒体。\n\n### 2026-03-08\n- 主要：** `wecom` 智能机器人新增长连接 `ws` 模式 **，无需 IP 即可配置，并且体验更佳。【全网首发！企微官方3月8日支持长连接模式，本项目当天即支持】\n- 主要：** `dingtalk` 新增多账号支持 **，完善默认账号解析、账号配置管理、监控与出站逻辑，并补充多账号测试与配置文档。\n- Merge PR #131：修复入站媒体归档在跨分区移动时的 EXDEV 失败问题，避免归档后路径失效，提升共享媒体链路与 `wecom-app` 的稳定性。\n- `qqbot` 增强回复可靠性与入站媒体处理，完善回复、发送与客户端链路，并补强相关测试覆盖。\n- 修复 `wecom` 多账号多 Agent 场景下入站路由未透传 `accountId` 的问题，避免 `bindings.match.accountId` 失效后消息错误落到默认 Agent。\n\n### 2026-03-07\n\n- Merge PR #127：进一步修复心跳 ACK 上报逻辑，避免通道在无用户消息期间被错误判定为失活。\n- `qqbot` 新增长任务通知能力，支持配置延迟时间，提升长耗时任务场景下的交互反馈。\n- `qqbot` 支持文件上传与文件名参数，并优化媒体发送链路，补强相关测试覆盖。\n- `dingtalk` 新增长任务通知，并将非 AI 回复切换为直接分发，减少回复链路复杂度。\n- 文档补充腾讯云 ASR 仅支持国内网络环境的使用提示。\n\n### 2026-03-05\n\n- `qqbot` 在 `msg_id` 失效场景下回退使用 `event_id`，提升定时与异步回发稳定性。\n- 优化定时任务稳定性：提醒类任务统一采用 sessionTarget=\"isolated\" + 固定 delivery.channel\u002Fto\u002FaccountId，避免投递串会话。\n- 强化 Cron 创建提示词：明确要求将执行期约束写入 payload.message（仅纯文本、禁止调用工具、禁止手动发送）。\n\n### 2026-03-03\n\n- Merge PR #101：`qqbot` 新增多账户能力，覆盖配置、连接管理与令牌缓存。\n- Merge PR #89：修复 `replyFinalOnly=true` 场景下 QQ 工具媒体投递，并支持语音转换。\n- Merge 分支 `pr-105`：修复 WeCom \u002F WeCom App webhook 路由注册，并支持多个 webhook 路径。\n- 发布脚本新增固定版本控制选项，并同步 README 中 WeCom 问题说明。\n\n### 2026-03-02\n\n- Merge PR #96：修复发送文本消息时的账号检查逻辑。\n- Merge PR #95：修复 `wecom-app` 在多账户配置下的消息路由错误。\n- `wecom` 渠道增强 XML 解析能力，支持更多消息类型与 CDATA 处理。\n- 优化 `wecom-app` 消息发送逻辑，提升发送稳定性。\n\n### 2026-02-28\n\n- 修复企业微信插件异常重启循环问题，提升整体运行稳定性。\n\n### 2026-02-26\n\n- 新增安装提示能力，降低首次安装和排障成本。\n- `openclaw china setup` 新增交互式配置向导，减少手动配置步骤。\n\n### 2026-02-25\n\n- Merge PR #73：`wecom-app` 支持以视频播放器形式发送 MP4 视频（`3c32173`）。\n- Merge PR #65：钉钉日志补充 `userId\u002FgroupId`，便于定向投递排障（`a293250`）。\n\n### 2026-02-15\n\n- 优化企业微信智能机器人的文件发送能力，支持发送多种文件类型。\n\n### 2026-02-14\n\n1. 企业微信支持接入腾讯云 ASR 服务，实现语音转文本。\n2. 企业微信自建应用支持在微信侧发送定位，OpenClaw 可读取定位对应的具体位置。\n3. 修复企业微信插件无法执行特殊命令的问题（如 `\u002Fnew`）。\n4. 新增企业微信插件定时任务能力。\n\n\u003C\u002Fdetails>\n\n## 快速开始\n\n### 1) 安装\n\n\n#### 方式一：推荐，使用 npm 安装器（全平台通用）\n\n```bash\nnpx @openclaw-china\u002Fsetup\n```\n\n#### 方式二：通过 OpenClaw 直接安装\n\n> ℹ️ 这条路径由 OpenClaw 自己解析，当前行为是 `ClawHub` 优先、npm 回退。\n\n**安装统一包（包含所有渠道）**\n\n```bash\nopenclaw plugins install @openclaw-china\u002Fchannels\nopenclaw china setup\n```\n\n**或者：安装单个渠道（不要和统一包同时安装）**\n\n```bash\nopenclaw plugins install @openclaw-china\u002Fdingtalk\nopenclaw china setup\n```\n\n```bash\nopenclaw plugins install @openclaw-china\u002Ffeishu-china\nopenclaw china setup\n```\n\n```bash\nopenclaw plugins install @openclaw-china\u002Fqqbot\nopenclaw china setup\n```\n\n```bash\nopenclaw plugins install @openclaw-china\u002Fwecom-app\nopenclaw china setup\n```\n\n```bash\nopenclaw plugins install @openclaw-china\u002Fwecom-kf\nopenclaw china setup\n```\n\n```bash\nopenclaw plugins install @openclaw-china\u002Fwechat-mp\nopenclaw china setup\n```\n\n```bash\nopenclaw plugins install @openclaw-china\u002Fwecom\nopenclaw china setup\n```\n#### 更新插件\n\n```bash\nopenclaw plugins update channels\n```\n\n#### 方式三：从源码安装（适合开发调试）\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fopenclaw-china.git\ncd openclaw-china\npnpm install\npnpm build\nopenclaw plugins install -l .\u002Fpackages\u002Fchannels\nopenclaw china setup\n```\n\n#### 更新源码\n\n```bash\ngit pull origin main\npnpm install\npnpm build\n```\n\n> 链接模式下构建后即生效，重启 Gateway 即可。\n\n### 2) 配置渠道\n\n> 推荐：优先使用「配置向导」`openclaw china setup` 完成配置。下面的 `openclaw config set ...` 为手动配置示例。\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>钉钉\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n> 📖 **[钉钉企业注册指南](doc\u002Fguides\u002Fdingtalk\u002Fconfiguration.md)** — 无需材料，5 分钟内完成配置\n\n```bash\nopenclaw config set channels.dingtalk.enabled true\nopenclaw config set channels.dingtalk.clientId dingxxxxxx\nopenclaw config set channels.dingtalk.clientSecret your-app-secret\nopenclaw config set channels.dingtalk.enableAICard false\nopenclaw config set gateway.http.endpoints.chatCompletions.enabled true\n```\n\n**可选高级配置**\n\n如果你需要更细粒度控制（例如私聊策略或白名单），可以在 `~\u002F.openclaw\u002Fopenclaw.json` 中按需添加：\n\n```json5\n{\n  \"channels\": {\n    \"dingtalk\": {\n      \"dmPolicy\": \"open\",          \u002F\u002F open | pairing | allowlist\n      \"groupPolicy\": \"open\",       \u002F\u002F open | allowlist | disabled\n      \"allowFrom\": [],\n      \"groupAllowFrom\": []\n    },\n    \"wecom-app\": {\n      \"dmPolicy\": \"open\",          \u002F\u002F open | pairing | allowlist | disabled\n      \"allowFrom\": []\n    }\n  }\n}\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>企业微信（自建应用-可接入微信）\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n由[@RainbowRain9 Cai Hongyu](https:\u002F\u002Fgithub.com\u002FRainbowRain9)提供\n\n> 📖 **[企业微信自建应用配置指南](doc\u002Fguides\u002Fwecom-app\u002Fconfiguration.md)** — 支持主动发送消息\n\n企业微信自建应用支持主动发送消息，需要额外配置 `corpId`、`corpSecret`、`agentId`：\n\n```bash\nopenclaw config set channels.wecom-app.enabled true\nopenclaw config set channels.wecom-app.webhookPath \u002Fwecom-app\nopenclaw config set channels.wecom-app.token your-token\nopenclaw config set channels.wecom-app.encodingAESKey your-43-char-encoding-aes-key\nopenclaw config set channels.wecom-app.corpId your-corp-id\nopenclaw config set channels.wecom-app.corpSecret your-app-secret\nopenclaw config set channels.wecom-app.agentId 1000002\n```\n\n（可选）开启语音转文本（腾讯云 Flash ASR）：\n\n```bash\nopenclaw config set channels.wecom-app.asr.enabled true\nopenclaw config set channels.wecom-app.asr.appId your-tencent-app-id\nopenclaw config set channels.wecom-app.asr.secretId your-tencent-secret-id\nopenclaw config set channels.wecom-app.asr.secretKey your-tencent-secret-key\n```\n\n**与智能机器人的区别**\n\n| 功能 | 智能机器人 (wecom) | 自建应用 (wecom-app) |\n|------|:------------------:|:--------------------:|\n| 被动回复 | ✅ | ✅ |\n| 主动发送消息 | ❌ | ✅ |\n| 支持群聊 | ✅ | ❌（专注于私聊） |\n| 需要 corpSecret | ❌ | ✅ |\n| 需要 IP 白名单 | ❌ | ✅ |\n| 配置复杂度 | 简单 | 中等 |\n\n**wecom-app 已实现功能清单（摘要）**\n\n- 入站：支持 JSON\u002FXML 回调、验签与解密、长文本分片（2048 bytes）、stream 占位\u002F刷新（5s 规则下缓冲）。\n- 入站媒体：image\u002Fvoice\u002Ffile\u002Fmixed 自动落盘，消息体写入 `saved:` 稳定路径；按 `keepDays` 延迟清理。\n  - 设计动机：避免使用 `\u002Ftmp` 造成\"收到后很快被清理\"，确保 OCR\u002FMCP\u002F回发等二次处理有稳定路径可依赖。\n- 语音识别：支持接入腾讯云 Flash ASR（录音文件识别极速版）将语音转写为文本。\n- 出站：支持主动发送文本与媒体；支持 markdown→纯文本降级（stripMarkdown）。\n- 路由与目标：支持多种 target 解析（`wecom-app:user:..` \u002F `user:..` \u002F 裸 id \u002F `@accountId`），减少 Unknown target。\n- 策略与多账号：支持 defaultAccount\u002Faccounts；dmPolicy\u002Fallowlist；inboundMedia(开关\u002Fdir\u002FmaxBytes\u002FkeepDays)。\n\n> 更完整说明见：`doc\u002Fguides\u002Fwecom-app\u002Fconfiguration.md`\n\n**（可选）安装 wecom-app 专用 Skill**\n\n企业微信自建应用可配套使用 `wecom-app-ops`（target\u002FreplyTo\u002F回发图片\u002F录音\u002F文件、OCR\u002FMCP、排障、媒体保留策略）。\n\n安装方式（推荐：Workspace 级）：\n\n```bash\n# 在你的项目目录（workspace）下\nmkdir -p .\u002Fskills\ncp -a ~\u002F.openclaw\u002Fextensions\u002Fopenclaw-china\u002Fextensions\u002Fwecom-app\u002Fskills\u002Fwecom-app-ops .\u002Fskills\u002F\n```\n\n或安装方式（全局）：\n\n```bash\nmkdir -p ~\u002F.openclaw\u002Fskills\ncp -a ~\u002F.openclaw\u002Fextensions\u002Fopenclaw-china\u002Fextensions\u002Fwecom-app\u002Fskills\u002Fwecom-app-ops ~\u002F.openclaw\u002Fskills\u002F\n```\n\n> 说明：Workspace > 全局（`~\u002F.openclaw\u002Fskills`）> 内置 skills。复制后无需重启网关。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>企业微信（微信客服-外部微信用户）\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n> 📖 **[微信客服配置指南](doc\u002Fguides\u002Fwecom-kf\u002Fconfiguration.md)** — 适合让外部微信用户通过客服入口与 Agent 对话\n\n微信客服运行时使用的是微信客服 API 参数，不是普通自建应用的 `agentId` \u002F 应用 `Secret`：\n\n```bash\nopenclaw config set channels.wecom-kf.enabled true\nopenclaw config set channels.wecom-kf.webhookPath \u002Fwecom-kf\nopenclaw config set channels.wecom-kf.token your-token\nopenclaw config set channels.wecom-kf.encodingAESKey your-43-char-encoding-aes-key\nopenclaw config set channels.wecom-kf.corpId your-corp-id\nopenclaw config set channels.wecom-kf.corpSecret your-wecom-kf-secret\nopenclaw config set channels.wecom-kf.openKfId your-open-kfid\nopenclaw config set channels.wecom-kf.welcomeText \"你好，我是 AI 客服，请问有什么可以帮你？\"\n```\n\n**注意事项**\n\n- 需要先在微信客服后台完成回调 URL 校验并点“开始使用”，通常之后才会显示微信客服 `corpSecret`\n- 后台仍需要关联一个企业微信自建应用作为“可调用接口的应用”，但插件配置里不需要填写普通自建应用的 `agentId`\n- 当前已支持文本入站、文本回发和 `enter_session` 欢迎语；多账户、文件收发、定时任务正在开发中\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>微信公众号（订阅号 \u002F 服务号 \u002F 测试号）\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n> 📖 **[微信公众号配置指南](doc\u002Fguides\u002Fwechat-mp\u002Fconfiguration.md)** — 支持订阅号、服务号和测试号\n\n**订阅号 \u002F 服务号 \u002F 测试号怎么选**\n\n| | 订阅号 | 服务号 | 测试号 |\n|--|--------|--------|--------|\n| **适合场景** | 个人开发者、内容推送 | 企业正式运营 | 开发调试、快速验证 |\n| **回复限制** | 5 秒内必须回复 | 无时间限制 | 无时间限制（服务号权限） |\n| **主动发送** | ❌ 不支持 | ✅ 客服消息接口 | ✅ 客服消息接口 |\n| **推荐回复模式** | `passive` | `active` | `active` |\n| **获取方式** | 微信公众平台注册 | 微信公众平台注册 + 企业认证 | [测试号申请](https:\u002F\u002Fmp.weixin.qq.com\u002Fdebug\u002Fcgi-bin\u002Fsandbox?t=sandbox\u002Flogin)，扫码即用 |\n| **需要公网 IP** | ✅ | ✅ | ✅ |\n\n> **推荐**：如果没有企业认证服务号，建议先用**测试号**跑通，它拥有服务号权限且无需认证。正式上线后再切换到认证服务号。\n\n**最小配置（plain 模式）**\n\n```bash\nopenclaw config set channels.wechat-mp.enabled true\nopenclaw config set channels.wechat-mp.webhookPath \u002Fwechat-mp\nopenclaw config set channels.wechat-mp.appId wx1234567890abcdef\nopenclaw config set channels.wechat-mp.token your-callback-token\nopenclaw config set channels.wechat-mp.messageMode plain\nopenclaw config set channels.wechat-mp.replyMode passive\n```\n\n**推荐配置（服务号 \u002F 测试号）**\n\n```bash\nopenclaw config set channels.wechat-mp.enabled true\nopenclaw config set channels.wechat-mp.webhookPath \u002Fwechat-mp\nopenclaw config set channels.wechat-mp.appId wx1234567890abcdef\nopenclaw config set channels.wechat-mp.appSecret your-app-secret\nopenclaw config set channels.wechat-mp.token your-callback-token\nopenclaw config set channels.wechat-mp.encodingAESKey your-43-char-encoding-aes-key\nopenclaw config set channels.wechat-mp.messageMode safe\nopenclaw config set channels.wechat-mp.replyMode active\nopenclaw config set channels.wechat-mp.activeDeliveryMode split\n```\n\n**消息模式**\n\n- `plain`：明文收发，适合调试\n- `safe`：密文收发，推荐生产使用（需额外配置 `encodingAESKey`）\n- `compat`：兼容模式，密文优先处理\n\n**回复模式**\n\n- `passive`：5 秒窗口内 HTTP 直接回包（订阅号唯一选择）\n- `active`：通过客服消息 API 主动发送（服务号 \u002F 测试号推荐，需额外配置 `appSecret`）\n\n**主动发送模式**\n\n- `activeDeliveryMode=split`：每个非空日志 \u002F chunk 单独发一条消息\n- `activeDeliveryMode=merged`：等待 reply pipeline 结束后合并成一条消息\n- 仅 `replyMode=active` 时生效；`passive` 时始终单次 HTTP 回包\n\n**注意事项**\n\n- 仅支持 80 或 443 端口，需要域名或内网穿透工具将流量导向 Gateway\n- 订阅号受到 5 秒回复限制，且不支持主动发送消息，必须使用 `passive` 模式\n- 服务号无回复限制，推荐使用 `active` 模式以获取更完整的能力体验\n\n**当前已实现**\n\n- 文本消息收发（入站 + 被动回复 \u002F 主动发送）\n- 图片、语音、视频、短视频、位置、链接消息入站\n- 语音 ASR 自动转文字（腾讯云 Flash ASR）\n- 模板消息发送\n- 图片、语音、视频主动发送\n- 重试机制（指数退避）\n- 48 小时交互窗口检测\n- 基础事件处理（关注 \u002F 取关 \u002F 扫码 \u002F 菜单点击 \u002F 菜单跳转）\n- `plain \u002F safe \u002F compat` 三种消息加解密模式\n- `passive \u002F active` 两种回复模式\n- access_token 获取、缓存、自动刷新\n- 重复消息抑制（msgid 去重）\n\n**（可选）开启语音转文本（腾讯云 Flash ASR）**\n\n```bash\nopenclaw config set channels.wechat-mp.asr.enabled true\nopenclaw config set channels.wechat-mp.asr.appId your-tencent-app-id\nopenclaw config set channels.wechat-mp.asr.secretId your-tencent-secret-id\nopenclaw config set channels.wechat-mp.asr.secretKey your-tencent-secret-key\n```\n\n**开发中 \u002F 规划中**\n\n- OAuth 网页授权\n- JS-SDK\n- 自定义菜单与二维码\n- 多账号交互式配置\n- 更完整的主动发送运营能力\n\n> 更完整说明见：`doc\u002Fguides\u002Fwechat-mp\u002Fconfiguration.md`\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>QQ\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n> 📖 **[QQ 渠道配置指南](https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fopenclaw-china\u002Fblob\u002Fmain\u002Fdoc\u002Fguides\u002Fqqbot\u002Fconfiguration.md)**\n\n```bash\nopenclaw config set channels.qqbot-china.enabled true\nopenclaw config set channels.qqbot-china.appId your-app-id\nopenclaw config set channels.qqbot-china.clientSecret your-app-secret\nopenclaw config set channels.qqbot-china.markdownSupport true\nopenclaw config set channels.qqbot-china.c2cMarkdownDeliveryMode proactive-all\nopenclaw config set channels.qqbot-china.c2cMarkdownChunkStrategy markdown-block\nopenclaw config set channels.qqbot-china.streaming true\nopenclaw config set channels.qqbot-china.typingHeartbeatMode idle\nopenclaw config set channels.qqbot-china.typingHeartbeatIntervalMs 5000\nopenclaw config set channels.qqbot-china.typingInputSeconds 60\nopenclaw config set channels.qqbot-china.autoSendLocalPathMedia false\n\n# 如果你希望长思考时更早出现稳定的可见消息，可选：\nopenclaw config set channels.qqbot-china.longTaskNoticeDelayMs 5000\n```\n\n也可以直接使用一条命令完成接入：\n\n```bash\nopenclaw channels add --channel qqbot --token \"AppID:ClientSecret\"\n```\n\n（可选）开启语音转文本（腾讯云 Flash ASR）：\n\n```bash\nopenclaw config set channels.qqbot-china.asr.enabled true\nopenclaw config set channels.qqbot-china.asr.appId your-tencent-app-id\nopenclaw config set channels.qqbot-china.asr.secretId your-tencent-secret-id\nopenclaw config set channels.qqbot-china.asr.secretKey your-tencent-secret-key\n```\n\n如果你希望回复里保留本地证据路径文本，而不是把 `\u002Froot\u002F.openclaw\u002Fmedia\u002Fqqbot\u002Finbound\u002F...jpeg` 自动再次作为图片发送，可设置：\n\n```bash\nopenclaw config set channels.qqbot-china.autoSendLocalPathMedia false\n```\n\n私聊 C2C Markdown 渲染建议：\n\n- 如果你希望 QQ 私聊尽量完整渲染标题、引用、分割线、任务列表、表格等 Markdown，建议显式开启：\n\n```bash\nopenclaw config set channels.qqbot-china.markdownSupport true\nopenclaw config set channels.qqbot-china.c2cMarkdownDeliveryMode proactive-all\nopenclaw config set channels.qqbot-china.c2cMarkdownChunkStrategy markdown-block\n```\n\n- `c2cMarkdownDeliveryMode` 只控制私聊 Markdown 走被动发送还是主动发送：\n- `passive`：整条 C2C Markdown 回复保持被动发送\n- `proactive-table-only`：仅当回复里出现 Markdown 表格时，整条 C2C 回复改走主动发送\n- `proactive-all`：所有 C2C Markdown 回复统一改走主动发送\n- `c2cMarkdownChunkStrategy` 只控制长 Markdown 的切分方式：\n- `markdown-block`：默认值。优先按标题、表格、引用、分割线、代码块、列表和正文块这些安全边界切分；`replyFinalOnly=false` 时还会先合并连续的结构化 Markdown，再把 tool\u002Flog 文本按原顺序单独发出\n- `length`：回退旧行为，继续按长度直接切分\n- 这套安全切分只作用于 `markdownSupport=true` 的 QQ 私聊\u002FC2C Markdown；群聊、频道和普通文本发送保持原样\n\n私聊 C2C 流式回复（打字机效果）：\n\n- 开启方式：\n\n```bash\nopenclaw config set channels.qqbot-china.streaming true\n```\n\n- 多账号场景可改为账户级配置，例如：\n\n```bash\nopenclaw config set channels.qqbot-china.accounts.main.streaming true\n```\n\n- 这项能力只对 `C2C` 私聊生效，默认关闭\n- 开启后，AI 正文会优先走 QQ `stream_messages` 单消息实时更新；tool \u002F progress 仍按普通消息继续回发\n- 如果回复命中结构化 Markdown 安全传输、包含媒体 URL \u002F 本地媒体路径、或你设置了 `replyFinalOnly=true`，插件会自动继续走旧的普通发送链路\n- 如果当前 OpenClaw runtime 没有触发 `onPartialReply`，或 QQ 流式接口暂时不可用，插件会自动降级为普通消息发送，不需要额外切换配置\n\n补充说明：\n\n- QQ 私聊现在会尽量续发 QQ 平台提供的“对方正在输入中”指示，减少长任务期间完全没反馈的情况\n- `typingHeartbeatMode` 控制续发策略：`none` 只发首个 typing，`idle` 只在回复空档续发，`always` 会固定间隔续发到整轮回复结束\n- `typingHeartbeatIntervalMs` 和 `typingInputSeconds` 分别控制续发周期与单次 QQ typing 有效时长\n- 这不等于 QQ 客户端自己的临时 loading 气泡会一直保留，那部分不是插件能完全控制的\n- 如果你希望用户更早看到稳定的可见消息，优先把 `longTaskNoticeDelayMs` 调低到 `5000` 到 `10000`\n- 在 QQ 私聊启用 Markdown transport（`markdownSupport=true`）后，开启 `\u002Fverbose on` 且 `replyFinalOnly=false` 时，非 final 的工具\u002F日志输出会即时回发，一个日志一个消息\n- 如果同时开启 `replyFinalOnly=true`，非 final 纯文本日志仍会被抑制，只保留最终回复；媒体类工具结果不受影响\n- 如果你发现“不带表格时基本正常，但带表格后标题、引用、任务列表不稳定”，优先使用 `proactive-all`；这通常是 QQ 被动回复接口本身的渲染限制\n\n引用消息上下文（REFIDX）：\n\n- QQ 的引用事件通常只返回 `REFIDX_*` 索引，不直接返回被引用消息全文；`qqbot` 现在会自动从本地索引中恢复引用内容并注入 AI 上下文\n- 入站和出站私聊消息中的 `ref_idx` 会自动建索引，默认落盘到 `~\u002F.openclaw\u002Fqqbot\u002Fdata\u002Fref-index.jsonl`\n- 引用恢复支持文本和媒体摘要（图片 \u002F 语音 \u002F 视频 \u002F 文件）\n- 如果某条历史引用在本地缓存中不存在，插件仍会保留引用关系，但不会把占位文本直接透传给模型\n\n主动发送与已知目标：\n\n- 已知目标默认保存到 `~\u002F.openclaw\u002Fqqbot\u002Fdata\u002Fknown-targets.json`\n- 旧版 `~\u002F.openclaw\u002Fdata\u002Fqqbot\u002Fknown-targets.json` 会在首次访问时自动迁移到新路径\n- 注册表会记录通过策略校验的 `user:` \u002F `group:` \u002F `channel:` 目标\n- 可以直接手工编辑其中的 `displayName`，把它当成 QQ 私聊用户的正式备注\n- 私聊入站显示名会优先取 `known-targets.json` 里已有的 `displayName`；如果没有，再回退到 `displayAliases`，最后才使用平台 ID\n- 推荐主动发送时使用 `user:` 与 `group:` 目标\n\n```ts\nimport {\n  listKnownQQBotTargets,\n  sendProactiveQQBotMessage,\n} from \"@openclaw-china\u002Fqqbot\";\n\nconst targets = listKnownQQBotTargets({ accountId: \"default\" });\n\nawait sendProactiveQQBotMessage({\n  cfg: {\n    channels: {\n      \"qqbot-china\": {\n        appId: \"your-app-id\",\n        clientSecret: \"your-app-secret\",\n      },\n    },\n  },\n  to: targets[0]?.target ?? \"user:your-openid\",\n  text: \"这是一条主动发送的 QQ 消息\",\n});\n```\n\n如果 QQ 私聊里经常只能看到 `openid`，推荐先在 `~\u002F.openclaw\u002Fqqbot\u002Fdata\u002Fknown-targets.json` 里手工补 `displayName` 作为正式备注；也可以继续在配置里补 alias：\n\n```json\n{\n  \"channels\": {\n    \"qqbot-china\": {\n      \"displayAliases\": {\n        \"user:u-123456\": \"Alice\"\n      },\n      \"accounts\": {\n        \"bot2\": {\n          \"displayAliases\": {\n            \"user:u-123456\": \"Alice (bot2)\"\n          }\n        }\n      }\n    }\n  }\n}\n```\n\nQQBot 插件现在也会随包自动提供 `qqbot-contact-send` skill：\n\n- 插件启用后，新会话会自动在 `\u003Cavailable_skills>` 中看到 `qqbot-contact-send`\n- 不需要再把 `extensions\u002Fqqbot\u002Fskills\u002Fqqbot-contact-send` 手工复制到 workspace 或 `~\u002F.openclaw\u002Fskills`\n- 如果 workspace 或 `~\u002F.openclaw\u002Fskills` 里存在同名 skill，仍按 OpenClaw 的正常优先级覆盖插件内置版本\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>企业微信（智能机器人）\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n> 📖 **[企业微信智能机器人配置指南](doc\u002Fguides\u002Fwecom\u002Fconfiguration.md)**\n\n> 企业微信智能机器人推荐使用长连接 `ws` 模式，无需公网 IP\n\n```bash\nopenclaw config set channels.wecom.enabled true\nopenclaw config set channels.wecom.mode ws\nopenclaw config set channels.wecom.botId your-bot-id\nopenclaw config set channels.wecom.secret your-bot-secret\n```\n\n**注意事项**\n\n- 未填写 `mode` 时，默认也是 `ws`\n- `botId` 和 `secret` 需要从企业微信智能机器人后台获取\n- `ws` 模式现已支持本地图片、文件、语音、视频的原生媒体发送；其中图片是否走原生发送可通过 `wsImageReplyMode` 控制\n- 如需旧版公网回调方式，请改用完整配置指南中的 `webhook` 模式说明\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>飞书\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n> 飞书应用需开启机器人能力，并使用「长连接接收消息」模式\n\nopenclaw:\n\n```bash\nopenclaw config set channels.feishu-china.enabled true\nopenclaw config set channels.feishu-china.appId cli_xxxxxx\nopenclaw config set channels.feishu-china.appSecret your-app-secret\nopenclaw config set channels.feishu-china.sendMarkdownAsCard true\n```\n\n\u003C\u002Fdetails>\n\n### 3) 调试模式启动\n\n```bash\nopenclaw gateway --port 18789 --verbose\n```\n\n## 演示\n\n以下为钉钉渠道效果示例：\n> ps: 此为最初版本的演示效果，当前已完美支持Markdown格式。\n\n![钉钉机器人演示](doc\u002Fimages\u002Fdingtalk-demo_2.gif)\n\n![钉钉机器人演示](doc\u002Fimages\u002Fdingtalk-demo_3.png)\n\n## 推荐项目\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>点击展开推荐项目\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n### 🤖 ClawMate - OpenClaw 角色伴侣插件\n\n> 为 OpenClaw 添加一个有温度的角色伴侣\n\n[ClawMate](https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fclawmate) 是一个为 OpenClaw 设计的角色伴侣插件，让你的 AI 助手拥有视觉形象和情感温度。\n\n**核心功能**\n- ⏰ **时间感知** — 场景和穿搭随时间自动切换（早晨、上课、午休、傍晚、深夜）\n- 📸 **情境生图** — 根据对话内容和当前状态生成写实自拍\n- 💬 **主动发图** — 日常聊天中随机发自拍表示关心\n- 👥 **多角色** — 内置角色 + 对话创建自定义角色\n- 🎨 **多图像服务** — 支持阿里云百炼、火山引擎 ARK、fal.ai、OpenAI 兼容接口\n\n**快速安装**\n```bash\nnpx github:BytePioneer-AI\u002Fclawmate\n```\n\n**应用场景**：个人伴侣、虚拟导师、智能客服、专业顾问\n\n了解更多：[https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fclawmate](https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fclawmate)\n\n### 💬 weixin-agent-gateway - 微信侧多 Agent 接入网关\n\n> 适合希望在微信中接入 Claude Code、Codex、OpenCode、Kimi Code CLI、Qwen Code 等助手的用户\n\n[weixin-agent-gateway](https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fweixin-agent-gateway) 是一个面向微信生态的多 Agent 接入项目，可用于在微信场景下连接 Claude Code、Codex、OpenCode、Kimi Code CLI、Qwen Code 等多种 Coding \u002F AI Agent。\n\n**适合场景**\n- 在微信里直接接入 Claude Code、Codex、OpenCode、Kimi Code CLI、Qwen Code 等助手\n- 希望统一管理多个 Agent 的微信入口\n- 需要补充微信侧的对话和使用场景\n\n**说明**\n- 这是生态推荐项目，不属于 OpenClaw China 内置渠道能力\n- 如果你需要的是 OpenClaw 接入企业微信、微信客服、微信公众号，请优先使用本仓库对应渠道\n\n了解更多：[https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fweixin-agent-gateway](https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fweixin-agent-gateway)\n\n\u003C\u002Fdetails>\n\n\n## 开发\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>点击展开开发指南\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n适合需要二次开发或调试的场景：\n\n```bash\n# 克隆仓库\ngit clone https:\u002F\u002Fgithub.com\u002FBytePioneer-AI\u002Fopenclaw-china.git\ncd openclaw-china\n\n# 安装依赖并构建\npnpm install\npnpm build\n\n# 以链接模式安装（修改代码后实时生效）\nopenclaw plugins install -l .\u002Fpackages\u002Fchannels\nopenclaw china setup\n```\n\n**示例配置（开发环境）**\n\n```json\n{\n  \"plugins\": {\n    \"load\": {\n      \"paths\": [\"\u002Fpath\u002Fto\u002FOpenClaw-china\u002Fpackages\u002Fchannels\"]\n    },\n    \"entries\": {\n      \"channels\": { \"enabled\": true }\n    }\n  },\n  \"channels\": {\n    \"dingtalk\": {\n      \"enabled\": true,\n      \"clientId\": \"dingxxxxxx\",\n      \"clientSecret\": \"your-app-secret\"\n    },\n    \"qqbot-china\": {\n      \"enabled\": true,\n      \"appId\": \"your-app-id\",\n      \"clientSecret\": \"your-app-secret\"\n    },\n    \"feishu-china\": {\n      \"enabled\": true,\n      \"appId\": \"cli_xxxxxx\",\n      \"appSecret\": \"your-app-secret\"\n    },\n    \"wecom\": {\n      \"enabled\": true,\n      \"botId\": \"your-bot-id\",\n      \"secret\": \"your-bot-secret\"\n    },\n    \"wecom-app\": {\n      \"enabled\": true,\n      \"webhookPath\": \"\u002Fwecom-app\",\n      \"token\": \"your-token\",\n      \"encodingAESKey\": \"your-43-char-encoding-aes-key\",\n      \"corpId\": \"your-corp-id\",\n      \"corpSecret\": \"your-app-secret\",\n      \"agentId\": 1000002\n    }\n  }\n}\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cstrong>点击展开总体架构\u003C\u002Fstrong>\u003C\u002Fsummary>\n\n\n### 总体架构\n\n> 当前架构分为宿主、统一通道聚合、各渠道插件和 shared 基础能力层。\n\n```mermaid\n%%{init: {\"markdownAutoWrap\": false, \"flowchart\": {\"htmlLabels\": false, \"wrappingWidth\": 1200}}}%%\nflowchart TD\n    %% 1. 核心宿主层 (Pill Shape)\n    HOST([\"🦞 OpenClaw\"]):::host\n\n    %% 2. 调度中心 (Rounded Rectangle)\n    subgraph Dispatcher [\" 核心调度与分发中心 \"]\n        direction TB\n        CH(\"📦 @openclaw-china\u002Fchannels\"):::aggregate\n    end\n\n    %% 3. 插件网格 (利用子图内部布局)\n    subgraph PluginGrid [\" 多渠道插件生态 (Plugins) \"]\n        direction LR\n        DT(\"DingTalk\"):::plugin\n        FE(\"Feishu\"):::plugin\n        QQ(\"QQBot\"):::plugin\n        WC(\"WeCom\"):::plugin\n        WA(\"WeCom App\"):::plugin\n    end\n\n    %% 4. 基础设施层 (Rounded Rectangle)\n    subgraph SharedLayer [\" 基础设施层 (Shared) \"]\n        direction TB\n        SH(\"🛠️ @openclaw-china\u002Fshared\"):::shared\n    end\n\n    %% --- 核心连接逻辑 ---\n    HOST ==>|Bootstrapping| CH\n    CH -.->|Dynamic Registration| DT\n    CH -.->|Dynamic Registration| FE\n    CH -.->|Dynamic Registration| QQ\n    CH -.->|Dynamic Registration| WC\n    CH -.->|Dynamic Registration| WA\n    DT & FE & QQ & WC & WA ==>|Dependencies| SH\n\n    %% --- 样式定义 ---\n    classDef host fill:#ebf5ff,stroke:#2563eb,stroke-width:2px,color:#1e40af,font-weight:bold\n    classDef aggregate fill:#f0fdf4,stroke:#16a34a,stroke-width:2px,color:#166534,font-weight:bold\n    classDef plugin fill:#ffffff,stroke:#64748b,stroke-width:1.5px,color:#334155\n    classDef shared fill:#f8fafc,stroke:#334155,stroke-width:2px,stroke-dasharray: 5 5,color:#0f172a,font-weight:bold\n    style Dispatcher fill:#f8fafc,stroke:#e2e8f0,stroke-dasharray: 5 5,color:#64748b,rx:10,ry:10\n    style PluginGrid fill:#fffcf9,stroke:#fed7aa,stroke-dasharray: 5 5,color:#9a3412,rx:10,ry:10\n    style SharedLayer fill:#f8fafc,stroke:#e2e8f0,stroke-dasharray: 5 5,color:#64748b,rx:10,ry:10\n```\n\n\u003C\u002Fdetails>\n\n## 💗 支持我们\n\n这是一个公益项目，感谢支持。项目由我们利用业余时间持续开发和维护，后续也会继续更新迭代并提供支持。\n\n如果你愿意支持这个项目，**欢迎帮忙宣传**，并点亮项目**右上角的 Star**。\n\n![Star openclaw-china](.\u002Fdoc\u002Fimages\u002Fopenclaw-china-star.gif)\n\n\n## 加入交流群\n\n对 OpenClaw 用法、插件感兴趣的可以扫码加入微信群交流。\n\n- 安装问题可以加群询问\n- 提PR时遇到开发问题加群询问\n- 项目架构细节加群询问\n- 插件**BUG**建议提交**issue**\n\n**欢迎同学们一起开发~**\n\n\u003Cimg src=\"doc\u002Fimages\u002Fimage.png\" alt=\"交流群二维码\" width=\"50%\" \u002F>\n\n\n\n如果二维码过期，可以加下我微信备注说明来意：a28417416\n\n## Star 趋势\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fwww.star-history.com\u002F#BytePioneer-AI\u002Fopenclaw-china&Date\">\n    \u003Cpicture>\n      \u003Csource\n        media=\"(prefers-color-scheme: dark)\"\n        srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=BytePioneer-AI\u002Fopenclaw-china&type=Date&theme=dark\"\n      \u002F>\n      \u003Csource\n        media=\"(prefers-color-scheme: light)\"\n        srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=BytePioneer-AI\u002Fopenclaw-china&type=Date\"\n      \u002F>\n      \u003Cimg\n        alt=\"Star History Chart\"\n        src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=BytePioneer-AI\u002Fopenclaw-china&type=Date\"\n      \u002F>\n    \u003C\u002Fpicture>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n## License\n\nMIT\n\n\n","OpenClaw China 是一个为 OpenClaw 提供面向中国常用通讯平台渠道扩展的插件集合，支持将AI助手接入钉钉、企业微信、微信客服、微信公众号、QQ和飞书等。其核心功能包括稳定的消息收发机制以及统一且易配置的插件接入面，旨在简化开发者集成过程。项目采用TypeScript开发，确保了良好的类型安全性和代码可维护性。适用于需要通过主流即时通讯工具提供客户服务或构建聊天机器人的场景，无论是企业内部沟通还是对外服务，都能有效提升用户体验和工作效率。","2026-06-11 03:50:56","high_star"]