AI Agent 工程实践(31):Agent 如何部署
系列AI Agent 工程实践上一篇第 30 篇《Agent 如何做测试》下一篇第 32 篇《Agent 如何上线》一、开场把 Agent 跑在笔记本上一个团队做完 Demo老板说明天给客户演示。工程师把服务python app.py跑在自己笔记本上开着不关。演示到一半系统自动更新重启服务没了客户想能不能并发试试两个人同时发消息就 502。这不是段子是 Agent 项目的典型死亡方式本地能跑 ≠ 生产能服务。上篇30讲测试保证改了不崩。这篇讲怎么让它一直活着还能扛量——部署。二、问题背景本地跑 vs 生产部署本地跑# app.py 直接 python app.py from fastapi import FastAPI app FastAPI() app.post(/chat) async def chat(req): ... # 终端里 python app.py关掉就没了生产部署要解决四件事环境可复现、进程可恢复、流量可承接、算力可调度。这四件事靠python app.py一个都解决不了。三、错误尝试三种部署翻车错误 1nohup python app.py 裸跑进程挂在登录 shell 下退出登录就死崩了没人拉起端口直接暴露公网没有 SSL、没有限流。错误 2推理和 API 混在一个进程还硬要 GPUAgent 服务本身是 CPU 密集编排、IO、拼接 prompt只有自己部署模型推理才需要 GPU。很多人不管用没用云 API先买显卡堆机器浪费钱也浪费运维。错误 3不容器化环境靠手动同步我本地能跑——因为依赖版本、系统库、环境变量全在工程师机器上。换台机器就飘协作和回滚都成噩梦。四、关键观察部署 六个独立决策轴部署不是选一个方案而是六个正交的决策每个都可以独立选服务入口FastAPI怎么把 Agent 暴露成 HTTP 接口。环境封装Docker怎么让环境可复现、可迁移。流量入口NginxSSL、负载均衡、静态资源、限流。算力来源GPU是否自托管推理——大多数情况不需要。编排调度K8s多副本、自愈、扩缩容。弹性形态Serverless不想管服务器、流量稀疏时。关键GPU 和 Serverless 是互斥的常见误用——自托管推理才要 GPU事件驱动才要 Serverless多数 Agent 走云 API Docker Nginx就够。五、最终方案六组件职责与适用边界组件负责什么你必须用它当可以不用的信号FastAPI异步 HTTP 服务、并发处理请求要做 Web 服务纯离线脚本Docker环境封装、可复现、隔离任何要迁移/协作的场景单文件脚本自用Nginx反向代理、SSL、负载均衡、限流暴露公网、多副本内网单实例GPU自托管模型推理的算力自己部署开源大模型调云 API绝大多数K8s多副本编排、自愈、弹性扩缩高可用、规模化一两台机器够用Serverless事件触发、按量计费、免运维流量稀疏、突发长连接/常驻服务反直觉的一点90% 的 Agent 项目不需要 GPU也不需要 K8s。它们调的是云 API如 DeepSeek、OpenAI算力在对方机房自己只跑编排逻辑CPU 足够。GPU/K8s 是自建推理 规模化才需要的重型装备过早引入只会拖慢你。六、架构图Mermaid请求全生命周期如果用 ServerlessFastAPI 容器换成函数实例由平台接管扩缩如果自托管推理Provider 指向本地推理服务跑在 GPU 节点。七、代码与配置示例Dockerfile最小可复现FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple COPY . . EXPOSE 8000 CMD [uvicorn, app:app, --host, 0.0.0.0, --port, 8000]docker-compose本地多容器services: api: build: . ports: [8000:8000] environment: - PROVIDER_API_KEY${PROVIDER_API_KEY} depends_on: [redis] redis: image: redis:7Nginx 反向代理SSL 限流server { listen 443 ssl; location /api/ { proxy_pass http://127.0.0.1:8000/; limit_req zoneone burst20; } }八、设计权衡自建推理 vs 云 API vs Serverless维度云 API自托管推理(GPU)Serverless起步成本低高显卡/机房极低运维负担无重无数据出域过第三方不出域视厂商延迟可控中高冷启动高适用绝大多数 Agent合规/量大/私有模型稀疏流量/事件选型原则默认云 API Docker Nginx只有数据不能出域或量足够大摊薄显卡成本才上 GPU只有请求极稀疏、不想养服务器才上 Serverless。不要反过来——先上重型装备再找理由。九、总结✅ 本地python app.py≠ 生产部署差的是环境可复现 / 进程可恢复 / 流量可承接 / 算力可调度。✅ 三种翻车裸跑 nohup、推理 API 混进程硬堆 GPU、不容器化环境飘移。✅ 部署 六决策轴FastAPI / Docker / Nginx / GPU / K8s / Serverless各自独立选。✅ 反直觉90% 的 Agent 不需要 GPU 也不需要 K8s——它们调云 API自己只跑编排。✅ 选型默认「云 API Docker Nginx」重型装备按需上。下一篇部署完别急着全量——怎么上线才安全。32参考资料带用途说明本系列30Agent 如何做测试部署前假设测试护栏已就绪本文是上线前的倒数第二步。本系列22Agent 项目应该如何分层本文 FastAPI / Docker 落点都在22的分层目录里。本系列19从 Demo 到生产环境 Checklist部署是 Checklist 的关键一环呼应上生产清单。本系列27日志系统容器化后日志收集方式会变化部署需配合日志方案。FastAPI 文档fastapi.tiangolo.com异步服务框架的实现参考。Docker 文档docs.docker.com容器化与镜像构建实践参考。Nginx 文档nginx.org反向代理与限流配置参考。本文是 AI Agent 工程实践系列的第 31 篇第四阶段第十一篇。系列导航上一篇第 30 篇《Agent 如何做测试》下一篇第 32 篇《Agent 如何上线》

相关新闻

深入理解 /IWBEP/IF_MGW_ODATA_ANNOTATION,SAP Gateway 如何把注解写进 OData 元数据

深入理解 /IWBEP/IF_MGW_ODATA_ANNOTATION,SAP Gateway 如何把注解写进 OData 元数据

在一个传统的 SAP Gateway SEGW 项目里,我们经常会遇到这样一个场景。实体、属性、Association、Entity Set 都已经建好了,MPC 和 DPC 运行时对象也已经生成,GET_ENTITYSET 返回的数据完全正常,可到了 SAPUI5 或 SAP Fiori 前端,页面仍然缺少一些语义信息。某个字段应该显…

2026/8/23 7:17:43 阅读更多 →
压缩映射原理:从不动点定理到数列收敛性的降维证明

压缩映射原理:从不动点定理到数列收敛性的降维证明

1. 项目概述:当数学分析遇上“降维打击”在数学分析,特别是实数完备性理论的学习和研究中,证明一个数列的收敛性是一个既基础又核心的课题。无论是为了求解极限,还是为了后续研究函数性质、级数敛散性打下基础,掌握一套…

2026/8/23 7:17:43 阅读更多 →
从一行 CREATE_ANNOTATION 读懂 SAP Gateway 元数据扩展机制,深入理解 /IWBEP/IF_MGW_ODATA_ANNOTATABL

从一行 CREATE_ANNOTATION 读懂 SAP Gateway 元数据扩展机制,深入理解 /IWBEP/IF_MGW_ODATA_ANNOTATABL

在一个经典的 SEGW 项目里打开 MPC_EXT 类,经常会看到一类很容易被忽略的代码。程序先通过 MODEL 找到某个 Entity Type 或 Property,紧接着调用 /IWBEP/IF_MGW_ODATA_ANNOTATABL~CREATE_ANNOTATION,拿到一个对象引用,再调用 ADD 填入诸如 label、hierarchy-node-for 一类属…

2026/8/23 7:17:43 阅读更多 →

最新新闻

关于LeetCode第11题的题解

关于LeetCode第11题的题解

** 关于LeetCode第11题的题解 ** 其实&#xff0c;当第一次遇到这个题目的时候&#xff0c;我第一眼打眼想到的是暴力解 class Solution {public int maxArea(int[] height) {int ans 0;for(int i0;i<height.length-1;i){for(int j 1;j<height.length;j){int s(j-i)*Math…

2026/8/23 8:02:58 阅读更多 →
5.2.1一维组数定义方式

5.2.1一维组数定义方式

三种方式&#xff1a; 1&#xff1a;数据类型 数组名{ 数组长度 }&#xff1b; 2&#xff1a;数据类型 数组名{ 数组长度 } { 值1&#xff0c;值2 ....}&#xff1b; 3&#xff1a;数据类型 数组名{ } { 值1&#xff0c;值2 ....}&#xff1b; 示例&#xff1a; #include…

2026/8/23 8:02:58 阅读更多 →
Maven Archetype:从复制粘贴到一键生成,打造企业级Java项目模板

Maven Archetype:从复制粘贴到一键生成,打造企业级Java项目模板

1. 项目概述&#xff1a;从“复制粘贴”到“一键生成”的质变如果你是一名Java开发者&#xff0c;或者正在学习Java&#xff0c;那么“Maven”这个词对你来说一定不陌生。它早已超越了“构建工具”的范畴&#xff0c;成为了现代Java项目事实上的标准基础设施。我们用它来管理依…

2026/8/23 8:02:58 阅读更多 →
2026 智能体化中台:拆解传统中台 95% 失败根源与轻量化落地

2026 智能体化中台:拆解传统中台 95% 失败根源与轻量化落地

传统集中式中台项目失败率居高不下&#xff0c;核心并不是中台理念失效&#xff0c;而是过去重底座、轻执行的建设模式脱离企业真实 IT 现状。大量企业投入巨资搭建业务、数据、AI 中台&#xff0c;完成数据汇聚与能力抽象&#xff0c;却受限于老旧 ERP、OA 系统缺少 API 接口&…

2026/8/23 8:02:58 阅读更多 →
GNSS标定Wi-Fi FTM网络:构建统一高精度室内外定位基础设施

GNSS标定Wi-Fi FTM网络:构建统一高精度室内外定位基础设施

1. 项目缘起&#xff1a;当“室内定位”遇上“室外精度”的跨界思考作为一名在物联网和定位技术领域摸爬滚打了十多年的老兵&#xff0c;我见过太多关于“精准定位”的宏大叙事和落地困境。室外有成熟的全球导航卫星系统&#xff08;GNSS&#xff09;&#xff0c;室内则有Wi-Fi…

2026/8/23 8:02:58 阅读更多 →
Flink CDC 3.x实战:构建MySQL到Doris的实时数据同步管道

Flink CDC 3.x实战:构建MySQL到Doris的实时数据同步管道

在数据驱动的业务场景中&#xff0c;如何高效、低延迟地将数据库的变更数据同步到数据湖或数据仓库&#xff0c;一直是数据架构师和开发工程师面临的挑战。传统基于查询的批处理方式延迟高、资源消耗大&#xff0c;而自研CDC&#xff08;Change Data Capture&#xff09;组件又…

2026/8/23 8:01:58 阅读更多 →

日新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态&#xff0c;宏观上观察到的光是由无数个微观的光量子组成的&#xff0c;每个光子在产生的瞬间&#xff0c;其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前&#xff0c;在微观层面&#xff0c;每个光量子的运动轨迹是以波函数所展现…

2026/8/23 0:00:50 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”&#xff0c;而是SIP会话的动态重定向你有没有遇到过这样的场景&#xff1a;客服坐席A正在和客户通电话&#xff0c;突然需要把这通对话无缝转给专家坐席B&#xff0c;客户完全感知不到中间的断连——既没听到忙音&#xff0c;也没被要求重新拨号…

2026/8/23 0:00:50 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack&#xff1f;如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法&#xff0c;那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/23 0:00:50 阅读更多 →

周新闻

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

首先光是一种能量的载体和形态&#xff0c;宏观上观察到的光是由无数个微观的光量子组成的&#xff0c;每个光子在产生的瞬间&#xff0c;其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前&#xff0c;在微观层面&#xff0c;每个光量子的运动轨迹是以波函数所展现…

2026/8/23 0:00:50 阅读更多 →
SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

1. 通话转接不是“挂断再拨号”&#xff0c;而是SIP会话的动态重定向你有没有遇到过这样的场景&#xff1a;客服坐席A正在和客户通电话&#xff0c;突然需要把这通对话无缝转给专家坐席B&#xff0c;客户完全感知不到中间的断连——既没听到忙音&#xff0c;也没被要求重新拨号…

2026/8/23 0:00:50 阅读更多 →
Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

1. 为什么选择Kolla-ansible来部署单节点OpenStack&#xff1f;如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法&#xff0c;那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

2026/8/23 0:00:50 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/22 18:08:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/22 7:31:03 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/22 3:22:48 阅读更多 →