Skip to content

phantom5099/opengate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

统一 Agent 接入网关 — 技术方案总览

项目概述

构建一款统一 Agent 接入网关,实现多渠道边缘接入、gRPC 双向流通信、MCP 工具协议集成、A2A 去中心化协作、Wasm/MicroVM 混合沙箱调度、分层存储架构,为 AI Agent 提供高性能、高可用的基础设施。

架构概览

┌─────────────────────────────────────────────────────────────────┐
│                        边缘接入层                                │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌───────┐ │
│  │  飞书    │ │  企微    │ │  钉钉    │ │ WebSocket│ │  CLI  │ │
│  └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘ └───┬───┘ │
│       └────────────┼───────────┼──────────────┼───────────┘     │
│                    ▼                                                │
│            ┌──────────────┐                                        │
│            │ 边缘适配器框架 │                                        │
│            └──────┬───────┘                                        │
├───────────────────┼───────────────────────────────────────────────┤
│                   ▼            网关核心层                          │
│  ┌────────────────────────────────────────────────────────────┐  │
│  │              gRPC 双向流 (Agent ↔ Gateway)                  │  │
│  ├────────────┬────────────┬────────────┬─────────────────────┤  │
│  │ 五维路由   │ 会话管理   │ 控制信令   │ MCP Gateway         │  │
│  │ 引擎      │ (Redis)    │ cancel/    │ (工具代理/沙箱调度)  │  │
│  │           │            │ resume     │                     │  │
│  ├────────────┴────────────┴────────────┴─────────────────────┤  │
│  │              A2A 授权中心 (mTLS + Delegation Token)         │  │
│  └────────────────────────────────────────────────────────────┘  │
├───────────────────────────────────────────────────────────────────┤
│                        分层存储层                                  │
│  ┌──────────────┐ ┌──────────────┐ ┌──────────────────────────┐  │
│  │ L1 热数据    │ │ L2 温数据    │ │ L3 冷数据                │  │
│  │ Redis Cluster│ │ etcd         │ │ MongoDB + ClickHouse     │  │
│  │ Session/限流 │ │ 路由/Agent   │ │ 审计日志                 │  │
│  └──────────────┘ └──────────────┘ └──────────────────────────┘  │
│  ┌──────────────┐                                                │
│  │ L1.5 记忆层  │                                                │
│  │ Redis Stack  │                                                │
│  │ 向量/上下文  │                                                │
│  └──────────────┘                                                │
├───────────────────────────────────────────────────────────────────┤
│                        沙箱执行层                                  │
│  ┌──────────────────────┐ ┌──────────────────────┐              │
│  │ Wasm 沙箱 (Wasmtime) │ │ MicroVM (Firecracker)│              │
│  │ 无状态代码执行       │ │ 完整 OS 隔离         │              │
│  └──────────────────────┘ └──────────────────────┘              │
└───────────────────────────────────────────────────────────────────┘

技术栈

层次 选型
语言 Go 1.22+
gRPC google.golang.org/grpc
HTTP/WS net/http + nhooyr.io/websocket
Redis go-redis/redis/v9
etcd go.etcd.io/etcd/client/v3
MongoDB go.mongodb.org/mongo-driver/v2
JWT golang-jwt/jwt/v5
Wasm Wasmtime(独立 sidecar)
可观测 OpenTelemetry + Prometheus

实施阶段

阶段一 gRPC 双向流与会话管理
  ↓
阶段二 路由引擎与配置热更新
  ↓
阶段三 控制信令与流式交互
  ↓
阶段四 边缘适配器与消息标准化
  ↓
阶段五 MCP 工具协议与沙箱
  ↓
阶段六 A2A 去中心化协作
  ↓
阶段七 流控、限流与韧性
  ↓
阶段八 可观测性与审计

文档索引

文档 内容
阶段一 gRPC 双向流与会话管理
阶段二 路由引擎与配置热更新
阶段三 控制信令与流式交互
阶段四 边缘适配器与消息标准化
阶段五 MCP 工具协议与沙箱
阶段六 A2A 去中心化协作
阶段七 流控、限流与韧性
阶段八 可观测性与审计
代码结构 目录结构与设计决策

代码结构

详见 代码结构设计,包含同类项目对比分析。

opengate/
├── cmd/                            # 可执行文件入口
│   ├── gateway/                    # 网关主进程
│   ├── agent-sdk/example/          # Agent SDK 示例
│   ├── wasm-sandbox/               # Wasm 沙箱 sidecar
│   └── client/                     # CLI 测试客户端
├── internal/                       # 网关内部实现
│   ├── gateway/                    # 网关核心(启动/配置/生命周期)
│   ├── edge/                       # 边缘适配器(feishu/wecom/dingtalk/websocket)
│   ├── router/                     # 路由引擎
│   ├── session/                    # 会话管理
│   ├── stream/                     # gRPC 流管理
│   ├── signal/                     # 控制信令
│   ├── mcp/                        # MCP Gateway
│   ├── sandbox/                    # 沙箱调度(wasm/microvm)
│   ├── auth/                       # 鉴权
│   ├── a2a/                        # A2A 授权中心
│   ├── ratelimit/                  # 限流
│   ├── circuit/                    # 熔断
│   ├── approval/                   # 审批管理
│   ├── audit/                      # 审计日志
│   ├── observability/              # 可观测性
│   └── storage/                    # 存储客户端封装
├── pkg/                            # 公共包(可被外部导入)
│   ├── sdk/                        # Agent SDK
│   ├── proto/                      # 生成的 Protobuf 代码
│   ├── model/                      # 公共数据模型
│   └── errors/                     # 统一错误码
├── proto/                          # Protobuf 源文件
├── api/                            # HTTP API 定义
├── deploy/                         # 部署配置
├── test/                           # 测试
├── scripts/                        # 构建脚本
├── docs/                           # 文档
├── go.mod
└── Makefile

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors