Skip to content

去中心化 Agent 网络

模块概述

版本: v4.0.0 状态: ✅ 已实现 IPC处理器: 20个 最后更新: 2026-03-05

基于 W3C DID 和可验证凭证的去中心化 Agent 网络。支持 Agent 身份管理、声誉系统、联邦注册中心、跨组织任务路由和凭证管理,实现多组织间的可信 Agent 协作。

核心特性

  • Agent DID: W3C DID 格式 (did:chainless:{uuid}),Ed25519 密钥
  • 声誉系统: 多维度评分 + 衰减机制
  • 联邦注册: Kademlia DHT (160 k-buckets, k=20) 分布式注册
  • 跨组织路由: 跨组织任务分配 + 能力匹配
  • 凭证管理: W3C VC + AES-256-CBC 加密 + HMAC-SHA256 证明
  • 认证会话: 挑战-响应认证 + 会话管理

1. 架构设计

1.1 整体架构图

┌──────────────────────────────────────────────────────────────────┐
│                        前端 (Vue3)                                │
├──────────────────────────────────────────────────────────────────┤
│                     Agent 网络管理界面                             │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────────────────┐   │
│  │ DID管理   │ │ 声誉面板  │ │ 注册中心  │ │ 跨组织任务         │   │
│  └──────────┘ └──────────┘ └──────────┘ └───────────────────┘   │
└──────────────────────────────────────────────────────────────────┘
                              ↕ IPC (20个通道)
┌──────────────────────────────────────────────────────────────────┐
│                        主进程 (Electron)                          │
├──────────────────────────────────────────────────────────────────┤
│              decentralized-network-ipc.js (521行)                 │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │  AgentDID (1,128行)              │  AgentReputation (639行) │  │
│  │  W3C DID 身份管理                │  多维声誉评分            │  │
│  │  Ed25519 密钥对                  │  衰减 + 加权聚合         │  │
│  │  DID Document 生成               │                          │  │
│  └────────────────────────────────────────────────────────────┘  │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │  FederatedAgentRegistry (1,090行) │ AgentAuthenticator(941) │  │
│  │  Kademlia DHT                    │  挑战-响应认证           │  │
│  │  160 k-buckets, k=20            │  会话管理 + 清理         │  │
│  │  Peer 同步                       │                          │  │
│  └────────────────────────────────────────────────────────────┘  │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │  AgentCredentialManager (978行)  │ CrossOrgTaskRouter(1,090)│  │
│  │  W3C VC 凭证                    │  跨组织任务路由           │  │
│  │  AES-256-CBC 加密               │  能力匹配 + 负载均衡     │  │
│  │  HMAC-SHA256 证明               │  任务追踪 + 超时         │  │
│  └────────────────────────────────────────────────────────────┘  │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │                    SQLite Database (7 tables)               │  │
│  └────────────────────────────────────────────────────────────┘  │
└──────────────────────────────────────────────────────────────────┘

1.2 Agent 认证流程

Agent A → 请求认证

AgentAuthenticator → 生成 challenge (随机字节)

Agent A → 用私钥签名 challenge

AgentAuthenticator → 验证签名 (Ed25519 公钥)

创建 session → 返回 sessionToken

后续请求携带 sessionToken → 验证会话有效性

1.3 Kademlia DHT 结构

┌─────────────────────────────────────┐
│     FederatedAgentRegistry          │
│                                     │
│  ┌─────────────────────────────┐    │
│  │  Kademlia Routing Table     │    │
│  │  160 k-buckets              │    │
│  │  每桶最多 k=20 个节点       │    │
│  │  XOR 距离度量               │    │
│  └─────────────────────────────┘    │
│                                     │
│  ┌─────────────────────────────┐    │
│  │  Peer 同步                  │    │
│  │  心跳检测 (60s 间隔)        │    │
│  │  超时清理 (300s)            │    │
│  └─────────────────────────────┘    │
└─────────────────────────────────────┘

1.4 核心组件

组件文件行数说明
AgentDIDagent-did.js1,128W3C DID 身份管理
AgentReputationagent-reputation.js639多维声誉系统
FederatedAgentRegistryfederated-agent-registry.js1,090Kademlia DHT 注册
AgentAuthenticatoragent-authenticator.js941挑战-响应认证
AgentCredentialManageragent-credential-manager.js978W3C VC 凭证管理
CrossOrgTaskRoutercross-org-task-router.js1,090跨组织任务路由
Network IPCdecentralized-network-ipc.js52120个IPC处理器

2. 核心模块

2.1 AgentDID

javascript
class AgentDID extends EventEmitter {
  async initialize(database)

  // DID 管理
  async createDID(metadata?)                 // 创建 DID (did:chainless:{uuid})
  async resolveDID(did)                      // 解析 DID Document
  async updateDIDDocument(did, updates)      // 更新 DID Document
  async deactivateDID(did)                   // 停用 DID
  async listDIDs(options?)                   // 列出所有 DID

  // 密钥管理
  async getKeyPair(did)                      // 获取 Ed25519 密钥对
  async rotateKeys(did)                      // 轮换密钥
  async sign(did, data)                      // 使用私钥签名
  async verify(did, data, signature)         // 验证签名
}

DID Document 格式:

json
{
  "@context": "https://www.w3.org/ns/did/v1",
  "id": "did:chainless:550e8400-e29b-41d4-a716-446655440000",
  "verificationMethod": [
    {
      "id": "did:chainless:...#key-1",
      "type": "Ed25519VerificationKey2020",
      "publicKeyMultibase": "z6Mk..."
    }
  ],
  "authentication": ["did:chainless:...#key-1"],
  "service": [
    {
      "id": "did:chainless:...#agent-service",
      "type": "AgentService",
      "serviceEndpoint": "..."
    }
  ]
}

2.2 AgentReputation

javascript
class AgentReputation extends EventEmitter {
  async initialize(database)

  // 声誉操作
  async getReputation(agentDid)              // 获取声誉
  async updateReputation(agentDid, dimension, score, evidence?)
  async getReputationHistory(agentDid, limit?)
  async getTopAgents(dimension?, limit?)

  // 维度
  // reliability: 可靠性 (任务完成率)
  // quality: 质量 (输出质量评分)
  // speed: 速度 (响应时间)
  // cooperation: 合作性 (协作评价)
}

声誉计算:

总分 = Σ(dimension_score × dimension_weight) / Σ(weights)
衰减: score *= 0.95 (每周)
范围: 0.0 ~ 5.0

2.3 FederatedAgentRegistry

javascript
class FederatedAgentRegistry extends EventEmitter {
  async initialize(database)

  // 注册/发现
  async register(agentInfo)                  // 注册 Agent
  async unregister(agentDid)                 // 注销 Agent
  async discover(query)                      // 发现 Agent (能力匹配)
  async getAgent(agentDid)                   // 获取 Agent 信息

  // DHT 操作
  async addPeer(peerInfo)                    // 添加 Peer 节点
  async removePeer(peerId)                   // 移除 Peer
  async syncWithPeer(peerId)                 // 同步数据

  // 心跳
  async heartbeat(agentDid)                  // 心跳更新
  _startCleanupTimer()                       // 启动清理定时器
}

2.4 AgentCredentialManager

javascript
class AgentCredentialManager extends EventEmitter {
  async initialize(database)

  // 凭证管理
  async issueCredential(issuerDid, subjectDid, claims) // 签发凭证
  async verifyCredential(credential)                    // 验证凭证
  async revokeCredential(credentialId)                  // 撤销凭证
  async listCredentials(agentDid, options?)              // 列出凭证
  async getCredential(credentialId)                     // 获取凭证

  // 加密
  _encrypt(data, key)            // AES-256-CBC 加密
  _decrypt(data, key)            // AES-256-CBC 解密
  _createProof(data, key)        // HMAC-SHA256 证明
}

2.5 CrossOrgTaskRouter

javascript
class CrossOrgTaskRouter extends EventEmitter {
  async initialize(database)

  // 任务路由
  async routeTask(task)                      // 路由任务到合适 Agent
  async getTaskStatus(taskId)                // 获取任务状态
  async cancelTask(taskId)                   // 取消任务
  async listTasks(orgId, options?)           // 列出任务

  // 能力匹配
  async findCapableAgents(requirements)      // 查找匹配 Agent
  async updateCapabilities(agentDid, capabilities) // 更新能力

  // 负载均衡
  _selectAgent(candidates)                   // 选择最优 Agent
  _checkLoad(agentDid)                       // 检查 Agent 负载
}

3. 数据模型

3.1 agent_dids

字段类型说明
didTEXT PKDID 标识符 (did:chainless:{uuid})
public_keyTEXTEd25519 公钥 (hex)
private_key_encryptedTEXT加密的私钥 (AES-256-CBC)
did_documentTEXT(JSON)DID Document
metadataTEXT(JSON)附加元数据
statusTEXT状态 (active/deactivated)
created_atINTEGER创建时间
updated_atINTEGER更新时间

3.2 agent_reputation

字段类型说明
idTEXT PK记录ID
agent_didTEXTAgent DID
dimensionTEXT评分维度
scoreREAL评分 (0.0-5.0)
evidenceTEXT评分依据
created_atINTEGER创建时间

3.3 federated_agent_registry

字段类型说明
agent_didTEXT PKAgent DID
org_idTEXT组织ID
capabilitiesTEXT(JSON)能力列表
endpointTEXT服务端点
statusTEXT状态 (online/offline)
last_heartbeatINTEGER最后心跳
created_atINTEGER创建时间

3.4 federated_registry_peers

字段类型说明
peer_idTEXT PKPeer 节点ID
endpointTEXTPeer 端点
k_bucketINTEGER所属 k-bucket
last_seenINTEGER最后活跃
created_atINTEGER创建时间

3.5 agent_auth_sessions

字段类型说明
session_idTEXT PK会话ID
agent_didTEXTAgent DID
tokenTEXT会话 Token
challengeTEXT认证挑战
statusTEXT状态 (pending/active/expired)
expires_atINTEGER过期时间
created_atINTEGER创建时间

3.6 agent_credentials

字段类型说明
idTEXT PK凭证ID
issuer_didTEXT签发者 DID
subject_didTEXT持有者 DID
typeTEXT凭证类型
claimsTEXT(JSON)凭证声明
proofTEXTHMAC-SHA256 证明
statusTEXT状态 (active/revoked)
issued_atINTEGER签发时间
expires_atINTEGER过期时间

3.7 federated_task_log

字段类型说明
task_idTEXT PK任务ID
source_orgTEXT发起组织
target_orgTEXT目标组织
agent_didTEXT执行 Agent
task_typeTEXT任务类型
statusTEXT状态 (pending/running/completed/failed)
resultTEXT(JSON)执行结果
created_atINTEGER创建时间
completed_atINTEGER完成时间

4. IPC接口 (20个)

4.1 DID管理 (4个)

通道说明参数
agent-network:create-did创建Agent DIDmetadata?
agent-network:resolve-did解析DID Documentdid
agent-network:list-dids列出所有DIDoptions?
agent-network:deactivate-did停用DIDdid

4.2 联邦注册 (4个)

通道说明参数
agent-network:register注册AgentagentInfo
agent-network:unregister注销AgentagentDid
agent-network:discover发现Agentquery
agent-network:heartbeat心跳更新agentDid

4.3 凭证管理 (3个)

通道说明参数
agent-network:issue-credential签发凭证issuerDid, subjectDid, claims
agent-network:verify-credential验证凭证credential
agent-network:list-credentials列出凭证agentDid, options?

4.4 跨组织路由 (4个)

通道说明参数
agent-network:route-task路由任务task
agent-network:get-task-status任务状态taskId
agent-network:cancel-task取消任务taskId
agent-network:list-tasks列出任务orgId, options?

4.5 声誉系统 (4个)

通道说明参数
agent-network:get-reputation获取声誉agentDid
agent-network:update-reputation更新声誉agentDid, dimension, score
agent-network:get-top-agents排行榜dimension?, limit?
agent-network:get-reputation-history声誉历史agentDid, limit?

4.6 配置 (1个)

通道说明参数
agent-network:get-config获取网络配置-

5. 事件

事件负载说明
did:createdDID 创建
agent:registeredAgent 注册
agent:offlineAgent 离线
credential:issued凭证签发
credential:revoked凭证撤销
task:routed任务路由
task:completed任务完成
reputation:updated声誉更新

6. 文件结构

desktop-app-vue/src/main/ai-engine/cowork/
├── agent-did.js                     # W3C DID 身份管理 (1,128行)
├── agent-reputation.js              # 多维声誉系统 (639行)
├── federated-agent-registry.js      # Kademlia DHT 注册 (1,090行)
├── agent-authenticator.js           # 挑战-响应认证 (941行)
├── agent-credential-manager.js      # W3C VC 凭证管理 (978行)
├── cross-org-task-router.js         # 跨组织任务路由 (1,090行)
└── decentralized-network-ipc.js     # 20个IPC处理器 (521行)

7. 相关文档


文档版本: 1.0 最后更新: 2026-03-05

基于 MIT 许可发布