《AI Agent原理与实战》2026版 第27课 部署、扩展与本地化运行

本文收录于专栏 《AI Agent原理与实战》2026版 ------ 专栏系统覆盖 AI Agent 的记忆、工具、插件与实战,点击订阅可跟踪后续更新。
本课定位:流量来了怎么办?部署模式三选(同步 API/异步队列/长驻服务)、扩展四策、本地化运行(数据不出域的完整方案)、沙箱环境与混合路由。追求数据主权的读者,本课给出 2026 年的国产全链路答案。
阶段 5|生产与安全 | 来源:课程自研补充

关键字: Agent部署、本地化运行、异步队列、扩展策略、数据主权、Ollama私有化、沙箱环境、混合路由

本节目录

  • [27.1 部署模式三选](#27.1 部署模式三选)
  • [27.2 扩展四策](#27.2 扩展四策)
  • [27.3 本地化运行:为什么与凭什么](#27.3 本地化运行:为什么与凭什么)
  • [27.4 沙箱执行环境](#27.4 沙箱执行环境)
  • [27.5 混合路由:本地不是-only](#27.5 混合路由:本地不是-only)

本节目录

  • 27.1 部署模式三选
  • 27.2 扩展四策
  • 27.3 本地化运行:为什么与凭什么
  • 27.4 沙箱执行环境
  • 27.5 混合路由:本地不是-only

概念讲解

27.1 部署模式三选 (微软第 16 课:Agent Deployment Patterns)

微软原课第 16 课把 Agent 部署归为三种模式(常组合使用):

模式 A:客户端托管(client-hosted)。Agent 对象跑在你的应用进程里,你的代码直接调模型 provider,推理循环归你管。前面所有课程写的就是这种。适合需要完全控制循环、自定义中间件、嵌入既有后端的场景;代价是扩展、状态、容错全自己扛。

模式 B:托管 Agent(hosted agent)。Agent 注册为平台资源(微软路径是 Foundry Agent Service),平台托管推理循环、存会话线程、强制内容安全与 RBAC,应用变成创建线程、读响应的瘦客户端。适合要耐久性、内置可观测、少运维面的场景;代价是让出部分底层控制。

模式 C:Agent 工作流(workflow)。多个 Agent 和工具编排成显式图------顺序步骤、分支、人工审批节点、可暂停恢复的持久检查点(微软 Agent Framework 的 Workflows 能力)。适合单任务跨多个专职 Agent 或中间要插审批的场景;代价是部件多,需要编排级可观测。

复制代码
A 客户端托管:   你的应用 ──> 模型 provider
B 托管 Agent:   瘦客户端 ──> 平台(模型+工具+线程存储+安全)
C 工作流:       编排器 ──> 分诊Agent ──> 解决Agent ──> [人工审批] ──> 执行Agent

部署不是一次性 push,而是生命周期循环:创建 → 版本化 → 离线评估(门)→ 部署 → 在线观测 → 收集失败回流 → 改进 ,旧版本退役。评估门不过不上线(第 26 课);部署"成功"只证明控制面接受了定义,还要跑冒烟测试证明端点真的在应答。

27.2 扩展四策 (微软第 16 课:Scaling Strategies)

Agent 扩展和无状态 Web API 不同:一个请求可能触发多次昂贵的模型与工具调用。四招扛起大部分负载:

  1. 无状态请求处理:进程内存不存每用户状态,会话线程外置到线程存储/记忆服务------任何实例能接任何请求,水平扩展不需要粘性会话;
  2. 模型路由:不是每个请求都需要最强最贵的模型,简单请求(意图分类、短事实问答)走小快模型,真正推理才上大模型(可自建轻量分类器,Foundry 也有 Model Router);
  3. 响应缓存:高频近似问题直接回缓存,命中一次省一次全套循环;
  4. 并发与背压:模型 provider 有速率限制,约束并发数、指数退避重试、优雅失败(排队提示优于 500)。

加上成本三杠杆(第 26 课:小模型/路由/缓存),就是生产成本控制的全部常用手段。

27.3 本地化运行:为什么与凭什么 (微软第 17 课:SLM + Foundry Local)

微软原课第 17 课把方向反过来------不往云上扩,缩到一台机器。三个硬理由:

  • 隐私:代码与文档不出机器,任何 prompt、片段、客户数据不跨网络边界;
  • 成本:本地推理没有按 token 计费,迭代一整天只花电费;
  • 离线:飞机上、保密设施里、断网时 Agent 照常工作。

代价是把前沿云模型换成跑在 CPU/GPU/NPU 上的小语言模型(SLM)。SLM 的强弱分布很清晰:擅长有界结构化任务 (分类、抽取、已知文档摘要)和工具调用决策 ;弱在开放多跳推理 和广域世界知识 。所以本地 Agent 的制胜策略是:让 SLM 做编排,让工具干重活 ------模型不需要背下你的代码库,只需要知道何时调 read_file、何时调 search_docs。

运行时方面(检索日 2026-10):

  • 微软 Foundry Local :下载/管理/伺服模型全在本机,暴露 OpenAI 兼容端点 ------云上 Agent 代码只改 base_url 就能落本地;自动按硬件选 CPU/CUDA/NPU 构建;2026 年已扩展到 Azure Local 多节点 K8s、气隙部署、vLLM 运行时;
  • Ollama :跨平台开源方案,v0.35.0 最新(GitHub releases 实测 2026-10-01),localhost:11434 同样提供 OpenAI 兼容 API。Windows 版带图形安装器与系统托盘,是 Windows 上跑本地 Agent 的最短路径;
  • LM Studio:Windows 图形界面友好的另一选项,同样暴露 OpenAI 兼容端点,适合不想碰命令行的读者;
  • 国产开源模型本地跑 :DeepSeek-R1 蒸馏系列(1.5B-70B)、智谱 GLM 系列、小米 MiMo(7B 推理模型 + MiMo-VL 多模态,HuggingFace XiaomiMiMo 组织开源)均可经 Ollama/LM Studio 本地部署------本地端点 + 国产开源权重 = 数据彻底不出域。

模型选择上,微供建 Qwen 系列------为 function calling 训练的 SLM 能稳定产出格式正确的工具调用,这是"本地聊天模型"与"本地 Agent"的分界线。国产云端 API 若不想本地部署也可直接用(DeepSeek/GLM/MiniMax 都支持 tools 协议,第 26 课案例节给出切换方法),但"数据不出域"只有本地权重能做到。硬件基线约 8 GB RAM 起步,16 GB+ 舒适 ,GPU/NPU 加速非必需。

27.4 沙箱执行环境 (微软第 16 课 MCP 生产纪律 + 第 17 课沙箱校验思想)

Agent 要跑模型写的代码、读文件时,直接在宿主机执行是重大风险(第 29 课展开攻击面)。两级方案:

  • 容器隔离(Docker):每次执行在一次性容器里,文件系统与网络受限,错误不外溢(微软课第 6 课"级联错误"的缓解即此);
  • 托管沙箱(E2B 等):云端 micro-VM,按次付费,预置 OpenAI Agents SDK、LangChain Deep Agents 等集成,适合不想自维护容器镜像的团队。

本地工具也要守边界:微软课第 17 课的 read_file 示例内置沙箱校验------解析路径后检查是否仍在项目目录内,越界直接拒绝(第 29 课实测这套防御)。

27.5 混合路由:本地不是-only (微软第 17 课:Hybrid Cloud-and-Local Patterns)

成熟的系统按敏感度与难度分流:

情形 跑在哪
敏感代码/数据,或离线 本地 SLM
简单有界任务 本地 SLM(快、省)
非敏感数据上的困难多跳推理 云模型
云不可用(故障时) 本地 SLM(优雅降级)

这就是第 26 课模型路由的变体------只是"其中一个模型"是你自己的机器。

案例实战:Agent 服务化部署一条龙

运行环境:

  • Windows(推荐入门路径) :winget install Python.Python.3.12 → pip install fastapi httpx → python l27_service_demo.py(TestClient 进程内自测,不起端口、零配置)。要真起服务:pip install uvicorn 后 uvicorn l27_service_demo:app --port 8000,浏览器开 http://127.0.0.1:8000/docs 得到自动生成的交互文档,可直接点发请求。
  • Linux:实测环境 Python 3.10.12 + FastAPI 0.142.2,TestClient 全部 200。
  • 本地模型端点 :Windows 安装器 https://ollama.com/download(或 winget install Ollama.Ollama)装完后 ollama pull + ollama serve 即得 localhost:11434;Linux curl -fsSL https://ollama.com/install.sh | sh 一行装好。下文工具调用实测用 glm-4.7-flash(本机自建 -100k 上下文变体 tag,官方 pull 名即 glm-4.7-flash;19 GB,纯 CPU 也能跑,但慢;Windows 上建议选更小的模型如 7B 档先验证链路)。

目标:把 Agent 装进 FastAPI 服务------健康检查、会话外置、复杂度路由三件事一次到位;本地模型端点单独验证。

步骤:

  1. /health 端点供探活与发布后冒烟;
  2. 会话存外置存储(演示用进程字典,生产换 Redis/DB,实例无状态);
  3. 确定性分类器做路由:短且含业务关键词 → 小模型,其余 → 大模型;
  4. 本地 Ollama 验证 OpenAI 兼容工具调用端点。

完整代码 (实测脚本见代码包 l27_service_demo.py):

python 复制代码
# Agent 服务化骨架【已实测】2026-10,Python 3.10 + FastAPI 0.142.2
import time, uuid
from fastapi import FastAPI

app = FastAPI(title="order-agent", version="0.1.0")
SESSIONS: dict[str, list] = {}          # 演示用;生产外置 Redis/DB

SIMPLE_PATTERNS = ("查", "订单", "物流", "退", "价格", "几点")

def route_model(query: str) -> str:      # 模型路由:确定性规则版
    if len(query) <= 40 and any(p in query for p in SIMPLE_PATTERNS):
        return "qwen2.5-3b"              # 小/本地模型
    return "glm-4.7-flash"               # 大模型

@app.get("/health")
def health():
    return {"status": "ok", "uptime_s": round(time.time() - _T0, 1)}
_T0 = time.time()

@app.post("/chat")
def chat(session_id: str | None = None, query: str = ""):
    sid = session_id or str(uuid.uuid4())
    history = SESSIONS.setdefault(sid, [])
    history.append({"role": "user", "content": query})
    model = route_model(query)
    reply = run_agent(history, model)    # 真实实现: 第26课埋点的 agent loop
    history.append({"role": "assistant", "content": reply})
    return {"session_id": sid, "model": model, "reply": reply}

预期输出(TestClient 实测 2026-10):

text 复制代码
GET /health -> 200 {'status': 'ok', 'uptime_s': 0.0}
POST /chat 简单 -> 200 {'model': 'qwen2.5-3b', 'reply': '(demo) 已用 qwen2.5-3b 处理:订单A1001到哪了'}
POST /chat 复杂 -> 200 (model='glm-4.7-flash')

本地模型端点验证 【已实测 2026-10】:Ollama v0.34.0 + glm-4.7-flash(19 GB MoE,100% CPU),OpenAI 兼容 /api/chat 传 tools 数组,6.2 秒返回规范 tool_calls(get_weather({"city": "北京"}))------本地 SLM 做工具调用决策的整条链路可用。生产提示:把 route_model 的"小模型"分支指向本地端点,即得到"敏感请求不出域"的混合部署。

部署形态速查 :单机起步用 uvicorn app:app(可配 systemd 守护);上量后多实例 + 外置会话水平扩展;要审批节点/持久检查点上工作流模式;配套第 26 课的 OTel 导出和评估门。

小结

  • 三种部署模式:客户端托管(全控制)、托管 Agent(省运维)、工作流(跨 Agent + 审批);部署是生命周期循环,评估门 + 冒烟测试双层把关;
  • 扩展四策:无状态请求、模型路由、响应缓存、并发背压;
  • 本地化三理由:隐私、成本、离线;SLM 编排 + 工具干重活是本地 Agent 的正确分工,8 GB RAM 起步;
  • Foundry Local / Ollama 都暴露 OpenAI 兼容端点,云端代码改 base_url 即落地;为 function calling 训练的模型(Qwen 系)才配称本地 Agent;
  • 代码执行进沙箱(容器或托管 micro-VM),本地文件工具也要做路径边界校验。

参见第 26 课《生产环境:稳定性、成本与可观测》(路由与缓存的成本账)、第 25 课《可信赖的 Agent:边界与审核》(审批节点)、第 29 课《Agent 安全》(沙箱逃逸防御实测)、第 15 课《Agent 框架全景与选型》(框架层选型)。

扩展阅读

🌐 网络提示:github.com 需代理(clone 可走 ghproxy 加速、push 优先 SSH);ollama.com 索引页需代理,但 ollama pull 命令行拉模型多数网络可直连;e2b.dev 需代理(本地 Docker 沙箱是境内替代);pip 安装建议加清华镜像 -i https://pypi.tuna.tsinghua.edu.cn/simple。详见总纲附录《国内网络访问与国产适配指南》。


我的专栏

蛋白 / 抗体 / 多肽 / 核酸 分子模拟 / 动力学 / 对接 药物 / 设计 / 案例 AI / Agent / 大模型
开源蛋白结构预测 分子模拟基础 小分子药物设计案例 AI Agent系列
开源蛋白生成方法实践 分子动力学模拟-Amber 蛋白药物设计案例 化学大模型
开源多肽设计模型 分子动力学模拟-Gromacs 多肽药物设计案例 《AI Agent原理与实战》
开源多肽性质预测 分子动力学模拟-OpenMM 开源小分子生成设计 CADD中的机器学习模型
DNA/RNA药物设计 結合自由能 高效计算配置 《MCP 入门实战》
siRNA药物设计模型 UCSF DOCK系列 我胡师兄说药 《AI入门实战2026》
ASO药物设计模型 rDock系列 LeDock系列 gnina系列 《经典机器学习实战》
相关推荐
jonyleek19 天前
企业级低代码数据主权防护实践:基于JVS全开源栈的等保三级落地路径
等保三级·mysql审计·数据主权·低代码安全·jvs开源·nacos实战·redisson锁
XiaoLin laile3 个月前
信创IM安全合规的焦虑与重构
即时通讯·安全合规·数据主权·信创im·选型标准
XiaoLin laile3 个月前
私有化IM选型:从功能列表到安全架构原生承载连续性
信创·安全架构·业务连续性·私有化im·数据主权
XiaoLin laile3 个月前
政企协同办公私有化部署回潮,安全合规成硬性门槛
私有化部署·协同办公·安全合规·信创适配·数据主权
XiaoLin laile3 个月前
当数据主权撞上业务敏捷:私有化IM如何安全与功能兼得
微服务架构·安全合规·私有化im·数据主权·开放集成
fuquxiaoguang3 个月前
当算力成为一种“出口”:Meta联手信实重塑南亚AI云格局
人工智能·meta·算力租赁·数据主权·印度
XiaoLin laile3 个月前
私有化协作底座如何重建数据可控架构
私有化部署·信创适配·企业协作·数字化底座·数据主权
XiaoLin laile3 个月前
数据主权争议下,私有化即时通讯的安全架构升级
私有化部署·安全架构·企业im·数据主权·即时通讯安全
XiaoLin laile4 个月前
私有化IM选型:安全合规与信创适配成关键
国密算法·安全合规·信创适配·私有化im·数据主权