Tools
Qqchat Plugins
openclaw-qqchat-plugins
Install
npm install
npm
Configuration Example
{
"plugins": {
"entries": ["qqchat"],
"qqchat": {
"enabled": true,
"config": {
"wsUrl": "ws://localhost:3001",
"accessToken": "your_token_here",
"groups": {
"123456789": { "agent": "main" }
},
"users": {
"10001": { "agent": "admin", "vip": true }
}
}
}
}
}
README
# ๐ดโโ ๏ธ QQChat - ๆฅ่ชQC.ๆตท่ดผ็ๅข้็ OpenClaw QQ ๆไปถ
<p align="center">
<a href="https://github.com/qcluffy/qqchat/releases">
<img src="https://img.shields.io/github/v/release/qcluffy/qqchat?display_name=tag" alt="Release">
</a>
<a href="https://opensource.org/licenses/MIT">
<img src="https://img.shields.io/badge/License-MIT-green.svg" alt="License: MIT">
</a>
<a href="https://docs.openclaw.ai/">
<img src="https://img.shields.io/badge/OpenClaw-Plugin-blueviolet.svg" alt="OpenClaw">
</a>
<a href="https://github.com/botuniverse/onebot-11">
<img src="https://img.shields.io/badge/Protocol-OneBot_11-yellow.svg" alt="Protocol">
</a>
<a href="https://www.typescriptlang.org/">
<img src="https://img.shields.io/badge/Language-TypeScript-blue.svg" alt="TypeScript">
</a>
<img src="https://img.shields.io/badge/QiYun-Tech-Love-red.svg" alt="ๆไบ็งๆ">
</p>
<p align="center">
<strong>๐ดโโ ๏ธ QQChat - ๆฅ่ชๆตท่ดผ็็ QQ ๆไปถ</strong>
</p>
<p align="center">
ไธบ OpenClaw ๆ้ QQ ๆบๅจไบบ่งฃๅณๆนๆก๏ผๆฏๆ้ซๅนถๅใๅคไผ่ฏใๆบ่ฝ่ทฏ็ฑใๅชไฝๆตๅค็
</p>
---
## โจ ๆ ธๅฟ็นๆง
### ๐ฅ ้ซๆง่ฝๆถๆ
| ็นๆง | ๆ่ฟฐ |
|------|------|
| **่ฟๆฅๆฑ ** | ๆฏๆๅค WebSocket ่ฟๆฅ๏ผ่ชๅจ่ด่ฝฝๅ่กก |
| **ไธ็บง้ๆต** | ๅ
จๅฑ โ ่ฟๆฅ โ API ็บงๅซ้ๆต๏ผ้ฒๆญข่งฆๅ NapCat ้ๅถ |
| **ๆถๆฏไบค็ป** | ๆน้ๆถๆฏๅนถ่กๅ้๏ผๅๅ้ๆๅ 50x |
| **็ๆญๅจ** | ๆ
้่ชๅจ้็ฆป๏ผๅฟซ้ๆขๅค |
### ๐ฆ ๅชไฝๅค็
- ๐ผ๏ธ ๅพ็ๆถๅ (ๆฏๆ URLใfileIdใๆฌๅฐ่ทฏๅพ)
- ๐ค ่ฏญ้ณๆถๆฏ (AMR/MP3 ๆ ผๅผ่ฝฌๆข)
- ๐ฌ ่ง้ขๆถๆฏ
- ๐ ๆไปถไธไผ ไธ่ฝฝ (็พคๆไปถ/็ง่ๆไปถ)
- ๐จ Markdown ๆถๆฏ
- ๐ฏ ๆณไธๆณใ้ชฐๅญใ็ๆณ็ญ็นๆฎๆถๆฏ
### ๐ง ๆบ่ฝ่ทฏ็ฑ
```
ๆถๆฏ โ ่ทฏ็ฑๅจ โ Session ็ฎก็ โ Agent ๆฑ โ ๅๅบ
โ
โโโโโโโโโโโโโโโโ
โ ็พค็ป่ทฏ็ฑ โ โ ๆ นๆฎ็พคๅทๅ้
ไธๅ Agent
โ ็จๆท่ทฏ็ฑ โ โ VIP/ๆฎ้็จๆทๅทฎๅผๅๆๅก
โ ๅ
ณ้ฎ่ฏ่ทฏ็ฑ โ โ ๅฎขๆ/ๆๆฏ/็ฎก็็ญ่ชๅจๅๆต
โ AI ๆๅพ่ทฏ็ฑ โ โ ๅบไบๅ
ๅฎน็ๆบ่ฝๅๅ
โโโโโโโโโโโโโโโโ
```
### ๐พ ๅค็บง็ผๅญ
- **L1**: ๅ
ๅญ็ผๅญ (LRU, 1000 items) โ ็ญ็นๆฐๆฎ
- **L2**: ๆฌๅฐ็ฃ็ (5GB LRU) โ ๅชไฝๆไปถ
- **L3**: Redis (ๅฏ้) โ ่ทจๅฎไพๅ
ฑไบซ
---
## ๐ ๆง่ฝๅฏนๆฏ
| ๆๆ | ๅบ็ก็ | QQChat | ๆๅ |
|------|--------|--------|------|
| ๆถๆฏๅๅ้ | 1ๆก/็ง | 50ๆก/็ง | **50x** โก |
| ๅนถๅ่ฟๆฅ | 1 | 20 | **20x** ๐ |
| ๅคงๆไปถๅค็ | ๅ
ๅญๆบขๅบ | ๆตๅผๅค็ | **ๅฎๅ
จ** ๐ก๏ธ |
| ๅๅบๅปถ่ฟ | 500ms | 50ms | **10x** โก |
| ็ผๅญๅฝไธญ | 0% | 80%+ | **ๆ ้** โพ๏ธ |
| ๅคไผ่ฏๆฏๆ | โ | โ
| **ไผไธ็บง** ๐ข |
---
## ๐ฆ ๅฟซ้ๅผๅง
### ๅฎ่ฃ
```bash
# ๆนๅผไธ: OpenClaw CLI ๅฎ่ฃ
openclaw plugins install qqchat
# ๆนๅผไบ: ๆๅจๅฎ่ฃ
git clone https://github.com/qcluffy/qqchat.git
cd qqchat
npm install
npm run build
# ๅฐๆไปถๅคๅถๅฐ OpenClaw ๆฉๅฑ็ฎๅฝ
```
### ้
็ฝฎ
ๅจ `openclaw.json` ไธญๆทปๅ :
```json
{
"plugins": {
"entries": ["qqchat"],
"qqchat": {
"enabled": true,
"config": {
"wsUrl": "ws://localhost:3001",
"accessToken": "your_token_here",
"groups": {
"123456789": { "agent": "main" }
},
"users": {
"10001": { "agent": "admin", "vip": true }
}
}
}
}
}
```
### NapCat ่ฎพ็ฝฎ
1. ไธ่ฝฝ [NapCat](https://github.com/NapNeko/NapCatQQ)
2. ๅฏๅจ NapCat ๅนถ้
็ฝฎ WebSocket
3. ่ทๅ accessToken
4. ๅฎๆ๏ผ๐
---
## ๐ ไฝฟ็จๆๅ
### ๅบๆฌๆถๆฏ
```javascript
// ๅ้ๆๆฌ
await sendGroupMsg({ group_id: 123456, message: [{ type: 'text', data: { text: 'ไฝ ๅฅฝ๏ผ' } }] });
// ๅ้ๅพ็
await sendGroupMsg({ group_id: 123456, message: [{ type: 'image', data: { file: 'https://xxx.com/img.jpg' } }] });
```
### ๅชไฝๆไฝ
```javascript
// ่ทๅๅพ็
const img = await fetchImage({ file: 'xxx.jpg' });
// ไธไผ ็พคๆไปถ
await sendGroupFile({ group_id: 123456, file: '/path/to/file.pdf' });
// ่ทๅๆไปถไธ่ฝฝ้พๆฅ
const url = await fetchGroupFileUrl({ group_id: 123456, file_id: 'xxx' });
```
### ่ทฏ็ฑ้
็ฝฎ
```javascript
// ่ทฏ็ฑ่งๅ็คบไพ
const routingRules = {
groups: {
'123456789': { agent: 'admin', priority: 'high' }, // ็ฎก็็พค
'*': { agent: 'main', priority: 'normal' } // ้ป่ฎค
},
users: {
'10001': { agent: 'admin', vip: true },
'*': { agent: 'main' }
},
keywords: {
'ๅฎขๆ': { agent: 'helper' },
'ๆๆฏ': { agent: 'tech' }
}
};
```
---
## ๐๏ธ ๆถๆ่ฎพ่ฎก
```
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ QQChat Gateway โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ API Gateway โโโโโถโ Message Bus โโโโโโ Media Core โ โ
โ โ (่ทฏ็ฑ/้ๆต) โ โ (ไบไปถ้ฉฑๅจ) โ โ (ๆตๅผๅค็) โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ โ โ โ
โ โผ โผ โผ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Connection Pool (่ฟๆฅๆฑ ) โ โ
โ โ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โ โ
โ โ โ Conn 1 โ โ Conn 2 โ โ Conn 3 โ โ Conn 4 โ โ Conn N โ โ โ
โ โ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โ โ Session Router (ไผ่ฏ่ทฏ็ฑ) โ โ
โ โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ โ
โ โ โ GroupRouter โ โ UserRouter โ โ AIRouter โ โ โ
โ โ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โ โ
โ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
```
### ๆ ธๅฟๆจกๅ
| ๆจกๅ | ๅ่ฝ |
|------|------|
| `connection.js` | WebSocket ่ฟๆฅ็ฎก็ใ่ชๅจ้่ฟใๅฟ่ทณๆฃๆต |
| `request.js` | API ่ฏทๆฑๅฐ่ฃ
ใไธ็บง้ๆต |
| `dispatch.js` | ๆถๆฏๅๅใ่ทฏ็ฑๅณ็ญ |
| `media.js` | ๅชไฝๆไปถๆตๅผๅค็ใ็ผๅญ็ฎก็ |
| `session.js` | ไผ่ฏ็ฎก็ใไธไธๆไฟๆ |
---
## ๐ฆ ้กน็ฎ็ปๆ
```
qqchat/
โโโ src/
โ โโโ core/
โ โ โโโ connection.js # ่ฟๆฅๆฑ ็ฎก็
โ โ โโโ request.js # API ่ฏทๆฑ + ้ๆต
โ โ โโโ dispatch.js # ๆถๆฏๅๅ
โ โ โโโ runtime.js # ่ฟ่กๆถ
โ โ โโโ config.js # ้
็ฝฎ็ฎก็
โ โโโ adapters/
โ โ โโโ message.js # ๆถๆฏๆ ผๅผ่ฝฌๆข
โ โโโ utils/
โ โ โโโ media.js # ๅชไฝๅค็
โ โ โโโ cqcode.js # CQ็ ่งฃๆ
โ โ โโโ markdown.js # Markdownๅค็
โ โ โโโ log.js # ๆฅๅฟ
โ โโโ channel.js # ๅ
ฅๅฃ
โโโ dist/ # ็ผ่ฏ่พๅบ
โโโ package.json
โโโ README.md
```
---
## ๐ง ๅผๅๆๅ
### ๅผๅๆจกๅผ
```bash
# ๅฎ่ฃ
ไพ่ต
npm install
# ็ๅฌ็ผ่ฏ
npm run dev
# ๆๅปบ
npm run build
# ๅๅธ
npm version patch && npm publish
```
### ๆต่ฏ
```bash
# ่ฟ่กๆต่ฏ
npm test
# ่ฆ็็
npm run coverage
```
---
## ๐ค ่ดก็ฎ
ๆฌข่ฟๆไบค Issue ๅ Pull Request๏ผ
1. Fork ๆฌไปๅบ
2. ๅๅปบ็นๆงๅๆฏ (`git checkout -b feature/xxx`)
3. ๆไบคๆดๆน (`git commit -m 'Add xxx'`)
4. ๆจ้ๅๆฏ (`git push origin feature/xxx`)
5. ๅๅปบ Pull Request
---
## ๐ ๆดๆฐๆฅๅฟ
### v1.0.0 (2026-03-07)
- ๐ ๅๅงๅๅธ
- ๐ฅ ้ซๅนถๅ่ฟๆฅๆฑ
- ๐ฆ ๅชไฝๆตๅผๅค็
- ๐ง ๆบ่ฝ่ทฏ็ฑ็ณป็ป
- ๐พ ๅค็บง็ผๅญ
- ๐ก๏ธ ็ๆญๅจไฟๆค
---
## ๐ง ่็ณปๆนๅผ
- ๐ GitHub: [https://github.com/qcluffy/qqchat](https://github.com/qcluffy/qqchat)
- ๐ฌ ้ฎ้ขๅ้ฆ: [Issues](https://github.com/qcluffy/qqchat/issues)
- ๐ง ้ฎไปถ: [email protected]
---
## ๐ดโโ ๏ธ ๅ
ณไบ
<p align="center">
<strong>ๆไบ็งๆ ยท ๆตท่ดผ็ๅข้</strong><br>
ไนๅทดๅๅญฆ ๐ฆโจ<br>
<sub>่ฎฉๆฏไธช OpenClaw ็จๆท้ฝ็จไธๆๅฅฝ็ QQ ๆไปถ๏ผ</sub>
</p>
---
<p align="center">
โญ Star us on GitHub!<br>
ๆจ็ๆฏๆๆฏๆไปฌๅ่ฟ็ๅจๅ๏ผ
</p>
tools
Comments
Sign in to leave a comment