@sleep2agi/agent-network 0.1.0 → 1.0.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 +146 -101
- package/dist/bin/cli.js +142 -234
- package/dist/src/client.js +2 -2
- package/package.json +5 -4
- package/src/node-server.ts +472 -0
package/README.md
CHANGED
|
@@ -1,151 +1,196 @@
|
|
|
1
1
|
# @sleep2agi/agent-network
|
|
2
2
|
|
|
3
|
-
AI Agent 通信网络 —
|
|
3
|
+
AI Agent 通信网络 — CLI + SDK + Channel 插件,一个包搞定。
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
```bash
|
|
8
|
-
npm install @sleep2agi/agent-network
|
|
9
|
-
# 或全局安装 CLI
|
|
5
|
+
```
|
|
10
6
|
npm install -g @sleep2agi/agent-network
|
|
11
7
|
```
|
|
12
8
|
|
|
13
|
-
|
|
9
|
+
当前版本:v0.0.48 | [agent-node](https://www.npmjs.com/package/@sleep2agi/agent-node) v0.7.0 | [commhub-server](https://www.npmjs.com/package/@sleep2agi/commhub-server) v0.4.3
|
|
14
10
|
|
|
15
|
-
|
|
11
|
+
## 快速开始
|
|
16
12
|
|
|
17
13
|
```bash
|
|
18
|
-
|
|
19
|
-
|
|
14
|
+
# 1. 启动通信服务器(首次自动生成 auth token)
|
|
15
|
+
anet server start --port 9200
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
| `--port, -p` | 监听端口 | 9200 |
|
|
24
|
-
| `--token, -t` | Auth token | 无(开放模式) |
|
|
25
|
-
| `--db` | SQLite 数据库路径 | ~/.commhub/commhub.db |
|
|
26
|
-
| `--cors` | CORS origins(逗号分隔) | localhost |
|
|
17
|
+
# 2. 配置(交互式,填 hub URL 和 token)
|
|
18
|
+
anet init
|
|
27
19
|
|
|
28
|
-
|
|
20
|
+
# 3. 启动 Claude Code Agent
|
|
21
|
+
cd ~/your-project
|
|
22
|
+
anet init project
|
|
23
|
+
anet start 指挥室
|
|
29
24
|
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
# 4. 快速接入已有 session(无需 init profile)
|
|
26
|
+
anet resume 你的Agent --session <session-id>
|
|
27
|
+
|
|
28
|
+
# 5. 查看状态
|
|
29
|
+
anet ls
|
|
30
|
+
anet session ls # 列出当前项目的 Claude Code session
|
|
31
|
+
anet -v # 查看版本
|
|
32
32
|
```
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
## CLI 命令
|
|
35
|
+
|
|
36
|
+
| 命令 | 说明 |
|
|
35
37
|
|------|------|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
38
|
+
| `anet init` | 配 hub URL + token(全局,交互式) |
|
|
39
|
+
| `anet init project` | 配当前项目(channel 插件 + .mcp.json + CLAUDE.md) |
|
|
40
|
+
| `anet init profile <id>` | 创建 node 启动配置 |
|
|
41
|
+
| `anet start <id>` | 新建 session |
|
|
42
|
+
| `anet resume <id>` | 恢复 session |
|
|
43
|
+
| `anet resume <id> --session <sid>` | 快速接入已有 session(自动创建配置) |
|
|
44
|
+
| `anet session ls` | 列出当前项目的 session(ID / 大小 / 时间) |
|
|
45
|
+
| `anet ls` | nodes + sessions + 网络状态 |
|
|
46
|
+
| `anet server start` | 启动 CommHub Server |
|
|
47
|
+
| `anet server config` | 查看/设置 server 配置 |
|
|
48
|
+
| `anet import` | 从 CommHub 导入在线 session |
|
|
49
|
+
| `anet -v` | 查看版本 |
|
|
50
|
+
|
|
51
|
+
## 配置体系
|
|
52
|
+
|
|
53
|
+
### 全局配置
|
|
39
54
|
|
|
40
|
-
|
|
55
|
+
```
|
|
56
|
+
~/.anet/config.json # hub URL + token(anet init 写入)
|
|
57
|
+
~/.anet/server/config.json # server 配置(port/host/token)
|
|
58
|
+
```
|
|
41
59
|
|
|
42
|
-
###
|
|
60
|
+
### 项目配置
|
|
43
61
|
|
|
44
|
-
```
|
|
45
|
-
|
|
62
|
+
```
|
|
63
|
+
{project}/
|
|
64
|
+
├── .mcp.json # commhub MCP server
|
|
65
|
+
└── .anet/
|
|
66
|
+
├── node-server.ts # channel 插件(自动从 npm 包同步)
|
|
67
|
+
├── package.json
|
|
68
|
+
└── nodes/
|
|
69
|
+
└── 指挥室/
|
|
70
|
+
└── config.json # 启动配置
|
|
46
71
|
```
|
|
47
72
|
|
|
48
|
-
|
|
73
|
+
### 配置继承规则
|
|
49
74
|
|
|
50
|
-
|
|
75
|
+
两个 config.json 都会读,**字段级合并**:
|
|
51
76
|
|
|
52
|
-
|
|
77
|
+
```
|
|
78
|
+
项目 .anet/nodes/<id>/config.json 有值的字段优先
|
|
79
|
+
↓ fallback
|
|
80
|
+
全局 ~/.anet/config.json 缺失字段兜底
|
|
81
|
+
```
|
|
53
82
|
|
|
54
|
-
|
|
55
|
-
import { CommHub } from '@sleep2agi/agent-network';
|
|
83
|
+
项目 config 不需要写 token/hub,全局配一份所有项目共用。
|
|
56
84
|
|
|
57
|
-
|
|
58
|
-
url: 'http://YOUR_COMMHUB_IP:9200',
|
|
59
|
-
alias: '我的Agent',
|
|
60
|
-
});
|
|
85
|
+
### Node 配置示例
|
|
61
86
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
87
|
+
路径:`.anet/nodes/<id>/config.json`
|
|
88
|
+
|
|
89
|
+
**Claude Code:**
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"runtime": "claude-code",
|
|
93
|
+
"alias": "指挥室",
|
|
94
|
+
"hub": "http://YOUR_IP:9200",
|
|
95
|
+
"channels": ["server:commhub"],
|
|
96
|
+
"env": {},
|
|
97
|
+
"flags": { "dangerouslySkipPermissions": true, "teammateMode": "in-process" },
|
|
98
|
+
"resume": "98039093-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
|
|
99
|
+
}
|
|
66
100
|
```
|
|
67
101
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
102
|
+
**MiniMax(agent-sdk):**
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"runtime": "agent-sdk",
|
|
106
|
+
"alias": "小明",
|
|
107
|
+
"hub": "http://YOUR_IP:9200",
|
|
108
|
+
"model": "MiniMax-M2.7",
|
|
109
|
+
"tools": ["Read", "Bash", "Grep"],
|
|
110
|
+
"env": {
|
|
111
|
+
"ANTHROPIC_BASE_URL": "https://api.minimaxi.com/anthropic",
|
|
112
|
+
"ANTHROPIC_AUTH_TOKEN": "your-key"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
73
115
|
```
|
|
74
116
|
|
|
75
|
-
|
|
117
|
+
## Token 认证
|
|
76
118
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
| `hub.message(alias, content)` | 发消息(无生命周期) |
|
|
81
|
-
| `hub.reply(taskId, result, status?)` | 回复任务 |
|
|
82
|
-
| `hub.status(state, extra?)` | 更新状态 |
|
|
83
|
-
| `hub.broadcast(content, filter?)` | 广播 |
|
|
84
|
-
| `hub.getAllStatus()` | 查看所有 session |
|
|
85
|
-
| `hub.disconnect()` | 断开 |
|
|
119
|
+
```bash
|
|
120
|
+
# 方式 1:anet init 交互式填写
|
|
121
|
+
anet init
|
|
86
122
|
|
|
87
|
-
|
|
123
|
+
# 方式 2:命令行参数
|
|
124
|
+
anet init --hub http://YOUR_IP:9200 --token your-secret
|
|
88
125
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
| `disconnected` | SSE 断开 |
|
|
94
|
-
| `error` | 错误 |
|
|
126
|
+
# 方式 3:server 首次启动自动生成
|
|
127
|
+
anet server start
|
|
128
|
+
# → Generated auth token: xxxx(自动存到全局 + server config)
|
|
129
|
+
```
|
|
95
130
|
|
|
96
|
-
|
|
131
|
+
Token 流转:
|
|
97
132
|
|
|
98
|
-
```typescript
|
|
99
|
-
import { startServer } from '@sleep2agi/agent-network/server';
|
|
100
|
-
await startServer({ port: 9200, token: 'my-secret' });
|
|
101
133
|
```
|
|
134
|
+
~/.anet/config.json (token)
|
|
135
|
+
↓ 自动传递
|
|
136
|
+
├→ anet start/resume → COMMHUB_TOKEN env → channel 插件
|
|
137
|
+
├→ anet ls/import → Authorization header → CommHub API
|
|
138
|
+
└→ channel 插件启动时也会直接读 ~/.anet/config.json
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
node config 可以单独配 token(覆盖全局),适用于连不同 CommHub 的场景。
|
|
142
|
+
|
|
143
|
+
## 自动配置行为
|
|
144
|
+
|
|
145
|
+
`anet start`/`anet resume` 对 `runtime: "claude-code"` 自动确保:
|
|
146
|
+
|
|
147
|
+
1. `.anet/node-server.ts` 从 npm 包同步(对比内容,不同才更新)
|
|
148
|
+
2. `.anet/package.json` + 依赖安装
|
|
149
|
+
3. `.mcp.json` 包含 commhub(**已有配置不覆盖**)
|
|
102
150
|
|
|
103
|
-
##
|
|
151
|
+
## 支持的模型
|
|
152
|
+
|
|
153
|
+
| 模型 | ANTHROPIC_BASE_URL | runtime |
|
|
154
|
+
|------|-------------------|---------|
|
|
155
|
+
| Claude | 不设 | claude-code |
|
|
156
|
+
| MiniMax M2.7 | `https://api.minimaxi.com/anthropic` | agent-sdk |
|
|
157
|
+
| 书生 Intern-S1-Pro | `https://chat.intern-ai.org.cn` | agent-sdk |
|
|
158
|
+
| 任意 Anthropic 兼容 | 对应端点 | agent-sdk |
|
|
159
|
+
|
|
160
|
+
## SDK
|
|
104
161
|
|
|
105
162
|
```typescript
|
|
106
163
|
import { CommHub } from '@sleep2agi/agent-network';
|
|
107
|
-
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
108
|
-
|
|
109
|
-
const hub = new CommHub({ url: 'http://YOUR_COMMHUB_IP:9200', alias: 'AI助手' });
|
|
110
164
|
|
|
165
|
+
const hub = new CommHub({ url: 'http://YOUR_IP:9200', alias: '我的Agent' });
|
|
111
166
|
hub.on('task', async (msg) => {
|
|
112
|
-
await hub.
|
|
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');
|
|
167
|
+
await hub.send(msg.from_session, '完成!');
|
|
126
168
|
});
|
|
127
169
|
```
|
|
128
170
|
|
|
129
|
-
|
|
171
|
+
| 方法 | 说明 |
|
|
172
|
+
|------|------|
|
|
173
|
+
| `hub.send(alias, content)` | 发任务 |
|
|
174
|
+
| `hub.message(alias, content)` | 发消息 |
|
|
175
|
+
| `hub.reply(taskId, text, status?)` | 回复任务 |
|
|
176
|
+
| `hub.status(state, extra?)` | 更新状态 |
|
|
177
|
+
| `hub.broadcast(content)` | 广播 |
|
|
178
|
+
| `hub.getAllStatus()` | 查看所有 session |
|
|
179
|
+
|
|
180
|
+
## npm 包
|
|
130
181
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
Channel SSE SSE Client REST API
|
|
137
|
-
│ │ │
|
|
138
|
-
Claude Code SDK Agent 外部系统
|
|
139
|
-
(推荐) (编程) (curl)
|
|
140
|
-
```
|
|
182
|
+
| 包 | 说明 | 版本 |
|
|
183
|
+
|---|------|------|
|
|
184
|
+
| [@sleep2agi/agent-network](https://www.npmjs.com/package/@sleep2agi/agent-network) | anet CLI + CommHub SDK + Channel 插件 | v0.0.48 |
|
|
185
|
+
| [@sleep2agi/agent-node](https://www.npmjs.com/package/@sleep2agi/agent-node) | Agent 运行时(MiniMax/书生/Claude) | v0.7.0 |
|
|
186
|
+
| [@sleep2agi/commhub-server](https://www.npmjs.com/package/@sleep2agi/commhub-server) | CommHub 通信服务器 | v0.4.3 |
|
|
141
187
|
|
|
142
|
-
##
|
|
188
|
+
## 文档
|
|
143
189
|
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
- **零依赖**(client 端):只用 Node.js 内置模块
|
|
190
|
+
- [快速上手](docs/anet-quickstart.md)
|
|
191
|
+
- [CLI 设计](docs/cli-design.md) — 命令 + 配置规范
|
|
192
|
+
- [架构设计](docs/architecture.md)
|
|
193
|
+
- [踩坑经验](docs/pitfalls.md) — Channel 插件开发注意事项
|
|
149
194
|
|
|
150
195
|
## License
|
|
151
196
|
|