Skip to content

去中心化 Agent 网络

版本: v1.1.0+ | W3C DID 身份 | Ed25519 认证 | VC 凭证 | 信誉评分 | 联邦 DHT 注册表 | 跨组织路由 (20 IPC)

去中心化 Agent 网络为自治 Agent 提供完整的身份、认证、信誉和协作基础设施,支持跨组织的 Agent 发现、认证和任务路由。

概述

去中心化 Agent 网络是 ChainlessChain 的 Agent 身份与协作底层,包含 W3C DID 身份、挑战-响应认证、可验证凭证(VC)、四维信誉评分、Kademlia DHT 联邦注册表和跨组织任务路由六大模块。系统通过 20 个 IPC 接口对外暴露能力,支持本地/联邦/广播三种 Agent 发现模式和四种路由策略。

核心特性

  • 🪪 W3C DID 身份: Ed25519 密钥对,did:chainless:{uuid} 格式标识
  • 🔐 挑战-响应认证: DID 私钥签名验证,支持会话管理与自动挂起
  • 📜 VC 凭证系统: CAPABILITY / DELEGATION / MEMBERSHIP 三类凭证
  • 信誉评分: 成功率/响应时间/质量/活跃度四维加权评估
  • 🌐 Kademlia DHT: 160-bit 地址空间,支持本地/联邦/广播三种发现模式
  • 🔀 跨组织路由: nearest / best-reputation / round-robin / capability-match 四种策略

系统架构

┌──────────────────────────────────────────────────┐
│            去中心化 Agent 网络 (6 模块)             │
├──────────────────────────────────────────────────┤
│                                                    │
│  ┌──────────┐  ┌──────────────┐  ┌────────────┐  │
│  │ AgentDID │  │ Authenticator│  │ Credential │  │
│  │ (身份)   │  │ (认证器)      │  │ Manager    │  │
│  └────┬─────┘  └──────┬───────┘  └─────┬──────┘  │
│       │                │                │          │
│  ┌────▼────────────────▼────────────────▼──────┐  │
│  │       Federated Agent Registry (DHT)        │  │
│  │       本地注册表 | 联邦查询 | 广播发现        │  │
│  └─────────────────────┬──────────────────────┘  │
│                        │                          │
│  ┌──────────┐  ┌───────▼──────┐  ┌────────────┐  │
│  │Reputation│  │ CrossOrg     │  │ SQLite     │  │
│  │ System   │←→│ TaskRouter   │  │ (4 tables) │  │
│  └──────────┘  └──────────────┘  └────────────┘  │
└──────────────────────────────────────────────────┘

系统概述

模块架构

去中心化 Agent 网络 (6 模块)
├─ AgentDID                    — W3C DID 身份管理
├─ AgentAuthenticator          — DID 挑战-响应认证
├─ AgentCredentialManager      — VC 凭证发行/验证
├─ AgentReputation             — 信誉评分系统
├─ FederatedAgentRegistry      — 联邦 DHT 注册表
└─ CrossOrgTaskRouter          — 跨组织任务路由

Agent DID 身份

DID 格式

did:chainless:{uuid}
│    │         │
│    │         └─ 唯一标识符 (UUID)
│    └────────── DID 方法名
└─────────────── DID 前缀

密钥管理

  • 算法: Ed25519(椭圆曲线签名)
  • 密钥对: 每个 Agent 拥有独立的公钥/私钥
  • 能力声明: DID 文档中声明 Agent 的能力(技能列表)

DID 生命周期

创建 → active ←→ suspended → revoked
状态说明
active正常活跃状态
suspended临时挂起(连续认证失败 5 次自动触发)
revoked永久吊销,不可恢复

配置

json
{
  "agentDID": {
    "keyAlgorithm": "ed25519",
    "challengeExpiryMs": 300000,
    "maxDIDsPerOrganization": 1000,
    "autoSuspendOnFailedAuth": 5
  }
}

Agent 认证

认证方式

方式说明安全级别
did-challengeDID 挑战-响应(默认)
credential-proofVC 凭证证明
mutual-tls双向 TLS最高

挑战-响应流程

Agent A                              Agent B
  │                                     │
  ├── 请求认证 ──────────────────────→  │
  │                                     ├── 生成随机挑战
  │  ←────── 返回挑战 ──────────────── ├
  ├── 用私钥签名挑战                     │
  ├── 发送签名 ──────────────────────→  │
  │                                     ├── 用 A 的公钥验证签名
  │  ←────── 认证成功 / 会话 Token ──── ├
  │                                     │

会话管理

  • 会话 TTL: 1 小时(可配置)
  • 定期清理过期会话和挑战
  • 会话持久化到 agent_auth_sessions

VC 凭证系统

凭证类型

类型说明
CAPABILITY能力凭证(声明 Agent 具有某项技能)
DELEGATION委托凭证(授权 Agent 代理执行)
MEMBERSHIP成员凭证(证明属于某个组织)

凭证结构

json
{
  "id": "cred-uuid",
  "issuer": "did:chainless:issuer-uuid",
  "subject": "did:chainless:subject-uuid",
  "type": "CAPABILITY",
  "claims": {
    "skill": "code-review",
    "level": "expert"
  },
  "issuedAt": "2026-01-15T10:00:00Z",
  "expiresAt": "2027-01-15T10:00:00Z",
  "proof": "ed25519-signature..."
}

凭证生命周期

颁发 → VALID → EXPIRED (自动过期)
              → REVOKED (主动吊销)
  • 每个 Agent 最多持有 100 个凭证
  • 支持凭证链验证(A 颁发给 B,B 委托给 C)
  • 吊销注册表实现即时失效

信誉评分

评分维度

总分 = 成功率 × 0.4 + 响应时间 × 0.2 + 质量 × 0.3 + 活跃度 × 0.1
维度权重说明
成功率40%任务完成成功比例
响应时间20%平均响应速度
质量30%任务输出质量评分
活跃度10%近期活跃程度

信誉等级

等级分数范围说明
TRUSTED>= 0.8高度信任
RELIABLE>= 0.6可靠
NEUTRAL>= 0.3中立
UNTRUSTED< 0.3不信任

时间衰减

  • 衰减因子: 0.98 / 24小时
  • 长期不活跃的 Agent 信誉自动降低
  • 每个 Agent 保留最近 200 条历史记录

联邦 DHT 注册表

Kademlia 风格 DHT

注册表架构:
├─ 本地注册表 (单机发现)
├─ 联邦查询 (向 Peer 节点查询)
└─ 广播发现 (全网广播)

路由表:
  160-bit 空间, 20 个 K-bucket
  每个 bucket 最多容纳 20 个节点

Agent 注册

json
{
  "did": "did:chainless:agent-uuid",
  "capabilities": ["code-review", "unit-test", "deploy"],
  "organization": "org-uuid",
  "status": "ONLINE",
  "lastHeartbeat": "2026-01-15T10:00:00Z"
}

发现模式

模式说明延迟
local仅本地注册表
federated向邻居节点查询
broadcast全网广播

心跳机制

  • Agent 定期发送心跳(建议每 2 分钟)
  • 10 分钟无心跳 → 标记为 OFFLINE
  • 支持按能力索引快速反向查询

跨组织任务路由

路由策略

策略说明
nearest选择延迟最低的 Agent
best-reputation选择信誉最高的 Agent
round-robin轮询分配
capability-match能力最匹配的 Agent

路由流程

1. 任务创建 → pending
2. 从联邦注册表发现候选 Agent → routing
3. 按策略筛选和排序
4. 验证候选 Agent 的凭证
5. 分配给最优 Agent → executing
6. Agent 执行任务
7. 返回结果 → completed / failed

任务配置

json
{
  "maxConcurrentTasks": 50,
  "routingStrategy": "best-reputation",
  "taskTimeoutMs": 300000,
  "minReputationScore": 0.3
}

数据库表

表名说明
agent_didsAgent DID 身份(公私钥、能力、状态)
agent_auth_sessions认证会话
agent_credentialsVC 凭证(颁发者/持有者/声明/证明)
agent_reputation信誉评分及历史

关键文件

文件职责
src/main/ai-engine/cowork/agent-did.jsAgent DID 身份管理
src/main/ai-engine/cowork/agent-authenticator.jsDID 认证器
src/main/ai-engine/cowork/agent-credential-manager.jsVC 凭证管理
src/main/ai-engine/cowork/agent-reputation.js信誉评分系统
src/main/ai-engine/cowork/federated-agent-registry.js联邦 DHT 注册表
src/main/ai-engine/cowork/cross-org-task-router.js跨组织任务路由
src/main/ai-engine/cowork/evolution-ipc.jsIPC 处理器(含 Agent 网络相关)

使用示例

创建 Agent 身份并加入网络

  1. 打开「去中心化 Agent 网络」页面
  2. 点击「创建 DID」,系统自动生成 Ed25519 密钥对
  3. 填写 Agent 能力声明(如 code-review、unit-test)
  4. 点击「注册到联邦网络」,Agent 信息广播到 DHT

发起跨组织任务

  1. 在「Agent 发现」面板中按能力搜索目标 Agent
  2. 查看候选 Agent 的信誉评分和在线状态
  3. 选择路由策略(推荐 best-reputation)并提交任务
  4. 在「任务追踪」面板查看执行进度和结果

颁发能力凭证

  1. 切换到「VC 凭证」标签页
  2. 选择凭证类型(CAPABILITY / DELEGATION / MEMBERSHIP)
  3. 填写持有者 DID 和能力声明
  4. 确认颁发,凭证自动签名并存储

故障排查

问题可能原因解决方案
DID 创建失败Ed25519 密钥生成环境异常检查 Node.js crypto 模块可用性,重启应用重试
Agent 注册后无法被发现DHT 路由表未同步等待 2-3 分钟心跳周期,确认网络连接正常
认证挑战超时挑战有效期过短或网络延迟高调大 challengeExpiryMs 配置(默认 300000ms)
凭证验证失败颁发者 DID 已被吊销或凭证过期检查颁发者 DID 状态和凭证 expiresAt 字段
信誉评分异常偏低时间衰减因子导致长期不活跃降分增加任务执行频率,检查近期失败任务原因
跨组织路由找不到 Agent目标组织节点离线或能力不匹配确认目标 Agent 在线状态,放宽 minReputationScore
心跳超时被标记离线网络抖动或进程被系统挂起检查网络稳定性,确认后台进程未被休眠

配置参考

各模块完整配置项说明:

Agent DID 配置

配置项类型默认值说明
agentDID.keyAlgorithmstring"ed25519"密钥算法(目前仅支持 ed25519)
agentDID.challengeExpiryMsnumber300000认证挑战有效期(ms)
agentDID.maxDIDsPerOrganizationnumber1000每个组织最多创建的 DID 数量
agentDID.autoSuspendOnFailedAuthnumber5连续认证失败多少次后自动挂起 DID

联邦 DHT 配置

配置项类型默认值说明
federatedRegistry.heartbeatIntervalMsnumber120000Agent 心跳发送间隔(ms)
federatedRegistry.offlineThresholdMsnumber600000无心跳超过此时间标记为 OFFLINE
federatedRegistry.kBucketSizenumber20DHT K-bucket 每桶最大节点数
federatedRegistry.discoveryModestring"federated"默认发现模式(local/federated/broadcast)

信誉系统配置

配置项类型默认值说明
reputation.decayFactornumber0.98每 24 小时信誉衰减系数
reputation.maxHistoryRecordsnumber200每个 Agent 保留的最大历史条数
reputation.minReputationScorenumber0.3跨组织路由的最低信誉准入分

跨组织路由配置

配置项类型默认值说明
crossOrg.maxConcurrentTasksnumber50系统级最大并发跨组织任务数
crossOrg.routingStrategystring"best-reputation"默认路由策略
crossOrg.taskTimeoutMsnumber300000任务执行超时时间(ms)

完整配置示例

json
{
  "agentDID": {
    "keyAlgorithm": "ed25519",
    "challengeExpiryMs": 300000,
    "maxDIDsPerOrganization": 1000,
    "autoSuspendOnFailedAuth": 5
  },
  "federatedRegistry": {
    "heartbeatIntervalMs": 120000,
    "offlineThresholdMs": 600000,
    "discoveryMode": "federated"
  },
  "reputation": {
    "decayFactor": 0.98,
    "maxHistoryRecords": 200,
    "minReputationScore": 0.3
  },
  "crossOrg": {
    "maxConcurrentTasks": 50,
    "routingStrategy": "best-reputation",
    "taskTimeoutMs": 300000
  }
}

性能指标

基准测试数据(v1.1.0,单节点,16 GB RAM)

操作P50 延迟P99 延迟吞吐量
DID 创建(Ed25519 密钥对生成)10 ms40 ms100 ops/s
DID 解析(本地 SQLite 查询)< 1 ms5 ms8000 ops/s
认证挑战生成2 ms8 ms3000 ops/s
挑战-响应验证(Ed25519 验签)4 ms15 ms1500 ops/s
VC 凭证颁发(含签名)6 ms25 ms150 ops/s
VC 凭证链式验证(3 层委托)15 ms60 ms200 ops/s
Agent 本地注册表查询1 ms5 ms5000 ops/s
联邦 DHT 发现(10 跳以内)60 ms280 ms250 ops/s
信誉评分更新5 ms20 ms600 ops/s
跨组织任务路由(含凭证验证)40 ms180 ms120 ops/s

容量规划

指标单节点上限集群推荐上限
在线 Agent 数10,000100,000
每秒认证请求1,50015,000
并发跨组织任务50500
DHT 路由表节点20 × 160 = 3,200按分片扩展
VC 凭证总量(含过期)100,000无限制(按需分库)

SQLite 表容量参考

  • agent_dids: 1 万条记录 < 10 MB
  • agent_auth_sessions: 活跃会话通常 < 1000 条,自动清理过期会话
  • agent_credentials: 每 Agent 上限 100 条,10 万 Agent 约 80 MB
  • agent_reputation: 每 Agent 保留 200 条历史,10 万 Agent 约 400 MB

测试覆盖率

测试文件

文件测试数覆盖模块
tests/unit/ai-engine/agent-did.test.js30DID 创建/解析/撤销、状态机(active→suspended→revoked)
tests/unit/ai-engine/agent-authenticator.test.js25挑战生成、Ed25519 验签、会话管理、自动挂起
tests/unit/ai-engine/agent-credential-manager.test.js24CAPABILITY/DELEGATION/MEMBERSHIP 凭证、链式委托、吊销
tests/unit/ai-engine/agent-reputation.test.js22四维评分公式、时间衰减、等级阈值、排行榜
tests/unit/ai-engine/federated-agent-registry.test.js32本地/联邦/广播三种发现模式、DHT K-bucket、心跳超时
tests/unit/ai-engine/cross-org-task-router.test.js28四种路由策略、任务状态机、超时、SLA 执行
tests/integration/agent-network-e2e.test.js18完整注册→认证→委派→执行→信誉更新端到端流程

合计: 179 个测试用例,行覆盖率 ≥ 89%

运行测试

bash
# 全量 Agent 网络单元测试(建议分批避免 OOM)
cd desktop-app-vue && npx vitest run tests/unit/ai-engine/agent-did tests/unit/ai-engine/agent-authenticator tests/unit/ai-engine/agent-credential-manager

cd desktop-app-vue && npx vitest run tests/unit/ai-engine/agent-reputation tests/unit/ai-engine/federated-agent-registry tests/unit/ai-engine/cross-org-task-router

# 集成端到端测试
cd desktop-app-vue && npx vitest run tests/integration/agent-network-e2e

# 快速冒烟(DID + 认证核心路径)
cd desktop-app-vue && npx vitest run tests/unit/ai-engine/agent-did tests/unit/ai-engine/agent-authenticator

安全考虑

  • 密钥保护: Agent 私钥仅存储在本地 SQLite(SQLCipher 加密),不通过网络传输
  • 挑战-响应防重放: 每次认证生成唯一随机挑战,签名包含时间戳防止重放攻击
  • 凭证链验证: 支持多层委托验证(A→B→C),吊销注册表实现即时失效
  • 信誉防刷: 信誉评分基于实际任务完成质量,单次任务权重有上限防止刷分
  • DID 自动挂起: 连续认证失败 5 次自动挂起 DID,防止暴力破解
  • DHT 隔离: 每个组织维护独立的本地注册表,联邦查询需经过认证
  • 任务路由鉴权: 跨组织任务分配前验证候选 Agent 的 VC 凭证有效性
  • 数据最小化: DHT 中仅存储 Agent 公钥和能力声明,不包含敏感业务数据

相关文档

基于 MIT 许可发布