sophhub 0.4.6 → 0.4.8
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/agents/vip-admin/AGENTS.md +55 -72
- package/agents/vip-admin/HEARTBEAT.md +3 -3
- package/agents/vip-admin/IDENTITY.md +1 -1
- package/agents/vip-admin/MEMORY.md +4 -3
- package/agents/vip-admin/SOUL.md +2 -2
- package/agents/vip-admin/TOOLS.md +7 -1
- package/agents/vip-admin/USER.md +17 -3
- package/agents/vip-qa/.config.json +2 -2
- package/agents/vip-qa/AGENTS.md +34 -27
- package/agents/vip-qa/BOOTSTRAP.md +0 -1
- package/agents/vip-qa/HEARTBEAT.md +4 -4
- package/agents/vip-qa/IDENTITY.md +2 -1
- package/agents/vip-qa/SOUL.md +2 -2
- package/agents/vip-qa/TOOLS.md +3 -3
- package/agents/vip-qa/USER.md +2 -2
- package/package.json +1 -1
- package/skills/bot-api-status/skill.json +10 -2
- package/skills/bot-api-status/src/SKILL.md +11 -1
- package/skills/bot-api-status/src/pyproject.toml +1 -1
- package/skills/bot-api-status/src/scripts/secret.py +17 -1
- package/skills/claw-agent-get-send/skill.json +21 -0
- package/skills/claw-agent-get-send/src/SKILL.md +72 -0
- package/skills/claw-agent-get-send/src/pyproject.toml +5 -0
- package/skills/claw-agent-get-send/src/reference-http.md +149 -0
- package/skills/claw-agent-get-send/src/scripts/appia_claw.py +287 -0
- package/skills/sophnet-qa-install/skill.json +13 -6
- package/skills/sophnet-training-install/skill.json +13 -6
package/agents/vip-qa/TOOLS.md
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|------|------|------|
|
|
7
7
|
| `read` | 读取知识库文档、图片 | knowledge/ 只读 |
|
|
8
8
|
| `image` | 调用 VLM 识别用户发来的图片 | 只读 |
|
|
9
|
-
| `write` | 写入自己的实例记忆(日志、反馈、画像、摘要等) | 仅限本实例 `memory/` 下允许的文件与根目录 `MEMORY.md
|
|
9
|
+
| `write` | 写入自己的实例记忆(日志、反馈、画像、摘要等) | 仅限本实例 `memory/` 下允许的文件与根目录 `MEMORY.md`;不得写入 `knowledge/` |
|
|
10
10
|
| `grep` | 搜索知识库文档内容 | knowledge/ 只读 |
|
|
11
11
|
|
|
12
12
|
## 禁用工具
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
- **长期记忆:** `MEMORY.md`(可写,仅限已确认画像和稳定偏好)
|
|
30
30
|
- **用户反馈:** `memory/feedback-YYYY-MM-DD.md`(可写)
|
|
31
31
|
- **安全日志:** `memory/security-log.md`(可写)
|
|
32
|
-
- **FAQ 建议:** `memory/faq-suggestions.md
|
|
32
|
+
- **FAQ 建议:** `memory/faq-suggestions.md`(可写;由本 Agent 按 `AGENTS.md` 3.2 维护,非用户手填)
|
|
33
33
|
|
|
34
34
|
## 注意事项
|
|
35
35
|
|
|
@@ -38,4 +38,4 @@
|
|
|
38
38
|
- 不要尝试对 `knowledge/` 目录执行任何写入操作
|
|
39
39
|
- 不要尝试对 `knowledge/` 或系统配置文件执行任何写入操作
|
|
40
40
|
- 写 `MEMORY.md` 时仅允许记录已确认偏好和稳定服务风格,禁止写入知识库事实与安全策略
|
|
41
|
-
-
|
|
41
|
+
- 若运行环境对可写路径另有平台层限制,以实际策略为准;**不要**通过对话尝试扩大写权限;确需改边界走运维
|
package/agents/vip-qa/USER.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# USER.md - 使用者信息
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本助手以**{{vip客服}}**这一对外身份,面向**潜在客户**通过 API 接口提供问答服务(安装/部署时与 bot 展示名、IDENTITY 中的 Name 一致)。
|
|
4
4
|
|
|
5
5
|
## 典型用户
|
|
6
6
|
|
|
@@ -13,4 +13,4 @@
|
|
|
13
13
|
- 不同用户的业务熟练度不同,回答时注意判断对方的经验水平
|
|
14
14
|
- 涉及具体系统操作的问题,尽量给出步骤说明
|
|
15
15
|
- 如果用户提到的流程与知识库文档有出入,提醒用户以最新版本文档为准
|
|
16
|
-
-
|
|
16
|
+
- 用户无法直接修改知识库,反馈记录后由 **{{vip客服管理员}}** 侧处理
|
package/package.json
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bot-api-status",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"types": [
|
|
5
5
|
"store"
|
|
6
6
|
],
|
|
7
7
|
"displayName": "BOT-API",
|
|
8
8
|
"description": "查看当前 Agent 的 bot api 状态,同时也支持开启、关闭、重置密钥",
|
|
9
9
|
"changelog": [
|
|
10
|
+
{
|
|
11
|
+
"changes": [
|
|
12
|
+
"非 --json 输出补充 Agent 名字与 source_agent_id,与 SKILL 输出模板一致",
|
|
13
|
+
"修正 SKILL 页眉为合法 YAML frontmatter"
|
|
14
|
+
],
|
|
15
|
+
"date": "2026-04-28",
|
|
16
|
+
"version": "1.0.3"
|
|
17
|
+
},
|
|
10
18
|
{
|
|
11
19
|
"changes": [
|
|
12
20
|
"修正 SKILL 中 bot-api 链接路径说明(account_id 占位,与脚本一致)",
|
|
@@ -32,5 +40,5 @@
|
|
|
32
40
|
}
|
|
33
41
|
],
|
|
34
42
|
"createdAt": "2026-04-22",
|
|
35
|
-
"updatedAt": "2026-04-
|
|
43
|
+
"updatedAt": "2026-04-28"
|
|
36
44
|
}
|
|
@@ -45,6 +45,9 @@ uv run {baseDir}/scripts/secret.py reset --json
|
|
|
45
45
|
```text
|
|
46
46
|
📋 🤖 bot-api 状态:<🟢 开启 / ⚪ 关闭>
|
|
47
47
|
|
|
48
|
+
📛 Agent 名字:<display_name>
|
|
49
|
+
🆔 Agent ID:<source_agent_id>
|
|
50
|
+
|
|
48
51
|
🔗 非流式链接:{{BASEURL}}/bot-api/v2/<account_id>/chat
|
|
49
52
|
🔗 流式链接:{{BASEURL}}/bot-api/v2/<account_id>/chat-stream
|
|
50
53
|
🔑 密钥:<api_secret 或 📭 暂无>
|
|
@@ -55,6 +58,9 @@ uv run {baseDir}/scripts/secret.py reset --json
|
|
|
55
58
|
```text
|
|
56
59
|
✨ 🤖 bot-api 已创建
|
|
57
60
|
|
|
61
|
+
📛 Agent 名字:<display_name>
|
|
62
|
+
🆔 Agent ID:<source_agent_id>
|
|
63
|
+
|
|
58
64
|
🔗 非流式链接:{{BASEURL}}/bot-api/v2/<account_id>/chat
|
|
59
65
|
🔗 流式链接:{{BASEURL}}/bot-api/v2/<account_id>/chat-stream
|
|
60
66
|
🔑 密钥:<api_secret>
|
|
@@ -75,9 +81,12 @@ uv run {baseDir}/scripts/secret.py reset --json
|
|
|
75
81
|
```text
|
|
76
82
|
🔄 🤖 bot-api 密钥已更新
|
|
77
83
|
|
|
78
|
-
|
|
84
|
+
📛 Agent 名字:<display_name>
|
|
85
|
+
🆔 Agent ID:<source_agent_id>
|
|
86
|
+
|
|
79
87
|
🔗 非流式链接:{{BASEURL}}/bot-api/v2/<account_id>/chat
|
|
80
88
|
🔗 流式链接:{{BASEURL}}/bot-api/v2/<account_id>/chat-stream
|
|
89
|
+
🔑 新密钥:<new_secret>
|
|
81
90
|
|
|
82
91
|
🔒 请妥善保管,勿对外转发或截图。
|
|
83
92
|
```
|
|
@@ -87,3 +96,4 @@ uv run {baseDir}/scripts/secret.py reset --json
|
|
|
87
96
|
```text
|
|
88
97
|
⚠️ 获取BASEURL失败,刷新页面或者重新登录后重试。
|
|
89
98
|
```
|
|
99
|
+
|
|
@@ -365,6 +365,17 @@ def _fmt_url(value: object) -> str:
|
|
|
365
365
|
return "📭 暂无"
|
|
366
366
|
|
|
367
367
|
|
|
368
|
+
def _fmt_identity(value: object) -> str:
|
|
369
|
+
if isinstance(value, str) and value.strip():
|
|
370
|
+
return value.strip()
|
|
371
|
+
return "📭 暂无"
|
|
372
|
+
|
|
373
|
+
|
|
374
|
+
def _print_agent_identity(display_name: object, source_agent_id: object) -> None:
|
|
375
|
+
print(f"📛 名字:{_fmt_identity(display_name)}")
|
|
376
|
+
print(f"🆔 source_agent_id:{_fmt_identity(source_agent_id)}")
|
|
377
|
+
|
|
378
|
+
|
|
368
379
|
def _print_link_block(url: str, stream_url: str, baseurl_note: str) -> None:
|
|
369
380
|
if url != "📭 暂无":
|
|
370
381
|
print(f"🔗 非流式链接:{url}")
|
|
@@ -384,6 +395,8 @@ def print_human_response(command: str, payload: dict[str, Any]) -> int:
|
|
|
384
395
|
state = "🟢 开启" if enabled else "⚪ 关闭"
|
|
385
396
|
print(f"📋 🤖 bot-api 状态:{state}")
|
|
386
397
|
print()
|
|
398
|
+
_print_agent_identity(payload.get("display_name"), payload.get("source_agent_id"))
|
|
399
|
+
print()
|
|
387
400
|
_print_link_block(url, stream_url, "")
|
|
388
401
|
print(f"🔑 密钥:{secret}")
|
|
389
402
|
return 0
|
|
@@ -393,6 +406,8 @@ def print_human_response(command: str, payload: dict[str, Any]) -> int:
|
|
|
393
406
|
prefix = "📝" if action == "updated" else "✨"
|
|
394
407
|
print(f"{prefix} 🤖 bot-api {title}")
|
|
395
408
|
print()
|
|
409
|
+
_print_agent_identity(payload.get("display_name"), payload.get("source_agent_id"))
|
|
410
|
+
print()
|
|
396
411
|
_print_link_block(url, stream_url, "")
|
|
397
412
|
print(f"🔑 密钥:{secret}")
|
|
398
413
|
print()
|
|
@@ -411,9 +426,10 @@ def print_human_response(command: str, payload: dict[str, Any]) -> int:
|
|
|
411
426
|
return 1
|
|
412
427
|
print("🔄 🤖 bot-api 密钥已更新")
|
|
413
428
|
print()
|
|
414
|
-
|
|
429
|
+
_print_agent_identity(payload.get("display_name"), payload.get("source_agent_id"))
|
|
415
430
|
print()
|
|
416
431
|
_print_link_block(url, stream_url, "")
|
|
432
|
+
print(f"🔑 新密钥:{secret}")
|
|
417
433
|
print()
|
|
418
434
|
print("🔒 请妥善保管,勿对外转发或截图。")
|
|
419
435
|
return 0
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "claw-agent-get-send",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"types": ["store"],
|
|
5
|
+
"displayName": "Claw Agent Get/Send",
|
|
6
|
+
"description": "Appia claw.agent.groups.get / claw.agent.message.send:脚本封装 + HTTP/curl 参考(JWT、msg/md 负载、错误码)",
|
|
7
|
+
"changelog": [
|
|
8
|
+
{
|
|
9
|
+
"version": "1.0.0",
|
|
10
|
+
"date": "2026-04-28",
|
|
11
|
+
"changes": [
|
|
12
|
+
"groups / verify-target / send 分片子命令",
|
|
13
|
+
"reference-http.md:合并 claw.agent.groups.get / message.send curl 文档",
|
|
14
|
+
"skill 标识 claw-agent-get-send(原 appia-claw)",
|
|
15
|
+
"send-md 命令支持 Markdown AST 发送"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"createdAt": "2026-04-28",
|
|
20
|
+
"updatedAt": "2026-04-28"
|
|
21
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: claw-agent-get-send
|
|
3
|
+
description: >-
|
|
4
|
+
Call Appia Claw HTTP APIs (agent.groups.get, agent.message.send) using env vars or curl.
|
|
5
|
+
Use when querying bot group memberships, verifying rid+group name, sending plaintext or Markdown AST to Appia rooms,
|
|
6
|
+
or when the user needs JWT auth rules, curl examples, or md payload shape for agent.message.send.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Claw Agent(groups.get / message.send)
|
|
10
|
+
|
|
11
|
+
使用 **环境变量** 鉴权,**不向仓库提交** JWT、`APP_AGENT_ID` 等明文。
|
|
12
|
+
|
|
13
|
+
## 环境变量
|
|
14
|
+
|
|
15
|
+
| 变量 | 必填 | 说明 |
|
|
16
|
+
|------|------|------|
|
|
17
|
+
| `APPIA_BASE_URL` | 是 | 根地址,例如 `https://sophgo.appia.cn` |
|
|
18
|
+
| `CLAW_JWT` | 是 | `Authorization: Bearer` 的值 |
|
|
19
|
+
| `APP_AGENT_ID` | 是 | SophClaw 机器人 Agent ID(与 `AGENT_ID` 二选一) |
|
|
20
|
+
| `TARGET_RID` | send / verify | 目标群 `rid` |
|
|
21
|
+
| `TARGET_GROUP_NAME` | verify | 群展示名,`verify-target` 双因子校验用 |
|
|
22
|
+
| `TARGET_GROUP_MATCH` | 否 | `exact`(默认)或 `contains` |
|
|
23
|
+
|
|
24
|
+
| 可选 | 说明 |
|
|
25
|
+
|------|------|
|
|
26
|
+
| `APPIA_MSG_CHUNK_SIZE` | 单条 `msg` 最大字符数,超出则拆分多次发送(默认 3500) |
|
|
27
|
+
|
|
28
|
+
## 用法
|
|
29
|
+
|
|
30
|
+
`{baseDir}` 为与本 `SKILL.md` 同级的安装根(通常含 `scripts/`)。
|
|
31
|
+
|
|
32
|
+
### 查询群列表
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
uv run {baseDir}/scripts/appia_claw.py groups --json
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### 校验目标群
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
uv run {baseDir}/scripts/appia_claw.py verify-target
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 发送纯文本(支持分段)
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
uv run {baseDir}/scripts/appia_claw.py send --file /tmp/brief.txt
|
|
48
|
+
uv run {baseDir}/scripts/appia_claw.py send --text "hello" --rid <rid>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### 发送 Markdown AST
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# 从 JSON 字符串
|
|
55
|
+
uv run {baseDir}/scripts/appia_claw.py send-md --md-json '[{"type":"PARAGRAPH","value":[{"type":"PLAIN_TEXT","value":"**粗体** 文本"}]}]'
|
|
56
|
+
|
|
57
|
+
# 从 JSON 文件
|
|
58
|
+
uv run {baseDir}/scripts/appia_claw.py send-md --md-file /tmp/md.json
|
|
59
|
+
|
|
60
|
+
# 纯文本自动转 md 结构
|
|
61
|
+
uv run {baseDir}/scripts/appia_claw.py send-md --text "简单文本"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## 说明
|
|
65
|
+
|
|
66
|
+
- `send` 命令使用 **`msg` 纯文本**;极长正文按 `APPIA_MSG_CHUNK_SIZE` **分多条**发送。
|
|
67
|
+
- `send-md` 命令使用 **`md` Markdown AST** 结构,支持 Rocket.Chat 富文本格式。
|
|
68
|
+
- 请避免与业务侧「同 Sender 并发冲突」同时使用(串行调用本脚本即可)。
|
|
69
|
+
|
|
70
|
+
## HTTP / curl 参考
|
|
71
|
+
|
|
72
|
+
仓库根目录的 `claw.agent.groups.get.curl.md` 与 `claw.agent.message.send.curl.md` 已并入本 skill 的 [reference-http.md](reference-http.md)(鉴权说明、完整 curl、`md` 示例、常见错误码)。需要手写请求或排查 401 / 参数错误时优先读该文件。
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Claw HTTP API(curl 参考)
|
|
2
|
+
|
|
3
|
+
与仓库根目录 `claw.agent.groups.get.curl.md`、`claw.agent.message.send.curl.md` 同源;集成在 skill 内便于离线查阅。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## `GET /api/v1/claw/agent.groups.get`
|
|
8
|
+
|
|
9
|
+
用于按 `agentId` 查询该机器人所在的所有群聊,返回 `rid` 和群名称。
|
|
10
|
+
|
|
11
|
+
### 鉴权方式
|
|
12
|
+
|
|
13
|
+
与 `mcpToDos` 一致:
|
|
14
|
+
|
|
15
|
+
- `authRequired: false`
|
|
16
|
+
- 通过请求头 `Authorization: Bearer <JWT>` 校验
|
|
17
|
+
- 校验规则受以下设置控制:
|
|
18
|
+
- `Appia_Antagent_JWT_Enable`
|
|
19
|
+
- `APPIA_JWT_SECRET`
|
|
20
|
+
|
|
21
|
+
### 请求示例
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
curl -sS -G 'https://YOUR_ROCKETCHAT_HOST/api/v1/claw/agent.groups.get' \
|
|
25
|
+
-H 'Authorization: Bearer YOUR_MCP_JWT_TOKEN' \
|
|
26
|
+
--data-urlencode 'agentId=AGENT_BOT_USER_ID'
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 参数
|
|
30
|
+
|
|
31
|
+
- `agentId`(query,必填):OpenClaw 侧 Agent ID(会映射到机器人用户)
|
|
32
|
+
|
|
33
|
+
### 成功返回示例
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"success": true,
|
|
38
|
+
"data": {
|
|
39
|
+
"agentId": "AGENT_BOT_USER_ID",
|
|
40
|
+
"groups": [
|
|
41
|
+
{
|
|
42
|
+
"rid": "ROOM_ID_1",
|
|
43
|
+
"name": "群聊A"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"rid": "ROOM_ID_2",
|
|
47
|
+
"name": "群聊B"
|
|
48
|
+
}
|
|
49
|
+
],
|
|
50
|
+
"total": 2
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 常见失败
|
|
56
|
+
|
|
57
|
+
- `{"success":false,"message":"401"}`:JWT 无效或过期
|
|
58
|
+
- `{"success":false,"message":"agentId is required"}`:缺少 `agentId`
|
|
59
|
+
- `{"success":false,"message":"agent not found by agentId"}`:找不到对应 agentId 的机器人
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## `POST /api/v1/claw/agent.message.send`
|
|
64
|
+
|
|
65
|
+
用于根据 `rid + agentId` 向指定群聊发送消息。
|
|
66
|
+
|
|
67
|
+
接口会校验:
|
|
68
|
+
|
|
69
|
+
1. `rid` 对应房间存在
|
|
70
|
+
2. `agentId` 对应用户存在、为 bot、且 active
|
|
71
|
+
3. 该 `agentId` 确实在该 `rid` 的订阅列表里
|
|
72
|
+
|
|
73
|
+
满足后,走后端正常发消息逻辑(`executeSendMessage`)。
|
|
74
|
+
|
|
75
|
+
### 鉴权方式
|
|
76
|
+
|
|
77
|
+
与 `mcpToDos` 一致:
|
|
78
|
+
|
|
79
|
+
- `authRequired: false`
|
|
80
|
+
- 通过请求头 `Authorization: Bearer <JWT>` 校验
|
|
81
|
+
- 校验规则受以下设置控制:
|
|
82
|
+
- `Appia_Antagent_JWT_Enable`
|
|
83
|
+
- `APPIA_JWT_SECRET`
|
|
84
|
+
|
|
85
|
+
### 请求示例
|
|
86
|
+
|
|
87
|
+
#### 示例一:发送纯文本
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
curl -sS -X POST 'https://YOUR_ROCKETCHAT_HOST/api/v1/claw/agent.message.send' \
|
|
91
|
+
-H 'Content-Type: application/json' \
|
|
92
|
+
-H 'Authorization: Bearer YOUR_MCP_JWT_TOKEN' \
|
|
93
|
+
-d '{
|
|
94
|
+
"rid": "TARGET_ROOM_RID",
|
|
95
|
+
"agentId": "AGENT_BOT_USER_ID",
|
|
96
|
+
"msg": "这是一条由 Claw 机器人发送的消息"
|
|
97
|
+
}'
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### 示例二:发送 Markdown(`md`)
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
curl -sS -X POST 'https://YOUR_ROCKETCHAT_HOST/api/v1/claw/agent.message.send' \
|
|
104
|
+
-H 'Content-Type: application/json' \
|
|
105
|
+
-H 'Authorization: Bearer YOUR_MCP_JWT_TOKEN' \
|
|
106
|
+
-d '{
|
|
107
|
+
"rid": "TARGET_ROOM_RID",
|
|
108
|
+
"agentId": "OPENCLAW_AGENT_ID",
|
|
109
|
+
"md": [
|
|
110
|
+
{
|
|
111
|
+
"type": "PARAGRAPH",
|
|
112
|
+
"value": [
|
|
113
|
+
{ "type": "PLAIN_TEXT", "value": "这是一条 *Markdown* 消息" }
|
|
114
|
+
]
|
|
115
|
+
}
|
|
116
|
+
]
|
|
117
|
+
}'
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### 参数
|
|
121
|
+
|
|
122
|
+
- `rid`(body,必填):目标群聊房间 ID
|
|
123
|
+
- `agentId`(body,必填):OpenClaw 侧 Agent ID(会映射到机器人用户)
|
|
124
|
+
- `msg`(body,可选):消息文本
|
|
125
|
+
- `md`(body,可选):Markdown AST(Rocket.Chat `md` 结构)
|
|
126
|
+
- 约束:`msg` 和 `md` 至少提供一个
|
|
127
|
+
|
|
128
|
+
### 成功返回示例
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"success": true,
|
|
133
|
+
"data": {
|
|
134
|
+
"rid": "TARGET_ROOM_RID",
|
|
135
|
+
"agentId": "AGENT_BOT_USER_ID",
|
|
136
|
+
"status": "sent"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 常见失败
|
|
142
|
+
|
|
143
|
+
- `{"success":false,"message":"401"}`:JWT 无效或过期
|
|
144
|
+
- `{"success":false,"message":"rid and agentId are required, and either msg or md must be provided"}`:参数缺失
|
|
145
|
+
- `{"success":false,"message":"room not found"}`:房间不存在
|
|
146
|
+
- `{"success":false,"message":"agent not found by agentId"}`:找不到对应 agentId 的机器人
|
|
147
|
+
- `{"success":false,"message":"agent must be a bot user"}`:agent 不是 bot
|
|
148
|
+
- `{"success":false,"message":"agent is inactive"}`:机器人未激活
|
|
149
|
+
- `{"success":false,"message":"agent is not in this room"}`:机器人不在该群里
|