@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 CHANGED
@@ -1,151 +1,196 @@
1
1
  # @sleep2agi/agent-network
2
2
 
3
- AI Agent 通信网络 — Server + Client + Setup,一个包搞定。
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
- ## CLI 命令
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
- ### 启动 Server
11
+ ## 快速开始
16
12
 
17
13
  ```bash
18
- agent-network server --port 9200 --token my-secret
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
- ### 配置新 Agent
20
+ # 3. 启动 Claude Code Agent
21
+ cd ~/your-project
22
+ anet init project
23
+ anet start 指挥室
29
24
 
30
- ```bash
31
- agent-network setup --hub http://YOUR_IP:9200 --alias 开发马 --type claude-code
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
- | `--hub` | CommHub Server URL |
37
- | `--alias` | Agent 别名 |
38
- | `--type` | claude-code / sdk / opencode |
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
- 自动完成:测试连接 → 创建 Channel 目录 → 写 .env → 输出启动命令。
55
+ ```
56
+ ~/.anet/config.json # hub URL + token(anet init 写入)
57
+ ~/.anet/server/config.json # server 配置(port/host/token)
58
+ ```
41
59
 
42
- ### 运行独立 Agent
60
+ ### 项目配置
43
61
 
44
- ```bash
45
- agent-network run --hub http://YOUR_IP:9200 --alias SDK马
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
- SSE 长连接监听任务,收到后自动回复。可配 `--handler script.ts` 自定义处理逻辑。
73
+ ### 配置继承规则
49
74
 
50
- ## 代码引用
75
+ 两个 config.json 都会读,**字段级合并**:
51
76
 
52
- ### Client(加入网络)
77
+ ```
78
+ 项目 .anet/nodes/<id>/config.json 有值的字段优先
79
+ ↓ fallback
80
+ 全局 ~/.anet/config.json 缺失字段兜底
81
+ ```
53
82
 
54
- ```typescript
55
- import { CommHub } from '@sleep2agi/agent-network';
83
+ 项目 config 不需要写 token/hub,全局配一份所有项目共用。
56
84
 
57
- const hub = new CommHub({
58
- url: 'http://YOUR_COMMHUB_IP:9200',
59
- alias: '我的Agent',
60
- });
85
+ ### Node 配置示例
61
86
 
62
- hub.on('task', async (msg) => {
63
- console.log(`任务: ${msg.content}`);
64
- await hub.send(msg.from_session, '完成!');
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
- ```javascript
69
- // CommonJS
70
- const { CommHub } = require('@sleep2agi/agent-network');
71
- const hub = new CommHub({ url: 'http://YOUR_COMMHUB_IP:9200', alias: '我的Agent' });
72
- hub.on('task', (msg) => console.log(msg));
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
- ### Client API
117
+ ## Token 认证
76
118
 
77
- | 方法 | 说明 |
78
- |------|------|
79
- | `hub.send(alias, content, priority?)` | 发任务 |
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
- ### Events
123
+ # 方式 2:命令行参数
124
+ anet init --hub http://YOUR_IP:9200 --token your-secret
88
125
 
89
- | 事件 | 说明 |
90
- |------|------|
91
- | `task` | 收到任务/消息 |
92
- | `connected` | SSE 连接成功 |
93
- | `disconnected` | SSE 断开 |
94
- | `error` | 错误 |
126
+ # 方式 3:server 首次启动自动生成
127
+ anet server start
128
+ # Generated auth token: xxxx(自动存到全局 + server config)
129
+ ```
95
130
 
96
- ### Server(编程启动)
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
- ## 与 Claude Agent SDK 结合
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.status('working', { task: msg.content.slice(0, 200) });
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
- agent-network server (:9200)
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
- - **SSE 长连接**:自动重连(指数退避 3s→60s)
145
- - **心跳**:每 3 分钟 report_status offline
146
- - **MCP 协议**:Streamable HTTP,兼容 Claude Code / Codex / OpenCode
147
- - **SQLite WAL**:消息持久化,30+ 并发无压力
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