Skip to content

Latest commit

 

History

History
128 lines (93 loc) · 3.67 KB

File metadata and controls

128 lines (93 loc) · 3.67 KB
name chatpicking
description QQ群聊消息扫描与总结skill。通过NapCat (OneBot v11)连接QQ,收集指定群的聊天消息并输出结构化数据供LLM总结。使用场景:(1) 拉取QQ群历史消息进行总结 (2) 实时监听QQ群消息一段时间后生成摘要 (3) 定时cron任务自动采集群聊并输出总结。需要预先部署NapCat。
metadata
openclaw
emoji requires
💬
bins
node

Chatpicking — QQ 群聊消息扫描与总结

通过 NapCat (OneBot v11 协议) 连接 QQ,采集指定群的聊天消息,输出结构化 JSON 数据供 LLM 解读和总结。

前置要求

  • Node.js ≥ 18
  • NapCat 已安装并运行,配置了 OneBot v11 WebSocket 服务

首次安装依赖

cd {baseDir} && npm install

命令

拉取群聊历史消息

# 拉取最近 100 条消息(默认)
node {baseDir}/scripts/fetch.mjs --napcat ws://127.0.0.1:3001 --group <群号>

# 拉取指定数量
node {baseDir}/scripts/fetch.mjs --napcat ws://127.0.0.1:3001 --group <群号> --count 200

# 使用 access_token
node {baseDir}/scripts/fetch.mjs --napcat ws://127.0.0.1:3001 --group <群号> --token <token>

实时监听群消息

# 监听 60 分钟(默认)
node {baseDir}/scripts/collect.mjs --napcat ws://127.0.0.1:3001 --group <群号>

# 监听指定时长
node {baseDir}/scripts/collect.mjs --napcat ws://127.0.0.1:3001 --group <群号> --duration 30

注意collect.mjs 会阻塞运行直到时间结束,进度信息输出到 stderr,最终 JSON 结果输出到 stdout。

使用流程

  1. 接收用户请求 → 判断是拉取历史消息还是实时监听
  2. 运行脚本 → 执行对应命令获取 JSON 数据
  3. 解读结果 → 对 JSON 中的消息列表进行总结,提取关键话题、重要信息、讨论趋势

使用场景对照

用户请求 推荐命令
"帮我看看XX群最近聊了啥" fetch.mjs --group <群号> --count 100
"总结XX群今天的消息" fetch.mjs --group <群号> --count 500
"监听XX群接下来半小时的消息" collect.mjs --group <群号> --duration 30
"每天总结XX群的消息" cron: fetch.mjs --group <群号> --count 500

输出格式

两个脚本输出格式相同:

{
  "success": true,
  "group_id": "123456789",
  "fetched_count": 42,
  "fetch_time": "2026-02-15T10:30:00.000Z",
  "messages": [
    {
      "sender": "张三",
      "user_id": 10001,
      "time": "2026-02-15T09:15:00.000Z",
      "timestamp": 1771045200,
      "content": "大家早上好"
    }
  ]
}

总结指导

收到消息 JSON 后,按以下维度总结:

  1. 核心话题:群里主要讨论了什么主题
  2. 关键信息:重要的通知、决定、链接
  3. 活跃度:消息密度、活跃时段、主要发言人
  4. 情绪氛围:整体讨论氛围(友好/争论/日常闲聊)

Cron 示例

每日群聊摘要

0 22 * * * node {baseDir}/scripts/fetch.mjs --group 123456789 --count 500

每周群聊总结

0 20 * * 0 node {baseDir}/scripts/fetch.mjs --group 123456789 --count 2000

环境变量

可通过环境变量替代命令行参数:

环境变量 说明 对应参数
NAPCAT_WS NapCat WebSocket 地址 --napcat
NAPCAT_GROUP 默认群号 --group
NAPCAT_TOKEN OneBot access_token --token

脚本文件

  • scripts/fetch.mjs — 拉取群聊历史消息
  • scripts/collect.mjs — 实时监听群消息并收集