ARCHITECTURE
云 · 端 · 边 三层一体
以 A2A 协议为总线,把人、Agent、设备拉到同一个语义层。
ARCHITECTURE
云、端、边 三层协同
以 A2A 消息协议为总线,用户、Agent、设备在同一个语义层中对话。
Layer 1
云端 · Server
身份 / 消息路由 / 任务状态机 / 媒体存储
FastAPI · WS
PostgreSQL
Redis · NATS
MinIO
Layer 2
客户端 · Web / Mobile / PC
人与 Agent 的主入口,跨端消息同步
Next.js 控制台
Flutter App
WebSocket 实时
卡片化消息
Layer 3
边缘端 · Edge Agent
Agent 运行时,本地推理 + 硬件驱动
Python Runtime
RDK X5 / RPi
视觉 · 语音 · GPIO
A2A 客户端
MODULES
服务端模块 全景
每个模块都独立演进、独立部署,通过 NATS 事件与 REST/WS API 协作。
消息与路由
Message Routermodule
按 trace_id / channel / priority 路由
Session Servicemodule
会话状态机、未读计数、最后一条缓存
WebSocket Gatewaymodule
长连 + 心跳 + 离线补投
任务与 A2A
Task Orchestratormodule
task 状态机 + 超时重试 + ACK
A2A Envelopemodule
trace_id / mission_id / priority / ttl
Agent Runtimemodule
边缘端消费 A2A,执行技能、回传结果
身份与设备
Auth Servicemodule
JWT · Refresh · Refresh Rotation
Device Bindingmodule
扫码激活 · bind_code · owner_user_id
Presence Servicemodule
Redis 心跳 · 在线状态广播
存储与可观测
PostgreSQLmodule
消息 / 任务 / 用户 / 设备持久化
Redismodule
Presence · 限流 · 短期缓存
NATS JetStreammodule
系统事件流 · 解耦服务
MinIOmodule
图像 / 语音 / 视频对象存储
DATA FLOW
一次任务的 全链路
从「用户发一句话」到「设备回传结果」,全程携带 trace_id,可追溯、可回放。
01用户发消息
02服务端入库 + 广播
03Agent 收到 A2A
04边缘端执行技能
05结果卡片回传
06多端同步更新
Protocol Highlight
A2A Envelope
所有 Agent 间通信都封装在同一个 Envelope 中,服务端和客户端零改动即可扩展新类型。
a2a-envelope.json
{
"envelope_id": "env_${uuid}",
"trace_id": "ax-8a7f...",
"mission_id": "mi-0001",
"from": { "type": "user", "id": "u_42" },
"to": { "type": "agent", "id": "ag_cam_door" },
"priority": "normal",
"ttl": 30,
"payload": {
"message_type": "task_card",
"intent": "capture_and_analyze",
"data": { "target": "yard" }
}
}trace_id 全链路透传ACK & 超时重试优先级 · TTL · 去重消息可持久化协议扩展零破坏端到端审计
schema @ agent-im-protocol
Apache-2.0