diff --git a/.gitignore b/.gitignore
index 76add87..0fe2f49 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
node_modules
-dist
\ No newline at end of file
+dist
+distnode_modules
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..0eaaf1f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,221 @@
+# QQ Bot Channel Plugin for Moltbot
+
+QQ 开放平台Bot API 的 Moltbot 渠道插件,支持 C2C 私聊、群聊 @消息、频道消息。
+
+## 功能特性
+
+- **多场景支持**:C2C 单聊、QQ 群 @消息、频道公开消息、频道私信
+- **自动重连**:WebSocket 断连后自动重连,支持 Session Resume
+- **消息去重**:自动管理 `msg_seq`,支持对同一消息多次回复
+- **系统提示词**:可配置自定义系统提示词注入到 AI 请求
+- **错误提示**:AI 无响应时自动提示用户检查配置
+
+## 使用示例:
+
+
+## 版本更新
+
+
+### 1.3.0(即将更新)
+- 支持回复图片等功能
+- 支持定时任务到时后主动推送
+
+### 1.2.5-2026.02.02
+- 解除URL发送限制,现在可以直接在私聊发送URL
+
+- 更新Bot正在输入中状态
+
+- 提供主动推送能力(目前AI还不知道怎么调用主动推送,相关完整Skill能力将在后续版本更新)
+- 优化一些已知问题
+- 优化未收到未收到大模型响应时的提示信息
+
+
+### 1.2.2
+- 支持发送文件
+- 支持openclaw、moltbot命令行
+- 修复[health]检查提示: [health] refresh failed: Cannot read properties of undefined (reading 'appId')的问题(不影响使用)
+- 修复文件发送后clawdbot无法读取的问题
+
+### 1.2.1
+- 解决了长时间使用会断联的问题
+- 解决了频繁重连的问题
+- 增加了大模型调用失败后的提示消息
+
+
+### 1.1.0
+- 解决了一些url会被拦截的问题
+- 解决了多轮消息会发送失败的问题
+- 修复了部分图片无法接受的问题
+- 增加支持onboard的方式配置AppId 和 AppSecret
+
+
+## 安装
+
+在插件目录下执行:
+
+```bash
+git clone https://github.com/sliverp/qqbot.git && cd qqbot
+clawdbot plugins install . # 这一步会有点久,需要安装一些依赖。稍微耐心等待一下,尤其是小内存机器
+```
+
+## 配置
+
+### 1. 获取 QQ 机器人凭证
+
+1. 访问 [QQ 开放平台](https://q.qq.com/)
+2. 创建机器人应用
+3. 获取 `AppID` 和 `AppSecret`(ClientSecret)
+4. Token 格式为 `AppID:AppSecret`,例如 `102146862:Xjv7JVhu7KXkxANbp3HVjxCRgvAPeuAQ`
+
+### 2. 添加配置
+
+#### 方式一:交互式配置
+
+```bash
+clawdbot channels add
+# 选择 qqbot,按提示输入 Token
+```
+
+#### 方式二:命令行配置
+
+```bash
+clawdbot channels add --channel qqbot --token "AppID:AppSecret"
+```
+
+示例:
+
+```bash
+clawdbot channels add --channel qqbot --token "102146862:xxxxxxxx"
+```
+
+### 3. 手动编辑配置(可选)
+
+也可以直接编辑 `~/.clawdbot/clawdbot.json`:
+
+```json
+{
+ "channels": {
+ "qqbot": {
+ "enabled": true,
+ "appId": "你的AppID",
+ "clientSecret": "你的AppSecret",
+ "systemPrompt": "你是一个友好的助手"
+ }
+ }
+}
+```
+
+
+
+## 配置项说明
+
+| 配置项 | 类型 | 必填 | 说明 |
+|--------|------|------|------|
+| `appId` | string | 是 | QQ 机器人 AppID |
+| `clientSecret` | string | 是* | AppSecret,与 `clientSecretFile` 二选一 |
+| `clientSecretFile` | string | 是* | AppSecret 文件路径 |
+| `enabled` | boolean | 否 | 是否启用,默认 `true` |
+| `name` | string | 否 | 账户显示名称 |
+| `systemPrompt` | string | 否 | 自定义系统提示词 |
+
+## 支持的消息类型
+
+| 事件类型 | 说明 | Intent |
+|----------|------|--------|
+| `C2C_MESSAGE_CREATE` | C2C 单聊消息 | `1 << 25` |
+| `GROUP_AT_MESSAGE_CREATE` | 群聊 @机器人消息 | `1 << 25` |
+| `AT_MESSAGE_CREATE` | 频道 @机器人消息 | `1 << 30` |
+| `DIRECT_MESSAGE_CREATE` | 频道私信 | `1 << 12` |
+
+## 使用
+
+### 启动
+
+后台启动
+```bash
+clawdbot gateway restart
+```
+
+前台启动, 方便试试查看日志
+```bash
+clawdbot gateway --port 18789 --verbose
+```
+
+### CLI 配置向导
+
+```bash
+clawdbot onboard
+# 选择 QQ Bot 进行交互式配置
+```
+
+## 注意事项
+
+1. **群消息**:需要在群内 @机器人 才能触发回复
+2. **沙箱模式**:新创建的机器人默认在沙箱模式,需要添加测试用户
+
+## 升级
+
+如果需要升级插件,先运行升级脚本清理旧版本:
+
+```bash
+git clone https://github.com/sliverp/qqbot.git && cd qqbot
+
+# 运行升级脚本(清理旧版本和配置)
+bash ./scripts/upgrade.sh
+
+# 重新安装插件
+clawdbot plugins install . # 这一步会有点久,需要安装一些依赖。稍微耐心等待一下,尤其是小内存机器
+
+# 重新配置
+clawdbot channels add --channel qqbot --token "AppID:AppSecret"
+
+# 重启网关
+clawdbot gateway restart
+```
+
+升级脚本会自动:
+- 删除 `~/.clawdbot/extensions/qqbot` 目录
+- 清理 `clawdbot.json` 中的 qqbot 相关配置
+
+## 开发
+
+```bash
+# 安装依赖
+npm install
+
+# 编译
+npm run build
+
+# 监听模式
+npm run dev
+```
+
+## 文件结构
+
+```
+qqbot/
+├── index.ts # 入口文件
+├── src/
+│ ├── api.ts # QQ Bot API 封装
+│ ├── channel.ts # Channel Plugin 定义
+│ ├── config.ts # 配置解析
+│ ├── gateway.ts # WebSocket 网关
+│ ├── onboarding.ts # CLI 配置向导
+│ ├── outbound.ts # 出站消息处理
+│ ├── runtime.ts # 运行时状态
+│ └── types.ts # 类型定义
+├── scripts/
+│ └── upgrade.sh # 升级脚本
+├── package.json
+└── tsconfig.json
+```
+
+## 相关链接
+
+- [QQ 机器人官方文档](https://bot.q.qq.com/wiki/)
+- [QQ 开放平台](https://q.qq.com/)
+- [API v2 文档](https://bot.q.qq.com/wiki/develop/api-v2/)
+
+## License
+
+MIT
diff --git a/src/channel.ts b/src/channel.ts
index 2a2288a..d5fd3cb 100644
--- a/src/channel.ts
+++ b/src/channel.ts
@@ -71,6 +71,26 @@ export const qqbotPlugin: ChannelPlugin = {
reload: { configPrefixes: ["channels.qqbot"] },
// CLI onboarding wizard
onboarding: qqbotOnboardingAdapter,
+ // 消息目标解析
+ messaging: {
+ normalizeTarget: (target) => {
+ // 支持格式: qqbot:c2c:xxx, qqbot:group:xxx, c2c:xxx, group:xxx, openid
+ const normalized = target.replace(/^qqbot:/i, "");
+ return { ok: true, to: normalized };
+ },
+ targetResolver: {
+ looksLikeId: (id) => {
+ // 先去掉 qqbot: 前缀
+ const normalized = id.replace(/^qqbot:/i, "");
+ // 支持 c2c:xxx, group:xxx, channel:xxx 格式
+ if (normalized.startsWith("c2c:") || normalized.startsWith("group:") || normalized.startsWith("channel:")) return true;
+ // 支持纯 openid(32位十六进制)
+ if (/^[A-F0-9]{32}$/i.test(normalized)) return true;
+ return false;
+ },
+ hint: "c2c: or group:",
+ },
+ },
config: {
listAccountIds: (cfg) => listQQBotAccountIds(cfg),
resolveAccount: (cfg, accountId) => resolveQQBotAccount(cfg, accountId),