@zaofan/dsh-qqbot 1.10.0 → 1.10.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/docs/USER-GUIDE.md
CHANGED
|
@@ -135,6 +135,39 @@ npx @deepseek-ai/dsh web --patch /path/to/dsh-qqbot/cordis.dev.yml
|
|
|
135
135
|
- **`target_group`(v1.2.0)**: **分组管理** —— list/create/rename/delete/add/remove, 读写的正是 dock「📇 群组管理 → 🗂 分组」那份数据 → **AI 与主人共用同一份分组**: 主人在面板分好组, AI 直接"发给群友"就能群发。
|
|
136
136
|
- **`group_join_auto`(v1.3.0)**: **按关键词自动审批入群申请** —— 命中任一关键词的**直接放行**、未命中的**直接拒绝**(不可逆, 可 `dry_run` 预览); 源数据是**官方待审列表**(非本地流水), 同一人重复申请**去重按最新一条判**; 仅在主人明确要求时使用。
|
|
137
137
|
|
|
138
|
+
**子会话 · `/子会话` 命令**(v1.10.0+): 在群里**一条命令**就能开一个子会话(独立上下文、可指定人设/工作区/模型),
|
|
139
|
+
并让它在那边**真的跑起来**,回合结束还会**自动把收尾正文回灌**到父会话。
|
|
140
|
+
|
|
141
|
+
- **用法**:`/子会话 <要说的话> [人设] [工作区] [模型] [推理等级] [回灌模式]`
|
|
142
|
+
- **不要会话名** —— 名字由宿主自动生成;
|
|
143
|
+
- **第一段就是"要跟它说的话"** —— 建成后立刻送进去,并唤醒它跑一轮(所以一句话就能派活);
|
|
144
|
+
- 能对上的词(人设名 / 工作区名 / 模型名 / `低中高` / `一档二档三档`)会被**自动摘走**,**剩下的全部当对话内容**;
|
|
145
|
+
- 没给全的参数会**依次弹卡片**让你点选(带分页、跳过、取消),参数顺序随便。
|
|
146
|
+
- **回灌档位**(回合结束把子会话的正文送回父会话):
|
|
147
|
+
- `一档`(默认)= 只回灌**末段正文** + 同时转发到父会话所在的 QQ;
|
|
148
|
+
- `二档` = 该回合**所有正文 + 报错**只转发到 QQ(**不进**父会话上下文);
|
|
149
|
+
- `三档` = **进父会话上下文但不唤醒** + 同时转发 QQ。
|
|
150
|
+
- **重启不丢**:盯梢名单落盘在 `.qqbot-extensions/tools/data/session-watch-watching.json`(与 `vote.json` 同目录);
|
|
151
|
+
**v1.10.0 起**启动钩子会自动读回名单并重装监听器 —— 重启宿主后回灌照常工作,**不需要手动重挂**。
|
|
152
|
+
- **配套工具**:`session_create`(建会话)、`session_send`(往会话投递)、`session_watch`(看/改档/取消盯梢)、
|
|
153
|
+
`sessions_list`(列工作区)、`session_children`(看会话血缘)。
|
|
154
|
+
|
|
155
|
+
**引用回流 · 在群里「引用」它的输出,就能接着跟它聊**
|
|
156
|
+
|
|
157
|
+
「回灌」是**子会话 → 父会话**的单向通报;**引用回流**是**反方向** —— 你在群里**引用子会话发的那条输出**,
|
|
158
|
+
这条引用会被**路由回那个子会话**,让它接着答。
|
|
159
|
+
|
|
160
|
+
- **怎么用**:子会话跑完一轮后,群里会出现一条**行首带 `【子会话 xxxx】` 的转发消息**;
|
|
161
|
+
你**引用那条消息**(QQ 的引用功能)再说一句,这句话就送进了那个子会话。
|
|
162
|
+
- **它收到什么**:`【群里有人引用了你发到 QQ 的那段输出】` + 你的原话 + `(这是群里的引用互动,按需回应即可。)`
|
|
163
|
+
- **忙 / 闲两种处理**:子会话**正在跑** → 当**插话**送进去(不另起一轮);**空闲** → **唤醒**它来处理这条引用。
|
|
164
|
+
- **认路方式**:只看引用文本里**行首的归属短 id**(`【子会话 fc871e99】` 里的 `fc871e99`),
|
|
165
|
+
**当场解析**成完整会话 id、**不依赖任何台账**;解析不到就**静默放弃**(绝不猜是哪个会话)。
|
|
166
|
+
- **⚠️ 前提**:那个子会话**必须是活着的**(宿主里有它的 agent)。没活着就**静默跳过** ——
|
|
167
|
+
所以宿主重启后,**先让它动一下**(`session_send` 投一句、或它在被盯梢期间再跑一轮)才会恢复响应。
|
|
168
|
+
- **怎么看有没有生效**:`session_watch action=list` 里每条盯梢末尾的 **`最近被引用=月-日 时:分`**,
|
|
169
|
+
就是最近一次引用回流的落点时间;从没被引用过则不显示。
|
|
170
|
+
|
|
138
171
|
### 🔨 锤子面板: 禁言 / 踢人 (v1.6.2+,2026-10-04 补充)
|
|
139
172
|
|
|
140
173
|
dock 里的「🔨 锤子」(原「🔇 禁言」)下面分两页:**🔇 禁言**(走官方接口,机器人为管理员即可,无需任何登录)和 **👢 踢人**(**官方至今未开放踢人接口**,改走**你自己的 QQ 号** + 群官网 `qun.qq.com`)。
|
|
@@ -64,6 +64,7 @@
|
|
|
64
64
|
| **进上下文(静默)** | `await env.appendSilent('...')` | **只落上下文、不唤醒**(详见 §4 安全红线) |
|
|
65
65
|
| 进上下文(唤醒) | `await env.appendWake('...')` | 走正常回合唤醒一轮 AI(耗 token) |
|
|
66
66
|
| 身份 | `env.user.openid/name/isOwner`、`env.owners`、`env.peer.scope/peerId` | |
|
|
67
|
+
| **本会话 id** | `env.peerSessionId` | 本 QQ 会话对应的 **DSH 会话 id**(= `session/event` 里那个 `session.id`)。⚠️ **不是 `agent.id`** —— 跨会话回灌/引用回流判"父会话"用的正是它。v1.10.0 起提供;命令与按钮回调侧都能拿到(回调侧字面同值,直接读即可) |
|
|
67
68
|
| 日志 | `env.log(...)` | 落插件 logger |
|
|
68
69
|
| 内核句柄 | `env.kernel`(工具侧也叫 `env.ctx`) | **全权限"遥控器"**:`ctx.get('服务名')` / `ctx.on(...)` / `ctx.webServer.register(...)`。⚠️ 形状跟随 dsh 版本;`register` 返回的 disposer 要自己收尾 |
|
|
69
70
|
| 宿主自重启 | `await env.restart()` | 复用内置 `/bot-restart`(自动识别启动命令、强补 `--no-open`)。默认**仅主人**可触发;要放开写 `env.restart({ requireOwner: false })` |
|