小刘檀木的大模型日记 · Day18 · AI Gateway、AI Nacos-帮普通人把AI学进简历系列

Day18|AI Gateway、AI Nacos:大模型应用从 Demo 到生产,中间差一个治理层

封面:系列统一封面 大模型.png

前言:一次“换模型改代码”的小事故

上周四晚上 10 点半,一个朋友给我发消息,说他们的 AI 客服准备第二天灰度。

结果临上线前,老板突然来了一句:“把模型从 A 换成 B,成本便宜一点,效果也试试。”

这事听起来很小:改个 base_url,换个 model,再改一把 api_key。二本小透明当年刚做工程时,也觉得这不就是三行配置的事。

然后事故就来了。

测试环境改了,生产环境没改;生产环境改了,灰度策略没改;灰度策略改了,日志里又分不清到底是哪一路模型在回答。

这就是大模型应用从 Demo 走向生产时,最容易被忽略的一层:

模型调用也需要治理。

应用直连多个大模型与接入 AI Gateway 和 Nacos 控制面的架构对比

今天这篇,我们聊两个越来越重要的词:AI Gateway 和 AI Nacos

先记一个粗暴版本:

AI Gateway 管入口,Nacos 管控制面。一个负责请求怎么进来、怎么转发;一个负责配置怎么变、服务怎么发现、工具怎么注册。


PART 01:AI Gateway 管入口——把模型调用从业务代码里拆出来

很多人听到 Gateway,第一反应是“网关不就是反向代理吗?”

放在传统 Web 系统里,这句话不算错。但到了 AI 应用里,Gateway 的价值会明显变大。

因为大模型调用背后多了几层麻烦:

  • 模型供应商多:OpenAI、Claude、通义、DeepSeek、本地 LLaMA
  • 调用成本高:一个用户狂点刷新,钱真的会烧
  • 返回时间长:流式输出、超时、重试都要处理
  • 内容有风险:Prompt 注入、敏感词、越权工具调用
  • 观测很关键:你得知道哪个模型贵、慢、错得多

所以 AI Gateway 不只是转发请求,更像模型调用的统一入口。

AI Gateway 统一代理多模型和 MCP Server 的流量图

它至少能帮你做几件事:

  • 统一鉴权:业务方只拿内部 token,不直接接触模型厂商 key
  • 模型路由:简单问题走便宜模型,复杂问题走强模型
  • 限流熔断:防止某个用户或某个应用把额度打爆
  • 观测统计:记录 token、延迟、错误率和成本
  • 安全治理:对输入输出做内容检查,对工具调用做权限控制

这样业务代码就不用写一堆 if model == ...

它只需要面对一个统一入口。

比如用 OpenAI 兼容协议,业务代码可以长这样:

from openai import OpenAI

client = OpenAI(
    api_key="internal-app-token",
    base_url="https://ai-gateway.example.com/v1",
)

resp = client.chat.completions.create(
    model="customer-service-fast",
    messages=[
        {"role": "system", "content": "你是企业客服助手,回答必须基于知识库。"},
        {"role": "user", "content": "我的发票怎么重新开?"},
    ],
)

print(resp.choices[0].message.content)

注意这里的 model="customer-service-fast",它不一定是真实模型名,而是内部逻辑名。真正转到 gpt-4.1-miniqwen-plusdeepseek-chat,还是本地 LLaMA,由 Gateway 的路由策略决定。

这就像你去饭店点“今日套餐”,不用关心后厨今天是哪口锅炒的。对业务代码来说,稳定最重要。


PART 02:Nacos 管控制面——配置、服务、MCP 工具都要能动态发现

那 Nacos 在这里干嘛?

如果说 AI Gateway 是流量入口,那 Nacos 更像控制面。

传统微服务里,Nacos 常做两件事:服务发现 和 配置管理

服务发现解决“谁还活着、地址在哪”;配置管理解决“参数怎么改、改完谁生效”。到了 AI 应用,对象变了。

以前你注册的是订单服务、用户服务。现在你还可能注册:

  • 模型服务:llama-local-8bqwen-plusembedding-service
  • MCP Server:文件系统工具、数据库查询工具、工单工具
  • Prompt 模板:客服 prompt、审核 prompt、总结 prompt
  • Agent 配置:可用工具、模型策略、超时参数

这就是 AI Nacos 值得关注的地方:它不只是管传统微服务,也开始往 AI Registry / MCP Registry / Agent 管理 这类方向延伸。

AI Gateway 数据面与 Nacos 控制面的分工图

分工可以这样理解:

  • Gateway:每一次请求怎么进、怎么鉴权、转给谁、怎么限流
  • Nacos:有哪些模型/工具可用、配置是什么、变更怎么推送

一个管“跑在路上的车”,一个管“路网和信号灯”。

比如模型路由策略,不应该散落在每个应用仓库里。

它更适合放进配置中心:

routes:
  customer-service-fast:
    primary: qwen-plus
    fallback: deepseek-chat
    max_input_tokens: 8000
    timeout_ms: 15000
    rules:
      - when: "intent == 'refund' and vip == true"
        model: gpt-4.1-mini
      - when: "input_tokens < 1000"
        model: qwen-turbo

这段配置表达的是:业务仍然调用 customer-service-fast,但背后可以按意图、用户等级、输入长度去路由。

更关键的是:你可以改配置,而不是重新发版。

这对生产系统太重要了。

上线后你会经常遇到这种情况:

  • 某个模型今天延迟飙高,先切 fallback
  • 某类问题答得差,临时调高强模型比例
  • 某个 MCP 工具出问题,先下线工具
  • 某个 prompt 效果不好,灰度新版 prompt

如果每次都要改代码、打包、发版,团队很快就会被变更拖垮。


PART 03:把它们放进一个真实 AI 应用

我们拿企业知识库助手举个例子。

这个系统看起来只是“用户问一句,AI 答一句”,但生产链路通常很长:

  • 用户问题进来
  • Gateway 做鉴权、限流和日志
  • 应用做 query 改写和 RAG 检索
  • Gateway 根据策略选择模型
  • 模型必要时调用 MCP 工具
  • 输出再经过安全检查
  • 记录 token、成本、延迟和命中率

企业 AI 应用生产链路图

这里面最怕什么?

最怕所有东西都写死在代码里:模型名、key、工具地址、prompt、阈值。Demo 的时候爽,生产的时候每一个“写死”都会变成坑。

我更建议普通团队按三个阶段推进:

第一步,先治理配置。

把模型名、base_url、超时、fallback、灰度比例,从代码里拿出来,放进 Nacos 这类配置中心。

第二步,再治理模型入口。

让业务统一调用 AI Gateway,不要让每个业务系统自己保存一堆厂商 key,也不要让每个业务自己实现限流、重试和日志。

第三步,最后治理工具和 Agent。

当 MCP Server、内部工具、Agent 配置越来越多时,再把工具注册、发现、权限和灰度纳入统一治理。

这样做有个好处:你不是为了追概念而上架构,而是随着复杂度一点点长出治理能力。

真实工程里,架构不是画出来的,是被事故逼出来的。但我们最好别等事故把人逼到凌晨三点。


结尾:别让模型调用继续裸奔

今天这篇,你只要带走一张图就够了:

  • AI Gateway:数据面入口,负责鉴权、路由、限流、观测、安全
  • Nacos / AI Nacos:控制面中心,负责配置、注册发现、MCP/Agent 资产管理
  • 业务应用:只关心业务逻辑,不应该到处散落模型 key 和路由规则

大模型应用走到生产,最怕的不是模型不够聪明,而是调用链路不受控。

模型可以换,供应商可以换,Prompt 可以换,工具也可以换。

但前提是:这些变化不能每次都变成一次发版事故。

大模型应用从 Demo 走向生产,第一步不是换更大的模型,而是把失控的调用变成可治理的系统。

互动时间:如果让你们公司现在接一个 AI Gateway,你最想先治理哪件事?模型 key、成本、限流、日志,还是 MCP 工具?

下一篇预告:我们继续聊推理参数,temperature、top_p、max_tokens 这些按钮,到底怎么调才不玄学。

— END —

小刘檀木 · 帮普通人把 AI 学进简历

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐