@sleep2agi/agent-network 0.0.1 → 0.0.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/README.md +83 -79
- package/dist/bin/cli.js +18 -18
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,55 +1,85 @@
|
|
|
1
|
-
# @sleep2agi/agent-network
|
|
1
|
+
# @sleep2agi/agent-network
|
|
2
2
|
|
|
3
|
-
AI Agent 通信网络 —
|
|
3
|
+
AI Agent 通信网络 — 让 AI Agent 互相发消息、派任务、协作。
|
|
4
|
+
|
|
5
|
+
Server + Client + CLI,一个包搞定。
|
|
4
6
|
|
|
5
7
|
## 安装
|
|
6
8
|
|
|
7
9
|
```bash
|
|
8
|
-
|
|
9
|
-
# 或全局安装 CLI
|
|
10
|
+
# 全局安装(提供 anet 命令)
|
|
10
11
|
npm install -g @sleep2agi/agent-network
|
|
12
|
+
|
|
13
|
+
# 或作为项目依赖(使用 SDK)
|
|
14
|
+
npm install @sleep2agi/agent-network
|
|
11
15
|
```
|
|
12
16
|
|
|
13
|
-
##
|
|
17
|
+
## 快速开始
|
|
14
18
|
|
|
15
|
-
### 启动 Server
|
|
19
|
+
### 1. 启动 Server(中心节点,需要 Bun)
|
|
16
20
|
|
|
17
21
|
```bash
|
|
18
|
-
|
|
22
|
+
# 从源码启动(推荐)
|
|
23
|
+
git clone https://github.com/sleep2agi/agent-comm-hub.git
|
|
24
|
+
cd agent-comm-hub/server && bun install && bun run start
|
|
25
|
+
# CommHub 运行在 http://localhost:9200
|
|
19
26
|
```
|
|
20
27
|
|
|
21
|
-
|
|
22
|
-
|------|------|--------|
|
|
23
|
-
| `--port, -p` | 监听端口 | 9200 |
|
|
24
|
-
| `--token, -t` | Auth token | 无(开放模式) |
|
|
25
|
-
| `--db` | SQLite 数据库路径 | ~/.commhub/commhub.db |
|
|
26
|
-
| `--cors` | CORS origins(逗号分隔) | localhost |
|
|
28
|
+
### 2. 配置 Agent 加入网络
|
|
27
29
|
|
|
28
|
-
|
|
30
|
+
```bash
|
|
31
|
+
cd /path/to/your/project
|
|
32
|
+
anet setup --hub http://YOUR_COMMHUB_IP:9200 --alias 我的Agent
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
自动完成:
|
|
36
|
+
- 测试连接
|
|
37
|
+
- 写入全局配置 `~/.anet/config.json`(hub URL)
|
|
38
|
+
- 写入项目配置 `.anet/config.json`(alias)
|
|
39
|
+
- 输出对应启动命令
|
|
40
|
+
|
|
41
|
+
### 3. 运行 Agent
|
|
29
42
|
|
|
30
43
|
```bash
|
|
31
|
-
|
|
44
|
+
# 自动从 .anet/config.json 读取配置
|
|
45
|
+
anet run
|
|
46
|
+
|
|
47
|
+
# 或显式指定
|
|
48
|
+
anet run --alias 我的Agent --hub http://YOUR_COMMHUB_IP:9200
|
|
32
49
|
```
|
|
33
50
|
|
|
34
|
-
|
|
35
|
-
|------|------|
|
|
36
|
-
| `--hub` | CommHub Server URL |
|
|
37
|
-
| `--alias` | Agent 别名 |
|
|
38
|
-
| `--type` | claude-code / sdk / opencode |
|
|
51
|
+
Agent 启动后:自动注册 → SSE 长连接监听 → 收到任务自动回复 → 3 分钟心跳。
|
|
39
52
|
|
|
40
|
-
|
|
53
|
+
## CLI 命令
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
anet setup 配置 Agent 加入网络
|
|
57
|
+
anet run 运行独立 Agent(SSE 实时监听)
|
|
58
|
+
anet server 启动 CommHub Server(需要 Bun + @sleep2agi/commhub-server)
|
|
59
|
+
anet --help 帮助
|
|
60
|
+
```
|
|
41
61
|
|
|
42
|
-
###
|
|
62
|
+
### anet setup
|
|
43
63
|
|
|
44
64
|
```bash
|
|
45
|
-
anet
|
|
65
|
+
anet setup --hub <url> --alias <name> [--type claude-code|sdk]
|
|
46
66
|
```
|
|
47
67
|
|
|
48
|
-
|
|
68
|
+
| 参数 | 说明 | 默认值 |
|
|
69
|
+
|------|------|--------|
|
|
70
|
+
| `--hub` | CommHub Server URL | 从 ~/.anet/config.json 读 |
|
|
71
|
+
| `--alias` | Agent 别名 | 必填 |
|
|
72
|
+
| `--type` | claude-code 或 sdk | claude-code |
|
|
73
|
+
|
|
74
|
+
### anet run
|
|
49
75
|
|
|
50
|
-
|
|
76
|
+
```bash
|
|
77
|
+
anet run [--alias <name>] [--hub <url>] [--handler <script>]
|
|
78
|
+
```
|
|
51
79
|
|
|
52
|
-
|
|
80
|
+
参数自动从 `.anet/config.json` 读取,setup 过的项目直接 `anet run` 即可。
|
|
81
|
+
|
|
82
|
+
## SDK 代码引用
|
|
53
83
|
|
|
54
84
|
```typescript
|
|
55
85
|
import { CommHub } from '@sleep2agi/agent-network';
|
|
@@ -60,8 +90,8 @@ const hub = new CommHub({
|
|
|
60
90
|
});
|
|
61
91
|
|
|
62
92
|
hub.on('task', async (msg) => {
|
|
63
|
-
console.log(
|
|
64
|
-
await hub.send(msg.from_session, '
|
|
93
|
+
console.log(`来自 ${msg.from_session}: ${msg.content}`);
|
|
94
|
+
await hub.send(msg.from_session, '任务完成!');
|
|
65
95
|
});
|
|
66
96
|
```
|
|
67
97
|
|
|
@@ -72,80 +102,54 @@ const hub = new CommHub({ url: 'http://YOUR_COMMHUB_IP:9200', alias: '我的Agen
|
|
|
72
102
|
hub.on('task', (msg) => console.log(msg));
|
|
73
103
|
```
|
|
74
104
|
|
|
75
|
-
###
|
|
105
|
+
### SDK API
|
|
76
106
|
|
|
77
107
|
| 方法 | 说明 |
|
|
78
108
|
|------|------|
|
|
79
109
|
| `hub.send(alias, content, priority?)` | 发任务 |
|
|
80
110
|
| `hub.message(alias, content)` | 发消息(无生命周期) |
|
|
81
|
-
| `hub.reply(taskId,
|
|
111
|
+
| `hub.reply(taskId, text, status?)` | 回复任务 |
|
|
82
112
|
| `hub.status(state, extra?)` | 更新状态 |
|
|
83
113
|
| `hub.broadcast(content, filter?)` | 广播 |
|
|
84
|
-
| `hub.getAllStatus()` | 查看所有 session |
|
|
85
114
|
| `hub.disconnect()` | 断开 |
|
|
86
115
|
|
|
87
|
-
###
|
|
116
|
+
### 事件
|
|
88
117
|
|
|
89
118
|
| 事件 | 说明 |
|
|
90
119
|
|------|------|
|
|
91
|
-
| `task` |
|
|
120
|
+
| `task` | 收到任务(已自动 ACK) |
|
|
92
121
|
| `connected` | SSE 连接成功 |
|
|
93
|
-
| `disconnected` | SSE
|
|
122
|
+
| `disconnected` | SSE 断开(自动重连) |
|
|
94
123
|
| `error` | 错误 |
|
|
95
124
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
```typescript
|
|
99
|
-
import { startServer } from '@sleep2agi/agent-network/server';
|
|
100
|
-
await startServer({ port: 9200, token: 'my-secret' });
|
|
101
|
-
```
|
|
125
|
+
## 配置文件
|
|
102
126
|
|
|
103
|
-
|
|
127
|
+
优先级:环境变量 > 命令行参数 > 项目 `.anet/config.json` > 全局 `~/.anet/config.json`
|
|
104
128
|
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
const hub = new CommHub({ url: 'http://YOUR_COMMHUB_IP:9200', alias: 'AI助手' });
|
|
129
|
+
**全局** `~/.anet/config.json`:
|
|
130
|
+
```json
|
|
131
|
+
{ "hub": "http://YOUR_COMMHUB_IP:9200", "token": "your-token" }
|
|
132
|
+
```
|
|
110
133
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
let result = '';
|
|
115
|
-
for await (const event of query({
|
|
116
|
-
prompt: msg.content,
|
|
117
|
-
options: { allowedTools: ['Read', 'Edit', 'Bash'] },
|
|
118
|
-
})) {
|
|
119
|
-
if (event.type === 'result' && event.subtype === 'success') {
|
|
120
|
-
result = event.result;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
await hub.send(msg.from_session, result);
|
|
125
|
-
await hub.status('idle');
|
|
126
|
-
});
|
|
134
|
+
**项目** `.anet/config.json`:
|
|
135
|
+
```json
|
|
136
|
+
{ "alias": "我的Agent", "type": "claude-code" }
|
|
127
137
|
```
|
|
128
138
|
|
|
129
|
-
##
|
|
139
|
+
## 运行时要求
|
|
130
140
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
│ │ │
|
|
136
|
-
Channel SSE SSE Client REST API
|
|
137
|
-
│ │ │
|
|
138
|
-
Claude Code SDK Agent 外部系统
|
|
139
|
-
(推荐) (编程) (curl)
|
|
140
|
-
```
|
|
141
|
+
| 组件 | 运行时 |
|
|
142
|
+
|------|--------|
|
|
143
|
+
| anet setup / run / SDK | Node.js 18+ 或 Bun |
|
|
144
|
+
| anet server | Bun 1.2+(bun:sqlite) |
|
|
141
145
|
|
|
142
|
-
##
|
|
146
|
+
## 相关包
|
|
143
147
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
148
|
+
| 包 | 说明 |
|
|
149
|
+
|---|------|
|
|
150
|
+
| @sleep2agi/agent-network | 合并包(推荐) |
|
|
151
|
+
| @sleep2agi/commhub-sdk | 仅客户端 SDK |
|
|
152
|
+
| @sleep2agi/commhub-server | 仅服务端 |
|
|
149
153
|
|
|
150
154
|
## License
|
|
151
155
|
|