Skip to content

代理联邦网络

v1.1.0 新功能

概述

代理联邦网络是 ChainlessChain 的去中心化 Agent 协作基础设施,提供 DID 身份管理、联邦发现、可验证凭证和跨组织任务路由能力。它使不同组织的 AI Agent 能够通过去中心化身份互相认证、按技能发现协作伙伴,并在 SLA 保障下完成跨组织的智能任务分配。

核心特性

  • 🪪 DID 身份管理: 去中心化 Agent 身份创建、解析与撤销
  • 🔍 联邦发现: 自动注册到网络,按技能发现可用 Agent
  • 📜 可验证凭证: 颁发、验证、撤销 Agent 能力与委托凭证
  • 🌐 跨组织路由: 跨组织边界的智能任务分配与 SLA 保障
  • 信誉评估: 基于任务完成质量的去中心化信誉评分系统
  • 🛡️ 安全认证: DID 挑战-响应双向认证,会话 Token 管理

系统架构

┌──────────────────────────────────────────────┐
│              代理联邦网络                       │
├──────────────────────────────────────────────┤
│                                                │
│  ┌──────────┐  ┌──────────┐  ┌────────────┐  │
│  │ Agent    │  │ Federated│  │ Credential │  │
│  │ DID      │  │ Registry │  │ Manager    │  │
│  │ (身份)   │  │ (注册表)  │  │ (凭证)    │  │
│  └────┬─────┘  └────┬─────┘  └─────┬──────┘  │
│       │              │              │          │
│  ┌────▼──────────────▼──────────────▼──────┐  │
│  │        Cross-Org Task Router            │  │
│  │        (跨组织任务路由)                   │  │
│  └─────────────────┬──────────────────────┘  │
│                    │                          │
│  ┌─────────────────▼──────────────────────┐  │
│  │         Reputation System              │  │
│  │         (信誉评分与排行)                 │  │
│  └────────────────────────────────────────┘  │
└──────────────────────────────────────────────┘

系统概述

代理联邦网络(Agent Federation)实现去中心化的 AI 代理协作,支持 DID 身份管理、代理发现、跨组织任务路由和信誉评估,构建可信的分布式 AI 代理网络。

核心能力

  • Agent DID:去中心化身份标识,支持创建、解析、撤销
  • 联邦注册与发现:代理自动注册到联邦网络,按技能发现代理
  • 可验证凭证:颁发、验证、撤销代理能力凭证
  • 跨组织任务路由:跨组织边界的智能任务分配和执行
  • 信誉系统:基于任务完成质量的去中心化信誉评估

IPC 通道

Agent DID

通道说明
agent-did:create创建 DID
agent-did:resolve解析 DID
agent-did:get-all获取所有 DID
agent-did:revoke撤销 DID

联邦注册

通道说明
fed-registry:discover发现代理
fed-registry:register注册代理
fed-registry:query-skills按技能查询
fed-registry:get-network-stats获取网络统计

可验证凭证

通道说明
agent-cred:issue颁发凭证
agent-cred:verify验证凭证
agent-cred:revoke撤销凭证

跨组织任务

通道说明
cross-org:route-task路由任务
cross-org:get-task-status获取任务状态
cross-org:cancel-task取消任务
cross-org:get-log获取任务日志

信誉系统

通道说明
reputation:get-score获取信誉分
reputation:get-ranking获取排行榜
reputation:update更新信誉
reputation:get-history获取信誉历史

配置

通道说明
decentralized:get-config获取去中心化配置

配置

.chainlesschain/config.json 中配置:

json
{
  "agentFederation": {
    "enabled": true,
    "registryUrl": "https://registry.chainlesschain.io",
    "autoRegister": true,
    "autoDiscover": true,
    "discoverInterval": 300000,
    "reputation": {
      "initialScore": 5.0,
      "decayFactor": 0.95,
      "minTasksForRanking": 3
    },
    "crossOrg": {
      "maxConcurrentTasks": 5,
      "defaultTimeout": 300000,
      "slaEnforcement": true
    }
  }
}

使用示例

加入联邦网络

  1. 打开「去中心化代理网络」页面
  2. 点击「创建 DID」生成代理身份
  3. 点击「注册代理」加入联邦网络
  4. 系统自动广播技能到网络

委派跨组织任务

  1. 在「代理发现」标签页搜索目标技能
  2. 从在线代理列表中选择合适的代理
  3. 点击「委派任务」,填写任务类型和描述
  4. 在「跨组织任务」标签页跟踪任务进度

信誉查看

  1. 切换到「信誉排行」标签页
  2. 查看全网代理信誉排行榜
  3. 点击代理查看详细信誉历史

故障排除

问题解决方案
DID 创建失败检查密钥生成环境和权限
发现不到代理确认网络连接和注册中心地址
任务路由失败检查目标代理在线状态和 SLA 配置
信誉分异常查看信誉历史确认是否有负面事件

联邦节点不可达

现象: 调用 fed-registry:discoverfed-registry:register 超时或返回连接失败。

排查步骤:

  1. 确认 registryUrl 配置地址正确且可访问(curl 或浏览器测试)
  2. 检查本地网络代理/防火墙设置是否阻断了外部请求
  3. 确认 autoDiscoverautoRegister 是否为 true
  4. 查看日志中是否有 DNS 解析或 TLS 证书校验错误

DID 认证失败(挑战-响应错误)

现象: 跨组织调用时返回认证失败,Agent 被拒绝访问。

排查步骤:

  1. 确认本地 Agent DID 的 Ed25519 密钥未过期或被撤销
  2. 检查双方系统时间差是否在允许范围内(时间戳验证依赖时钟同步)
  3. 确认会话 Token 未过期(默认 TTL 1 小时),过期后需重新认证
  4. 查看 agent-did:resolve 是否能正常解析对方 DID 文档

跨组织任务超时

现象: cross-org:route-task 长时间无响应或返回超时错误。

排查步骤:

  1. 检查 crossOrg.defaultTimeout 配置是否设置过短(默认 300000ms)
  2. 确认目标 Agent 在线并有空闲处理能力(maxConcurrentTasks 未超限)
  3. 查看 cross-org:get-task-status 确认任务是否卡在某个中间状态
  4. 若目标 Agent 持续不响应,检查其心跳状态或尝试更换目标 Agent

故障排查

常见问题

症状可能原因解决方案
节点注册失败DID 格式错误或注册服务不可达验证 DID 格式,检查联邦注册中心网络连通性
跨组织路由超时目标组织防火墙阻断或路由表过期检查网络策略,执行 federation route-refresh
认证令牌过期Token TTL 过短或时钟偏移增大 tokenTTL 配置,同步系统时钟(NTP)
Agent 心跳丢失网络抖动或心跳间隔过长缩短 heartbeatInterval,检查网络稳定性
联邦发现服务无响应发现服务未启动或端口被占用重启发现服务,确认端口未冲突

常见错误修复

错误: REGISTRATION_FAILED 节点注册被拒

bash
# 检查 DID 有效性
chainlesschain did list --verbose

# 重新注册节点
chainlesschain a2a register --force --did <your-did>

错误: ROUTE_TIMEOUT 跨组织路由超时

bash
# 刷新路由表
chainlesschain a2a route-refresh

# 测试目标组织连通性
chainlesschain a2a ping --org <target-org-id>

错误: AUTH_TOKEN_EXPIRED 认证过期

bash
# 重新获取认证令牌
chainlesschain a2a auth-renew --agent-did <your-did>

# 检查系统时钟同步状态
chainlesschain doctor --check ntp

配置参考

完整配置项说明(.chainlesschain/config.json):

配置项类型默认值说明
agentFederation.enabledbooleantrue是否启用联邦网络
agentFederation.registryUrlstring"https://registry.chainlesschain.io"联邦注册中心地址
agentFederation.autoRegisterbooleantrue启动时自动注册到联邦网络
agentFederation.autoDiscoverbooleantrue自动发现并缓存网络中的 Agent
agentFederation.discoverIntervalnumber300000自动发现轮询间隔(ms)
agentFederation.reputation.initialScorenumber5.0新 Agent 初始信誉分(0–10)
agentFederation.reputation.decayFactornumber0.95每次衰减周期的信誉折损系数
agentFederation.reputation.minTasksForRankingnumber3进入排行榜所需最少完成任务数
agentFederation.crossOrg.maxConcurrentTasksnumber5单 Agent 最大并发跨组织任务数
agentFederation.crossOrg.defaultTimeoutnumber300000跨组织任务默认超时时间(ms)
agentFederation.crossOrg.slaEnforcementbooleantrue是否强制执行 SLA 约束

最小配置示例

json
{
  "agentFederation": {
    "enabled": true,
    "registryUrl": "https://registry.chainlesschain.io",
    "crossOrg": {
      "defaultTimeout": 600000
    }
  }
}

离线/私有化部署配置

json
{
  "agentFederation": {
    "enabled": true,
    "registryUrl": "http://internal-registry.corp:8080",
    "autoDiscover": false,
    "crossOrg": {
      "slaEnforcement": false
    }
  }
}

性能指标

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

操作P50 延迟P99 延迟吞吐量
DID 创建(含密钥生成)12 ms45 ms80 ops/s
DID 解析(本地缓存命中)< 1 ms3 ms5000 ops/s
联邦注册(单节点写入)20 ms80 ms50 ops/s
Agent 发现(本地注册表)2 ms10 ms2000 ops/s
Agent 发现(联邦 DHT 查询)80 ms350 ms200 ops/s
VC 凭证颁发(含 Ed25519 签名)8 ms30 ms120 ops/s
VC 凭证验证5 ms20 ms500 ops/s
跨组织任务路由(best-reputation)50 ms200 ms100 ops/s
信誉分查询3 ms15 ms1000 ops/s
信誉排行榜(Top 100)10 ms40 ms300 ops/s

扩展性说明

  • 联邦节点数: 单注册中心支持最多 10,000 个在线 Agent,超出后建议分片部署
  • 凭证容量: 每个 Agent 最多持有 100 个有效凭证,超出时最旧凭证自动归档
  • 内存占用: 基础联邦模块约占 80 MB;万级 Agent 缓存约额外占用 200 MB
  • 心跳带宽: 每 2 分钟一次心跳,单心跳包约 512 B,千节点场景月流量 < 1 GB

测试覆盖率

测试文件

文件测试数覆盖模块
tests/unit/ai-engine/agent-did.test.js28DID 创建/解析/撤销、状态机
tests/unit/ai-engine/federated-agent-registry.test.js34注册、发现、DHT、心跳
tests/unit/ai-engine/agent-credential-manager.test.js22VC 颁发/验证/撤销、链式委托
tests/unit/ai-engine/cross-org-task-router.test.js26四种路由策略、超时、SLA
tests/unit/ai-engine/agent-reputation.test.js20四维评分、时间衰减、排行
tests/integration/agent-federation-e2e.test.js15完整联邦入网→发现→委派→信誉更新流程

合计: 145 个测试用例,行覆盖率 ≥ 87%

运行测试

bash
# 全量联邦网络测试
cd desktop-app-vue && npx vitest run tests/unit/ai-engine/agent-did tests/unit/ai-engine/federated-agent-registry tests/unit/ai-engine/agent-credential-manager

# 集成测试(需本地联邦注册服务)
cd desktop-app-vue && npx vitest run tests/integration/agent-federation-e2e

# 快速冒烟测试(仅核心 DID + 路由)
cd desktop-app-vue && npx vitest run tests/unit/ai-engine/agent-did tests/unit/ai-engine/cross-org-task-router

安全考虑

  • DID 密钥隔离: 每个 Agent 的 Ed25519 私钥存储在本地加密数据库,不随网络传播
  • 挑战-响应认证: 双向 DID 认证采用随机挑战+时间戳,防止中间人和重放攻击
  • 凭证有效期: 所有 VC 凭证设有过期时间,吊销注册表支持即时失效
  • 信誉防篡改: 信誉评分由本地计算引擎生成,基于实际任务执行结果,不可外部注入
  • 跨组织隔离: 不同组织的 Agent 注册表逻辑隔离,联邦查询需经认证授权
  • 任务路由鉴权: 跨组织任务分配前验证目标 Agent 的在线状态和 SLA 合规性
  • 会话 Token 管理: 认证会话设有 TTL(默认 1 小时),过期自动清理
  • 数据传输加密: 所有联邦网络通信使用端到端加密,防止数据窃听

关键文件

文件职责
desktop-app-vue/src/main/ai-engine/cowork/agent-did.jsAgent DID 身份管理
desktop-app-vue/src/main/ai-engine/cowork/federated-agent-registry.js联邦注册表与发现
desktop-app-vue/src/main/ai-engine/cowork/agent-credential-manager.js可验证凭证管理
desktop-app-vue/src/main/ai-engine/cowork/cross-org-task-router.js跨组织任务路由
desktop-app-vue/src/main/ai-engine/cowork/agent-reputation.js信誉评分系统

相关文档

基于 MIT 许可发布