新增 openclaw_bridge 插件,实现 QQ ↔ OpenClaw Gateway 桥接: src/process.py: - QQ 消息自动转发 OpenClaw Gateway - 内置安全检测(高危词、管理员白名单、MC指令过滤) - 高危词库外部化到 config.toml [security] section - 群昵称自动解析 - Session 隔离(按群×用户) config/openclawbridge/config.toml: - 插件配置模板(已脱敏:占位符替代个人信息) scripts/qq_*.py (×15): - 消息发送/文件传输/群管理/好友管理 - 信息查询/历史回溯/OCR/点赞 - 全部脱敏(QQ号→YOUR_ADMIN_QQ, IP→YOUR_NAPCAT_HOST等) skills/*/SKILL.md (×8): - AgentSkills 使用指导 - qq-messenger / qq-management / qq-resolver / qq-napcat-extras - browser / file-process / mc-query / nix-helper SKILL.md: - AgentSkill 入口,完整架构说明和部署步骤
69 lines
3.2 KiB
Markdown
69 lines
3.2 KiB
Markdown
# qq-resolver Skill
|
|
|
|
QQ 信息查询能力 — 群列表、好友列表、ID 转名称、历史消息回溯、文件接收。通过 NapCat (OneBot) HTTP API 直接查询。
|
|
|
|
> **什么时候用历史消息工具:** 当用户提到某个话题、人物或事件,而你在当前 session 里找不到相关信息时,说明这个信息来自其他聊天(其他群/私聊),或者 session 重启过导致记忆丢失。这时应该调用 `qq_get_history.py` 查看相关群/私聊的历史消息来补全上下文。
|
|
|
|
## 脚本清单
|
|
|
|
所有脚本都在 `YOUR_WORKSPACE_PATH/scripts/` 目录下。
|
|
|
|
| 脚本 | 调用方式 | 说明 |
|
|
|---|---|---|
|
|
| `qq_get_groups.py` | `--json` `[--keyword 关键词]` | 返回所有群聊列表 |
|
|
| `qq_get_friends.py` | `--json` `[--keyword 关键词]` | 返回好友列表 |
|
|
| `qq_resolve_name.py` | `--uid <QQ号>` 或 `--gid <群号>` | QQ号/群号 ↔ 可读名称 |
|
|
| `qq_get_history.py` | `--gid <群号>` 或 `--uid <QQ号>` `--num <条数>` `--json` | 历史消息(时间倒序) |
|
|
| `qq_get_file.py` | `--file <file_id>` | 下载文件到 `files/` 目录 |
|
|
|
|
## 用法
|
|
|
|
所有脚本用 `subprocess.run(cmd, capture_output=True, text=True, timeout=10-15)` 即可,输出直接读 `result.stdout`。
|
|
|
|
### 查群列表
|
|
```
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_get_groups.py --json
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_get_groups.py --json --keyword "我的世界"
|
|
```
|
|
|
|
### 查好友列表
|
|
```
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_get_friends.py --json
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_get_friends.py --json --keyword "张三"
|
|
```
|
|
|
|
### 解析 QQ 号 / 群号
|
|
```
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_resolve_name.py --uid YOUR_ADMIN_QQ
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_resolve_name.py --gid 812704915
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_resolve_name.py --uid YOUR_ADMIN_QQ --uid 12345678 --gid YOUR_GROUP_ID
|
|
```
|
|
|
|
### 获取历史消息 ⭐ 回顾
|
|
```
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_get_history.py --gid 812704915 --num 10 --json
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_get_history.py --uid YOUR_ADMIN_QQ --num 20 --json
|
|
```
|
|
返回 `[{ "time": "...", "sender_name": "...", "sender_card": "...", "message": "...", "message_type": "..." }]`
|
|
|
|
**什么时候该用:**
|
|
- 用户说"上次我们聊到的那个事" → 查历史看看上次聊了什么
|
|
- 用户问"你还记得XX吗" → 你不记得,查历史
|
|
- 提到一个不熟悉的人/群 → 先查群列表/好友列表确定身份,再查对应聊天历史
|
|
- session 刚启动时对之前对话没印象 → 主动查最近历史恢复认知
|
|
|
|
### 接收文件/图片 ⭐ 从QQ获取文件
|
|
```
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_get_file.py --file <file_id>
|
|
python3 YOUR_WORKSPACE_PATH/scripts/qq_get_file.py --file <file_id> --info --json
|
|
```
|
|
执行后自动下载到 `files/` 目录,输出:保存路径、文件名、大小、类型(图片/文件)。
|
|
|
|
**注意:** file_id 来自消息中的 `[image:xxx.jpg]` 或 `[file:xxx.zip]` 标记,冒号后面就是 file_id。
|
|
|
|
## 工作流程
|
|
|
|
遇到不认识的内容 → 查群列表/好友列表确定身份 → 查历史消息看上下文 → 回复用户
|
|
|
|
需要看文件内容(如图片识别、文档处理)→ 用 `qq_get_file.py` 下载到 `files/` 目录后读取
|