微信 Bot、外部 API 调用、未来的新渠道——每个入口各自接入模型、各自管理配置、各自维护记忆?不。Hermes Gateway 做一件事:让所有渠道共享同一个大脑。统一配置、统一记忆、统一 API 格式。下游接什么模型、上游开几个入口,调用方无需关心。

1
统一 API 入口
1
共享配置中心
1
统一记忆空间
N
接入渠道(可扩展)

一、核心问题:为什么需要统一网关?

没有 Hermes Gateway 之前,每个渠道是孤岛

传统架构 — 各自为战
💬
微信 Bot
自己配模型 Key
🤖
API 客户端
自己管认证
🌐
Web 前端
自己写后端
🧠
模型 A 配置
Key · 温度 · Prompt
🧠
模型 B 配置
Key · 温度 · Prompt
🧠
模型 C 配置
Key · 温度 · Prompt
📝
记忆 A
微信独享
📝
记忆 B
API 独享
📝
记忆 C
Web 独享
⚠️ 问题:改一次模型配置要改 3 处;微信聊过的内容 API 端看不到;每个新渠道都要重新对接一遍模型。配置散落、记忆割裂、重复劳动。

二、Hermes Gateway 架构:一个大脑,多个入口

统一网关架构 — Hermes Gateway
💬
微信 Bot
渠道适配器
🤖
OpenAI SDK
任何兼容客户端
🌐
未来渠道
Telegram / Web / ...
Hermes Gateway
统一 API · 统一配置 · 统一记忆
🧠
DeepSeek V4 Flash
推理引擎
📝
统一记忆存储
所有渠道共享
⚙️
统一配置中心
一处修改,全局生效
🎯 核心理念:所有渠道经过同一个 Gateway,共享同一份配置、同一份记忆、同一个 API 格式。新增渠道 = 新增一个适配器,模型侧零改动。

三、三大统一

3.1 统一配置 — 一处修改,全局生效

模型 Key、Temperature、System Prompt、超时策略……所有配置集中在 Hermes Gateway 一个地方管理。切换模型、调整参数,改一处即所有渠道同步生效。

配置对比:分散 vs 统一
配置项 分散架构(改 3 处) Hermes 统一(改 1 处)
模型 API Key 微信配一份 · API 配一份 · Web 配一份 Gateway 统一存储
模型选择 每个渠道各自指定 Gateway 统一路由
Temperature / 参数 每个渠道各自配置 Gateway 统一默认值
System Prompt 重复维护 N 份 Gateway 统一管理
超时 / 重试策略 每个渠道自己写 Gateway 统一策略
新增模型 改 N 个渠道的代码 改 Gateway 一处配置

3.2 统一记忆 — 所有渠道共享上下文

在微信里聊过的内容,通过 API 调用时也能看到。所有渠道共享同一个记忆空间——对话连续性不因入口不同而断裂

统一记忆流转
💬
微信对话
"帮我查天气"
📝
记忆写入
Hermes 存储
🤖
API 调用
"刚才说了啥"
🧠
记忆读取
同一份上下文
连贯回复
"你说查天气"
💡 实际场景:早上在微信问了 Bot 一个问题,下午用 Python 脚本调 API 继续讨论——不需要重复背景信息,因为 Hermes 的记忆是统一的

3.3 统一 API 格式 — OpenAI 兼容

对外暴露标准的 OpenAI /v1/chat/completions 格式。任何支持 OpenAI SDK 的工具——Python、Node.js、LangChain、LobeChat——只需改一个 base_url,即可接入。

from openai import OpenAI

# 唯一需要改的:base_url 指向 Hermes Gateway
client = OpenAI(
    base_url="https://ceshi.com/v1",
    api_key="你的密钥",
)

# 其余代码与 OpenAI 官方完全一致
response = client.chat.completions.create(
    model="any-model",
    messages=[{"role": "user", "content": "你好"}],
)
print(response.choices[0].message.content)
✅ 零改造接入:不需要写适配器、不需要学新 API、不需要改已有代码。Hermes Gateway 就是一个"说 OpenAI 语言"的统一入口。

四、整体网络架构

Hermes Gateway 通过 Caddy 反向代理暴露到公网,自动获得 HTTPS 证书。外部调用者看到的是一个标准的 OpenAI 兼容端点,完全感知不到背后的微信 Bot 和多模型路由。

公网到内网的完整链路
🤖
外部工具
OpenAI SDK / curl / LangChain
🔒
Caddy
自动 HTTPS · 反向代理
Hermes Gateway
api_server · :8642
💬
微信 Bot
同时在线
🧠
DeepSeek V4 Flash
推理引擎

五、请求完整生命周期

从调用到响应 — 统一路径
📤
客户端
HTTPS POST
🔒
Caddy
TLS 终止
Hermes
认证 · 路由 · 配置加载
📝
记忆注入
加载统一上下文
🧠
模型推理
DeepSeek V4
📥
响应返回
记忆回写 · SSE

六、API 端点

POST /v1/chat/completions
Chat Completion — 支持流式(SSE)和非流式。兼容 OpenAI 的 messages、model、temperature、stream 等全部参数。Hermes 自动注入统一记忆上下文。
GET /v1/models
列出可用模型 — 返回 Hermes Gateway 中配置的所有下游模型。调用者无需知道模型在哪,Gateway 统一路由。

七、扩展:新增渠道 = 新增适配器

Hermes Gateway 的架构让新增渠道变得极其简单——只需写一个渠道适配器,模型配置、记忆、API 格式全部复用:

渠道:微信 Bot

已接入

通过 Hermes Gateway 原生对接,同时在线,共享统一记忆和配置

渠道:OpenAI 兼容 API

已接入

api_server 模式,Caddy 反代到公网,任何 SDK 即插即用

渠道:Telegram Bot

可扩展

新增 Telegram 适配器 → 接入 Hermes → 自动共享配置和记忆

渠道:Web Chat UI

可扩展

前端直接调用 /v1/chat/completions,零后端开发

渠道:企业飞书/钉钉

可扩展

写一个 Webhook 适配器,Hermes 统一处理其余一切

渠道:CLI 工具

可扩展

curl 或 Python 脚本直连,适合自动化和 DevOps 场景

🔑 扩展成本:新渠道 = 写一个消息收发适配器(通常几十行代码)。模型切换、参数调优、记忆管理——全部在 Hermes Gateway 一处完成,所有渠道自动生效。

八、安全设计

纵深防御
🔒
TLS 加密
Caddy 自动证书
🔑
API Key 认证
Bearer Token
🛡️
路径白名单
仅 /v1/* 可达
🏠
内网隔离
:8642 仅本机
📋
统一审计日志
所有渠道一处查看

九、调用示例

Python

from openai import OpenAI

client = OpenAI(
    base_url="https://ceshi.com/v1",
    api_key="你的密钥",
)

# 非流式
response = client.chat.completions.create(
    model="any-model",
    messages=[{"role": "user", "content": "你好"}],
)
print(response.choices[0].message.content)

# 流式
stream = client.chat.completions.create(
    model="any-model",
    messages=[{"role": "user", "content": "讲个笑话"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

curl

curl -s -X POST https://ceshi.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 你的密钥" \
  -d '{"model":"any-model","messages":[{"role":"user","content":"你好"}]}'

Node.js

const res = await fetch("https://ceshi.com/v1/chat/completions", {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
        "Authorization": `Bearer ${API_KEY}`,
    },
    body: JSON.stringify({
        model: "any-model",
        messages: [{ role: "user", content: "你好" }],
    }),
});
const data = await res.json();
console.log(data.choices[0].message.content);

十、设计总结

🎯 一句话总结:Hermes Gateway 让「一个大脑服务所有入口」成为现实。配置不散落、记忆不割裂、接入不重复。加渠道?写个适配器就行。