使用 Microsoft Foundry 部署可扩展代理
配合 第16课 – 部署可扩展代理 的辅助技能。 用于帮助学习者将代理从原型推进到可扩展的可观察 生产部署。所有建议均基于课程内容和 可运行的笔记本;不得自行发明 Foundry API。
触发条件
当学习者想要时激活此技能:
- 将代理部署到 Microsoft Foundry 作为托管代理,并使其具有版本管理/可观察性。
- 在 客户端托管、托管代理和代理工作流 部署模式之间做选择。
- 添加 模型路由、响应缓存 或 有边界并发 以控制延迟和成本。
- 添加评估门控,避免错误的代理版本投产。
- 为高风险操作添加人机审核步骤。
- 使用 OpenTelemetry 追踪为生产环境代理添加监测。
- 对已部署代理进行冒烟测试,作为快速的部署后门控。
核心思维模型
生产代理主要是模型(约80%)的运行骨架, 而非模型本身。将所有建议映射到下述关注点之一:
| 关注点 | 原型 → 生产 |
|---|---|
| 托管 | 笔记本 → 版本化托管服务 |
| 身份 | 你的 az login → 托管身份 + 有范围的 RBAC |
| 状态 | 内存中 → 外部线程/内存存储 |
| 故障 | 追踪错误 → 重试、回退、警报 |
| 成本 | “几分钱” → 追踪、路由、缓存、预算 |
| 质量 | 目测 → 自动评估门控 |
| 信任 | 你批准 → 策略 + 人机审核 |
部署模式(选择一种,或组合使用)
- 客户端托管 — 推理循环在你进程中运行。最大控制权;你负责扩展和状态管理。
- 托管代理(Foundry Agent Service) — Foundry 托管循环、存储线程、执行 RBAC/内容安全,门户显示代理。控制较少,运维复杂度大幅降低。
- 代理工作流 — 多代理/工具组成的图形,带分支、审批节点和持久化检查点。
生命周期(代理交付的循环)
创建 → 版本化 → 评估(门控)→ 托管部署 → 在线观察 → 收集故障 → 重复。
离线评估是门控,而非事后附加 — 未达到门限的版本不会交付。
在线可观察性将实际故障反馈
至离线测试集。
扩展与成本控制手段(优先顺序)
- 模型选型适当 — 使用能通过评估门控的最小模型。
- 按复杂度路由 — 简单请求用小而快的模型,复杂推理用大的模型(自定义分类器或 Foundry 模型路由器)。
- 缓存 — 对近似重复请求无需调用模型即可提供服务。
- 无状态设计 + 有界并发 — 状态外部化;带退避的重试。
关键模式复现
引导学习者关注笔记本中的以下内容
16-python-agent-framework.ipynb:
- 请求处理器:缓存 → 按复杂度路由 → 追踪跨度 → 运行 → 缓存。
- 评估门控:对离线测试集评分;返回
pass_rate >= threshold,仅当为真时才部署。 - 人工审批:针对大额退款等操作用
@tool(approval_mode="always_require")。 - 追踪:用
tracer.start_as_current_span(...)包裹每个请求,并设置routed.model、customer.id等属性。
已部署代理的冒烟测试
部署后,验证端点是否真正响应(部署成功也可能无响应)。
使用 AI Smoke Test
操作,通过 .github/workflows/smoke-test.yml
和 tests/ 中的目录。运行程序将每个
提示 POST 到 POST {project_endpoint}/agents/{agent_name}/endpoint/protocols/openai/responses
并断言回复文本。身份需在 Foundry 项目范围内拥有Azure AI User角色;
令牌受众必须是 https://ai.azure.com/。
多重门控:冒烟测试(可达且响应,每次部署)→ 离线评估(足够好才投产,晋升前)→ 在线评估(实际表现,持续进行)。
企业级控制
- RBAC:为每个托管代理分配最小权限的托管身份。
- 生产环境的 MCP:将每个 MCP 服务器视为不可信边界 — 固定版本、限定身份、验证输出、限流,绝不泄露密钥。
助手的安全护栏
- 优先使用全课程推荐的标准
FoundryChatClient(...)+provider.as_agent(...)模式。 - 不得承诺未经验证的实时 Azure 结果;建议使用冒烟测试工作流确认部署。
- 评估与成本建议保持绑定:评估设定质量底线,路由/缓存带来接近该底线的成本控制。
免责声明: 本文件由 AI 翻译服务 Co-op Translator 翻译完成。尽管我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始语言版文件应视为权威来源。对于重要信息,建议使用专业人工翻译。我们对因使用本翻译而产生的任何误解或误释不承担责任。
Source: microsoft/ai-agents-for-beginners → translations/zh-CN/.agents/skills/deploying-scalable-agents/SKILL.md