首页
学习
活动
专区
圈层
工具
发布

Uber公开内部大型AI软件工厂:7成PR全靠Agent打工,真实环境稳如老狗,成本狂省52%

Uber写代码的活,现在超过七成已经交给AI Agent接管了。

在Uber内部,工程师们构建了超过3600个AI Agent技能,每天执行超过3万次。越来越多的任务不再需要人类去启动,而是由全自动的管理型Agent自主搞定,包括代码审查、CI故障自愈、带视觉验证的端到端PR、值班告警排查、线上Bug调试以及各种日常代码维护。

在2026年2月到8月中旬期间,Uber内部所有Agent产品的周活跃用户增长了7倍,每周Agent请求量激增了9.4倍。

在这种爆发式增长下,Uber的AI总支出自4月以来却基本保持平稳。

为了排除模型升级和业务结构变化带来的干扰,Uber在2月到7月期间固定使用同一模型进行测试,结果显示:每1000次模型请求的成本相比峰值下降了近34%,每个会话的平均成本更是从6月的峰值暴跌了52%。

调用量涨上天,成本却被按在地上,Uber到底是怎么做到的?

软件工厂与六因子成本公式

Uber将内部的AI使用场景从专用到通用划分为四个层级。越往顶层,团队对成本、输出质量以及模型选择的掌控力就越强。

这四个层级分别是:

1. 全托管自主Agent:直接对代码库或系统进行操作,无需人类直接介入交互。

2. 托管半自主Agent:人类发起任务并进行审核确认,Agent自主完成执行流程。

3. 任务特定交互式工具环境:针对特定工作流设计的交互界面。

4. 通用交互式工具环境:最基础的通用交互终端。

不论处于哪一层,整个Agent会话的支出都可以拆解为一个由六个因子相乘的成本公式:

总支出 = 用户数 × 每用户会话数 × 每会话交互轮数 × 每轮请求数 × 每次请求Token数 × 单Token价格

前两项代表业务采纳度与活跃度,这是需要持续扩大的指标。

中间的三项代表优化空间,反映了Agent在工程师实际诉求之外自主执行的额外工作,这也是Uber团队集中发力的核心。通过优化这几项指标,可以帮助Agent更快规划路径、减少无效轮次与报错,并压缩输入的Token体积。

为了做好长期与短期的开销预测,Uber建立了一套完整的周级与月级跟踪指标体系。

围绕这套成本公式,Uber实施了一系列针对性的降本优化手段。

单Token价格优化:基准测试驱动与默认模型分流

大模型单Token的单价由供应商决定,但选择让哪款模型去跑哪项业务,主动权在企业自己手里。

Uber的核心策略是针对不同工作负载,挑选帕累托最优的模型。这里的最优涵盖三个维度:单任务完成成本、输出质量与模型稳定性。

模型选型的具体落地分为四步:

1. 基于Agent在真实场景中的实际工作提取并构建基准测试。

2. 将Agent接入统一的测试底座,通过统一接口调用各类前沿模型或开源权重模型。

3. 随时切换到处于帕累托前沿的模型。前沿技术每隔几周就会迭代,选型也随之动态调整。

4. 结合托管Agent收集到的汇总数据,持续测试和上线各类模型路由策略。

以Uber内部负责所有PR代码审查的AI工具uReview为例。团队基于包含已知缺陷的真实PR构建了测试集,并划分为简单、中等和困难三个等级,综合评估精确率、召回率、F1分数、单次审查成本、延迟、超时率和误报噪音。

测试结果显示,切换到更优模型后,在大幅降低单个PR审查成本的同时,F1分数反而得到了显著提升。此外,Uber还依托超大单体代码库中数以千计的真实PR,构建了Uber内部专属的SWE基准测试,用来指导所有研发流程托管Agent的模型选型。

在交互式界面中,单Token单价虽然固定,但可以通过默认设置来引导Token在不同模型间的分布。

最见成效的举措是子Agent的默认模型策略。随着多Agent协作普及,启动子Agent的会话比例不断攀升。由于子Agent通常只负责执行输入明确的具体子任务,并不需要顶级模型的复杂推理能力,Uber将子Agent默认指定为更便宜的轻量模型,同时保留手动切换权限。主模型专注于任务拆解与评估,执行过程则由轻量级子Agent完成。

每次请求Token数优化:缓存、精简与代码模式

在多轮对话中,每一次交互都会重复发送完整的历史记录、项目上下文和工具执行结果。单个请求载荷的缩减,会在整个会话生命周期中产生复合放大效应。

Uber首先在所有交互工具环境的统一封装层中推行了标准化默认配置:

1. 自动压缩阈值设为400k:即便模型支持1M超长上下文,达到400k即触发自动压缩,平衡模型性能、缓存命中以及重复输入Token的开销。

2. 思考推理级别默认设为中等:主流模型中包含内部思考在内的输出Token单价远高于输入Token,默认开启中等推理力度即可在绝大多数任务中兼顾成本与质量。

在Prompt缓存策略上,供应商对缓存读取通常只收取0.1倍的标准输入价格,但缓存写入会收取溢价。5分钟TTL的写入费用为1.25倍,1小时TTL的写入费用为2倍。

工程师在交互式会话中经常会出现超过5分钟的操作停顿。此前使用默认的5分钟TTL会导致缓存频频失效,每次继续对话都需要全额重新构建上下文。Uber将交互式会话的缓存时间调整为1小时,消除了频繁失效带来的重建成本。至于子Agent,因其聚焦于生命周期极短的单一任务,依然保持5分钟TTL配置。

在工具调用方面,Uber通过统一网关接入了超过1000个内部及第三方SaaS的MCP服务,用以集中管控鉴权与策略。

然而,标准MCP协议会将所有工具的Schema定义全部塞进每一次会话。如果挂载100个工具,每次对话在未输入内容前就要背负5万到7万Token的Schema包袱,并在后续每一轮重复传输。

为了解决上下文膨胀,Uber上线了两套互补机制:

第一是CLI命令行化工具解析。用执行Shell命令替代原生的MCP集成,CLI在调用发生时动态解析网关对应的工具并执行,直接从会话上下文中移除了所有内部MCP的Schema定义,网关内上千个MCP工具均被映射为CLI命令。

第二是工具搜索。模型先去检索工具目录,按需加载真正需要的工具定义,避免海量定义长期驻留上下文。

针对频繁调用的工具交互,Uber引入了代码模式(Code-Mode)。

在原生MCP工作流下,每个动作都需要模型生成请求、接收原始返回、再串行处理下一轮。例如查询一次SQL,需要经历提交查询、轮询状态2到5次、获取数据等多个回合,每一次轮询结果都会挤占上下文。

代码模式允许模型将一系列操作打包成一段Python脚本放入子进程执行,只有最终摘要返回给模型上下文,轮询过程全部移至模型外部。

在一组对比测试中,同样执行5次SQL查询:

测试数据显示,即便是数据量远低于响应限制的极小结果集,代码模式也能减少50%以上的Token消耗。对于批量操作场景,原本需要N轮对话的流程被浓缩为单次脚本运行,节省幅度超过90%。目前Uber已为高频MCP服务器部署了超过25个预置的代码模式技能。

对于第三方SaaS提供的MCP,例如协同办公或项目管理类工具动辄自带几十个接口,动辄占用数万Token。Uber同样将这些SaaS MCP接入统一网关,转换为CLI接口暴露给Agent,并编写专属的代码模式插件技能封装常见工作流。

每轮请求数优化:AI上下文图谱

缺乏全局视野的Agent在遇到信息缺失时,往往会不断扩大搜索范围、反复尝试并持续消耗Token。提前为其提供充足的上下文,是压缩无效搜索轮次的关键手段。

Uber的代码量达数亿行,内部数据表数以千计。Agent在生成代码前,大部分时间都在查找关联信息。

为此,Uber构建了企业级的AI上下文图谱。该图谱包含2400万个节点和800万条边,涵盖86种节点类型和117种边类型,打通了内部30多个系统的数据,包括微服务、研发团队、事故日志、PR历史、架构设计文档、部署状态、数据集以及历史表查询记录,并支持Agent直接通过自然语言进行查询。

在同一Prompt的实测对比中:接入图谱的Agent通过查询历史使用情况,精准找到了50多位分析师常用的一张数据表,在38秒内完成了任务。未接入图谱的Agent无法直接定位该表,耗费了20分钟查阅服务源码,衍生出2个子Agent并遭遇3次报错,最终得出了该数据集不可查询的错误结论。

可视化与防浪费监控

为了帮助工程师和Agent减少试错周期,Uber在开发者终端的状态栏中嵌入了实时成本计数器,展示当前会话以及跨会话的累计开销。

在管控体系上,Uber放弃了一刀切的限额,转而采用实时追踪与柔性分级提醒:

1. 终端状态栏实时显示当前开销。

2. 跨工具共享预算池,托管Agent独立设级。

3. 当预算达到预期的50%、80%、100%时触发Slack预警,预留规划时间。

4. 提供快速晋级审批通道,方便主管快速授权提额。

5. 提供成本排查技能与实时优化建议。

同时,Uber在运行时中内置了会话分析看板。该功能无需开发者额外配置,可自动分析用户在本地和云端沙箱中的所有会话轨迹,精准识别16类开销反模式并给出优化建议,其中包括:

1. 模型选择不当:使用昂贵的旗舰大模型处理普通小模型即可胜任的简单多轮任务。

2. 上下文臃肿:高达40KB的MCP单次返回结果残留在上下文中,随后续轮次反复计费。

3. 缓存超时失效:长时间搁置会话导致Prompt缓存过期,再次唤醒时全额重建上下文。

4. 初始化开销过大:在用户输入任何问题前,预先加载了10万Token的系统指令与工具Schema。

下一步演进

Uber后续的技术迭代重点集中在五个方向:

1. 持续扩充托管Agent阵列:为新场景制定明确结果指标、搭建评测集并匹配帕累托最优模型,推进软件生命周期的进一步自动化。

2. 动态模型路由:将基准测试覆盖面拓展到更多编程语言、代码仓库及Agent交互模态。

3. 深化上下文图谱整合:让更多自主Agent获得图谱查询能力。

4. 会话分析转向实时指导:从定期批量检测反模式升级为实时轨迹监控,直接向开发者推送个性化的效率提升建议。

5. 技能自主持续迭代:自动记录Agent在执行技能时的阻塞点,基于收集的轨迹自动生成技能更新。

从零散的交互式开发者终端逐步转向完全托管的自主Agent,是Uber控制大模型研发成本的核心路径。将软件生命周期的工作负载转入托管环境,让平台对模型路由、运行环境和整体开销拥有了全局掌控力。为每个专门用途的托管Agent配置专属基准与最优模型,在扩展性和投资回报率上,远胜于对数千名工程师的终端使用习惯进行逐一微调。

source:

https://x.com/UberEng/status/2093444169037762840

--end--

最后记得⭐️我,每天都在更新:如果觉得文章还不错的话可以点赞转发推荐评论

/...@作者:你说的完全正确(YAR师)

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OYjwX7V0P2MStk19w60_LkYg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

领券