23 KiB
灵隙协议族(Synapse Protocol Suite) - 解决方案白皮书
版本:1.0.0
日期:2026-06-27
状态:草案
前置阅读:灵隙原始协议(Synapse Raw Protocol)
目录
1. 概述
1.1 背景
当前灵隙协议族(Synapse Protocol Suite)定义了 Agent 之间"怎么说话"(消息格式、任务流程),但缺少:
- 怎么找到对方 — Agent 发现与广播机制
- 怎么相信对方 — 身份认证与信任体系
- 怎么规模化协作 — 路由、调度、激励等基础设施
本文档针对上述问题给出完整的解决方案。
1.2 设计原则
| 原则 | 说明 |
|---|---|
| 渐进式 | 从简单到复杂,每阶段都可用 |
| 可插拔 | 组件可替换,不绑定具体实现 |
| 传输无关 | 不依赖特定底层网络 |
| 安全优先 | 身份认证是基础设施,不是可选功能 |
| 向后兼容 | 不破坏现有协议,增量扩展 |
2. 方案一:Agent 发现与广播机制
2.1 整体架构
┌─────────────────────────────────────────────────────────────────────┐
│ Agent 发现与广播层 │
├─────────────────────┬─────────────────────┬─────────────────────────┤
│ 集中式目录服务 │ 分布式 Gossip │ 组播/广播 │
│ (Directory) │ (Gossip) │ (Multicast) │
│ ┌───────────────┐ │ ┌───────────────┐ │ ┌────────────────┐ │
│ │ 注册/注销 │ │ │ 消息泛洪 │ │ │ 子网内广播 │ │
│ │ 能力索引 │ │ │ 状态同步 │ │ │ 邻居发现 │ │
│ │ 名字解析 │ │ │ 节点发现 │ │ │ 本地心跳 │ │
│ └───────────────┘ │ └───────────────┘ │ └────────────────┘ │
└─────────────────────┴─────────────────────┴─────────────────────────┘
2.2 模式一:集中式目录服务(推荐首选)
2.2.1 架构说明
引入 Agent Directory Service(ADS) 作为中心化的 Agent 目录服务,类似 DNS。
Agent A ──注册──▶ ┌─────────────┐ ◀──注册── Agent B
│ Directory │
Agent C ──查询──▶ │ Service │ ◀──心跳── Agent D
└─────────────┘
│
▼
能力索引
在线状态
端点地址
2.2.2 核心接口
注册协议(Agent → Directory):
| 操作 | 消息类型 | 说明 |
|---|---|---|
| 注册 | dir:register |
Agent 上线时注册自身信息 |
| 注销 | dir:unregister |
Agent 下线时注销 |
| 心跳 | dir:heartbeat |
定期上报存活状态 |
| 更新能力 | dir:update_capabilities |
能力变化时更新 |
查询协议(Agent → Directory):
| 操作 | 消息类型 | 说明 |
|---|---|---|
| 按 ID 查询 | dir:query_by_id |
根据 AgentID 查端点 |
| 按能力查询 | dir:query_by_capability |
找具备某能力的 Agent |
| 列表查询 | dir:list |
分页列出所有 Agent |
| 批量查询 | dir:batch_query |
批量查询多个 Agent |
2.2.3 注册数据结构
{
"agent_id": "agent-001",
"agent_name": "视频生成Agent",
"system_id": "video-system",
"endpoint": "https://agent-001.example.com/synapse/callback",
"version": "1.0.0",
"capabilities": [
{
"type": "video_generation",
"name": "视频生成",
"description": "根据脚本生成视频",
"max_concurrent": 10,
"avg_latency_ms": 5000
}
],
"transports": ["http", "grpc"],
"status": "online",
"last_heartbeat": "2026-06-27T10:00:00Z",
"trust_score": 85,
"public_key": "-----BEGIN PUBLIC KEY-----\n..."
}
2.2.4 优缺点
| 优点 | 缺点 |
|---|---|
| 查询效率高(O(1)) | 单点故障风险 |
| 支持复杂查询(按能力、按系统等) | 中心节点需信任 |
| 易于管理和监控 | 扩展性有上限 |
| 实现简单 | 存在注册/注销时序问题 |
2.3 模式二:分布式 Gossip 协议(可选扩展)
2.3.1 架构说明
无中心节点,Agent 之间通过 Gossip 协议(epidemic protocol)扩散状态信息,类似比特币网络的节点发现。
Agent A ──gossip──▶ Agent B ──gossip──▶ Agent D
│ │
└──gossip──▶ Agent C ──gossip──▶ Agent E
2.3.2 核心机制
| 机制 | 说明 |
|---|---|
| Peer Sampling | 每个 Agent 维护一个部分视图(partial view) |
| Active Push | 定期随机选几个节点推送本地状态 |
| Passive Pull | 收到推送后,有概率回传自身状态 |
| TTL | 消息有存活跳数,防止无限扩散 |
| Deduplication | 消息 ID 去重,避免重复处理 |
2.3.3 Gossip 消息格式
{
"type": "gossip:state",
"from": "agent-001",
"view": [
{"agent_id": "agent-002", "endpoint": "...", "capabilities": [...], "timestamp": "..."},
{"agent_id": "agent-003", "endpoint": "...", "capabilities": [...], "timestamp": "..."},
{"agent_id": "agent-004", "endpoint": "...", "capabilities": [...], "timestamp": "..."}
],
"ttl": 5,
"msg_id": "msg-xxx"
}
2.3.4 优缺点
| 优点 | 缺点 |
|---|---|
| 完全去中心化 | 查询效率低(需本地构建视图) |
| 容错性强 | 状态最终一致,有延迟 |
| 可无限扩展 | 实现复杂度高 |
| 无单点故障 | 网络流量大 |
2.4 模式三:本地组播/邻居发现(局域网场景)
适用于同一内网/集群内的 Agent 快速发现。
2.4.1 机制
| 机制 | 说明 |
|---|---|
| UDP 组播 | 定期在组播地址发送广播 |
| mDNS/DNS-SD | 类似 Apple Bonjour 的服务发现 |
| ARP/NDP | 链路层发现(不推荐) |
2.4.2 适用场景
- 边缘计算集群
- 同一机房内的 Agent 集群
- 本地开发测试环境
2.5 广播机制设计
2.5.1 广播类型
| 广播范围 | 消息类型前缀 | 说明 |
|---|---|---|
| 全网广播 | global: |
所有在线 Agent |
| 系统广播 | system: |
同一 system_id 内 |
| 群组广播 | group: |
同一群组内(已有) |
| 能力组广播 | cap: |
具备某能力的 Agent |
2.5.2 广播实现
集中式模式下:
- 由 Directory Service 转发广播消息
- 支持按条件过滤(按能力、按系统等)
分布式模式下:
- 通过 Gossip 协议泛洪
- TTL 控制扩散范围
- 消息 ID 去重
2.6 心跳与存活检测
2.6.1 心跳机制
Agent ───heartbeat──▶ Directory
(每30秒)
Directory 判定离线:
- 连续 3 次未收到心跳 → 标记为 offline
- 离线 24 小时 → 自动注销
2.6.2 主动探测
Directory ───ping──▶ Agent
◀──pong──
用于验证 Agent 是否真的在线(防止心跳伪造)。
3. 方案二:身份认证与信任体系
3.1 三层身份架构
┌─────────────────────────────────────────────────┐
│ Layer 3: 信任评分 (Trust Score) │
│ 声誉系统、历史行为、第三方评价 │
├─────────────────────────────────────────────────┤
│ Layer 2: 身份验证 (Authentication) │
│ 签名验证、证书校验、DID 验证 │
├─────────────────────────────────────────────────┤
│ Layer 1: 身份标识 (Identity) │
│ AgentID + 公钥 / 证书 / DID │
└─────────────────────────────────────────────────┘
3.2 Layer 1:身份标识方案
3.2.1 方案 A:公钥身份(推荐基础版)
核心思想:AgentID = 公钥哈希(类似比特币地址)
AgentID = base58(sha256(public_key)[:20])
例:agent-1A2B3C4D5E6F...
优点:
- 自包含,不需要中心 CA
- 公钥可验证身份
- 实现简单
缺点:
- 身份无法撤销(私钥泄露 = 身份被盗)
- 没有人类可读的名字
- 无法关联真实世界身份
适用场景:内部系统、测试环境、信任度要求不高的场景
3.2.2 方案 B:PKI 证书体系
核心思想:引入 CA(Certificate Authority)颁发证书
CA 根证书
├── 系统A证书
│ ├── Agent-001 证书
│ └── Agent-002 证书
└── 系统B证书
└── Agent-003 证书
优点:
- 成熟的工业标准
- 支持证书撤销(CRL/OCSP)
- 有层级信任关系
缺点:
- 需要信任中心化 CA
- 证书管理复杂
- 跨 CA 互操作需要桥接
适用场景:企业内部、有明确信任中心的场景
3.2.3 方案 C:区块链 DID(去中心化身份)
核心思想:身份上链,链上存公钥和属性,类似 W3C DID 标准。
链上存储:
DID → {
"publicKey": "...",
"controller": "...",
"authentication": [...],
"service": [...],
"revoked": false,
"timestamp": "..."
}
三种实现路径:
| 路径 | 说明 | 适用场景 |
|---|---|---|
| 公链 DID | 使用以太坊/Solana 等公链 | 开放生态、跨组织协作 |
| 联盟链 DID | 多机构共建联盟链 | 行业联盟、政企合作 |
| 私有链 DID | 单组织内部链 | 企业内部、对性能要求高 |
优点:
- 去中心化,无单点故障
- 身份可验证、可追溯
- 支持跨系统互认
- 不可篡改的身份历史
缺点:
- 链上操作有延迟
- 需要支付 Gas 费(公链)
- 实现复杂度高
- 隐私保护需额外设计
3.3 Layer 2:身份验证方案
3.3.1 消息签名验证
所有灵隙消息必须签名,签名方式:
签名内容 = SHA256(message_id + sender + receiver + payload + timestamp)
签名 = Sign(private_key, 签名内容)
验证 = Verify(public_key, 签名内容, 签名)
3.3.2 签名放置位置
| 位置 | 说明 |
|---|---|
| 消息体内 | signature 字段 |
| HTTP Header | X-Synapse-Signature |
| gRPC Metadata | x-synapse-signature |
3.3.3 防重放攻击
每个消息有唯一 message_id + timestamp
接收方维护已处理 message_id 缓存(如最近 1 小时)
timestamp 与本地时间差超过 5 分钟 → 拒绝
3.4 Layer 3:信任评分体系
3.4.1 信任分维度
| 维度 | 权重 | 说明 |
|---|---|---|
| 任务完成率 | 30% | 历史任务成功 / 总任务数 |
| 任务质量 | 25% | 结果评分、返工率 |
| 响应速度 | 15% | 平均响应时间 |
| 在线稳定性 | 15% | 在线时长 / 总时长 |
| 历史信誉 | 15% | 其他 Agent 的评价 |
3.4.2 信任分计算
trust_score = Σ(维度_i × 权重_i)
范围:0 - 100
等级:
90-100 S 级 高度可信
75-89 A 级 可信
60-74 B 级 一般可信
40-59 C 级 谨慎使用
0-39 D 级 不可信
3.4.3 信任传递
A 信任 B(评分 90)
B 信任 C(评分 85)
A 对 C 的初始信任 = 90 × 85% × 衰减因子 = 约 68
注意:信任传递有衰减,防止信任污染。
3.5 区块链适用性决策树
是否需要跨组织协作?
├── 否 → 用 PKI 或公钥身份(简单高效)
└── 是 → 是否有共同信任的中心机构?
├── 是 → 用 PKI 体系(成熟可靠)
└── 否 → 是否需要不可篡改的审计?
├── 是 → 考虑联盟链 DID
└── 否 → 公钥身份 + 声誉系统可能够用
4. 方案三:协议缺失内容补全
4.1 第一优先级补全(核心基础设施)
4.1.1 Agent 发现协议(ADS - Agent Discovery Service)
新增消息类型:
| 消息类型 | 方向 | 说明 |
|---|---|---|
dir:register |
Agent → Directory | 注册 Agent |
dir:unregister |
Agent → Directory | 注销 Agent |
dir:heartbeat |
Agent → Directory | 心跳 |
dir:update_capabilities |
Agent → Directory | 更新能力 |
dir:query_by_id |
Agent → Directory | 按 ID 查询 |
dir:query_by_capability |
Agent → Directory | 按能力查询 |
dir:list |
Agent → Directory | 列表查询 |
dir:query_result |
Directory → Agent | 查询结果 |
新增数据结构: AgentDirectoryEntry, CapabilityIndex, QueryFilter
4.1.2 身份认证规范
新增消息类型:
| 消息类型 | 说明 |
|---|---|
auth:challenge |
身份挑战 |
auth:response |
挑战响应 |
auth:cert_exchange |
证书交换 |
新增内容:
- 标准签名算法列表(Ed25519, ECDSA P-256, RSA 2048)
- 消息签名格式规范
- 防重放攻击机制
- 身份验证流程规范
4.1.3 心跳与存活检测
新增消息类型:
| 消息类型 | 说明 |
|---|---|
net:ping |
存活探测 |
net:pong |
存活响应 |
net:offline_notify |
下线通知 |
规范内容:
- 心跳间隔(默认 30 秒)
- 超时判定(连续 3 次未收到 → 离线)
- 离线通知机制
4.1.4 统一错误码体系
错误分类:
| 错误码前缀 | 类别 | 示例 |
|---|---|---|
msg_ |
消息层 | msg_invalid_format, msg_signature_invalid |
auth_ |
认证层 | auth_failed, auth_expired, auth_forbidden |
task_ |
任务层 | task_not_found, task_timeout, task_cancelled |
cap_ |
能力层 | cap_lacking, cap_busy, cap_not_supported |
group_ |
群组层 | group_not_found, group_full, group_permission_denied |
dir_ |
目录层 | dir_agent_not_found, dir_query_failed |
net_ |
网络层 | net_timeout, net_offline, net_unreachable |
sys_ |
系统层 | sys_internal_error, sys_not_implemented |
4.2 第二优先级补全(重要功能)
4.2.1 能力匹配与任务路由
功能:
- 智能选择最合适的 Agent 执行任务
- 支持负载均衡(按并发数、响应速度、信任分)
- 支持任务失败自动重试/转发
新增消息类型:
router:submit_task- 提交给路由器自动选择执行者router:forward- 任务转发
4.2.2 全网广播协议
新增消息类型:
| 消息类型 | 说明 |
|---|---|
global:broadcast |
全网广播 |
system:broadcast |
系统内广播 |
cap:broadcast |
能力组广播 |
规范内容:
- 广播范围定义
- TTL 与去重机制
- 广播风暴防护
4.2.3 版本协商机制
功能:
- Agent 之间协商使用的协议版本
- 向后兼容处理
- 能力降级策略
新增消息类型:
meta:version_query- 查询支持的版本meta:version_negotiate- 版本协商
4.2.4 幂等性保证
规范内容:
- 幂等键(Idempotency Key)机制
- 重复消息处理规范
- 任务级幂等 vs 消息级幂等
4.3 第三优先级补全(增强功能)
4.3.1 流式输出协议
功能:
- 长任务实时进度推送
- 生成式 AI 的 token 流式输出
- WebSocket/SSE 传输支持
4.3.2 批量任务协议
功能:
- 一次性提交多个同类型任务
- 批量状态查询
- 批量结果收集
4.3.3 支付与激励机制
功能:
- 任务定价与结算
- Token 或积分系统
- 智能合约自动结算(区块链场景)
4.3.4 群组发现协议
功能:
- 按主题/任务类型查找群组
- 推荐加入合适的群组
- 群组热度/活跃度排名
4.4 安全相关补全
4.4.1 端到端加密
规范内容:
- 密钥协商(ECDH)
- 对称加密载荷(AES-GCM)
- 前向保密(PFS)
4.4.2 权限委托
功能:
- Agent A 委托 Agent B 代表自己执行任务
- 委托令牌(Delegation Token)
- 委托范围与时效控制
4.4.3 审计日志标准
规范内容:
- 统一审计日志格式
- 关键操作必须记录
- 日志完整性保护(哈希链)
5. 分阶段实施路线图
5.1 Phase 0:基础版(MVP) - 预计 2 周
目标:协议可用,能跑通基本流程
内容:
- 灵隙点对点任务协议(已完成)
- A2N 群组协作协议(已完成)
- P2A 外部调用协议(已完成)
- 三套协议的 SDK 实现(已完成)
5.2 Phase 1:发现与身份 - 预计 4 周
目标:Agent 能互相找到对方,能验证对方身份
新增协议模块:
| 模块 | 说明 | 优先级 |
|---|---|---|
| Agent 目录服务协议 | 集中式 ADS | P0 |
| 公钥身份规范 | Ed25519 签名验证 | P0 |
| 心跳与存活检测 | 30 秒心跳,3 次超时判定离线 | P0 |
| 统一错误码体系 | 8 大类错误码 | P0 |
| 防重放攻击 | message_id + timestamp | P0 |
输出物:
- 新协议文档:
06-agent-discovery.md - 新协议文档:
07-authentication.md - 代码:
discovery/包(目录服务客户端) - 代码:
auth/包(签名验证工具) - 更新 types 包:新增消息类型和错误码
5.3 Phase 2:路由与广播 - 预计 4 周
目标:支持智能任务路由和全网广播
新增协议模块:
| 模块 | 说明 | 优先级 |
|---|---|---|
| 任务路由协议 | 按能力 + 负载 + 信任分选择执行者 | P1 |
| 全网广播协议 | 基于目录服务的广播转发 | P1 |
| 版本协商机制 | 协议版本兼容 | P1 |
| 幂等性保证 | 幂等键 + 去重 | P1 |
输出物:
- 新协议文档:
08-routing-and-broadcast.md - 代码:
routing/包增强(增加能力路由) - 更新目录服务:支持广播转发
5.4 Phase 3:信任与激励 - 预计 6 周
目标:建立信任体系,支持规模化协作
新增协议模块:
| 模块 | 说明 | 优先级 |
|---|---|---|
| 信任评分体系 | 5 维度信任分计算 | P2 |
| 流式输出协议 | WebSocket/SSE 流式进度 | P2 |
| 批量任务协议 | 批量提交/查询/收集 | P2 |
| 群组发现协议 | 群组搜索与推荐 | P2 |
| SLA 协议 | 服务等级承诺 | P3 |
输出物:
- 新协议文档:
09-trust-and-reputation.md - 代码:
trust/包(信任评分引擎)
5.5 Phase 4:高级特性 - 预计 8 周+
目标:企业级、生产级完整功能
新增协议模块:
| 模块 | 说明 | 优先级 |
|---|---|---|
| 端到端加密 | ECDH + AES-GCM | P3 |
| 权限委托 | 委托令牌机制 | P3 |
| 支付与激励 | Token/积分系统 | P3 |
| 区块链 DID 集成 | 可选模块 | P4 |
| 审计日志标准 | 统一审计格式 | P3 |
| Gossip 协议 | 分布式发现(可选) | P4 |
6. 技术选型建议
6.1 目录服务存储选型
| 方案 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| Redis | 中小规模 | 高性能,支持 TTL | 数据量受限 |
| PostgreSQL | 中大规模 | 复杂查询,持久化 | 需运维 |
| Elasticsearch | 大规模 + 全文检索 | 强大的搜索能力 | 运维复杂 |
推荐:先用 Redis(简单快),规模大了再迁 PostgreSQL。
6.2 签名算法选型
| 算法 | 安全性 | 性能 | 密钥长度 | 推荐度 |
|---|---|---|---|---|
| Ed25519 | 高 | 快 | 256 位 | ⭐⭐⭐⭐⭐ 首选 |
| ECDSA P-256 | 高 | 中 | 256 位 | ⭐⭐⭐⭐ 兼容 |
| RSA 2048 | 中 | 慢 | 2048 位 | ⭐⭐ 仅兼容 |
推荐:默认 Ed25519,需要兼容旧系统时支持 ECDSA。
6.3 区块链选型(如果需要)
| 场景 | 推荐方案 | 说明 |
|---|---|---|
| 企业内部 | 私有链(Hyperledger Fabric) | 可控,高性能,无 Gas 费 |
| 行业联盟 | 联盟链(FISCO BCOS / ChainMaker) | 多机构共建,合规 |
| 开放生态 | 公链(以太坊 / Solana) | 完全开放,需 Gas 费 |
| 简单原型 | 模拟链(数据库模拟) | 先验证逻辑,再上真链 |
推荐:90% 的场景用不到真区块链,先用数据库模拟验证业务逻辑。
7. 总结与建议
7.1 核心建议
- 先集中后分布:先用集中式目录服务,简单高效;规模大了再考虑分布式
- 先公钥后区块链:先用公钥身份解决 80% 的问题,真的需要了再上链
- 先 MVP 后完善:先跑通核心流程,再逐步加高级功能
- 标准接口可替换:目录服务、身份系统都做成可插拔的,方便未来升级
7.2 下一步行动
| 序号 | 行动 | 负责人 | 产出 |
|---|---|---|---|
| 1 | 评审本方案,确认 Phase 1 范围 | 架构组 | 确认后的方案 |
| 2 | 设计目录服务 API 详细规范 | 协议组 | 06-agent-discovery.md |
| 3 | 设计身份认证详细规范 | 协议组 | 07-authentication.md |
| 4 | 实现目录服务原型 | 开发组 | 可运行的 ADS 服务 |
| 5 | 更新 SDK 支持发现和认证 | 开发组 | 新版 SDK |
附录:相关文档索引
| 文档 | 说明 |
|---|---|
| 01-synapse-raw-protocol.md | 灵隙原始协议(Synapse Raw Protocol)(纲领) |
| 02-a2a-protocol.md | A2A 协议(P2P 任务) |
| 03-a2n-protocol.md | A2N 协议(群组协作) |
| 04-p2a-protocol.md | P2A 协议(外部调用) |
| 05-sdk-implementation.md | SDK 实现说明 |
| 本文档 | 解决方案白皮书 |