# 灵隙原始协议(Synapse Raw Protocol) > 版本:1.0.0 > 状态:规范 > 层级:基础层 --- ## 1. 定位 原始协议定义灵隙协议栈的公共基础,为所有子协议(A2A、A2N、P2A)提供统一的消息信封、身份标识、时间格式和签名机制。 --- ## 2. 功能定义 ### 2.1 核心功能 | 功能 | 说明 | |-----|------| | 统一消息信封 | 所有协议共用的消息格式 | | 身份标识 | Agent 端点定义 | | 时间戳 | 统一时间格式(RFC3339) | | 消息签名 | HMAC 签名验证机制 | | 关联机制 | correlation_id / reply_to 消息关联 | | 协议版本 | 版本标识与兼容性 | ### 2.2 扩展功能 | 功能 | 说明 | |-----|------| | 会话关联 | conversation_id 多轮对话关联 | | 消息存活 | TTL 消息过期机制 | | 广播标识 | broadcast 广播消息标记 | | 加密标识 | encrypt 消息加密标记 | | 签名算法 | signature_algorithm 签名算法声明 | --- ## 3. 数据格式定义 ### 3.1 统一消息信封 所有协议消息必须使用统一信封格式: | 字段 | 类型 | 必填 | 说明 | |------|------|:----:|------| | `id` | string | ✓ | 消息唯一标识(UUID) | | `version` | string | ✓ | 协议版本(如 "1.0.0") | | `type` | string | ✓ | 消息类型(格式:`协议:类型`,如 `p2p:task_request`) | | `sender` | AgentEndpoint | ✓ | 发送方端点 | | `receiver` | AgentEndpoint | - | 接收方端点(广播时可为空) | | `payload` | object | ✓ | 消息载荷(具体结构由消息类型定义) | | `timestamp` | string | ✓ | 时间戳(RFC3339 格式) | ### 3.2 关联字段 | 字段 | 类型 | 必填 | 说明 | |------|------|:----:|------| | `correlation_id` | string | - | 关联 ID(用于请求-响应关联) | | `reply_to` | string | - | 回复的消息 ID | | `group_id` | string | - | 群组 ID(群组消息必填) | ### 3.3 安全字段 | 字段 | 类型 | 必填 | 说明 | |------|------|:----:|------| | `signature` | string | - | HMAC 签名(签名算法由 signature_algorithm 指定) | | `signature_algorithm` | string | - | 签名算法(默认 "HMAC-SHA256") | ### 3.4 扩展字段 | 字段 | 类型 | 说明 | |------|------|------| | `conversation_id` | string | 会话 ID(多轮对话关联) | | `ttl` | integer | 消息存活时间(秒) | | `broadcast` | boolean | 是否广播消息 | | `encrypt` | boolean | payload 是否加密 | ### 3.5 Agent 端点 Agent 身份标识结构: | 字段 | 类型 | 必填 | 说明 | |------|------|:----:|------| | `agent_id` | string | ✓ | Agent 唯一标识 | | `agent_name` | string | - | Agent 名称 | | `system_id` | string | ✓ | 所属系统标识 | | `endpoint` | string | ✓ | 回调端点 URL | | `version` | string | - | Agent 版本 | --- ## 4. 签名机制 ### 4.1 签名算法 支持算法: - `HMAC-SHA256`(默认) - `HMAC-SHA512` ### 4.2 签名内容 签名内容为以下字段的拼接(UTF-8 编码): ``` signature_content = sender_id | receiver_id | timestamp | payload_json ``` 分隔符:`|`(竖线) ### 4.3 签名验证 接收方必须: 1. 提取 sender 的认证密钥 2. 使用相同算法重新计算签名 3. 比对签名是否一致 --- ## 5. 协议类型前缀 | 前缀 | 协议 | 说明 | |------|------|------| | `p2p:` | A2A 协议 | 点对点消息 | | `group:` | A2N 协议 | 群组内消息 | | `inter_group:` | A2N 协议 | 跨群组消息 | | `caller:` | P2A 协议 | 外部调用消息 | --- ## 6. 消息类型命名规范 格式:`协议前缀:消息类型` 示例: - `p2p:task_request` - A2A 协议的任务请求 - `group:vote` - A2N 协议的投票消息 - `inter_group:escalate` - A2N 协议的跨群组升级 --- ## 7. 时间格式 所有时间字段使用 RFC3339 格式: ``` 2026-06-27T15:30:00Z 2026-06-27T15:30:00+08:00 ``` --- ## 8. 版本兼容性 - 主版本号变更:不兼容 - 次版本号变更:新增功能,向后兼容 - 修订号变更:修复问题,完全兼容 Agent 必须在消息中声明自己使用的版本,接收方据此判断兼容性。