
1. 为什么企业不是“接个 API”那么简单大概在两年前我所在的技术团队第一次把大模型接入到内部系统里。当时大家普遍的想法很简单拿到一个 API Key调通一个接口能在页面里跑通一个对话窗口就算“拥抱大模型”了。但真正跑起来之后问题接踵而至。先是各个项目组各自申请账号密钥散落在代码仓库、配置文件、甚至聊天记录里然后是费用账单变得完全不可控有人用 GPT-4 跑批量任务有人用同一个 Key 在测试环境反复调试月底财务一看账单直接懵了再后来是安全部门找上门因为某个内部工具把客户相关的数据拼进了 prompt 里而这条请求走了哪家模型、存了哪些日志完全没有记录可查。这些问题的本质不是某个模型的能力不行而是企业缺少一个统一管理大模型流量的入口。这个入口就是后来我们花了大力气建设的东西——大模型网关。简单说它处在业务系统和各类大模型之间所有的大模型请求都先经过它由它负责路由、鉴权、限流、缓存、审计以及成本核算。这也是我写这篇实践指南的初衷。大模型网关不是一个“装个开源软件就能用”的玩具它涉及企业现有的网络架构、安全合规要求、成本管理机制还要和研发流程里的自动化编程工具配合起来才能形成真正的生产力。接下来我会从基础概念讲起再落到我们实际落地过程中踩过的坑和沉淀下来的做法。2. 大模型网关到底在网关什么核心能力拆解2.1 模型路由按场景分流而不是所有请求都用同一个模型网关最基础也最重要的能力是模型路由。大多数企业不会只接一家大模型供应商开源模型、商业 API、私有化部署的模型往往会同时存在。如果没有网关业务方就得自己在代码里写一堆 if-else 来切换供应商这会造成严重的代码耦合。网关把这一层抽取出来之后路由策略就变成了配置问题。我在实际项目里通常会把路由维度分为三类按任务类型、按业务优先级、按成本区段。任务类型指的是对话、摘要、代码生成、向量化这类不同工作负载不同任务的延迟敏感度和质量要求差别很大业务优先级则决定了高优业务可以打到更强的模型上而低优任务可以回退到便宜模型成本区段则是把流量的预算做进路由规则里比如某个部门这个月的预算快用完了自动把非核心流量切到更经济的模型。路由规则看起来就是个配置但真正设计的时候有一个容易忽略的点路由必须支持可灰度、可回退。我们在上线初期就吃过亏把所有流量一刀切到新接入的模型上结果那个模型对某些行业术语的理解明显不如原来的模型线上反馈量直接上升。后来我们养成了一个习惯任何路由变更都先跑 1% 的流量观察结果指标再逐步放量。2.2 语义缓存省钱的同时别让用户觉得“变笨了”大模型的调用成本是真实存在的尤其当你在做一些重复性较高的业务时比如客服话术生成、报表解读、知识库问答。我们发现企业内部有大量请求其实是高度相似的用户换个措辞问同一个问题背后模型要做的事情几乎一样。这时候如果每次请求都真实调用一次大模型成本是很大的浪费。网关层可以做语义缓存。它和传统缓存的区别在于传统缓存靠 key 精确匹配而语义缓存会先把用户输入做向量化计算与之前请求的相似度超过阈值就直接返回历史结果不再调用大模型。但这里有一个非常关键的细节不是所有场景都适合开语义缓存。如果业务的时效性要求很高比如查实时库存、查当天订单状态这类请求一旦命中过期缓存用户感受到的就是“模型是不是傻了”。我的处理方式是把缓存策略和路由策略绑定在一起对知识库问答、文档写作这类相对静态的场景开启语义缓存对涉及实时数据的场景强制绕过缓存并且给所有缓存结果打上数据新鲜度标签让业务方自己决定是否能接受缓存命中。2.3 限流与配额保护模型服务也保护你的预算大模型 API 是有并发限制的而且商业模型按 token 计费。如果没有限流某个业务方突然发起大量请求轻则拖垮整个网关重则耗尽企业当月的调用预算。限流这件事企业级网关和高并发场景下的秒杀系统很像核心算法无非是令牌桶、滑动窗口、漏桶这几类。我对令牌桶的理解可以用一个生活化的类比想象一个公共饮水机桶里每秒钟会掉一滴水进杯子这个“水”就是令牌请求进来必须拿走一个令牌才能继续用模型如果杯子满了请求就得排队或者被拒绝。令牌桶的好处是允许一定程度的突发流量适合真实业务场景里那种“早上十点大家都在问相似问题”的尖峰。我在生产环境用的是一套双层限流方案网关对每个业务方做配额限制比如一个部门每分钟最多 100 次请求同时再对上游模型通道做整体限流防止网关本身被打爆。配额限制的粒度也很重要建议至少细分到“业务方模型级别”不然就会出现某个部门把便宜的模型额度用完了另一个部门想用的时候只能干等。2.4 安全、审计与数据边界网关存在的最大理由之一如果说路由和限流是网关的“效率”属性那么安全和审计就是网关的“生存”属性。在国内企业的合规要求下任何涉及用户个人信息的请求如果没有统一的出口管控和日志审计风险是非常大的。网关必须做到三件事。第一密钥统一管理业务方拿到的只是网关签发的凭证而不是上游模型的真实 API Key这样就算某个内部系统的密钥泄露了影响范围也很有限。第二请求内容脱敏网关在把请求转发给模型之前对手机号、身份证号、银行卡号等敏感信息做识别和替换模型收到的是脱敏后的文本返回结果再还原。第三全链路审计日志谁在什么时间、调用了哪个模型、发送了什么内容、拿到了什么返回这些都需要可查询。这一步不光是合规要求也是出了问题之后快速定位原因的唯一手段。我经常跟团队里的工程师说网关是企业在 AI 时代的一个“门卫”它不产生模型能力但决定了谁能用、能用多少、用了是否安全。3. 从零落地网关选型、架构和那些必须避开的坑3.1 三种落地路径的对比做技术选型之前先要想清楚一个问题你们企业是想要一个“能用的网关”还是想要一个“能长期演进的网关”。这两者的投入完全不同。我遇到过三种主流路径。第一种是直接用云厂商提供的托管网关比如在云上开通模型服务时自带的 API 管理能力。这个方案最省事适合那种还在验证阶段、不想投入太多研发资源的中小团队但缺点也比较明显一旦你的模型供应商是多家的甚至包含私有化部署的开源模型托管网关通常很难统一纳管。第二种是使用开源的网关项目。目前社区里已经有不少成熟项目支持多模型接入、统一鉴权、成本统计这些核心功能而且生态比较活跃。这个方案适合有一定研发能力、想要掌控细节的团队也是我比较推荐的方向。开源网关的好处是灵活坏处是很多企业级能力需要自己二次开发比如和内部 SSO 对接、审计日志推送、告警系统联动。第三种是从零自研。说实话自研网关的技术门槛并没有想象中那么高它本质上就是一个 API 转发层加上鉴权、限流、缓存、审计这些标准中间件能力。但如果企业已经有统一的 API 网关平台直接在现有网关上扩展一个大模型转发插件往往比另起炉灶更合理。自研最大的成本不在开发而在后续的持续维护和兼容性跟进比如上游模型供应商的接口变动、新模型接入时的协议适配。3.2 我推荐的部署架构和关键配置我实际落地时采用的是一套比较标准的架构前置统一接入层、网关核心引擎、模型通道适配层。统一接入层面向内部业务系统提供统一的 OpenAI 兼容接口网关核心引擎处理鉴权、限流、路由、缓存、审计模型通道适配层对接各家模型供应商包括 OpenAI 兼容协议、各家私有协议以及内网部署的模型服务。在部署形态上网关服务本身是无状态的可以水平扩展状态全部放到 Redis 里。限流计数、缓存、路由规则都走 Redis这样即使某个网关实例挂了流量也能平滑切换到其他实例。关键配置上我觉得最值得关注的几个点包括模型超时时间默认给 60 秒但针对流式对话场景要单独调请求体大小限制防止有人通过网关转储大文件导致内存溢出以及重试策略幂等请求可以自动重试一次非幂等请求一定不能自动重试。3.3 落地过程中的三个大坑坑一把网关变成单点。我见过有团队把所有大模型请求都打到一台网关实例上问原因说是流量不大没必要集群。结果某天这台机器因为磁盘满导致服务宕机整个公司所有 AI 功能全线不可用。网关是无状态的天生适合多实例部署前面加个负载均衡器成本很低但稳定性提升是质变。坑二把审计日志写入到业务数据库。审计日志的数据量增长极快每条请求的 req 和 resp 内容动辄几 KB 甚至几十 KB如果和业务表放在同一个库里很快就会拖慢业务查询。审计日志应该走独立的存储比如对象存储加检索服务或者专门的日志系统。坑三没考虑模型供应商的限流差异。开源模型的私有化部署通常没有严格的限流但商业 API 的限流是硬性的。如果你在网关层设了一个非常大的限流阈值上游也会反过来限制你的并发这时候请求会大量报错。后来我们会定期拉取供应商账号的配额数据在网关层动态调整阈值。4. 自动化编程的实战推进从辅助编码到工程化协同4.1 先想清楚自动化编程的边界搞定了大模型网关之后我们开始推进第二个方向自动化编程。其实“自动化编程”这个词很容易让人产生误解以为目标是让 AI 自动写完整套业务系统这个预期不现实至少在现阶段AI 的能力边界更适合定义为“辅助程序员高效完成研发链路中的具体环节”。我从实践里得出的结论是自动化编程的落地路径应该分为三档第一档是代码补全和对话式编程帮工程师更快写出代码第二档是自动生成单元测试、自动化生成代码评审意见、自动修复已知告警第三档是更进一步的智能体能独立完成一个简单的需求任务比如生成一个 CRUD 接口、写一份数据库表结构的变更脚本。我们的经验是先把第一档和第二档做成团队的默认工具再逐步试探第三档。4.2 代码补全类工具的高效用法代码补全工具现在的成熟度已经很高了模型会根据上下文自动生成下一段代码。但我发现很多团队用了工具之后代码质量反而下降原因是使用者把它当成了搜索引擎直接把生成的代码复制粘贴完全不过脑。我的建议是代码补全最有效的场景是“消除机械劳动”而不是“替代思考”。比如写一段重复性极高的 DTO 映射、生成常见的增删改查样板代码、根据接口定义生成前端类型定义这些用 AI 生成效率提升非常明显。但涉及到业务逻辑的关键分支、并发边界、事务一致性这些地方必须由人来仔细推敲。我们内部还专门维护了一份“AI 生成代码的审查清单”涵盖空指针、资源泄漏、异常处理、魔法值这几个高频问题。因为模型生成的代码表面上看语法没问题但在边界处理上经常会有隐患。4.3 单测生成和代码评审最容易见效的切入口如果让我推荐自动化编程最值得先做的场景一定是单元测试生成。程序员普遍不喜欢写单测觉得枯燥、重复、费时间但这个工作恰恰非常适合大模型来做。模型读到你的函数签名、上下文、历史提交记录之后生成的测试用例覆盖面往往比人写的还广。我们做过一个实验用自动化工具给一个订单服务模块生成单测生成的用例数量是手写的三倍分支覆盖率提升了大概 20 个百分点。当然生成的用例不是全部能直接通过大概有三分之二的用例需要人工微调但哪怕是这样整体效率也比从零手写高很多。代码评审是另一个高频场景。传统的人工评审特别依赖评审人的经验和精力实际执行起来经常流于形式。我们把代码评审机器人接到现有的代码托管平台上每次提交代码自动触发从代码风格到潜在的逻辑问题都跑一遍把结果附加到 MR 的评论里。人工评审者可以把精力集中在业务架构、方案取舍这些机器看不了的问题上。4.4 自动化编程的工程化配套工具只是自动化编程的一部分真正落地还需要配套的工程化机制。我的经验是三条。第一代码生成必须和既有代码规范绑定。我们在生成工具的提示词里注入了团队的代码规范片段比如命名规范、异常处理方式、日志输出格式这样生成出来的代码至少不会被 Code Review 因为风格问题打回。第二AI 生成的所有代码必须走完整的 CI 流程。单元测试、静态扫描、构建、部署流水线一个都不能少。AI 写代码也会犯错但它犯错的方式和人不一样必须靠流水线帮他兜底。第三要建立 AI 代码的追踪机制。哪些代码是 AI 生成的是在什么时间、基于什么上下文生成的这些信息要保留。不然出了问题连排查的起点都找不到。5. 把网关和自动化编程捏成一个整体5.1 统一接入之后的研发提效闭环前面讲的网关和自动化编程其实是两个独立的方向但它们在企业实际运行中必须要打通。打通之后才能形成一个完整的研发提效闭环。举一个我们内部真实发生的例子。代码补全工具一开始是每个工程师自己注册账号去用的用得挺好但问题在于不同工程师用了不同供应商的编程助手体验不一致费用也分散而且代码补全工具产生的请求内容涉及企业源代码这个数据流完全游离在安全管控之外。后来我们把编程助手的流量也纳管到了统一的大模型网关下面。工程师在前端用的还是原来的编程助手 IDE 插件但请求统一经过网关统一做鉴权、审计、限流。研发同学没有感知到变化但安全部门放心了费用也看得见了。这算是网关在“AI 时代基础设施”这个角色上一个非常典型的应用。5.2 可观测性建设让成本和效果都看得见大模型网关铺开之后可观测性建设是我最想强调的事情。传统的监控指标比如 QPS、延迟、错误率在网关场景下还不够你还需要看到 token 消耗量、成本消耗、缓存命中率、模型分布、业务方用量排行这些维度。我建议网关的指标面板上至少要有这几个视图实时请求量按模型维度的分布按业务方的 token 消耗排行缓存命中率趋势单次请求的成本明细。有了这些数据你才能回答管理层最关心的两个问题——AI 的投入产生了多少效果以及钱花在了哪里。成本管理上还有一个细节要给每个业务方设置预算阈值而不是等账单出来了再分摊。我们在网关上做了预算预警业务方用量达到月预算的 80% 时自动告警给负责人超过预算后可以配置自动降级到更便宜的模型或者直接阻断非核心调用。5.3 组织与流程上的推动经验技术落地到一定程度之后瓶颈往往出现在组织层面。很多团队推广 AI 工具的阻力不是工具不好用而是大家不愿意改变习惯。我自己的体会是最好的方式是找到团队里两三个愿意尝鲜的种子用户让他们先跑出效果形成标杆案例再铺开给其他成员。另一个经验是不要把“AI 使用率”当成唯一的 KPI。逼着每个工程师每天必须用多少次 AI 是没意义的反而会滋生凑数行为。更合理的指标是看研发交付的效率有没有提升——比如需求平均交付周期有没有缩短、单测覆盖率有没有上升、线上缺陷密度有没有下降。这些指标能被 AI 间接影响但它们本身是正经的研发质量指标不会因为用了 AI 就失真。6. 我踩过的坑和那些希望早点知道的事6.1 别一上来就追求“大而全”我们最早制定网关建设方案的时候规划了特别多能力多租户、复杂的计费体系、智能路由、动态模型切换、一键迁移……后来发现越大的方案越难落地半年都上线不了。后来我们把范围收缩到最小可行版本统一的模型接入、密钥管理、基础限流、日志审计。这四个能力上线之后立刻解决了之前最痛苦的成本和安全问题后面的高级能力再迭代补充。自动化编程也一样不要想着第一天就让 AI 自动修 Bug、自动评审、自动生成上线报告。先从代码补全和单测生成这两个点切入跑顺了再扩展。6.2 评估指标要在动手之前定下来做这类基础设施项目最怕的事情是上线之后不知道该怎么评估成功失败。网关上线前我们定了几条硬指标请求成功率不低于 99.5%、网关转发延迟增加不超过 20 毫秒、通过缓存节省的成本占总模型费用的比例、以及安全审计完整性达到 100%。有了这些指标每一轮优化都有明确的方向也能跟管理层讲清楚投入产出比。6.3 团队认知对齐比工具选型更重要最后说一句可能听起来有点虚、但确实是最重要的话工具和方案再完善最终使用它们的还是人。我见过有团队引进了一流的工具但工程师因为不了解原理而把它当成玩具也见过团队用很朴素的工具但因为每个人都知道边界、知道什么场景该用、什么场景不该用整体效果反而非常好。我们后来每周会固定搞一次内部的 AI 实践分享会每次由一个人分享他在过去一周里用 AI 工具解决的一个真实问题十几分钟很轻量。这种形式不需要额外投入太多时间但对团队整体认知的提升效果非常明显。我个人在经历了网关建设和自动化编程落地这两件事之后最大的体会是技术选型和架构设计当然重要但真正决定一个企业能不能把大模型用起来、用得好取决于它有没有建立起一套让模型能力安全、有序、可控地进入日常工作的基础设施和配套机制。如果你所在的公司也在做类似的事情希望这篇实践指南能帮你少走一些弯路。