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 客户端
A2A · 消息总线WebSocket · NATS · trace_id · mission_id · priority · ttl · ack深入架构
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