@twinsearth/agent-universe 2.3.6 → 2.5.6
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/LICENSE +21 -0
- package/README.md +410 -0
- package/index.d.ts +5 -208
- package/index.js +5 -69
- package/js/index.d.ts +209 -0
- package/js/index.js +71 -0
- package/{lib → js/lib}/aca.js +1 -1
- package/{lib → js/lib}/mcp.js +1 -1
- package/js/package-lock.json +16 -0
- package/js/package.json +43 -0
- package/js/test/test.js +224 -0
- package/package.json +14 -11
- /package/{lib → js/lib}/dht.js +0 -0
- /package/{lib → js/lib}/keychain.js +0 -0
- /package/{lib → js/lib}/market.js +0 -0
- /package/{lib → js/lib}/models.js +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Agent Universe Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
# Agent Universe(智能体宇宙)
|
|
2
|
+
|
|
3
|
+
> **使命:让科技造福全人类!**
|
|
4
|
+
>
|
|
5
|
+
> **一句话简介:群众化的 AGI 路线,去中心化的智能体共享 & 开源网络。**
|
|
6
|
+
|
|
7
|
+
[](https://github.com/TwinsEarth/agent-universe/actions/workflows/ci.yml)
|
|
8
|
+
[](https://github.com/TwinsEarth/agent-universe/releases)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
[](https://www.rust-lang.org/)
|
|
11
|
+
[](https://www.python.org/)
|
|
12
|
+
[](https://github.com/TwinsEarth/agent-universe/packages)
|
|
13
|
+
|
|
14
|
+
## 核心理念
|
|
15
|
+
|
|
16
|
+
### 群体智能 = 网络结构的 Scaling Law
|
|
17
|
+
|
|
18
|
+
大模型通过参数、数据、算力的 Scaling Law 已实现智能涌现,解决了智能的有无问题。
|
|
19
|
+
|
|
20
|
+
**智能体宇宙**是在其基础上,实现更多、更大、更强的智能与自我迭代——这是**网络结构的 Scaling Law**,从 token 网络结构向智能体网络结构演进。
|
|
21
|
+
|
|
22
|
+
### 群众路线
|
|
23
|
+
|
|
24
|
+
当前基础大模型军备竞赛已达千亿万亿元级门槛,普通人无法参与,智能即将被巨头垄断。
|
|
25
|
+
|
|
26
|
+
**急需第三方介入**,在闭源阵营与开源阵营之间探索一条普惠大众、全民参与的 AGI 甚至 ASI 之路——**群众路线**。
|
|
27
|
+
|
|
28
|
+
通过这个全民网络,让底层人民也能参与、贡献、分享这场智能科技革命。(类似于 Linux)
|
|
29
|
+
|
|
30
|
+
### 结构相变拐点
|
|
31
|
+
|
|
32
|
+
大模型(参数、数据、算力)的 Scaling Law 已预见单个大模型撞到了 Scaling Law 规模墙。
|
|
33
|
+
|
|
34
|
+
通过大力出奇迹的收益已经逼近"结构相变拐点":**Scaling Law 即将失效**,需要从结构上突破。
|
|
35
|
+
|
|
36
|
+
## 系统架构
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
40
|
+
│ Agent Universe 网络 │
|
|
41
|
+
│ │
|
|
42
|
+
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
|
|
43
|
+
│ │ Mac mini│ │ Windows │ │ Android │ │ 服务器 │ │
|
|
44
|
+
│ │ 根种子 │ │ 全节点 │ │ 轻节点 │ │ 全节点 │ │
|
|
45
|
+
│ └────┬────┘ └────┬────┘ └────┬────┘ └────┬────┘ │
|
|
46
|
+
│ └────────────┴────────────┴────────────┘ │
|
|
47
|
+
│ │ │
|
|
48
|
+
│ ┌──────────┴──────────┐ │
|
|
49
|
+
│ │ Kademlia DHT 路由表 │ │
|
|
50
|
+
│ │ (每个节点持有切片) │ │
|
|
51
|
+
│ └──────────┬──────────┘ │
|
|
52
|
+
│ │ │
|
|
53
|
+
│ ┌───────────────┼───────────────┐ │
|
|
54
|
+
│ ▼ ▼ ▼ │
|
|
55
|
+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
|
|
56
|
+
│ │ GossipSub │ │ CRDT │ │ 纠删码 │ │
|
|
57
|
+
│ │ 消息广播 │ │ 状态同步 │ │ 数据冗余 │ │
|
|
58
|
+
│ └──────────┘ └──────────┘ └──────────┘ │
|
|
59
|
+
│ │
|
|
60
|
+
│ 链上信任锚(Base / Arbitrum) │
|
|
61
|
+
│ · 身份 · 质押 · 结算 · 治理 │
|
|
62
|
+
└─────────────────────────────────────────────────────────────┘
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## 核心模块
|
|
66
|
+
|
|
67
|
+
### Rust 核心库(gsn-core)
|
|
68
|
+
|
|
69
|
+
| 模块 | 功能 |
|
|
70
|
+
|------|------|
|
|
71
|
+
| `identity/` | DID 身份、Ed25519 密钥对、签名、平台安全存储 |
|
|
72
|
+
| `agent/` | AgentCard 身份卡、Skill 注册、任务生命周期 |
|
|
73
|
+
| `net/` | Kademlia DHT、GossipSub、libp2p 节点、根种子 |
|
|
74
|
+
| `chain/` | PoCV 可验证计算、EVM 轻客户端 |
|
|
75
|
+
| `storage/` | SQLite 本地存储 |
|
|
76
|
+
| `verifier/` | Verifier HTTP 客户端 |
|
|
77
|
+
| `swarm/` | **群体智能层**:涌现检测、轻量共识 |
|
|
78
|
+
| `economy/` | **信誉经济系统**:信誉分、贡献证明、动态定价 |
|
|
79
|
+
| `scheduler/` | **任务调度器**:任务路由、负载均衡 |
|
|
80
|
+
| `topology/` | **网络拓扑**:邻居管理、拓扑图 |
|
|
81
|
+
| `proof/` | **贡献证明**(Proof of Contribution) |
|
|
82
|
+
| `mode/` | 节点模式:Archive / Full / Light / Edge / Browser |
|
|
83
|
+
| `crdt/` | CRDT 无冲突复制数据类型 |
|
|
84
|
+
| `erasure/` | Reed-Solomon 纠删码 |
|
|
85
|
+
| `mcp/` | **MCP 兼容层**(v2.3.2) |
|
|
86
|
+
| `aca/` | **ACA 兼容 API**(v2.3.2) |
|
|
87
|
+
| `marketplace/` | **智能体市场 Agent Market**(v2.3.4):注册/发现/匹配/BFT验证/结算/信誉 |
|
|
88
|
+
| `bin/` | **gsn-daemon** 守护进程 |
|
|
89
|
+
|
|
90
|
+
### Python SDK(aip-sdk-py)
|
|
91
|
+
|
|
92
|
+
- Agent Interop Protocol 客户端
|
|
93
|
+
- 任务提交与查询
|
|
94
|
+
- 本地开发与测试
|
|
95
|
+
|
|
96
|
+
### 智能体市场(Agent Market · v2.3.4)
|
|
97
|
+
|
|
98
|
+
智能体宇宙的第一版**经济层**,让智能体、技能、任务、算力可以完成完整交易闭环:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
注册 → 发布 → 匹配 → 执行 → 验证 → 结算 → 信誉更新
|
|
102
|
+
↑ ↓
|
|
103
|
+
└──────────── 争议/仲裁/罚没 ←─────────┘
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
| 机制 | 说明 |
|
|
107
|
+
|------|------|
|
|
108
|
+
| AgentCard 注册 | 质押准入(最低门槛),能力声明 + 签名 |
|
|
109
|
+
| TaskSpec | 六字段校验:goal/context/done/todo/trace/owner |
|
|
110
|
+
| 匹配引擎 | 技能/信誉/负载过滤,性价比排序 |
|
|
111
|
+
| BFT-lite QA | n≥3f+1,equivocation 整轮作废,view change |
|
|
112
|
+
| 结算守恒 | balance_sum = budget - slashed,防重复支付 |
|
|
113
|
+
| 多维信誉 | quality/speed/honesty/availability,**不可转让** |
|
|
114
|
+
| 质押罚没 | 作恶扣除质押,信誉同步下降 |
|
|
115
|
+
| 证据分级 | verified / cpu-proto / unverified |
|
|
116
|
+
|
|
117
|
+
### Smart Contracts
|
|
118
|
+
|
|
119
|
+
| 合约 | 功能 |
|
|
120
|
+
|------|------|
|
|
121
|
+
| `GovernorToken.sol` | 治理代币 |
|
|
122
|
+
| `AgentCardAnchor.sol` | AgentCard 链上锚定 |
|
|
123
|
+
| `PoCVSettlement.sol` | PoCV 结算 |
|
|
124
|
+
| `ReputationBridge.sol` | 跨链信誉桥接 |
|
|
125
|
+
|
|
126
|
+
## 快速开始
|
|
127
|
+
|
|
128
|
+
### 编译 Rust 核心库
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
cd gsn-core
|
|
132
|
+
cargo build --release
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### 运行测试
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
# Rust 测试
|
|
139
|
+
cd gsn-core && cargo test
|
|
140
|
+
|
|
141
|
+
# Python SDK 测试
|
|
142
|
+
cd aip-sdk-py && PYTHONPATH=. pytest tests/ -v
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### 启动 gsn-daemon
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
cd gsn-core
|
|
149
|
+
# 前台运行(默认 P2P 4001 / HTTP API 4002)
|
|
150
|
+
cargo run --release --bin gsn-daemon
|
|
151
|
+
# 自定义端口与数据目录
|
|
152
|
+
cargo run --release --bin gsn-daemon -- \
|
|
153
|
+
--port 4001 --api-port 4002 --data-dir ~/.gsn/data
|
|
154
|
+
# 连接已有引导节点(非根种子)
|
|
155
|
+
cargo run --release --bin gsn-daemon -- \
|
|
156
|
+
--bootstrap /ip4/<bootstrap-ip>/tcp/4001
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
启动后可访问 HTTP API:
|
|
160
|
+
|
|
161
|
+
| 方法 & 路径 | 功能 |
|
|
162
|
+
|---|---|
|
|
163
|
+
| `GET /health` | 节点健康、版本、模式、连接数、运行时长 |
|
|
164
|
+
| `GET /version` | daemon 版本 |
|
|
165
|
+
| `GET /peers` | 本地 Peer ID、连接数、DHT 路由表条目 |
|
|
166
|
+
| `GET /agents` | 已注册智能体列表 |
|
|
167
|
+
| `GET /tasks` | 任务列表 |
|
|
168
|
+
| `POST /agents` | 注册 AgentCard(同时落 SQLite 与 DHT) |
|
|
169
|
+
|
|
170
|
+
> **当前实现状态**:gsn-daemon 已是**真实网络节点**——libp2p(Noise 加密 + Kademlia DHT + GossipSub)真实 bind P2P 端口,HTTP API 真实 bind API 端口,agents/tasks 通过 SQLite 真实落盘并在重启后恢复。已真机验证:两端口 `LISTEN`、各 API 端点返回正确、POST 注册可查、404 路径正确转义、kill 重启后数据仍在。核心业务逻辑(Agent Market 结算守恒、BFT-lite 验证、信誉)由 155 个 Rust 测试 + 17 个 Python 测试 + 12 个 JS 测试守护,跨语言签名测试保证三端身份/签名互验。链上结算与跨主机多节点 DHT 联调为下一步目标。
|
|
171
|
+
|
|
172
|
+
### 三大连接层:CLI · API · MCP(v2.3.5 引入,v2.3.6 深化)
|
|
173
|
+
|
|
174
|
+
v2.3.5 重新梳理并补全三种连接方式,v2.3.6 进一步把 MCP 真实化、把 ACA 身份与签名补全,并让 Rust/Python/JS 三端在身份与协议层跨语言对齐。三者分别服务于不同场景:
|
|
175
|
+
|
|
176
|
+
- **CLI** 让用户通过命令行直接操控节点;
|
|
177
|
+
- **REST API** 让不同软件按约定交换数据与能力;
|
|
178
|
+
- **MCP** 为 AI 提供统一工具连接标准,让大模型安全、规范地调用市场能力。
|
|
179
|
+
|
|
180
|
+
**① CLI(子命令式,二进制 `gsn`)**
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
cargo run --bin gsn -- version # 版本
|
|
184
|
+
cargo run --bin gsn -- identity # 生成 Ed25519 身份
|
|
185
|
+
cargo run --bin gsn -- daemon # 启动节点(等价 gsn-daemon)
|
|
186
|
+
cargo run --bin gsn -- mcp # 以 stdio 方式启动 MCP 服务
|
|
187
|
+
|
|
188
|
+
# market 子命令通过 HTTP API 连接运行中的节点
|
|
189
|
+
export GSN_API=http://127.0.0.1:4002 # 或用 --api 指定
|
|
190
|
+
gsn market deposit caller-1 1000 # 充值
|
|
191
|
+
gsn market balance caller-1 # 查询余额
|
|
192
|
+
gsn market register card.json # 注册智能体(也支持内联 JSON)
|
|
193
|
+
gsn market get <agent_id> # 查询智能体
|
|
194
|
+
gsn market discover translation # 按技能发现
|
|
195
|
+
gsn market search 关键词 # 搜索
|
|
196
|
+
gsn market stats # 市场统计
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**② REST API(`/api/v1/*`,同时兼容旧版 `/agents` `/tasks`)**
|
|
200
|
+
|
|
201
|
+
| 方法 & 路径 | 功能 |
|
|
202
|
+
|---|---|
|
|
203
|
+
| `POST /api/v1/accounts/:account/deposit` | 充值 |
|
|
204
|
+
| `GET /api/v1/accounts/:account/balance` | 余额 |
|
|
205
|
+
| `POST /api/v1/agents` | 注册智能体(201,需质押) |
|
|
206
|
+
| `GET /api/v1/agents?skill=` / `?q=` | 按技能发现 / 关键词搜索 |
|
|
207
|
+
| `GET /api/v1/agents/:id` | 智能体详情 |
|
|
208
|
+
| `POST /api/v1/tasks` | 发布任务(201) |
|
|
209
|
+
| `GET /api/v1/tasks` / `/:id` | 任务列表 / 详情 |
|
|
210
|
+
| `POST /api/v1/tasks/:id/bids` | 投标(201) |
|
|
211
|
+
| `POST /api/v1/tasks/:id/match` | 匹配最优智能体 |
|
|
212
|
+
| `POST /api/v1/tasks/:id/results` | 提交执行结果(201) |
|
|
213
|
+
| `POST /api/v1/tasks/:id/verify` | BFT-lite QA 验证 |
|
|
214
|
+
| `POST /api/v1/tasks/:id/settle` | 结算 |
|
|
215
|
+
| `POST /api/v1/disputes` / `:id/arbitrate` | 争议 / 仲裁 |
|
|
216
|
+
| `GET /api/v1/conservation` | 结算守恒检查 |
|
|
217
|
+
| `GET /api/v1/leaderboard?limit=` / `/stats` | 排行榜 / 统计 |
|
|
218
|
+
| `POST`·`GET /api/v1/mcp` | MCP(无状态 JSON-RPC / SSE) |
|
|
219
|
+
|
|
220
|
+
业务错误返回 `422`,资源不存在返回 `404`,注册类成功返回 `201`,`OPTIONS` 返回 `204`。
|
|
221
|
+
|
|
222
|
+
**③ MCP(18 个市场工具,支持 stdio 与 HTTP/SSE 两种传输)**
|
|
223
|
+
|
|
224
|
+
- stdio:`gsn mcp`,逐行读写 JSON-RPC(日志走 stderr),可直接接入 Claude Desktop / Cursor 等;
|
|
225
|
+
- HTTP:`POST /api/v1/mcp` 无状态 JSON-RPC,`GET /api/v1/mcp` 返回 `text/event-stream` 初始化帧。
|
|
226
|
+
|
|
227
|
+
工具命名 `market_*`,覆盖:`market_register_agent`、`market_discover_agents`、`market_publish_task`、`market_submit_bid`、`market_match_task`、`market_submit_result`、`market_verify_result`、`market_settle_task`、`market_open_dispute`、`market_arbitrate`、`market_deposit`、`market_balance`、`market_conservation`、`market_leaderboard`、`market_stats` 等共 18 个。`tools/call` 全部路由到市场 actor **真实执行**(非占位)。
|
|
228
|
+
|
|
229
|
+
> 三层均已真机验证:daemon 真实 bind P2P/API 端口,curl 走通「充值→注册→发布→投标→匹配→结果→验证→结算→守恒」完整闭环;MCP stdio 完成 `initialize` / `tools/list`(18 工具)/ `tools/call`;CLI 各子命令连接节点返回真实数据。由 155 个 Rust 测试守护,跨语言签名测试保证 Rust/Python/JS 三端身份、规范载荷与签名逐字节一致、可互验。
|
|
230
|
+
|
|
231
|
+
### Python SDK 使用
|
|
232
|
+
|
|
233
|
+
```python
|
|
234
|
+
from aip import AgentCard, Task, ShardedIndex
|
|
235
|
+
|
|
236
|
+
card = AgentCard.new(did="did:aip:demo", name="my-agent")
|
|
237
|
+
card.with_capability("text-generation")
|
|
238
|
+
|
|
239
|
+
index = ShardedIndex(num_shards=16)
|
|
240
|
+
index.put(card.did, card)
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### JS SDK 安装
|
|
244
|
+
|
|
245
|
+
**方式一:公共 npmjs(零认证,推荐)**
|
|
246
|
+
|
|
247
|
+
包已发布到公共 npm registry,任何人无需 token 即可安装:
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
npm install @twinsearth/agent-universe
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**方式二:jsDelivr 公开 CDN(无需登录 / 无需 token)**
|
|
254
|
+
|
|
255
|
+
浏览器或 Node 直接下载:
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# 一键下载主入口与全部模块(零认证)
|
|
259
|
+
BASE="https://cdn.jsdelivr.net/gh/TwinsEarth/agent-universe@main/js"
|
|
260
|
+
curl -O "$BASE/index.js" --create-dirs
|
|
261
|
+
for f in keychain models dht market aca mcp; do
|
|
262
|
+
curl -o "lib/$f.js" --create-dirs "$BASE/lib/$f.js"
|
|
263
|
+
done
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
也可在 HTML 中直接引用单文件:`https://cdn.jsdelivr.net/gh/TwinsEarth/agent-universe@main/js/index.js`
|
|
267
|
+
|
|
268
|
+
**方式三:GitHub Packages(需 GitHub token)**
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
# 包发布在 GitHub Packages registry,需先配置凭证
|
|
272
|
+
npm config set @twinsearth:registry https://npm.pkg.github.com
|
|
273
|
+
npm install @twinsearth/agent-universe
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
已发布版本:1.0.0 / 2.0.0 / 2.2.0 / 2.3.0 / 2.3.1 / 2.3.4 / 2.3.5 / 2.3.6 / 2.4.0 ~ 2.5.6,详见 [Releases](https://github.com/TwinsEarth/agent-universe/releases)。
|
|
277
|
+
|
|
278
|
+
## 版本谱系
|
|
279
|
+
|
|
280
|
+
| 版本 | 代号 | 核心特性 |
|
|
281
|
+
|------|------|----------|
|
|
282
|
+
| v1.0.0 | Genesis | 项目初始化 |
|
|
283
|
+
| v2.0.0 | Shard | 分片存储与 DHT |
|
|
284
|
+
| v2.1.0 | Bridge | 跨链桥接与经济层 |
|
|
285
|
+
| v2.2.0 | Mesh | 全对等网络 |
|
|
286
|
+
| v2.3.0 | P2P | P2P 分布式网络基础 |
|
|
287
|
+
| v2.3.1 | Swarm | 群体智能:网络结构的 Scaling Law |
|
|
288
|
+
| v2.3.2 | MCP+ACA | MCP 和 ACA 兼容 API |
|
|
289
|
+
| v2.3.3 | P2P Net | P2P 分布式网络应用 |
|
|
290
|
+
| v2.3.4 | Market | 智能体市场 Agent Market |
|
|
291
|
+
| v2.3.5 | **Client** | **跨平台客户端 + CLI/REST/MCP 重构** |
|
|
292
|
+
| v2.3.6 | **MCP/ACA** | **MCP/ACA 深化重构 + 三端跨语言可信对齐** |
|
|
293
|
+
| v2.4.0 | **Govern** | **CPU 治理轻量化:结算守恒 O(1) 增量维护 + Sandbox trait(Docker/Firecracker)** |
|
|
294
|
+
| v2.4.1 | **Layer** | **Lv1–Lv7 分层拓扑:扇入有界、边数亚二次、路由≤7 跳 + TopologyRouter 降级** |
|
|
295
|
+
| v2.4.2 | **Memory** | **个体内部记忆库 + 群体外部共享记忆库** |
|
|
296
|
+
| v2.4.3 | **3-Tier Memory** | **分层主体记忆(Lv1–Lv7)+ 跨代记忆哈希链** |
|
|
297
|
+
| v2.4.4 | **Memory+** | **个体记忆增强:标签/关键词检索、记忆评价防污染、LRU 压缩遗忘** |
|
|
298
|
+
| v2.4.5 | **Handoff** | **TransferBundle 六字段交接 + TraceLedger 审计 + 证据三级标签** |
|
|
299
|
+
| v2.4.6 | **Flywheel** | **群体智能飞轮:协同→经验→优化结构→闭环** |
|
|
300
|
+
| v2.4.7 | **Hetero LLM** | **异构 LLM 多智能体:跨智能体协同、评分内部投票、跨模型记忆协作** |
|
|
301
|
+
| v2.4.8 | **DeepSeek** | **DeepSeek 模型适配层:提示词编码、协议互转、token 编解码** |
|
|
302
|
+
| v2.4.9 | **Multi-LLM** | **OpenAI / Gemini / Anthropic 三大后端适配** |
|
|
303
|
+
| v2.5.0 | **Doubao** | **豆包 / 火山引擎方舟适配(Seed 2.1,1024K)** |
|
|
304
|
+
| v2.5.1 | **CN Models** | **国内六大模型统一适配:Kimi / 千问 / 智谱 / MiniMax / 混元 / 小米** |
|
|
305
|
+
| v2.5.2 | **Net Partition** | **国内外模型网络分区感知 + 外网不可达自动降级** |
|
|
306
|
+
| v2.5.3 | **Mesh** | **Mesh 自组网:心跳 / 广播 / 嗅探 / 会话,临时 SN↔永久身份绑定** |
|
|
307
|
+
| v2.5.4 | **Traversal** | **NAT 穿透:Circuit Relay v2 + AutoNAT + DCUtR + Ping,跨网中继** |
|
|
308
|
+
| v2.5.5 | **Relay Pool** | **Relay 节点池管理 + 多通道智能切换(默认 3 条,掉线自动补)** |
|
|
309
|
+
| v2.5.6 | **Regression** | **历史 Bug 回归套件:test/ 14 条 + Rust 网络回归,CI 强制全量回归,修新 bug 先加用例** |
|
|
310
|
+
|
|
311
|
+
详见 [RELEASES.md](RELEASES.md) 和 [releases/](releases/) 目录。
|
|
312
|
+
|
|
313
|
+
## 技术栈
|
|
314
|
+
|
|
315
|
+
- **语言**: Rust 2021 Edition + Python 3.10+
|
|
316
|
+
- **P2P**: libp2p(Kademlia DHT + GossipSub + QUIC)
|
|
317
|
+
- **加密**: Ed25519 + SHA256 + X25519
|
|
318
|
+
- **存储**: SQLite + DHT + IPFS Bitswap
|
|
319
|
+
- **合约**: Solidity(Base / Arbitrum 主网)
|
|
320
|
+
- **部署**: Mac mini M4 + launchd / Docker / systemd
|
|
321
|
+
- **CI/CD**: GitHub Actions(矩阵构建 + 自动测试)
|
|
322
|
+
|
|
323
|
+
## 贡献
|
|
324
|
+
|
|
325
|
+
欢迎贡献!请阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 了解开发流程。
|
|
326
|
+
|
|
327
|
+
## 安全
|
|
328
|
+
|
|
329
|
+
报告安全漏洞请参考 [SECURITY.md](SECURITY.md)。
|
|
330
|
+
|
|
331
|
+
## 开源协议
|
|
332
|
+
|
|
333
|
+
[MIT License](LICENSE)
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
**Agent Universe · 智能体宇宙**
|
|
338
|
+
|
|
339
|
+
*让科技造福全人类!*
|
|
340
|
+
|
|
341
|
+
## v2.3.5 跨平台客户端
|
|
342
|
+
|
|
343
|
+
v2.3.5 新增基于 Tauri 2 的跨平台客户端。客户端**源码**在仓库内,**安装包为构建产物、不入库**:在推送版本 tag 时由 [`.github/workflows/client-build.yml`](.github/workflows/client-build.yml) 在对应系统的 runner 上自动构建,并发布到 GitHub Release 下载。
|
|
344
|
+
|
|
345
|
+
**源码位置**
|
|
346
|
+
|
|
347
|
+
- 客户端工程:`client/`(前端 Vite + HTML/JS 在 `client/src/`,Rust 壳 `client/src-tauri/`,Android 工程 `client/src-tauri/gen/android`)
|
|
348
|
+
- 桌面端源码目录:`desktop/`
|
|
349
|
+
- 各平台本地构建说明:`client/platforms/`
|
|
350
|
+
|
|
351
|
+
**安装包(在 GitHub Release 下载,非仓库内路径)**
|
|
352
|
+
|
|
353
|
+
| 平台 | 产物 | 说明 |
|
|
354
|
+
|------|------|------|
|
|
355
|
+
| macOS | `.dmg` / `.app` | Apple Silicon(Intel 可本地自行构建) |
|
|
356
|
+
| Windows | `.msi` / `-setup.exe`(NSIS) | x64 |
|
|
357
|
+
| Linux | `.deb` / `.AppImage` | x64 |
|
|
358
|
+
| Android | `.apk` | universal / 分 ABI |
|
|
359
|
+
| iOS | 见 `client/ios/README.md` | 需 Apple Developer 证书与描述文件,开源仓库不内置签名成品 |
|
|
360
|
+
|
|
361
|
+
Release 下载:https://github.com/TwinsEarth/agent-universe/releases/tag/v2.3.5
|
|
362
|
+
|
|
363
|
+
**本地手动构建**
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
cd client
|
|
367
|
+
npm install
|
|
368
|
+
npm run build # 前端
|
|
369
|
+
npx tauri build # 桌面安装包(需在对应系统上,并装好平台依赖)
|
|
370
|
+
npx tauri android build --apk # Android(需 JDK + Android SDK/NDK)
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
## v2.3.6 MCP/ACA 深化与跨语言可信对齐
|
|
374
|
+
|
|
375
|
+
v2.3.6 把 MCP 从占位门面重写为真实工具协议,把 ACA 的身份与规范签名补全,并让 Rust/Python/JavaScript 三端在身份、规范载荷与签名层面逐字节对齐、可互验。
|
|
376
|
+
|
|
377
|
+
**统一身份与规范签名**
|
|
378
|
+
|
|
379
|
+
三端身份口径一致:Ed25519 原始 32 字节公钥 → SHA256 前 8 字节 → `did:aip:<16hex>`;规范载荷为移除 `signature` 键后紧凑、键按字典序、非 ASCII 不转义的 JSON 字节。
|
|
380
|
+
|
|
381
|
+
```js
|
|
382
|
+
const { AipIdentity, buildManifest } = require('@twinsearth/agent-universe');
|
|
383
|
+
const id = AipIdentity.generate();
|
|
384
|
+
const manifest = buildManifest(id, 'MyAgent', ['text-generation'], { stake: 100 });
|
|
385
|
+
AipIdentity.verifyObject(manifest, id.publicKey); // true
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
**MCP 客户端连接节点**
|
|
389
|
+
|
|
390
|
+
```js
|
|
391
|
+
const { McpHttpClient } = require('@twinsearth/agent-universe');
|
|
392
|
+
const mcp = new McpHttpClient('http://127.0.0.1:4002');
|
|
393
|
+
await mcp.initialize();
|
|
394
|
+
const tools = await mcp.listTools(); // 18 个工具,字段为规范 inputSchema
|
|
395
|
+
await mcp.callTool('market_stats', {}); // 经 daemon 真实路由执行
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
Python 侧对应 `aip.AipIdentity`、`aip.build_manifest`、`aip.McpHttpClient`、`aip.MarketClient`,与 JS/Rust 同口径。固定种子(32 字节 `0x01`)下三端公钥、DID、签名逐字节一致,篡改载荷或使用他人公钥即被拒绝。
|
|
399
|
+
|
|
400
|
+
Release 说明:https://github.com/TwinsEarth/agent-universe/releases/tag/v2.3.6
|
|
401
|
+
|
|
402
|
+
## 文档
|
|
403
|
+
|
|
404
|
+
- **版本号登记表(发版必读)**:[docs/version-checklist.md](docs/version-checklist.md) — 全仓所有版本声明点清单 + 发版 SOP;一键改版本见 `scripts/bump-version.sh`。
|
|
405
|
+
- **架构文档 v2.5.5**:[docs/architecture-v2.5.5.md](docs/architecture-v2.5.5.md) — v2.5.x 全量:Lv1–Lv7 分层拓扑、三层记忆共享、异构 LLM 适配层、网络分区降级、Mesh 自组网、Relay 池与多通道、三端跨网真机实测。
|
|
406
|
+
- **架构文档 v2.3.6**:[docs/architecture-v2.3.6.md](docs/architecture-v2.3.6.md) — 技术架构与系统框架、网络结构与安全机制、功能模块与产品功能(含分层图)。
|
|
407
|
+
- **设计文档 v2.4.0–v2.4.1**:[docs/design-v2.4.0-v2.4.1.md](docs/design-v2.4.0-v2.4.1.md) — CPU 治理轻量化与 Lv1–Lv7 分层拓扑设计。
|
|
408
|
+
- 深度分析 v2.3.4:[docs/v2.3.4-deep-analysis.md](docs/v2.3.4-deep-analysis.md)
|
|
409
|
+
- 部署与验证报告:[docs/部署与验证报告-2026-09-23.md](docs/%E9%83%A8%E7%BD%B2%E4%B8%8E%E9%AA%8C%E8%AF%81%E6%8A%A5%E5%91%8A-2026-09-23.md)
|
|
410
|
+
- 旗舰论文归档:[docs/papers/](docs/papers/) — 46 篇 × 三语言(zh / zhen / en)共 138 篇 PDF,含 P0d 群体智能旗舰。
|
package/index.d.ts
CHANGED
|
@@ -1,209 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Agent Universe - 智能体宇宙
|
|
3
|
+
* 群众化的 AGI 路线,去中心化的智能体共享 & 开源网络
|
|
4
|
+
*/
|
|
2
5
|
|
|
3
|
-
export
|
|
4
|
-
export const MIN_STAKE: number;
|
|
5
|
-
|
|
6
|
-
export class Keypair {
|
|
7
|
-
publicKey: string;
|
|
8
|
-
privateKey: string;
|
|
9
|
-
did: string;
|
|
10
|
-
static generate(): Keypair;
|
|
11
|
-
sign(message: string | Buffer): string;
|
|
12
|
-
verify(message: string | Buffer, signatureHex: string): boolean;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export class AgentCard {
|
|
16
|
-
did: string;
|
|
17
|
-
name: string;
|
|
18
|
-
capabilities: string[];
|
|
19
|
-
skills: string[];
|
|
20
|
-
version: string;
|
|
21
|
-
stake: number;
|
|
22
|
-
reputation: number;
|
|
23
|
-
static new(opts: { did: string; name: string }): AgentCard;
|
|
24
|
-
withCapability(cap: string): this;
|
|
25
|
-
withSkill(skill: string): this;
|
|
26
|
-
hasCapability(cap: string): boolean;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export const TaskStatus: Record<string, string>;
|
|
30
|
-
|
|
31
|
-
export class Task {
|
|
32
|
-
taskId: string;
|
|
33
|
-
goal: string;
|
|
34
|
-
status: string;
|
|
35
|
-
assignee: string | null;
|
|
36
|
-
history: string[];
|
|
37
|
-
constructor(taskId: string, goal: string);
|
|
38
|
-
assign(did: string): this;
|
|
39
|
-
start(): this;
|
|
40
|
-
complete(): this;
|
|
41
|
-
verify(passed: boolean): this;
|
|
42
|
-
settle(): this;
|
|
43
|
-
readonly isTerminal: boolean;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
export class MemoryDHT {
|
|
47
|
-
put(key: string, value: unknown): void;
|
|
48
|
-
get(key: string): unknown;
|
|
49
|
-
has(key: string): boolean;
|
|
50
|
-
remove(key: string): boolean;
|
|
51
|
-
readonly size: number;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export class ShardedIndex {
|
|
55
|
-
constructor(numShards?: number);
|
|
56
|
-
put(key: string, value: unknown): number;
|
|
57
|
-
get(key: string): unknown;
|
|
58
|
-
has(key: string): boolean;
|
|
59
|
-
remove(key: string): boolean;
|
|
60
|
-
readonly size: number;
|
|
61
|
-
distribution(): number[];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export function shardOf(key: string, numShards: number): number;
|
|
65
|
-
|
|
66
|
-
export class Bid {
|
|
67
|
-
agentId: string;
|
|
68
|
-
price: number;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export class Reputation {
|
|
72
|
-
quality: number;
|
|
73
|
-
speed: number;
|
|
74
|
-
honesty: number;
|
|
75
|
-
availability: number;
|
|
76
|
-
overall(): number;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export class AgentMarket {
|
|
80
|
-
agents: Map<string, unknown>;
|
|
81
|
-
tasks: Map<string, Task>;
|
|
82
|
-
deposit(account: string, amount: number): void;
|
|
83
|
-
balance(account: string): number;
|
|
84
|
-
registerAgent(card: AgentCard, stake: number): boolean;
|
|
85
|
-
publishTask(taskId: string, goal: string, budget: number, requester: string): Task;
|
|
86
|
-
submitBid(taskId: string, agentId: string, price: number): boolean;
|
|
87
|
-
matchTask(taskId: string): Bid;
|
|
88
|
-
completeTask(taskId: string, passed?: boolean): Task;
|
|
89
|
-
settle(taskId: string): { paid: number; reason: string };
|
|
90
|
-
slash(agentId: string, amount: number, reason: string): unknown;
|
|
91
|
-
discoverBySkill(skill: string): AgentCard[];
|
|
92
|
-
leaderboard(limit?: number): unknown[];
|
|
93
|
-
conservationCheck(totalDeposits: number): {
|
|
94
|
-
conserved: boolean;
|
|
95
|
-
balanceSum: number;
|
|
96
|
-
totalSlashed: number;
|
|
97
|
-
expected: number;
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
export class AgentUniverse {
|
|
102
|
-
identity: Keypair;
|
|
103
|
-
dht: MemoryDHT;
|
|
104
|
-
market: AgentMarket;
|
|
105
|
-
readonly did: string;
|
|
106
|
-
register(card: AgentCard): AgentCard;
|
|
107
|
-
discover(capability: string): AgentCard[];
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// ── MCP ──
|
|
111
|
-
export const MCP_PROTOCOL_VERSION: string;
|
|
112
|
-
|
|
113
|
-
export class McpError extends Error {
|
|
114
|
-
code: number;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export class McpHttpClient {
|
|
118
|
-
initialized: boolean;
|
|
119
|
-
constructor(baseUrl?: string, path?: string, timeout?: number);
|
|
120
|
-
initialize(): Promise<{
|
|
121
|
-
protocolVersion: string;
|
|
122
|
-
serverInfo: { name: string; version: string };
|
|
123
|
-
}>;
|
|
124
|
-
ping(): Promise<boolean>;
|
|
125
|
-
listTools(): Promise<
|
|
126
|
-
Array<{
|
|
127
|
-
name: string;
|
|
128
|
-
description?: string;
|
|
129
|
-
inputSchema: Record<string, unknown>;
|
|
130
|
-
}>
|
|
131
|
-
>;
|
|
132
|
-
callTool(
|
|
133
|
-
name: string,
|
|
134
|
-
args?: Record<string, unknown>
|
|
135
|
-
): Promise<{ content: Array<{ type: string; text: string }>; isError?: boolean }>;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
// ── ACA ──
|
|
139
|
-
export class AipIdentity {
|
|
140
|
-
did: string;
|
|
141
|
-
readonly publicKey: Buffer;
|
|
142
|
-
static generate(): AipIdentity;
|
|
143
|
-
static fromSeed(seed: Buffer | Uint8Array): AipIdentity;
|
|
144
|
-
signObject(obj: Record<string, unknown>): string;
|
|
145
|
-
signInto(obj: Record<string, unknown>): Record<string, unknown>;
|
|
146
|
-
static verifyObject(obj: Record<string, unknown>, rawPub: Buffer): boolean;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
export function buildManifest(
|
|
150
|
-
identity: AipIdentity,
|
|
151
|
-
name: string,
|
|
152
|
-
capabilities: string[],
|
|
153
|
-
opts?: Record<string, unknown>
|
|
154
|
-
): Record<string, unknown>;
|
|
155
|
-
|
|
156
|
-
export function buildEnvelope(
|
|
157
|
-
requesterDid: string,
|
|
158
|
-
capability: string,
|
|
159
|
-
outputSpec: string,
|
|
160
|
-
opts?: Record<string, unknown>
|
|
161
|
-
): Record<string, unknown>;
|
|
162
|
-
|
|
163
|
-
export function buildMessage(
|
|
164
|
-
identity: AipIdentity,
|
|
165
|
-
msgType: string,
|
|
166
|
-
toDid: string,
|
|
167
|
-
payload: unknown
|
|
168
|
-
): Record<string, unknown>;
|
|
169
|
-
|
|
170
|
-
export function buildReceipt(
|
|
171
|
-
identity: AipIdentity,
|
|
172
|
-
taskId: string,
|
|
173
|
-
result: Buffer,
|
|
174
|
-
opts?: Record<string, unknown>
|
|
175
|
-
): Record<string, unknown>;
|
|
176
|
-
|
|
177
|
-
export function handshakeMessage(
|
|
178
|
-
identity: AipIdentity,
|
|
179
|
-
manifest: Record<string, unknown>
|
|
180
|
-
): Record<string, unknown>;
|
|
181
|
-
|
|
182
|
-
export function proposalMessage(
|
|
183
|
-
identity: AipIdentity,
|
|
184
|
-
toDid: string,
|
|
185
|
-
envelope: Record<string, unknown>
|
|
186
|
-
): Record<string, unknown>;
|
|
187
|
-
|
|
188
|
-
export function receiptMessage(
|
|
189
|
-
identity: AipIdentity,
|
|
190
|
-
toDid: string,
|
|
191
|
-
receipt: Record<string, unknown>
|
|
192
|
-
): Record<string, unknown>;
|
|
193
|
-
|
|
194
|
-
export function verifyManifest(
|
|
195
|
-
manifest: Record<string, unknown>,
|
|
196
|
-
rawPub: Buffer
|
|
197
|
-
): boolean;
|
|
198
|
-
export function verifyMessage(
|
|
199
|
-
message: Record<string, unknown>,
|
|
200
|
-
rawPub: Buffer
|
|
201
|
-
): boolean;
|
|
202
|
-
export function verifyReceipt(
|
|
203
|
-
receipt: Record<string, unknown>,
|
|
204
|
-
rawPub: Buffer
|
|
205
|
-
): boolean;
|
|
206
|
-
export function verifyReceiptResult(
|
|
207
|
-
receipt: Record<string, unknown>,
|
|
208
|
-
result: Buffer
|
|
209
|
-
): boolean;
|
|
6
|
+
export * from './js/index';
|