Skip to content
广告 · 本站推荐广告

网关架构

本文档描述 Gateway(网关)的内部架构设计,帮助你理解各组件之间的协作关系。

架构总览

text
┌──────────────────────────────────────────────────────────┐
│                    Gateway Daemon                         │
│                                                          │
│  ┌────────────┐  ┌────────────┐  ┌──────────────────┐   │
│  │  WebSocket  │  │  HTTP API  │  │   Management UI  │   │
│  │   Server    │  │  Server    │  │    (Web)         │   │
│  └──────┬─────┘  └──────┬─────┘  └────────┬─────────┘   │
│         │               │                  │             │
│  ┌──────┴───────────────┴──────────────────┴─────────┐   │
│  │            Multiplexed Listener (:18789)           │   │
│  └───────────────────────────────────────────────────┘   │
│                          │                               │
│  ┌───────────────────────┴───────────────────────────┐   │
│  │               Session Manager                      │   │
│  └───────┬──────────────┬────────────────┬───────────┘   │
│          │              │                │               │
│  ┌───────┴───┐  ┌──────┴──────┐  ┌──────┴──────┐       │
│  │  Channel  │  │   Agent     │  │   Tool      │       │
│  │  Adapters │  │   Runtime   │  │   Registry  │       │
│  └───────────┘  └─────────────┘  └─────────────┘       │
└──────────────────────────────────────────────────────────┘

核心组件

Gateway Daemon(网关守护进程)

顶层常驻进程,负责启动、管理和协调所有子组件的生命周期。

  • 进程管理与信号处理
  • 配置加载与热重载
  • 日志聚合
  • 健康检查

Channel Adapters(通道适配器)

Channel Adapter 负责与外部 LLM(大语言模型)提供商建立和维护连接。

text
┌─────────────────────────────────┐
│       Channel Adapters          │
│                                 │
│  ┌─────────┐  ┌─────────────┐  │
│  │ OpenAI  │  │ Anthropic   │  │
│  │ Adapter │  │ Adapter     │  │
│  └────┬────┘  └──────┬──────┘  │
│       │              │         │
│  ┌────┴──────────────┴──────┐  │
│  │    Channel Pool Manager  │  │
│  └──────────────────────────┘  │
└─────────────────────────────────┘

适配器模式

每种 LLM 提供商都有独立的 Adapter 实现,统一对上层暴露标准接口。新增模型提供商只需实现 Adapter 接口即可。

Agent Runtime(Agent 运行时)

Agent Runtime 管理 Agent 会话的完整生命周期,包括:

  • Prompt 编排与上下文管理
  • 工具调用(Tool Calls)的调度与执行
  • 对话轮次管理
  • 沙箱(Sandbox)隔离

Session Manager(会话管理器)

管理所有活跃会话的状态,提供会话创建、恢复、持久化等能力。

职责说明
会话创建为新连接分配唯一 Session ID
状态维护跟踪会话中的对话历史和上下文
会话恢复断线重连后恢复会话状态
资源清理超时或断开后释放资源

WebSocket Server

处理客户端的实时双向通信。

json
{
  "type": "connect",
  "token": "your-gateway-token",
  "version": "1.0"
}

HTTP API Server

提供 RESTful API 接口,兼容 OpenAI Chat Completions 格式。

多协议支持

WebSocket 和 HTTP API 共享同一端口,Gateway 根据请求类型自动路由。

数据流

用户请求流

text
Client ──WebSocket──▶ Gateway ──▶ Session Manager


                                  Agent Runtime


                              Channel Adapter ──▶ LLM Provider


                              Tool Execution (if needed)


Client ◀──WebSocket── Gateway ◀── Response Assembly

工具调用流

text
Agent Runtime ──tool_call──▶ Tool Registry


                            Permission Check


                           Sandbox Execution


Agent Runtime ◀──tool_result── Result

线程模型

Gateway 使用异步事件驱动(Event-Driven)模型:

  • 主线程:事件循环、连接管理
  • 工作线程池:CPU 密集型任务(如工具执行)
  • I/O 线程:网络 I/O、文件操作

性能提示

单 Gateway 实例通常足以支撑数十个并发会话。如需更大规模,参阅 多网关部署

扩展点

扩展点说明参考
Channel Adapter接入新的 LLM 提供商Channel 文档
Tool注册自定义工具工具开发指南
Auth Provider自定义认证方式认证

相关文档

基于MIT协议开源 | 内容翻译自 官方文档,同步更新