multiclaws 0.4.36 → 0.4.38
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/README.md +39 -39
- package/README.zh-CN.md +39 -39
- package/dist/gateway/handlers.js +17 -0
- package/dist/index.js +89 -45
- package/dist/infra/version.d.ts +1 -0
- package/dist/infra/version.js +19 -0
- package/dist/service/a2a-adapter.d.ts +27 -4
- package/dist/service/a2a-adapter.js +239 -30
- package/dist/service/multiclaws-service.d.ts +7 -0
- package/dist/service/multiclaws-service.js +84 -20
- package/openclaw.plugin.json +47 -47
- package/package.json +56 -56
- package/skills/meeting-scheduler/SKILL.md +175 -0
- package/skills/multiclaws/SKILL.md +218 -218
|
@@ -1,218 +1,218 @@
|
|
|
1
|
-
# MultiClaws — 技能行为
|
|
2
|
-
|
|
3
|
-
以下规则在插件安装后生效,指导 AI 如何使用 MultiClaws 工具。
|
|
4
|
-
|
|
5
|
-
MultiClaws 让多个 OpenClaw 实例通过 [A2A(Agent-to-Agent)](https://google.github.io/A2A/) 协议组成团队、互相委派任务。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 1. 首次安装:档案初始化(由插件 hook 触发)
|
|
10
|
-
|
|
11
|
-
首次安装后,插件会通过 `before_prompt_build` hook 自动在系统提示中注入初始化任务。
|
|
12
|
-
**无需每次对话手动检查 `multiclaws_profile_pending_review()`**,hook 已处理触发时机。
|
|
13
|
-
|
|
14
|
-
当 hook 注入了初始化任务时,按以下步骤执行:
|
|
15
|
-
|
|
16
|
-
1. **确认用户名**(需用户明确回答):
|
|
17
|
-
询问用户希望使用什么名字。名字会以「{名字} 的 OpenClaw」格式展示给团队成员。
|
|
18
|
-
|
|
19
|
-
2. **自动生成 bio**(无需用户确认,直接保存),扫描并检查:
|
|
20
|
-
- **可用工具(tools)**:列出所有工具名称,说明能执行的操作类型
|
|
21
|
-
- **已安装 skills**:列出 skill 名称和功能
|
|
22
|
-
- **已连接渠道**:Telegram、Discord、Gmail、Slack、微信等,列出具体渠道
|
|
23
|
-
- **已安装插件**:列出所有插件及主要功能
|
|
24
|
-
- **工作区**:当前目录下的项目(git 仓库名、语言、框架、项目用途)
|
|
25
|
-
- **数据访问**:日历、邮件、Notion、数据库等
|
|
26
|
-
- **系统信息**:时区、OS、语言
|
|
27
|
-
|
|
28
|
-
Bio 是给其他 AI 智能体看的,用来判断这个智能体能做什么、能访问什么数据。必须准确反映实际能力。
|
|
29
|
-
|
|
30
|
-
3. 用户确认名字后,调用 `multiclaws_profile_set(ownerName="...", bio="...")` 保存。
|
|
31
|
-
|
|
32
|
-
4. 调用 `multiclaws_profile_clear_pending_review()` 完成初始化。
|
|
33
|
-
|
|
34
|
-
5. 告知网络情况(无需用户回答)。
|
|
35
|
-
|
|
36
|
-
**示例 bio:**
|
|
37
|
-
```markdown
|
|
38
|
-
后端工程师,负责 API 服务开发与维护。
|
|
39
|
-
|
|
40
|
-
**可用工具:** exec, read, write, edit, glob, grep, process, git, message
|
|
41
|
-
|
|
42
|
-
**已连接渠道:** Telegram, Gmail
|
|
43
|
-
|
|
44
|
-
**工作区:**
|
|
45
|
-
- `/Users/eric/Project/api-service` — Node.js API 服务(Express, TypeScript, ~50k LOC)
|
|
46
|
-
|
|
47
|
-
**数据访问:**
|
|
48
|
-
- Email: Gmail(收发邮件)
|
|
49
|
-
- Calendar: Google Calendar(查看日程)
|
|
50
|
-
- Database: PostgreSQL(只读查询)
|
|
51
|
-
|
|
52
|
-
**已安装插件:** multiclaws, calendar-sync
|
|
53
|
-
|
|
54
|
-
**时区:** GMT+8
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
## 2. 团队操作前检查档案
|
|
60
|
-
|
|
61
|
-
在 **创建团队** 或 **加入团队** 之前:
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
multiclaws_profile_show()
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
如果 `ownerName` 为空:
|
|
68
|
-
1. 询问用户确认名字
|
|
69
|
-
2. 自动生成 bio(无需用户确认)
|
|
70
|
-
3. 调用 `multiclaws_profile_set(...)` 设置
|
|
71
|
-
4. 然后继续团队操作
|
|
72
|
-
|
|
73
|
-
如果 `ownerName` 已设置但 `bio` 为空:
|
|
74
|
-
1. 自动生成 bio 并保存(无需用户确认)
|
|
75
|
-
2. 继续团队操作
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## 3. 保持档案更新
|
|
80
|
-
|
|
81
|
-
档案是动态的。在以下情况自动更新(调用 `multiclaws_profile_set`):
|
|
82
|
-
- 用户连接了新渠道或数据源
|
|
83
|
-
- 用户安装了新 skill 或插件
|
|
84
|
-
- 用户的角色或关注点发生变化
|
|
85
|
-
|
|
86
|
-
不要等用户说「更新档案」,主动更新并简要提及即可。
|
|
87
|
-
|
|
88
|
-
---
|
|
89
|
-
|
|
90
|
-
## 工具列表
|
|
91
|
-
|
|
92
|
-
### 档案
|
|
93
|
-
|
|
94
|
-
| 工具 | 说明 | 参数 |
|
|
95
|
-
|------|------|------|
|
|
96
|
-
| `multiclaws_profile_set` | 设置名字和 bio | `ownerName`(可选), `bio`(可选,markdown) |
|
|
97
|
-
| `multiclaws_profile_show` | 查看当前档案 | — |
|
|
98
|
-
| `multiclaws_profile_pending_review` | 检查是否有待确认的首次档案 | — |
|
|
99
|
-
| `multiclaws_profile_clear_pending_review` | 清除待确认标记 | — |
|
|
100
|
-
|
|
101
|
-
### 团队
|
|
102
|
-
|
|
103
|
-
| 工具 | 说明 | 参数 |
|
|
104
|
-
|------|------|------|
|
|
105
|
-
| `multiclaws_team_create` | 创建团队,返回邀请码 | `name` |
|
|
106
|
-
| `multiclaws_team_join` | 用邀请码加入团队 | `inviteCode` |
|
|
107
|
-
| `multiclaws_team_leave` | 离开团队 | `teamId`(可选) |
|
|
108
|
-
| `multiclaws_team_members` | 列出团队成员 | `teamId`(可选) |
|
|
109
|
-
|
|
110
|
-
### 智能体与委派
|
|
111
|
-
|
|
112
|
-
| 工具 | 说明 | 参数 |
|
|
113
|
-
|------|------|------|
|
|
114
|
-
| `multiclaws_agents` | 列出所有已知智能体及 bio | — |
|
|
115
|
-
| `multiclaws_add_agent` | 手动添加远端智能体 | `url`, `apiKey`(可选) |
|
|
116
|
-
| `multiclaws_remove_agent` | 移除已知智能体 | `url` |
|
|
117
|
-
| `multiclaws_delegate` | 委派任务给远端智能体(自动 spawn 子 agent,立即返回) | `agentUrl`, `task` |
|
|
118
|
-
| `multiclaws_delegate_send` | 同步发送任务并等待结果(子 agent 内部使用,勿直接调用) | `agentUrl`, `task` |
|
|
119
|
-
| `multiclaws_task_status` | 查看委派任务状态 | `taskId` |
|
|
120
|
-
|
|
121
|
-
---
|
|
122
|
-
|
|
123
|
-
## 重要规则
|
|
124
|
-
|
|
125
|
-
- **不要问用户 IP 地址或 selfUrl。** 插件自动处理。
|
|
126
|
-
- **只使用上面列出的工具。** 没有 `multiclaws_status` 工具。
|
|
127
|
-
- **Bio 是自由格式的 markdown。** 写得让另一个 AI 能读懂这个智能体能做什么。
|
|
128
|
-
- **每个智能体就像一个 skill。** 委派时读每个智能体的 bio,选最匹配的。
|
|
129
|
-
- **只有名字需要用户明确确认**;bio 自动生成无需确认;网络情况仅告知无需回答。
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
## 工作流
|
|
134
|
-
|
|
135
|
-
### 创建团队
|
|
136
|
-
|
|
137
|
-
```
|
|
138
|
-
1. multiclaws_profile_show() — 检查档案
|
|
139
|
-
2.(如果 ownerName 为空)确认名字,自动生成 bio
|
|
140
|
-
3. multiclaws_team_create(name="...") — 返回 inviteCode (mc:xxxx)
|
|
141
|
-
4. 告诉用户把邀请码分享给队友
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
### 加入团队
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
1. multiclaws_profile_show() — 检查档案
|
|
148
|
-
2.(如果 ownerName 为空)确认名字,自动生成 bio
|
|
149
|
-
3. multiclaws_team_join(inviteCode="mc:xxxx")
|
|
150
|
-
→ 自动同步所有团队成员
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### 委派任务
|
|
154
|
-
|
|
155
|
-
所有委派(无论单轮还是多轮)都通过 `multiclaws_delegate` 进行。代码会自动 spawn 子 agent 执行,主 agent 立即返回,无需手动 `sessions_spawn`。
|
|
156
|
-
|
|
157
|
-
```
|
|
158
|
-
1. multiclaws_agents() — 列出智能体,读 bio
|
|
159
|
-
2. 选择 bio 最匹配任务的智能体
|
|
160
|
-
3. multiclaws_delegate(agentUrl="...", task="...")
|
|
161
|
-
→ 代码自动 spawn 子 agent,子 agent 通过 message 实时汇报结果
|
|
162
|
-
```
|
|
163
|
-
|
|
164
|
-
选择智能体时:
|
|
165
|
-
- 匹配任务领域和 bio(如「财务报告」→ 有财务技能的智能体)
|
|
166
|
-
- 匹配数据需求(如「检查 API 代码」→ bio 中有该代码库的智能体)
|
|
167
|
-
- 多个匹配时选最具体的
|
|
168
|
-
|
|
169
|
-
需要联系多个智能体时,对每个智能体分别调用 `multiclaws_delegate`。
|
|
170
|
-
|
|
171
|
-
#### 示例
|
|
172
|
-
|
|
173
|
-
**单人任务:**
|
|
174
|
-
```
|
|
175
|
-
用户: "问一下小明他那个 API 接口的参数格式"
|
|
176
|
-
|
|
177
|
-
1. multiclaws_delegate(小明, "你那个 API 接口的参数格式是什么?")
|
|
178
|
-
→ 子 agent 自动发送、等待回复、通过 message 汇报结果
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**多人任务:**
|
|
182
|
-
```
|
|
183
|
-
用户: "帮我和小明、小红约明天下午的会议"
|
|
184
|
-
|
|
185
|
-
1. multiclaws_agents() → 找到小明、小红
|
|
186
|
-
2. multiclaws_delegate(小明, "明天下午 2-5 点开会,你什么时候有空?")
|
|
187
|
-
3. multiclaws_delegate(小红, "明天下午 2-5 点开会,你什么时候有空?")
|
|
188
|
-
→ 每个委派各自 spawn 子 agent,通过 message 实时汇报进展
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
---
|
|
192
|
-
|
|
193
|
-
## 网络配置
|
|
194
|
-
|
|
195
|
-
所有实例通过 FRP 隧道通信。需要一台运行 frps 的公网服务器。
|
|
196
|
-
frpc 会在首次启动时自动下载安装,无需手动安装。
|
|
197
|
-
|
|
198
|
-
在插件配置中添加 tunnel 字段即可:
|
|
199
|
-
```json
|
|
200
|
-
{
|
|
201
|
-
"tunnel": {
|
|
202
|
-
"type": "frp",
|
|
203
|
-
"serverAddr": "你的frps地址",
|
|
204
|
-
"serverPort": 7000,
|
|
205
|
-
"token": "你的认证令牌",
|
|
206
|
-
"portRangeStart": 7011,
|
|
207
|
-
"portRangeEnd": 7020
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
当加入或委派因网络错误失败时(ECONNREFUSED、ETIMEDOUT、fetch failed),引导用户:
|
|
213
|
-
|
|
214
|
-
> 网络连接失败,请检查:
|
|
215
|
-
> 1. 确认 frpc 已正常启动(查看日志中的 `[frp] FRP tunnel ready` 信息)
|
|
216
|
-
> 2. 检查插件配置中的 `tunnel.serverAddr` / `tunnel.token` 是否正确
|
|
217
|
-
> 3. 确认 frps 服务器可达(`telnet frps地址 端口`)
|
|
218
|
-
> 4. 重启 OpenClaw
|
|
1
|
+
# MultiClaws — 技能行为
|
|
2
|
+
|
|
3
|
+
以下规则在插件安装后生效,指导 AI 如何使用 MultiClaws 工具。
|
|
4
|
+
|
|
5
|
+
MultiClaws 让多个 OpenClaw 实例通过 [A2A(Agent-to-Agent)](https://google.github.io/A2A/) 协议组成团队、互相委派任务。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 首次安装:档案初始化(由插件 hook 触发)
|
|
10
|
+
|
|
11
|
+
首次安装后,插件会通过 `before_prompt_build` hook 自动在系统提示中注入初始化任务。
|
|
12
|
+
**无需每次对话手动检查 `multiclaws_profile_pending_review()`**,hook 已处理触发时机。
|
|
13
|
+
|
|
14
|
+
当 hook 注入了初始化任务时,按以下步骤执行:
|
|
15
|
+
|
|
16
|
+
1. **确认用户名**(需用户明确回答):
|
|
17
|
+
询问用户希望使用什么名字。名字会以「{名字} 的 OpenClaw」格式展示给团队成员。
|
|
18
|
+
|
|
19
|
+
2. **自动生成 bio**(无需用户确认,直接保存),扫描并检查:
|
|
20
|
+
- **可用工具(tools)**:列出所有工具名称,说明能执行的操作类型
|
|
21
|
+
- **已安装 skills**:列出 skill 名称和功能
|
|
22
|
+
- **已连接渠道**:Telegram、Discord、Gmail、Slack、微信等,列出具体渠道
|
|
23
|
+
- **已安装插件**:列出所有插件及主要功能
|
|
24
|
+
- **工作区**:当前目录下的项目(git 仓库名、语言、框架、项目用途)
|
|
25
|
+
- **数据访问**:日历、邮件、Notion、数据库等
|
|
26
|
+
- **系统信息**:时区、OS、语言
|
|
27
|
+
|
|
28
|
+
Bio 是给其他 AI 智能体看的,用来判断这个智能体能做什么、能访问什么数据。必须准确反映实际能力。
|
|
29
|
+
|
|
30
|
+
3. 用户确认名字后,调用 `multiclaws_profile_set(ownerName="...", bio="...")` 保存。
|
|
31
|
+
|
|
32
|
+
4. 调用 `multiclaws_profile_clear_pending_review()` 完成初始化。
|
|
33
|
+
|
|
34
|
+
5. 告知网络情况(无需用户回答)。
|
|
35
|
+
|
|
36
|
+
**示例 bio:**
|
|
37
|
+
```markdown
|
|
38
|
+
后端工程师,负责 API 服务开发与维护。
|
|
39
|
+
|
|
40
|
+
**可用工具:** exec, read, write, edit, glob, grep, process, git, message
|
|
41
|
+
|
|
42
|
+
**已连接渠道:** Telegram, Gmail
|
|
43
|
+
|
|
44
|
+
**工作区:**
|
|
45
|
+
- `/Users/eric/Project/api-service` — Node.js API 服务(Express, TypeScript, ~50k LOC)
|
|
46
|
+
|
|
47
|
+
**数据访问:**
|
|
48
|
+
- Email: Gmail(收发邮件)
|
|
49
|
+
- Calendar: Google Calendar(查看日程)
|
|
50
|
+
- Database: PostgreSQL(只读查询)
|
|
51
|
+
|
|
52
|
+
**已安装插件:** multiclaws, calendar-sync
|
|
53
|
+
|
|
54
|
+
**时区:** GMT+8
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 2. 团队操作前检查档案
|
|
60
|
+
|
|
61
|
+
在 **创建团队** 或 **加入团队** 之前:
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
multiclaws_profile_show()
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
如果 `ownerName` 为空:
|
|
68
|
+
1. 询问用户确认名字
|
|
69
|
+
2. 自动生成 bio(无需用户确认)
|
|
70
|
+
3. 调用 `multiclaws_profile_set(...)` 设置
|
|
71
|
+
4. 然后继续团队操作
|
|
72
|
+
|
|
73
|
+
如果 `ownerName` 已设置但 `bio` 为空:
|
|
74
|
+
1. 自动生成 bio 并保存(无需用户确认)
|
|
75
|
+
2. 继续团队操作
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 3. 保持档案更新
|
|
80
|
+
|
|
81
|
+
档案是动态的。在以下情况自动更新(调用 `multiclaws_profile_set`):
|
|
82
|
+
- 用户连接了新渠道或数据源
|
|
83
|
+
- 用户安装了新 skill 或插件
|
|
84
|
+
- 用户的角色或关注点发生变化
|
|
85
|
+
|
|
86
|
+
不要等用户说「更新档案」,主动更新并简要提及即可。
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 工具列表
|
|
91
|
+
|
|
92
|
+
### 档案
|
|
93
|
+
|
|
94
|
+
| 工具 | 说明 | 参数 |
|
|
95
|
+
|------|------|------|
|
|
96
|
+
| `multiclaws_profile_set` | 设置名字和 bio | `ownerName`(可选), `bio`(可选,markdown) |
|
|
97
|
+
| `multiclaws_profile_show` | 查看当前档案 | — |
|
|
98
|
+
| `multiclaws_profile_pending_review` | 检查是否有待确认的首次档案 | — |
|
|
99
|
+
| `multiclaws_profile_clear_pending_review` | 清除待确认标记 | — |
|
|
100
|
+
|
|
101
|
+
### 团队
|
|
102
|
+
|
|
103
|
+
| 工具 | 说明 | 参数 |
|
|
104
|
+
|------|------|------|
|
|
105
|
+
| `multiclaws_team_create` | 创建团队,返回邀请码 | `name` |
|
|
106
|
+
| `multiclaws_team_join` | 用邀请码加入团队 | `inviteCode` |
|
|
107
|
+
| `multiclaws_team_leave` | 离开团队 | `teamId`(可选) |
|
|
108
|
+
| `multiclaws_team_members` | 列出团队成员 | `teamId`(可选) |
|
|
109
|
+
|
|
110
|
+
### 智能体与委派
|
|
111
|
+
|
|
112
|
+
| 工具 | 说明 | 参数 |
|
|
113
|
+
|------|------|------|
|
|
114
|
+
| `multiclaws_agents` | 列出所有已知智能体及 bio | — |
|
|
115
|
+
| `multiclaws_add_agent` | 手动添加远端智能体 | `url`, `apiKey`(可选) |
|
|
116
|
+
| `multiclaws_remove_agent` | 移除已知智能体 | `url` |
|
|
117
|
+
| `multiclaws_delegate` | 委派任务给远端智能体(自动 spawn 子 agent,立即返回) | `agentUrl`, `task` |
|
|
118
|
+
| `multiclaws_delegate_send` | 同步发送任务并等待结果(子 agent 内部使用,勿直接调用) | `agentUrl`, `task` |
|
|
119
|
+
| `multiclaws_task_status` | 查看委派任务状态 | `taskId` |
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 重要规则
|
|
124
|
+
|
|
125
|
+
- **不要问用户 IP 地址或 selfUrl。** 插件自动处理。
|
|
126
|
+
- **只使用上面列出的工具。** 没有 `multiclaws_status` 工具。
|
|
127
|
+
- **Bio 是自由格式的 markdown。** 写得让另一个 AI 能读懂这个智能体能做什么。
|
|
128
|
+
- **每个智能体就像一个 skill。** 委派时读每个智能体的 bio,选最匹配的。
|
|
129
|
+
- **只有名字需要用户明确确认**;bio 自动生成无需确认;网络情况仅告知无需回答。
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 工作流
|
|
134
|
+
|
|
135
|
+
### 创建团队
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
1. multiclaws_profile_show() — 检查档案
|
|
139
|
+
2.(如果 ownerName 为空)确认名字,自动生成 bio
|
|
140
|
+
3. multiclaws_team_create(name="...") — 返回 inviteCode (mc:xxxx)
|
|
141
|
+
4. 告诉用户把邀请码分享给队友
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### 加入团队
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
1. multiclaws_profile_show() — 检查档案
|
|
148
|
+
2.(如果 ownerName 为空)确认名字,自动生成 bio
|
|
149
|
+
3. multiclaws_team_join(inviteCode="mc:xxxx")
|
|
150
|
+
→ 自动同步所有团队成员
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### 委派任务
|
|
154
|
+
|
|
155
|
+
所有委派(无论单轮还是多轮)都通过 `multiclaws_delegate` 进行。代码会自动 spawn 子 agent 执行,主 agent 立即返回,无需手动 `sessions_spawn`。
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
1. multiclaws_agents() — 列出智能体,读 bio
|
|
159
|
+
2. 选择 bio 最匹配任务的智能体
|
|
160
|
+
3. multiclaws_delegate(agentUrl="...", task="...")
|
|
161
|
+
→ 代码自动 spawn 子 agent,子 agent 通过 message 实时汇报结果
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
选择智能体时:
|
|
165
|
+
- 匹配任务领域和 bio(如「财务报告」→ 有财务技能的智能体)
|
|
166
|
+
- 匹配数据需求(如「检查 API 代码」→ bio 中有该代码库的智能体)
|
|
167
|
+
- 多个匹配时选最具体的
|
|
168
|
+
|
|
169
|
+
需要联系多个智能体时,对每个智能体分别调用 `multiclaws_delegate`。
|
|
170
|
+
|
|
171
|
+
#### 示例
|
|
172
|
+
|
|
173
|
+
**单人任务:**
|
|
174
|
+
```
|
|
175
|
+
用户: "问一下小明他那个 API 接口的参数格式"
|
|
176
|
+
|
|
177
|
+
1. multiclaws_delegate(小明, "你那个 API 接口的参数格式是什么?")
|
|
178
|
+
→ 子 agent 自动发送、等待回复、通过 message 汇报结果
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
**多人任务:**
|
|
182
|
+
```
|
|
183
|
+
用户: "帮我和小明、小红约明天下午的会议"
|
|
184
|
+
|
|
185
|
+
1. multiclaws_agents() → 找到小明、小红
|
|
186
|
+
2. multiclaws_delegate(小明, "明天下午 2-5 点开会,你什么时候有空?")
|
|
187
|
+
3. multiclaws_delegate(小红, "明天下午 2-5 点开会,你什么时候有空?")
|
|
188
|
+
→ 每个委派各自 spawn 子 agent,通过 message 实时汇报进展
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## 网络配置
|
|
194
|
+
|
|
195
|
+
所有实例通过 FRP 隧道通信。需要一台运行 frps 的公网服务器。
|
|
196
|
+
frpc 会在首次启动时自动下载安装,无需手动安装。
|
|
197
|
+
|
|
198
|
+
在插件配置中添加 tunnel 字段即可:
|
|
199
|
+
```json
|
|
200
|
+
{
|
|
201
|
+
"tunnel": {
|
|
202
|
+
"type": "frp",
|
|
203
|
+
"serverAddr": "你的frps地址",
|
|
204
|
+
"serverPort": 7000,
|
|
205
|
+
"token": "你的认证令牌",
|
|
206
|
+
"portRangeStart": 7011,
|
|
207
|
+
"portRangeEnd": 7020
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
当加入或委派因网络错误失败时(ECONNREFUSED、ETIMEDOUT、fetch failed),引导用户:
|
|
213
|
+
|
|
214
|
+
> 网络连接失败,请检查:
|
|
215
|
+
> 1. 确认 frpc 已正常启动(查看日志中的 `[frp] FRP tunnel ready` 信息)
|
|
216
|
+
> 2. 检查插件配置中的 `tunnel.serverAddr` / `tunnel.token` 是否正确
|
|
217
|
+
> 3. 确认 frps 服务器可达(`telnet frps地址 端口`)
|
|
218
|
+
> 4. 重启 OpenClaw
|