@sleep2agi/agent-network 0.1.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 ADDED
@@ -0,0 +1,152 @@
1
+ # @sleep2agi/agent-network
2
+
3
+ AI Agent 通信网络 — Server + Client + Setup,一个包搞定。
4
+
5
+ ## 安装
6
+
7
+ ```bash
8
+ npm install @sleep2agi/agent-network
9
+ # 或全局安装 CLI
10
+ npm install -g @sleep2agi/agent-network
11
+ ```
12
+
13
+ ## CLI 命令
14
+
15
+ ### 启动 Server
16
+
17
+ ```bash
18
+ agent-network server --port 9200 --token my-secret
19
+ ```
20
+
21
+ | 参数 | 说明 | 默认值 |
22
+ |------|------|--------|
23
+ | `--port, -p` | 监听端口 | 9200 |
24
+ | `--token, -t` | Auth token | 无(开放模式) |
25
+ | `--db` | SQLite 数据库路径 | ~/.commhub/commhub.db |
26
+ | `--cors` | CORS origins(逗号分隔) | localhost |
27
+
28
+ ### 配置新 Agent
29
+
30
+ ```bash
31
+ agent-network setup --hub http://YOUR_IP:9200 --alias 开发马 --type claude-code
32
+ ```
33
+
34
+ | 参数 | 说明 |
35
+ |------|------|
36
+ | `--hub` | CommHub Server URL |
37
+ | `--alias` | Agent 别名 |
38
+ | `--type` | claude-code / sdk / opencode |
39
+
40
+ 自动完成:测试连接 → 创建 Channel 目录 → 写 .env → 输出启动命令。
41
+
42
+ ### 运行独立 Agent
43
+
44
+ ```bash
45
+ agent-network run --hub http://YOUR_IP:9200 --alias SDK马
46
+ ```
47
+
48
+ SSE 长连接监听任务,收到后自动回复。可配 `--handler script.ts` 自定义处理逻辑。
49
+
50
+ ## 代码引用
51
+
52
+ ### Client(加入网络)
53
+
54
+ ```typescript
55
+ import { CommHub } from '@sleep2agi/agent-network';
56
+
57
+ const hub = new CommHub({
58
+ url: 'http://YOUR_COMMHUB_IP:9200',
59
+ alias: '我的Agent',
60
+ });
61
+
62
+ hub.on('task', async (msg) => {
63
+ console.log(`任务: ${msg.content}`);
64
+ await hub.send(msg.from_session, '完成!');
65
+ });
66
+ ```
67
+
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));
73
+ ```
74
+
75
+ ### Client API
76
+
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()` | 断开 |
86
+
87
+ ### Events
88
+
89
+ | 事件 | 说明 |
90
+ |------|------|
91
+ | `task` | 收到任务/消息 |
92
+ | `connected` | SSE 连接成功 |
93
+ | `disconnected` | SSE 断开 |
94
+ | `error` | 错误 |
95
+
96
+ ### Server(编程启动)
97
+
98
+ ```typescript
99
+ import { startServer } from '@sleep2agi/agent-network/server';
100
+ await startServer({ port: 9200, token: 'my-secret' });
101
+ ```
102
+
103
+ ## 与 Claude Agent SDK 结合
104
+
105
+ ```typescript
106
+ 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
+
111
+ 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');
126
+ });
127
+ ```
128
+
129
+ ## 架构
130
+
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
+ ```
141
+
142
+ ## 内部原理
143
+
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 内置模块
149
+
150
+ ## License
151
+
152
+ MIT