aws-runtime-bridge 1.2.0 → 1.3.0
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 +77 -77
- package/dist/adapter/ClaudeSdkAdapter.d.ts +1 -0
- package/dist/adapter/ClaudeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/ClaudeSdkAdapter.js +7 -3
- package/dist/adapter/ClaudeSdkAdapter.test.js +2 -2
- package/dist/adapter/CodexSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/CodexSdkAdapter.js +7 -4
- package/dist/adapter/CodexSdkAdapter.test.js +4 -2
- package/dist/adapter/OpencodeSdkAdapter.d.ts +2 -0
- package/dist/adapter/OpencodeSdkAdapter.d.ts.map +1 -1
- package/dist/adapter/OpencodeSdkAdapter.js +15 -1
- package/dist/adapter/OpencodeSdkAdapter.test.js +5 -0
- package/dist/index.js +0 -0
- package/dist/routes/properties.test.js +4 -4
- package/dist/routes/runtime-binding.d.ts.map +1 -1
- package/dist/routes/runtime-binding.js +8 -13
- package/dist/routes/runtime-mcp-proxy.d.ts +3 -0
- package/dist/routes/runtime-mcp-proxy.d.ts.map +1 -0
- package/dist/routes/runtime-mcp-proxy.js +102 -0
- package/dist/routes/runtime-mcp-proxy.test.d.ts +2 -0
- package/dist/routes/runtime-mcp-proxy.test.d.ts.map +1 -0
- package/dist/routes/runtime-mcp-proxy.test.js +111 -0
- package/dist/routes/terminal.js +2 -5
- package/dist/routes/terminal.test.js +3 -4
- package/dist/services/auto-register.d.ts +6 -0
- package/dist/services/auto-register.d.ts.map +1 -1
- package/dist/services/auto-register.js +63 -1
- package/dist/services/aws-client-agent-mcp.d.ts.map +1 -1
- package/dist/services/aws-client-agent-mcp.js +73 -7
- package/dist/services/aws-client-agent-mcp.test.js +83 -2
- package/dist/services/mcp-launch-binding-queue.d.ts +0 -2
- package/dist/services/mcp-launch-binding-queue.d.ts.map +1 -1
- package/dist/services/mcp-launch-binding-queue.js +44 -16
- package/dist/services/mcp-launch-binding-queue.test.js +42 -37
- package/dist/services/runtime-binding.d.ts +1 -0
- package/dist/services/runtime-binding.d.ts.map +1 -1
- package/dist/services/runtime-binding.js +39 -5
- package/dist/services/runtime-binding.test.d.ts +2 -0
- package/dist/services/runtime-binding.test.d.ts.map +1 -0
- package/dist/services/runtime-binding.test.js +11 -0
- package/dist/utils/yaml-utils.test.js +129 -129
- package/node_modules/@cc-switch/sdk/README.md +540 -540
- package/node_modules/@cc-switch/sdk/dist/sdk-import.test.d.ts +2 -0
- package/node_modules/@cc-switch/sdk/dist/sdk-import.test.d.ts.map +1 -0
- package/node_modules/@cc-switch/sdk/dist/sdk-import.test.js +119 -0
- package/node_modules/@cc-switch/sdk/package.json +31 -31
- package/package/aws-client-agent-mcp/README.md +288 -288
- package/package/aws-client-agent-mcp/dist/config.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/config.js +96 -13
- package/package/aws-client-agent-mcp/dist/config.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/config.test.js +26 -8
- package/package/aws-client-agent-mcp/dist/config.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/constants.d.ts +0 -1
- package/package/aws-client-agent-mcp/dist/constants.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/constants.js +0 -1
- package/package/aws-client-agent-mcp/dist/constants.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.js +49 -13
- package/package/aws-client-agent-mcp/dist/http-client.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/http-client.test.js +40 -13
- package/package/aws-client-agent-mcp/dist/http-client.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/index.js +11 -6
- package/package/aws-client-agent-mcp/dist/index.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/logger.d.ts +11 -1
- package/package/aws-client-agent-mcp/dist/logger.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/logger.js +91 -6
- package/package/aws-client-agent-mcp/dist/logger.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/logger.test.d.ts +2 -0
- package/package/aws-client-agent-mcp/dist/logger.test.d.ts.map +1 -0
- package/package/aws-client-agent-mcp/dist/logger.test.js +27 -0
- package/package/aws-client-agent-mcp/dist/logger.test.js.map +1 -0
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js +18 -14
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js +51 -21
- package/package/aws-client-agent-mcp/dist/runtime-launch-binding.test.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/types.d.ts +3 -2
- package/package/aws-client-agent-mcp/dist/types.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/types.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +1 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.d.ts.map +1 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.js +18 -0
- package/package/aws-client-agent-mcp/dist/websocket-client.js.map +1 -1
- package/package/aws-client-agent-mcp/dist/websocket-client.test.js +53 -2
- package/package/aws-client-agent-mcp/dist/websocket-client.test.js.map +1 -1
- package/package/aws-client-agent-mcp/package.json +52 -52
- package/package/cc-switch-sdk/README.md +540 -540
- package/package/cc-switch-sdk/dist/sdk-import.test.d.ts +2 -0
- package/package/cc-switch-sdk/dist/sdk-import.test.d.ts.map +1 -0
- package/package/cc-switch-sdk/dist/sdk-import.test.js +119 -0
- package/package/cc-switch-sdk/package.json +31 -31
- package/package.json +78 -78
|
@@ -1,288 +1,288 @@
|
|
|
1
|
-
# aws-client-agent-mcp
|
|
2
|
-
|
|
3
|
-
AgentsWorkStudio - Agent MCP Client
|
|
4
|
-
|
|
5
|
-
编程 Agent 与调度中心的通信桥梁,基于 MCP (Model Context Protocol) 协议实现。
|
|
6
|
-
|
|
7
|
-
## 功能特性
|
|
8
|
-
|
|
9
|
-
- **注册上线**: Agent 通过 MCP Tool 注册到调度中心,获得唯一标识
|
|
10
|
-
- **同事发现**: 查询当前 Agent 可见的同事 Agent 列表(包含在线和离线)
|
|
11
|
-
- **群聊消息**: 发送和接收公共群聊消息(支持未读消息指针)
|
|
12
|
-
- **私信消息**:
|
|
13
|
-
- 通知式: 发送后不阻塞
|
|
14
|
-
- 调用式: 发送后阻塞等待回复(带超时机制)
|
|
15
|
-
- **消息主循环**: 持续监听和处理收到的消息
|
|
16
|
-
- **自动重连**: WebSocket 断线后自动重连
|
|
17
|
-
|
|
18
|
-
## 安装
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
# 克隆项目后进入目录
|
|
22
|
-
cd aws-client-agent-mcp
|
|
23
|
-
|
|
24
|
-
# 安装依赖
|
|
25
|
-
npm install
|
|
26
|
-
|
|
27
|
-
# 编译 TypeScript
|
|
28
|
-
npm run build
|
|
29
|
-
|
|
30
|
-
# 全局安装为命令行工具
|
|
31
|
-
npm install -g .
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
安装完成后可直接使用全局命令:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
aws-client-agent-mcp
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
## 配置
|
|
41
|
-
|
|
42
|
-
### 环境变量
|
|
43
|
-
|
|
44
|
-
| 变量名 | 说明 | 默认值 |
|
|
45
|
-
|--------|------|--------|
|
|
46
|
-
| `AWS_SERVER_URL` | 调度中心 WebSocket 地址 | `ws://localhost:8080/ws/agent` |
|
|
47
|
-
| `AWS_WORKSPACE_PATH` | Agent 所在工作区路径 | 当前进程工作目录 |
|
|
48
|
-
| `AWS_ROLE_NAME` | Agent 角色名,可为空,角色配置主要由后端 runtime-bridge 提供 | 空字符串 |
|
|
49
|
-
| `AWS_PROJECT_NAME` | Agent 所属项目名 | `default` |
|
|
50
|
-
| `AWS_PROMPT` | Agent 提示词,可为空,角色配置主要由后端 runtime-bridge 提供 | 空字符串 |
|
|
51
|
-
| `AWS_AGENT_ID` | 预设 Agent ID,用于绑定已有实例 | 未设置 |
|
|
52
|
-
| `AWS_INTERNAL_API_KEY` | 调度中心内部 API 密钥 | `agentswork-internal-dev-key` |
|
|
53
|
-
| `AWS_HEARTBEAT_INTERVAL` | 心跳间隔(毫秒) | `3000` |
|
|
54
|
-
| `AWS_HEARTBEAT_TIMEOUT` | 心跳超时时间(毫秒) | `9000` |
|
|
55
|
-
| `AWS_MCP_HTTP_URL` | 调度中心 MCP HTTP 调用地址 | 根据 `AWS_SERVER_URL` 推导为 `/mcp/call` |
|
|
56
|
-
|
|
57
|
-
> 注意:当前实现不再读取 `AWS_CONFIG_PATH`。作为 stdio MCP Server 运行时,stdout 必须只输出 JSON-RPC 消息,普通日志会输出到 stderr,避免污染 MCP 握手协议。
|
|
58
|
-
|
|
59
|
-
## 使用方式
|
|
60
|
-
|
|
61
|
-
### 方式一: 作为 MCP Server 使用(推荐)
|
|
62
|
-
|
|
63
|
-
在 Claude Desktop 或 Cline 的配置中添加:
|
|
64
|
-
|
|
65
|
-
```json
|
|
66
|
-
{
|
|
67
|
-
"mcpServers": {
|
|
68
|
-
"agentswork": {
|
|
69
|
-
"command": "node",
|
|
70
|
-
"args": ["/path/to/aws-client-agent-mcp/dist/index.js"],
|
|
71
|
-
"env": {
|
|
72
|
-
"AWS_SERVER_URL": "ws://localhost:7380/ws/agent",
|
|
73
|
-
"AWS_WORKSPACE_PATH": "/absolute/path/to/project",
|
|
74
|
-
"AWS_PROJECT_NAME": "default"
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
### 方式二: 命令行运行
|
|
82
|
-
|
|
83
|
-
```bash
|
|
84
|
-
# 设置环境变量并运行
|
|
85
|
-
export AWS_SERVER_URL=ws://localhost:7380/ws/agent
|
|
86
|
-
export AWS_WORKSPACE_PATH=/absolute/path/to/project
|
|
87
|
-
export AWS_PROJECT_NAME=default
|
|
88
|
-
aws-client-agent-mcp
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
## MCP Tools
|
|
92
|
-
|
|
93
|
-
### register
|
|
94
|
-
|
|
95
|
-
注册 Agent 上线。
|
|
96
|
-
|
|
97
|
-
**返回值:**
|
|
98
|
-
```json
|
|
99
|
-
{
|
|
100
|
-
"agentId": "uuid-string",
|
|
101
|
-
"displayName": "后端开发专家-A3X7",
|
|
102
|
-
"status": "online"
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
### unregister
|
|
107
|
-
|
|
108
|
-
注销 Agent 下线。
|
|
109
|
-
|
|
110
|
-
### get_colleague
|
|
111
|
-
|
|
112
|
-
获取当前 Agent 可见的同事 Agent 列表,包含在线和离线状态。
|
|
113
|
-
|
|
114
|
-
**返回值:**
|
|
115
|
-
```json
|
|
116
|
-
{
|
|
117
|
-
"humans": [],
|
|
118
|
-
"agents": [
|
|
119
|
-
{ "id": "agent_001", "displayName": "后端开发专家-A3X7", "roleName": "后端开发专家", "prompt": "...", "onlineSince": "..." },
|
|
120
|
-
{ "id": "agent_002", "displayName": "测试工程师-B8K2", "roleName": "测试工程师", "prompt": "...", "onlineSince": null }
|
|
121
|
-
]
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### get_group_rooms
|
|
126
|
-
|
|
127
|
-
获取当前 Agent 在关系图中可发现的群组列表,包括项目公共群聊以及自己所在的小组群。
|
|
128
|
-
|
|
129
|
-
**返回值:**
|
|
130
|
-
```json
|
|
131
|
-
{
|
|
132
|
-
"groups": [
|
|
133
|
-
{
|
|
134
|
-
"id": "project:demo",
|
|
135
|
-
"projectName": "demo",
|
|
136
|
-
"roomType": "project",
|
|
137
|
-
"scopeRefId": "demo",
|
|
138
|
-
"name": "demo 公共群聊",
|
|
139
|
-
"memberUserIds": ["agent_001"]
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
"id": "inner_group:g-1",
|
|
143
|
-
"projectName": "demo",
|
|
144
|
-
"roomType": "inner_group",
|
|
145
|
-
"scopeRefId": "g-1",
|
|
146
|
-
"name": "后端小组",
|
|
147
|
-
"memberUserIds": ["agent_001", "agent_002"]
|
|
148
|
-
}
|
|
149
|
-
]
|
|
150
|
-
}
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
### send_group_message
|
|
154
|
-
|
|
155
|
-
发送群消息。
|
|
156
|
-
|
|
157
|
-
**参数:**
|
|
158
|
-
- `content`: 消息内容(string,必需)
|
|
159
|
-
|
|
160
|
-
### get_group_messages
|
|
161
|
-
|
|
162
|
-
获取未读群消息。
|
|
163
|
-
|
|
164
|
-
**返回值:**
|
|
165
|
-
```json
|
|
166
|
-
{
|
|
167
|
-
"messages": [
|
|
168
|
-
{ "msgId": 1, "senderId": "...", "senderName": "...", "content": "...", "timestamp": "..." }
|
|
169
|
-
],
|
|
170
|
-
"currentReadPos": 1,
|
|
171
|
-
"hasMore": false
|
|
172
|
-
}
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
### send_dm
|
|
176
|
-
|
|
177
|
-
发送私信。
|
|
178
|
-
|
|
179
|
-
**参数:**
|
|
180
|
-
- `targetId`: 目标用户ID(string,必需)
|
|
181
|
-
- `content`: 消息内容(string,必需)
|
|
182
|
-
- `requireReply`: 是否需要回复(boolean,可选)
|
|
183
|
-
- `replyToCallId`: 回复的调用ID(string,可选)
|
|
184
|
-
- `timeoutMs`: 超时时间(number,可选)
|
|
185
|
-
|
|
186
|
-
**调用式返回值:**
|
|
187
|
-
```json
|
|
188
|
-
{
|
|
189
|
-
"reply": {
|
|
190
|
-
"msgId": "...",
|
|
191
|
-
"content": "...",
|
|
192
|
-
"senderId": "...",
|
|
193
|
-
"senderName": "...",
|
|
194
|
-
"timestamp": "..."
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
### get_dm_messages
|
|
200
|
-
|
|
201
|
-
获取私信(支持阻塞等待)。
|
|
202
|
-
|
|
203
|
-
**参数:**
|
|
204
|
-
- `blockIfEmpty`: 无消息时是否阻塞等待(boolean,可选,默认true)
|
|
205
|
-
- `blockTimeoutMs`: 阻塞超时时间(number,可选)
|
|
206
|
-
|
|
207
|
-
### start_message_loop
|
|
208
|
-
|
|
209
|
-
启动消息主循环,开始监听收到的消息。
|
|
210
|
-
|
|
211
|
-
### stop_message_loop
|
|
212
|
-
|
|
213
|
-
停止消息主循环。
|
|
214
|
-
|
|
215
|
-
### get_state
|
|
216
|
-
|
|
217
|
-
获取当前 Agent 状态。
|
|
218
|
-
|
|
219
|
-
**返回值:**
|
|
220
|
-
```json
|
|
221
|
-
{
|
|
222
|
-
"agentId": "...",
|
|
223
|
-
"displayName": "...",
|
|
224
|
-
"isConnected": true,
|
|
225
|
-
"isRunning": false
|
|
226
|
-
}
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
## 消息主循环流程
|
|
230
|
-
|
|
231
|
-
```
|
|
232
|
-
Agent 主循环:
|
|
233
|
-
┌──────────────────────────────────────────┐
|
|
234
|
-
│ 1. register() → 注册上线 │
|
|
235
|
-
│ 2. start_message_loop() → 启动循环 │
|
|
236
|
-
│ 3. while(运行中): │
|
|
237
|
-
│ a. get_dm_messages() → 获取私信 │
|
|
238
|
-
│ ├── 有未读消息 → 立即返回 │
|
|
239
|
-
│ └── 无未读消息 → 阻塞等待 │
|
|
240
|
-
│ b. 处理私信消息 │
|
|
241
|
-
│ - 调用式消息 → 处理 → 回复 │
|
|
242
|
-
│ - 通知式消息 → 处理/记录 │
|
|
243
|
-
│ c. get_group_messages() → 获取群聊 │
|
|
244
|
-
│ d. 处理群聊消息 │
|
|
245
|
-
│ 4. stop_message_loop() → 停止循环 │
|
|
246
|
-
│ 5. unregister() → 注销下线 │
|
|
247
|
-
└──────────────────────────────────────────┘
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
## 开发
|
|
251
|
-
|
|
252
|
-
```bash
|
|
253
|
-
# 开发模式(自动编译)
|
|
254
|
-
npm run dev
|
|
255
|
-
|
|
256
|
-
# 构建
|
|
257
|
-
npm run build
|
|
258
|
-
|
|
259
|
-
# 运行
|
|
260
|
-
npm start
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
## 项目结构
|
|
264
|
-
|
|
265
|
-
```
|
|
266
|
-
aws-client-agent-mcp/
|
|
267
|
-
├── src/
|
|
268
|
-
│ ├── index.ts # 入口文件
|
|
269
|
-
│ ├── mcp-server.ts # MCP Server 实现
|
|
270
|
-
│ ├── agent-client.ts # Agent 客户端核心
|
|
271
|
-
│ ├── websocket-client.ts # WebSocket 客户端
|
|
272
|
-
│ ├── config.ts # 配置管理
|
|
273
|
-
│ └── types.ts # 类型定义
|
|
274
|
-
├── dist/ # 编译输出
|
|
275
|
-
├── package.json
|
|
276
|
-
├── tsconfig.json
|
|
277
|
-
└── README.md
|
|
278
|
-
```
|
|
279
|
-
|
|
280
|
-
## 与调度中心集成
|
|
281
|
-
|
|
282
|
-
确保调度中心(aws-mcp-server)已启动并运行在配置的地址上。
|
|
283
|
-
|
|
284
|
-
调度中心仓库: `aws-mcp-server/`
|
|
285
|
-
|
|
286
|
-
## License
|
|
287
|
-
|
|
288
|
-
MIT
|
|
1
|
+
# aws-client-agent-mcp
|
|
2
|
+
|
|
3
|
+
AgentsWorkStudio - Agent MCP Client
|
|
4
|
+
|
|
5
|
+
编程 Agent 与调度中心的通信桥梁,基于 MCP (Model Context Protocol) 协议实现。
|
|
6
|
+
|
|
7
|
+
## 功能特性
|
|
8
|
+
|
|
9
|
+
- **注册上线**: Agent 通过 MCP Tool 注册到调度中心,获得唯一标识
|
|
10
|
+
- **同事发现**: 查询当前 Agent 可见的同事 Agent 列表(包含在线和离线)
|
|
11
|
+
- **群聊消息**: 发送和接收公共群聊消息(支持未读消息指针)
|
|
12
|
+
- **私信消息**:
|
|
13
|
+
- 通知式: 发送后不阻塞
|
|
14
|
+
- 调用式: 发送后阻塞等待回复(带超时机制)
|
|
15
|
+
- **消息主循环**: 持续监听和处理收到的消息
|
|
16
|
+
- **自动重连**: WebSocket 断线后自动重连
|
|
17
|
+
|
|
18
|
+
## 安装
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 克隆项目后进入目录
|
|
22
|
+
cd aws-client-agent-mcp
|
|
23
|
+
|
|
24
|
+
# 安装依赖
|
|
25
|
+
npm install
|
|
26
|
+
|
|
27
|
+
# 编译 TypeScript
|
|
28
|
+
npm run build
|
|
29
|
+
|
|
30
|
+
# 全局安装为命令行工具
|
|
31
|
+
npm install -g .
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
安装完成后可直接使用全局命令:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
aws-client-agent-mcp
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## 配置
|
|
41
|
+
|
|
42
|
+
### 环境变量
|
|
43
|
+
|
|
44
|
+
| 变量名 | 说明 | 默认值 |
|
|
45
|
+
|--------|------|--------|
|
|
46
|
+
| `AWS_SERVER_URL` | 调度中心 WebSocket 地址 | `ws://localhost:8080/ws/agent` |
|
|
47
|
+
| `AWS_WORKSPACE_PATH` | Agent 所在工作区路径 | 当前进程工作目录 |
|
|
48
|
+
| `AWS_ROLE_NAME` | Agent 角色名,可为空,角色配置主要由后端 runtime-bridge 提供 | 空字符串 |
|
|
49
|
+
| `AWS_PROJECT_NAME` | Agent 所属项目名 | `default` |
|
|
50
|
+
| `AWS_PROMPT` | Agent 提示词,可为空,角色配置主要由后端 runtime-bridge 提供 | 空字符串 |
|
|
51
|
+
| `AWS_AGENT_ID` | 预设 Agent ID,用于绑定已有实例 | 未设置 |
|
|
52
|
+
| `AWS_INTERNAL_API_KEY` | 调度中心内部 API 密钥 | `agentswork-internal-dev-key` |
|
|
53
|
+
| `AWS_HEARTBEAT_INTERVAL` | 心跳间隔(毫秒) | `3000` |
|
|
54
|
+
| `AWS_HEARTBEAT_TIMEOUT` | 心跳超时时间(毫秒) | `9000` |
|
|
55
|
+
| `AWS_MCP_HTTP_URL` | 调度中心 MCP HTTP 调用地址 | 根据 `AWS_SERVER_URL` 推导为 `/mcp/call` |
|
|
56
|
+
|
|
57
|
+
> 注意:当前实现不再读取 `AWS_CONFIG_PATH`。作为 stdio MCP Server 运行时,stdout 必须只输出 JSON-RPC 消息,普通日志会输出到 stderr,避免污染 MCP 握手协议。
|
|
58
|
+
|
|
59
|
+
## 使用方式
|
|
60
|
+
|
|
61
|
+
### 方式一: 作为 MCP Server 使用(推荐)
|
|
62
|
+
|
|
63
|
+
在 Claude Desktop 或 Cline 的配置中添加:
|
|
64
|
+
|
|
65
|
+
```json
|
|
66
|
+
{
|
|
67
|
+
"mcpServers": {
|
|
68
|
+
"agentswork": {
|
|
69
|
+
"command": "node",
|
|
70
|
+
"args": ["/path/to/aws-client-agent-mcp/dist/index.js"],
|
|
71
|
+
"env": {
|
|
72
|
+
"AWS_SERVER_URL": "ws://localhost:7380/ws/agent",
|
|
73
|
+
"AWS_WORKSPACE_PATH": "/absolute/path/to/project",
|
|
74
|
+
"AWS_PROJECT_NAME": "default"
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 方式二: 命令行运行
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# 设置环境变量并运行
|
|
85
|
+
export AWS_SERVER_URL=ws://localhost:7380/ws/agent
|
|
86
|
+
export AWS_WORKSPACE_PATH=/absolute/path/to/project
|
|
87
|
+
export AWS_PROJECT_NAME=default
|
|
88
|
+
aws-client-agent-mcp
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## MCP Tools
|
|
92
|
+
|
|
93
|
+
### register
|
|
94
|
+
|
|
95
|
+
注册 Agent 上线。
|
|
96
|
+
|
|
97
|
+
**返回值:**
|
|
98
|
+
```json
|
|
99
|
+
{
|
|
100
|
+
"agentId": "uuid-string",
|
|
101
|
+
"displayName": "后端开发专家-A3X7",
|
|
102
|
+
"status": "online"
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### unregister
|
|
107
|
+
|
|
108
|
+
注销 Agent 下线。
|
|
109
|
+
|
|
110
|
+
### get_colleague
|
|
111
|
+
|
|
112
|
+
获取当前 Agent 可见的同事 Agent 列表,包含在线和离线状态。
|
|
113
|
+
|
|
114
|
+
**返回值:**
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"humans": [],
|
|
118
|
+
"agents": [
|
|
119
|
+
{ "id": "agent_001", "displayName": "后端开发专家-A3X7", "roleName": "后端开发专家", "prompt": "...", "onlineSince": "..." },
|
|
120
|
+
{ "id": "agent_002", "displayName": "测试工程师-B8K2", "roleName": "测试工程师", "prompt": "...", "onlineSince": null }
|
|
121
|
+
]
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### get_group_rooms
|
|
126
|
+
|
|
127
|
+
获取当前 Agent 在关系图中可发现的群组列表,包括项目公共群聊以及自己所在的小组群。
|
|
128
|
+
|
|
129
|
+
**返回值:**
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"groups": [
|
|
133
|
+
{
|
|
134
|
+
"id": "project:demo",
|
|
135
|
+
"projectName": "demo",
|
|
136
|
+
"roomType": "project",
|
|
137
|
+
"scopeRefId": "demo",
|
|
138
|
+
"name": "demo 公共群聊",
|
|
139
|
+
"memberUserIds": ["agent_001"]
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "inner_group:g-1",
|
|
143
|
+
"projectName": "demo",
|
|
144
|
+
"roomType": "inner_group",
|
|
145
|
+
"scopeRefId": "g-1",
|
|
146
|
+
"name": "后端小组",
|
|
147
|
+
"memberUserIds": ["agent_001", "agent_002"]
|
|
148
|
+
}
|
|
149
|
+
]
|
|
150
|
+
}
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### send_group_message
|
|
154
|
+
|
|
155
|
+
发送群消息。
|
|
156
|
+
|
|
157
|
+
**参数:**
|
|
158
|
+
- `content`: 消息内容(string,必需)
|
|
159
|
+
|
|
160
|
+
### get_group_messages
|
|
161
|
+
|
|
162
|
+
获取未读群消息。
|
|
163
|
+
|
|
164
|
+
**返回值:**
|
|
165
|
+
```json
|
|
166
|
+
{
|
|
167
|
+
"messages": [
|
|
168
|
+
{ "msgId": 1, "senderId": "...", "senderName": "...", "content": "...", "timestamp": "..." }
|
|
169
|
+
],
|
|
170
|
+
"currentReadPos": 1,
|
|
171
|
+
"hasMore": false
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### send_dm
|
|
176
|
+
|
|
177
|
+
发送私信。
|
|
178
|
+
|
|
179
|
+
**参数:**
|
|
180
|
+
- `targetId`: 目标用户ID(string,必需)
|
|
181
|
+
- `content`: 消息内容(string,必需)
|
|
182
|
+
- `requireReply`: 是否需要回复(boolean,可选)
|
|
183
|
+
- `replyToCallId`: 回复的调用ID(string,可选)
|
|
184
|
+
- `timeoutMs`: 超时时间(number,可选)
|
|
185
|
+
|
|
186
|
+
**调用式返回值:**
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"reply": {
|
|
190
|
+
"msgId": "...",
|
|
191
|
+
"content": "...",
|
|
192
|
+
"senderId": "...",
|
|
193
|
+
"senderName": "...",
|
|
194
|
+
"timestamp": "..."
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### get_dm_messages
|
|
200
|
+
|
|
201
|
+
获取私信(支持阻塞等待)。
|
|
202
|
+
|
|
203
|
+
**参数:**
|
|
204
|
+
- `blockIfEmpty`: 无消息时是否阻塞等待(boolean,可选,默认true)
|
|
205
|
+
- `blockTimeoutMs`: 阻塞超时时间(number,可选)
|
|
206
|
+
|
|
207
|
+
### start_message_loop
|
|
208
|
+
|
|
209
|
+
启动消息主循环,开始监听收到的消息。
|
|
210
|
+
|
|
211
|
+
### stop_message_loop
|
|
212
|
+
|
|
213
|
+
停止消息主循环。
|
|
214
|
+
|
|
215
|
+
### get_state
|
|
216
|
+
|
|
217
|
+
获取当前 Agent 状态。
|
|
218
|
+
|
|
219
|
+
**返回值:**
|
|
220
|
+
```json
|
|
221
|
+
{
|
|
222
|
+
"agentId": "...",
|
|
223
|
+
"displayName": "...",
|
|
224
|
+
"isConnected": true,
|
|
225
|
+
"isRunning": false
|
|
226
|
+
}
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## 消息主循环流程
|
|
230
|
+
|
|
231
|
+
```
|
|
232
|
+
Agent 主循环:
|
|
233
|
+
┌──────────────────────────────────────────┐
|
|
234
|
+
│ 1. register() → 注册上线 │
|
|
235
|
+
│ 2. start_message_loop() → 启动循环 │
|
|
236
|
+
│ 3. while(运行中): │
|
|
237
|
+
│ a. get_dm_messages() → 获取私信 │
|
|
238
|
+
│ ├── 有未读消息 → 立即返回 │
|
|
239
|
+
│ └── 无未读消息 → 阻塞等待 │
|
|
240
|
+
│ b. 处理私信消息 │
|
|
241
|
+
│ - 调用式消息 → 处理 → 回复 │
|
|
242
|
+
│ - 通知式消息 → 处理/记录 │
|
|
243
|
+
│ c. get_group_messages() → 获取群聊 │
|
|
244
|
+
│ d. 处理群聊消息 │
|
|
245
|
+
│ 4. stop_message_loop() → 停止循环 │
|
|
246
|
+
│ 5. unregister() → 注销下线 │
|
|
247
|
+
└──────────────────────────────────────────┘
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
## 开发
|
|
251
|
+
|
|
252
|
+
```bash
|
|
253
|
+
# 开发模式(自动编译)
|
|
254
|
+
npm run dev
|
|
255
|
+
|
|
256
|
+
# 构建
|
|
257
|
+
npm run build
|
|
258
|
+
|
|
259
|
+
# 运行
|
|
260
|
+
npm start
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## 项目结构
|
|
264
|
+
|
|
265
|
+
```
|
|
266
|
+
aws-client-agent-mcp/
|
|
267
|
+
├── src/
|
|
268
|
+
│ ├── index.ts # 入口文件
|
|
269
|
+
│ ├── mcp-server.ts # MCP Server 实现
|
|
270
|
+
│ ├── agent-client.ts # Agent 客户端核心
|
|
271
|
+
│ ├── websocket-client.ts # WebSocket 客户端
|
|
272
|
+
│ ├── config.ts # 配置管理
|
|
273
|
+
│ └── types.ts # 类型定义
|
|
274
|
+
├── dist/ # 编译输出
|
|
275
|
+
├── package.json
|
|
276
|
+
├── tsconfig.json
|
|
277
|
+
└── README.md
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
## 与调度中心集成
|
|
281
|
+
|
|
282
|
+
确保调度中心(aws-mcp-server)已启动并运行在配置的地址上。
|
|
283
|
+
|
|
284
|
+
调度中心仓库: `aws-mcp-server/`
|
|
285
|
+
|
|
286
|
+
## License
|
|
287
|
+
|
|
288
|
+
MIT
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAkGlF,qBAAa,aAAa;IACxB,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,YAAY,CAA6B;IAEjD;;;OAGG;IACH,UAAU,IAAI,IAAI;IA2ClB,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI;IA2C9D,cAAc,IAAI,WAAW;IAO7B,eAAe,IAAI,YAAY;CAMhC;AAED,eAAO,MAAM,aAAa,eAAsB,CAAC"}
|