@core-workspace/infoflow-openclaw-plugin 2026.3.9 → 2026.3.31
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/CHANGELOG.md +21 -0
- package/README.md +142 -50
- package/docs/qa-feature-list.md +413 -0
- package/index.ts +25 -1
- package/openclaw.plugin.json +22 -1
- package/package.json +15 -4
- package/publish.sh +221 -0
- package/scripts/deploy.sh +1 -1
- package/scripts/npm-tools/README.md +70 -0
- package/scripts/npm-tools/cli.js +262 -0
- package/scripts/npm-tools/package.json +21 -0
- package/src/adapter/inbound/ws-receiver.ts +71 -29
- package/src/adapter/outbound/reply-dispatcher.ts +12 -19
- package/src/channel/accounts.ts +26 -6
- package/src/channel/channel.ts +5 -4
- package/src/channel/media.ts +8 -0
- package/src/channel/outbound.ts +15 -7
- package/src/commands/changelog.ts +53 -0
- package/src/commands/doctor.ts +391 -0
- package/src/commands/logs.ts +212 -0
- package/src/handler/message-handler.ts +77 -82
- package/src/security/group-policy.ts +2 -0
- package/src/types.ts +20 -4
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# 更新日志
|
|
2
|
+
|
|
3
|
+
## 2026.3.30-beta.0
|
|
4
|
+
|
|
5
|
+
**问题修复**
|
|
6
|
+
- 修复了机器人名称未填写时,群聊消息全部收不到的问题
|
|
7
|
+
- 修复了群聊中机器人的回复有时因为内容过长而发送失败的问题
|
|
8
|
+
- 修复了不填写连接方式时,机器人无法启动的问题
|
|
9
|
+
- 修复了 WebSocket 模式下消息发送报错的问题
|
|
10
|
+
- 修复了「自检」工具在 WebSocket 模式下误报验签和加密密钥未配置的问题
|
|
11
|
+
|
|
12
|
+
**新功能**
|
|
13
|
+
- 连接方式默认改为 WebSocket,只需配置 AppKey 和 AppSecret 即可使用,无需额外填写 Token 和密钥
|
|
14
|
+
- 新增「查看日志」命令:在如流中发送 `/infoflow-logs` 即可查看机器人最近的收发消息记录,方便排查问题
|
|
15
|
+
- 新增「查看更新日志」命令:在如流中发送 `/infoflow-changelog` 即可查看插件更新历史
|
|
16
|
+
- 新增每条消息最大长度配置项,超长回复会自动拆成多条消息发送,默认每条不超过 1800 字
|
|
17
|
+
- 「自检」报告优化:排查工具 `/infoflow-doctor` 的输出更加简洁易读
|
|
18
|
+
|
|
19
|
+
**其他**
|
|
20
|
+
- 长消息自动拆分时,现在会在段落或列表的自然边界处断开,避免内容被切断到奇怪的位置
|
|
21
|
+
|
package/README.md
CHANGED
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
- [配置](#配置)
|
|
15
15
|
- [插件架构](#插件架构)
|
|
16
16
|
- [开发指南](#开发指南)
|
|
17
|
+
- [内置命令](#内置命令)
|
|
17
18
|
- [扩展:Agent Tools](#扩展-agent-tools)
|
|
18
19
|
- [扩展:Agent Hooks](#扩展-agent-hooks)
|
|
19
20
|
- [扩展:Agent Skills](#扩展-agent-skills)
|
|
@@ -190,8 +191,13 @@ openclaw directory groups infoflow
|
|
|
190
191
|
groups: {
|
|
191
192
|
"12345678": {
|
|
192
193
|
replyMode: "proactive",
|
|
194
|
+
groupSessionMode: "user", // 此群按群+人拆分会话
|
|
193
195
|
systemPrompt: "你是该群的专属助手,回答要简洁。",
|
|
194
196
|
},
|
|
197
|
+
"87654321": {
|
|
198
|
+
replyMode: "record", // 此群仅记录不回复
|
|
199
|
+
groupSessionMode: "group", // 此群按群拆分会话
|
|
200
|
+
},
|
|
195
201
|
},
|
|
196
202
|
},
|
|
197
203
|
},
|
|
@@ -235,12 +241,12 @@ https://your-domain/webhook/infoflow
|
|
|
235
241
|
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|
|
236
242
|
|------|------|:----:|--------|------|
|
|
237
243
|
| `apiHost` | `string` | ✅ | — | 如流 API 地址,例如 `https://apiin.im.baidu.com` |
|
|
238
|
-
| `checkToken` | `string` |
|
|
239
|
-
| `encodingAESKey` | `string` |
|
|
244
|
+
| `checkToken` | `string` | — | — | 消息验签 Token,从如流企业后台获取(**webhook 模式必填**)|
|
|
245
|
+
| `encodingAESKey` | `string` | — | — | 消息 AES 加密密钥,从如流企业后台获取(**webhook 模式必填**)|
|
|
240
246
|
| `appKey` | `string` | ✅ | — | 应用 Key,从如流企业后台获取 |
|
|
241
247
|
| `appSecret` | `string` | ✅ | — | 应用 Secret,从如流企业后台获取 |
|
|
242
248
|
| `appAgentId` | `number` | — | — | 企业后台"应用ID"(数字),私聊消息撤回需要此字段 |
|
|
243
|
-
| `robotName` | `string` | — | — | 机器人在群里的显示名称,用于检测消息中的 @
|
|
249
|
+
| `robotName` | `string` | — | — | 机器人在群里的显示名称,用于检测消息中的 @ 提及。**未配置时无法识别 @机器人,`mention-only` / `mention-and-watch` 模式将退化为对所有群消息触发** |
|
|
244
250
|
| `connectionMode` | `string` | — | `"webhook"` | 消息接收方式:`"webhook"` 如流主动推送;`"websocket"` 插件主动长连接 |
|
|
245
251
|
| `wsGateway` | `string` | — | `"infoflow-open-gateway.weiyun.baidu.com"` | WebSocket 网关域名,仅 `websocket` 模式使用 |
|
|
246
252
|
| `enabled` | `boolean` | — | `true` | 是否启用该插件 |
|
|
@@ -260,6 +266,7 @@ https://your-domain/webhook/infoflow
|
|
|
260
266
|
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|
|
261
267
|
|------|------|:----:|--------|------|
|
|
262
268
|
| `replyMode` | `string` | — | `"mention-and-watch"` | 群聊回复策略:`ignore`(丢弃)/ `record`(仅记录)/ `mention-only`(仅被@时)/ `mention-and-watch`(被@或关注人被@时)/ `proactive`(主动参与) |
|
|
269
|
+
| `groupSessionMode` | `string` | — | `"group"` | 群聊会话拆分模式:`"group"` = 按群拆分;`"user"` = 按群+人拆分 |
|
|
263
270
|
| `followUp` | `boolean` | — | `true` | 机器人回复后,时间窗口内自动识别追问,无需再次 @ |
|
|
264
271
|
| `followUpWindow` | `number` | — | `300` | 跟进时间窗口(秒) |
|
|
265
272
|
| `watchMentions` | `string[]` | — | `[]` | 监控指定人员被 @,机器人作为其助手代为判断是否回答,填写 uuapName |
|
|
@@ -271,6 +278,7 @@ https://your-domain/webhook/infoflow
|
|
|
271
278
|
|------|------|:----:|--------|------|
|
|
272
279
|
| `dmMessageFormat` | `string` | — | `"text"` | 私聊发出消息的格式:`"text"` 纯文本;`"markdown"` 富文本,支持标题/加粗/列表 |
|
|
273
280
|
| `groupMessageFormat` | `string` | — | `"text"` | 群聊发出消息的格式:`"text"` 纯文本;`"markdown"` 富文本。**注意:`markdown` 格式不支持引用回复** |
|
|
281
|
+
| `textChunkLimit` | `number` | — | `1800` | 长消息自动分片的每片最大字符数,超出部分拆成多条消息发送 |
|
|
274
282
|
| `processingHint` | `boolean` | — | `true` | LLM 响应较慢时,提前发送"⏳ 处理中..."提示;出错时发"处理出错,请稍后重试" |
|
|
275
283
|
| `processingHintDelay` | `number` | — | `5` | 发送"⏳ 处理中..."前等待的秒数;LLM 在此时间内响应则不发;设为 `0` 立即发送 |
|
|
276
284
|
|
|
@@ -289,6 +297,7 @@ https://your-domain/webhook/infoflow
|
|
|
289
297
|
| 字段 | 类型 | 说明 |
|
|
290
298
|
|------|------|------|
|
|
291
299
|
| `replyMode` | `string` | 覆盖该群的回复策略 |
|
|
300
|
+
| `groupSessionMode` | `string` | 覆盖该群的会话拆分模式:`"group"` = 按群拆分;`"user"` = 按群+人拆分 |
|
|
292
301
|
| `watchMentions` | `string[]` | 覆盖该群监控的人员列表 |
|
|
293
302
|
| `watchRegex` | `string` | 覆盖该群的正则匹配规则 |
|
|
294
303
|
| `followUp` | `boolean` | 覆盖该群的跟进开关 |
|
|
@@ -307,55 +316,66 @@ https://your-domain/webhook/infoflow
|
|
|
307
316
|
|
|
308
317
|
| 模块 | 文件 | 功能 |
|
|
309
318
|
|------|------|------|
|
|
310
|
-
| **插件入口** | `index.ts` | 注册 Channel、Webhook 路由、Tools、Hooks |
|
|
311
|
-
| **Channel 定义** | `src/channel.ts` | 插件结构、生命周期、Actions |
|
|
312
|
-
| **消息接收(Webhook)** | `src/inbound/webhook-parser.ts` | Webhook 解析、解密、去重 |
|
|
313
|
-
| **消息接收(WebSocket)** | `src/inbound/ws-receiver.ts` | WebSocket 长连接 |
|
|
314
|
-
| **接入管理** | `src/
|
|
315
|
-
| **消息处理** | `src/
|
|
316
|
-
| **消息发送** | `src/outbound
|
|
317
|
-
| **回复分发** | `src/outbound/reply-dispatcher.ts` | @mentions 解析、分块、引用回复构造 |
|
|
318
|
-
| **图片处理** | `src/
|
|
319
|
-
| **Actions** | `src/
|
|
319
|
+
| **插件入口** | `index.ts` | 注册 Channel、Webhook 路由、Tools、Hooks、Commands |
|
|
320
|
+
| **Channel 定义** | `src/channel/channel.ts` | 插件结构、生命周期、Actions |
|
|
321
|
+
| **消息接收(Webhook)** | `src/adapter/inbound/webhook-parser.ts` | Webhook 解析、解密、去重 |
|
|
322
|
+
| **消息接收(WebSocket)** | `src/adapter/inbound/ws-receiver.ts` | WebSocket 长连接 |
|
|
323
|
+
| **接入管理** | `src/channel/monitor.ts` | Webhook/WebSocket 启动管理 |
|
|
324
|
+
| **消息处理** | `src/handler/message-handler.ts` | replyMode 决策、历史注入、LLM 调用 |
|
|
325
|
+
| **消息发送** | `src/channel/outbound.ts` | 私聊/群聊发送 API |
|
|
326
|
+
| **回复分发** | `src/adapter/outbound/reply-dispatcher.ts` | @mentions 解析、分块、引用回复构造 |
|
|
327
|
+
| **图片处理** | `src/channel/media.ts` | 图片下载、压缩、Base64(含 SSRF 防护) |
|
|
328
|
+
| **Actions** | `src/tools/actions/index.ts` | Channel Actions(send/delete,供 LLM 通过 Channel 调用) |
|
|
320
329
|
| **Agent Tools** | `src/tools/index.ts` | `infoflow_send` / `infoflow_recall`(LLM Function Calling) |
|
|
321
|
-
| **Agent Hooks** | `src/hooks/index.ts` | `before_agent_start` 钩子(如流平台背景知识注入) |
|
|
322
|
-
| **多账号** | `src/
|
|
323
|
-
| **SDK 适配** | `src/
|
|
324
|
-
| **消息存储** | `src/
|
|
330
|
+
| **Agent Hooks** | `src/tools/hooks/index.ts` | `before_agent_start` 钩子(如流平台背景知识注入) |
|
|
331
|
+
| **多账号** | `src/channel/accounts.ts` | 账号解析、配置合并 |
|
|
332
|
+
| **SDK 适配** | `src/utils/token-adapter.ts` | Token 管理,封装 SDK TokenManager |
|
|
333
|
+
| **消息存储** | `src/utils/store/message-store.ts` | 已发送消息记录(支持撤回) |
|
|
334
|
+
| **安全策略** | `src/security/dm-policy.ts` | 私聊权限策略 |
|
|
335
|
+
| **群聊策略** | `src/security/group-policy.ts` | 群组权限、replyMode、followUp |
|
|
336
|
+
| **内置命令** | `src/commands/doctor.ts` | `/infoflow-doctor` 自检命令 |
|
|
337
|
+
| **内置命令** | `src/commands/logs.ts` | `/infoflow-logs` 日志查看命令 |
|
|
325
338
|
|
|
326
339
|
### 项目结构
|
|
327
340
|
|
|
328
341
|
```
|
|
329
|
-
|
|
330
|
-
├── index.ts
|
|
331
|
-
├── openclaw.plugin.json
|
|
332
|
-
├── skills/
|
|
333
|
-
│ └── infoflow-dev/
|
|
342
|
+
openclaw_infoflow/
|
|
343
|
+
├── index.ts # 插件入口
|
|
344
|
+
├── openclaw.plugin.json # 插件元数据
|
|
345
|
+
├── skills/
|
|
346
|
+
│ └── infoflow-dev/ # 如流开发者指南 skill
|
|
334
347
|
├── src/
|
|
335
|
-
│ ├──
|
|
336
|
-
│ ├──
|
|
337
|
-
│ ├──
|
|
338
|
-
│ ├──
|
|
339
|
-
│ ├──
|
|
340
|
-
│ │
|
|
341
|
-
│ ├──
|
|
342
|
-
│ │ ├──
|
|
343
|
-
│ │
|
|
344
|
-
│
|
|
345
|
-
│ │
|
|
346
|
-
│ ├──
|
|
347
|
-
│ │
|
|
348
|
-
│ │
|
|
349
|
-
│ │
|
|
350
|
-
│ │
|
|
351
|
-
│
|
|
352
|
-
│ │ └──
|
|
348
|
+
│ ├── types.ts # 类型定义
|
|
349
|
+
│ ├── runtime.ts # 插件运行时单例
|
|
350
|
+
│ ├── logging.ts # 日志模块
|
|
351
|
+
│ ├── channel/
|
|
352
|
+
│ │ ├── channel.ts # Channel 插件定义
|
|
353
|
+
│ │ ├── accounts.ts # 多账号解析
|
|
354
|
+
│ │ ├── monitor.ts # Webhook/WS 启动管理
|
|
355
|
+
│ │ ├── outbound.ts # 消息发送 API
|
|
356
|
+
│ │ └── media.ts # 图片处理
|
|
357
|
+
│ ├── adapter/
|
|
358
|
+
│ │ ├── inbound/
|
|
359
|
+
│ │ │ ├── webhook-parser.ts # Webhook 解析解密
|
|
360
|
+
│ │ │ └── ws-receiver.ts # WebSocket 长连接
|
|
361
|
+
│ │ └── outbound/
|
|
362
|
+
│ │ ├── reply-dispatcher.ts # 回复分发(分片/@mention/引用)
|
|
363
|
+
│ │ └── target-resolver.ts # 目标地址解析
|
|
364
|
+
│ ├── handler/
|
|
365
|
+
│ │ └── message-handler.ts # 消息处理核心(replyMode 决策)
|
|
366
|
+
│ ├── security/
|
|
367
|
+
│ │ ├── dm-policy.ts # 私聊权限策略
|
|
368
|
+
│ │ └── group-policy.ts # 群聊策略 + followUp
|
|
353
369
|
│ ├── tools/
|
|
354
|
-
│ │
|
|
355
|
-
│ ├──
|
|
356
|
-
│ │ └── index.ts
|
|
357
|
-
│
|
|
358
|
-
│
|
|
370
|
+
│ │ ├── index.ts # infoflow_send / infoflow_recall
|
|
371
|
+
│ │ ├── actions/index.ts # Channel Actions
|
|
372
|
+
│ │ └── hooks/index.ts # Agent Hooks
|
|
373
|
+
│ ├── commands/
|
|
374
|
+
│ │ ├── doctor.ts # /infoflow-doctor
|
|
375
|
+
│ │ └── logs.ts # /infoflow-logs
|
|
376
|
+
│ └── utils/
|
|
377
|
+
│ ├── token-adapter.ts # SDK Token 适配
|
|
378
|
+
│ └── store/message-store.ts # 已发消息存储
|
|
359
379
|
└── README.md
|
|
360
380
|
```
|
|
361
381
|
|
|
@@ -397,6 +417,46 @@ tail -200 ~/.openclaw/logs/gateway.log | grep "sendInfoflowMessage"
|
|
|
397
417
|
|
|
398
418
|
---
|
|
399
419
|
|
|
420
|
+
<a id="内置命令"></a>
|
|
421
|
+
|
|
422
|
+
## 内置命令
|
|
423
|
+
|
|
424
|
+
插件注册了两个可在如流中直接发送的内置命令。
|
|
425
|
+
|
|
426
|
+
### /infoflow-doctor — 自检
|
|
427
|
+
|
|
428
|
+
一键检查插件配置与 API 连通性,帮助排查收不到消息的问题。
|
|
429
|
+
|
|
430
|
+
**在如流私聊或群聊中发送:**
|
|
431
|
+
```
|
|
432
|
+
/infoflow-doctor
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
**自检项:**
|
|
436
|
+
1. 账号配置完整性(appKey、appSecret、checkToken 等)
|
|
437
|
+
2. Access Token 获取(实际调用 Infoflow API)
|
|
438
|
+
3. 发私聊测试消息
|
|
439
|
+
4. 发群聊测试消息(仅在群中触发时执行)
|
|
440
|
+
5. 发图片测试消息
|
|
441
|
+
|
|
442
|
+
### /infoflow-logs — 日志查看
|
|
443
|
+
|
|
444
|
+
查看 Infoflow 最近的收发消息日志,方便排查消息丢失、发送失败等问题。
|
|
445
|
+
|
|
446
|
+
**用法:**
|
|
447
|
+
|
|
448
|
+
```
|
|
449
|
+
/infoflow-logs # 最近 50 条
|
|
450
|
+
/infoflow-logs 100 # 最近 100 条(最大 200)
|
|
451
|
+
/infoflow-logs 50-100 # 往前翻页:跳过最近 50 条,再往前看 50 条
|
|
452
|
+
```
|
|
453
|
+
|
|
454
|
+
**日志来源:** `/tmp/openclaw/openclaw-YYYY-MM-DD.log`(优先今日,降级昨日)
|
|
455
|
+
|
|
456
|
+
**输出上限:** 20,000 字符,超出时自动丢弃最老的条目。长输出由框架自动拆成多条消息发送。
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
400
460
|
<a id="扩展-agent-tools"></a>
|
|
401
461
|
|
|
402
462
|
## 扩展:Agent Tools
|
|
@@ -559,8 +619,9 @@ description: Skill 描述,说明何时触发(这是触发机制,写清楚
|
|
|
559
619
|
```bash
|
|
560
620
|
tail -200 ~/.openclaw/logs/gateway.log | grep "webhook"
|
|
561
621
|
```
|
|
562
|
-
3. 检查 `robotName`
|
|
622
|
+
3. 检查 `robotName` 是否与如流后台机器人显示名一致(影响 @mention 检测)。**注意:不配置 `robotName` 时,`mention-only` / `mention-and-watch` 模式将退化为对所有群消息触发,而非完全不触发**
|
|
563
623
|
4. 检查 `groupPolicy` 是否允许该群
|
|
624
|
+
5. 在如流中发送 `/infoflow-doctor` 进行自检
|
|
564
625
|
|
|
565
626
|
### 3. 消息撤回失败?
|
|
566
627
|
|
|
@@ -596,6 +657,7 @@ Baidu Infoflow enterprise messaging platform — OpenClaw channel plugin. Suppor
|
|
|
596
657
|
- [Configuration](#configuration)
|
|
597
658
|
- [Architecture](#architecture)
|
|
598
659
|
- [Development Guide](#development-guide)
|
|
660
|
+
- [Built-in Commands](#built-in-commands)
|
|
599
661
|
- [Extending: Agent Tools](#extending-agent-tools)
|
|
600
662
|
- [Extending: Agent Hooks](#extending-agent-hooks)
|
|
601
663
|
- [Extending: Agent Skills](#extending-agent-skills)
|
|
@@ -785,12 +847,12 @@ https://your-domain/webhook/infoflow
|
|
|
785
847
|
| Field | Type | Required | Default | Description |
|
|
786
848
|
|-------|------|:--------:|---------|-------------|
|
|
787
849
|
| `apiHost` | `string` | ✅ | — | Infoflow API host, e.g. `https://apiin.im.baidu.com` |
|
|
788
|
-
| `checkToken` | `string` |
|
|
789
|
-
| `encodingAESKey` | `string` |
|
|
850
|
+
| `checkToken` | `string` | — | — | Message verification token from Infoflow enterprise console (**required for webhook mode**) |
|
|
851
|
+
| `encodingAESKey` | `string` | — | — | AES encryption key from Infoflow enterprise console (**required for webhook mode**) |
|
|
790
852
|
| `appKey` | `string` | ✅ | — | App Key from Infoflow enterprise console |
|
|
791
853
|
| `appSecret` | `string` | ✅ | — | App Secret from Infoflow enterprise console |
|
|
792
854
|
| `appAgentId` | `number` | — | — | App Agent ID (numeric); required for private message recall |
|
|
793
|
-
| `robotName` | `string` | — | — | Bot display name in groups, used for @mention detection |
|
|
855
|
+
| `robotName` | `string` | — | — | Bot display name in groups, used for @mention detection. **Without this, `mention-only` / `mention-and-watch` modes fall back to triggering on every message** |
|
|
794
856
|
| `connectionMode` | `string` | — | `"webhook"` | `"webhook"` (Infoflow pushes to your server) or `"websocket"` (plugin connects to Infoflow) |
|
|
795
857
|
| `wsGateway` | `string` | — | `"infoflow-open-gateway.weiyun.baidu.com"` | WebSocket gateway hostname, only used in `websocket` mode |
|
|
796
858
|
| `enabled` | `boolean` | — | `true` | Whether to enable the plugin |
|
|
@@ -821,6 +883,7 @@ https://your-domain/webhook/infoflow
|
|
|
821
883
|
|-------|------|:--------:|---------|-------------|
|
|
822
884
|
| `dmMessageFormat` | `string` | — | `"text"` | Format for private (DM) messages: `"text"` (plain) or `"markdown"` (rich text) |
|
|
823
885
|
| `groupMessageFormat` | `string` | — | `"text"` | Format for group messages: `"text"` (plain) or `"markdown"` (rich text). **Note: `markdown` does not support quote replies** |
|
|
886
|
+
| `textChunkLimit` | `number` | — | `1800` | Max characters per outbound message chunk; long messages are split into multiple messages |
|
|
824
887
|
| `processingHint` | `boolean` | — | `true` | Send "⏳ processing..." hint when LLM is slow; send error message on failure |
|
|
825
888
|
| `processingHintDelay` | `number` | — | `5` | Seconds to wait before sending the hint; set to `0` to send immediately |
|
|
826
889
|
|
|
@@ -878,6 +941,34 @@ tail -f ~/.openclaw/logs/gateway.log | grep -i infoflow
|
|
|
878
941
|
|
|
879
942
|
---
|
|
880
943
|
|
|
944
|
+
<a id="built-in-commands"></a>
|
|
945
|
+
|
|
946
|
+
## Built-in Commands
|
|
947
|
+
|
|
948
|
+
### /infoflow-doctor — Self-check
|
|
949
|
+
|
|
950
|
+
Diagnose configuration and API connectivity issues.
|
|
951
|
+
|
|
952
|
+
```
|
|
953
|
+
/infoflow-doctor
|
|
954
|
+
```
|
|
955
|
+
|
|
956
|
+
Checks: account config completeness, access token fetch, DM send test, group send test, image send test.
|
|
957
|
+
|
|
958
|
+
### /infoflow-logs — Log viewer
|
|
959
|
+
|
|
960
|
+
View recent Infoflow send/receive logs.
|
|
961
|
+
|
|
962
|
+
```
|
|
963
|
+
/infoflow-logs # last 50 entries
|
|
964
|
+
/infoflow-logs 100 # last 100 entries (max 200)
|
|
965
|
+
/infoflow-logs 50-100 # page back: skip last 50, show previous 50
|
|
966
|
+
```
|
|
967
|
+
|
|
968
|
+
Log source: `/tmp/openclaw/openclaw-YYYY-MM-DD.log`. Total output capped at 20,000 characters.
|
|
969
|
+
|
|
970
|
+
---
|
|
971
|
+
|
|
881
972
|
<a id="extending-agent-tools"></a>
|
|
882
973
|
|
|
883
974
|
## Extending: Agent Tools
|
|
@@ -965,8 +1056,9 @@ Declare the skill path in `openclaw.plugin.json`:
|
|
|
965
1056
|
|
|
966
1057
|
1. Check `replyMode` — confirm the group is allowed to trigger
|
|
967
1058
|
2. Check logs for incoming webhook requests
|
|
968
|
-
3. Verify `robotName` matches the bot's display name (affects @ detection)
|
|
1059
|
+
3. Verify `robotName` matches the bot's display name in Infoflow (affects @mention detection). **Note: without `robotName`, `mention-only` / `mention-and-watch` modes fall back to triggering on every message**
|
|
969
1060
|
4. Check `groupPolicy` allows the group
|
|
1061
|
+
5. Send `/infoflow-doctor` in Infoflow to run self-checks
|
|
970
1062
|
|
|
971
1063
|
### Message recall failing?
|
|
972
1064
|
|