Skip to content

H11 · 如何部署、发布和运维 Agent System? - Deployment & Operations ​

所属知识库:Agent 全栈技术地图
所属领域:03 · Agent System
所属章节:03 · 如何让 Agent System 稳定、安全、可控地运行? - Engineering & Governance
文档类型:Agent System 生产部署、交付流水线与运维工程专题研究
版本:v1.1
更新日期:2026 年 10 月 29 日
核心问题:如何将包含模型服务、Agent Runtime、任务编排、状态存储、工具执行和用户应用的 Agent System,以可复现、可隔离、可观测、可渐进发布且可恢复的方式部署到生产环境,并在持续变更中控制运行风险?

专题导读 ​

本篇属 Engineering & Governance。Agent System 的上线不等于部署一个聊天页面或启动一个 Python 进程。实际系统往往包含同步 API、长时间运行的 Worker、工作流调度器、模型网关、外部工具、数据库、对象存储、事件通道和人工审批接口。各组件有不同的生命周期:HTTP 请求可能在秒级结束,Agent Run 可能持续数小时;应用镜像可以快速替换,正在运行的工作流却可能绑定旧版本的 Prompt、工具协议与状态 Schema。因此,部署、发布和运维必须同时管理基础设施版本、代码版本、行为配置版本、持久状态版本与外部副作用。

本文沿用“技术研究报告 Studio”案例:用户创建研究任务,由选题、调研、分析和审核 Agent 协作生成报告,并经过人工确认后发布。研究重点不是罗列 Kubernetes 命令,而是建立从构建、验证、发布、观测、故障响应到退役的完整生产运行模型。

专题边界: L1 Infrastructure 研究运行环境的基础能力;L2 Platform Services 研究数据库、队列、对象存储等服务;L3 - L4 - L5 - L6 研究 Agent System 的业务技术架构。H11 研究如何把这些能力交付、运行、升级与维护。H5 Configuration 负责配置及版本语义;H7 Reliability 负责容错与恢复机制;H10 Testing & Validation 负责验证方法;H1 Observability 提供运行证据;H12 Policy & Governance 将进一步定义组织级规则与责任。H11 负责将这些要求纳入实际发布和生产操作。

阅读目标: 能够选择适当部署拓扑,定义可复现构建和发布单元,设计兼容长任务的灰度与回滚流程,制定运行手册、SLO、容量规划、备份恢复和事故响应机制,并为 Agent System 建立生产准入清单。

一、部署与运维的对象:运行的究竟是什么 ​

1.1 四个核心概念 ​

Deployment(部署):将软件制品、配置及其依赖放入目标环境,使服务具备可运行条件。部署成功仅说明实例启动或通过指定健康检查,不代表真实任务已正确完成。

Release(发布):将已部署的能力向某类用户、租户或任务开放。发布可以与部署分离,例如新版本已经部署但流量权重为零,或仅允许内部租户使用。

Operations(运维):持续保障系统在约定的可用性、质量、成本、安全和合规约束下运行,包括监控、扩缩容、故障响应、数据维护、变更管理与退役。

Production Readiness(生产就绪):以证据证明系统具备上线所需的操作能力,包括回滚路径、告警、容量、数据恢复、权限与值班责任;不等于“开发环境运行正常”。

1.2 Agent System 的部署单元 ​

部署单元典型职责关键运行特性
Web / API身份、任务提交、查询、审批短请求、可横向扩展
Agent Worker模型循环、工具执行、产物生成长任务、需要安全中断
Orchestrator依赖、调度、重试、交接持久化状态、并发协调
Model Gateway供应商适配、配额、路由外部依赖、速率限制
Tool Executor浏览器、代码、文件及外部 API高风险、需要隔离
State / Data数据库、队列、对象存储数据持久性、备份恢复
Telemetry指标、日志、Trace、审计数据量大、权限敏感

以上是逻辑职责而非强制的七套独立服务。MVP 可将多个职责合并进一个进程;生产环境则按故障域、扩缩容需求、安全边界和团队维护能力拆分。不能仅为了“微服务化”而引入不必要的网络跳数和分布式一致性问题。

1.3 五类需要分别管理的版本 ​

  1. 应用代码版本:API、Worker、编排器、工具执行器镜像或构建制品。
  2. 行为配置版本:Prompt、模型选择、工具清单、路由策略、Workflow 定义;与 H5 的 Release Manifest 关联。
  3. 数据契约版本:数据库 Schema、事件结构、Checkpoint、Artifact 元数据、消息协议。
  4. 依赖与基础设施版本:运行时、基础镜像、数据库、队列、编排平台及网络策略。
  5. 外部接口版本:模型供应商 API、第三方工具 API、Webhook 及 MCP 相关契约。

一次发布至少应能回答:哪个代码制品、哪个配置快照、哪个数据契约、在哪个环境、对哪些任务生效、由谁批准、怎样回退?

二、生产拓扑与环境设计 ​

2.1 从单机到分布式的演进 ​

形态 A:单机 / 单容器 MVP。 Web、Worker、调度器可运行在同一主机,使用托管数据库和对象存储。优势是部署简单、成本可控;局限是故障域集中、任务与请求竞争资源、扩容粗糙。适用于早期低并发验证,但必须从第一天保留任务持久化、秘密管理和备份能力。

形态 B:API + Worker 分离。 API 负责请求和控制,Worker 从可靠队列或工作流引擎领取任务;数据库保存权威状态。可以分别扩容、滚动升级,减少长任务阻塞 HTTP 服务。通常是研究 Studio 进入实际使用的合理起点。

形态 C:多服务与独立执行沙箱。 Orchestrator、模型网关、不同工具 Worker 独立部署;高风险浏览器/代码执行进入隔离环境。适用于多租户、较高吞吐或存在外部副作用的场景,但需要成熟的网络策略、身份体系、可观测性与值班能力。

形态 D:跨区域或多集群。 只有在数据驻留、可用性目标、区域故障风险或规模要求明确时考虑。跨区域状态复制、工作流恢复和外部副作用去重会显著提高复杂度;“多区域部署”本身不等于可自动无损切换。

2.2 研究 Studio 的参考部署拓扑 ​

text
用户浏览器 / 外部系统
          |
     HTTPS / WAF
          |
    API Gateway / Ingress
          |
    Studio API (无状态) --------> Identity / Policy
          |
          +----> PostgreSQL (任务/版本/审批/操作账本)
          +----> Object Storage (原文/报告/产物)
          +----> Workflow / Queue
                         |
                    Agent Workers
                         |
                Model Gateway ---> 模型供应商
                         |
                Tool Gateway ----> 检索 / 文件 / 受限沙箱
                         |
                    Telemetry SDK
                         |
               Collector / Metrics / Logs / Traces

架构约束:API 不以进程内存作为权威任务状态;Worker 崩溃后任务可以重新认领;工具执行凭据不随意暴露给模型;用户批准的产物版本必须在发布时重新校验;可观测性系统故障不应无条件阻断核心业务,但安全审计的强制要求应单独定义。

2.3 环境隔离 ​

至少区分本地开发、集成测试、预发布与生产。预发布应尽可能匹配生产的关键拓扑、协议和安全约束,但不应复制真实敏感数据或真实生产凭据。外部工具默认使用测试账户、沙箱接口和专用资源。

环境隔离应覆盖数据库、对象存储 Bucket、队列、密钥、服务账户、Webhook 回调地址、模型预算和网络出口。仅使用不同环境变量名,而共用生产数据库或生产密钥,不构成有效隔离。

对于开发者在本地调试 Agent,尤其要防止测试工具调用误触发真实邮件、付款、发布或文件删除。可在工具网关引入 environment=staging 的硬约束及出站目标白名单。

2.4 计算平台选择 ​

平台适用情境主要权衡
单机 + systemd个人 MVP、低复杂度故障域集中
Docker Compose小型多组件部署集群能力有限
托管容器服务中小规模生产平台约束与成本
Kubernetes多服务、多租户、复杂扩容运维复杂度较高
Serverless Jobs短时、突发任务时长、冷启动与状态限制

平台选型首先看任务持续时间、运行资源、隔离要求、并发和团队运维能力。长任务不应依赖普通 HTTP 请求生命周期;容器被终止时必须有明确的任务移交和状态恢复策略。

三、可复现构建:从源代码到可信制品 ​

3.1 构建流水线的最小契约 ​

建议采用以下路径:

text
提交代码
  -> 静态检查 / 类型检查 / 单元测试
  -> 依赖与镜像安全扫描
  -> 构建不可变镜像
  -> 生成 SBOM / 记录来源信息
  -> 集成测试与契约测试
  -> 制品签名与入库
  -> 发布候选版本

不可变制品意味着同一个发布版本引用确定的镜像摘要(Digest),而不是部署时重新拉取可能变化的 latest 标签。镜像摘要解决代码制品可追溯性,不能自动固定模型供应商的实际行为;模型 ID、配置快照、供应商版本和外部依赖仍需单独记录。

3.2 依赖锁定与供应链 ​

Python 项目应使用明确的依赖锁定方案,并在 CI 中以锁文件重建环境。Node、Python、容器基础镜像和系统依赖均需关注可复现性。记录构建来源、提交哈希、制品摘要、构建时间、依赖清单(SBOM)和签名验证结果。具体采用何种工具,应结合仓库和部署平台决定。

不要将 API Key、数据库密码或生产环境 .env 写入镜像层。构建阶段需要的凭据使用受控的短期访问机制;运行阶段从秘密管理服务注入,按最小权限授权并保留轮换能力。

3.3 数据库与消息契约迁移 ​

Agent System 的数据库迁移可能影响正在运行的旧 Worker。优先使用 Expand → Migrate → Contract:

  1. Expand:先增加新字段或新表,保持旧代码可读写。
  2. Migrate:新旧版本兼容运行,迁移或双读必要数据;核对一致性。
  3. Contract:确认旧版本任务和消费者已退出,再删除旧字段。

对于 Checkpoint、任务事件、工具调用参数和 Workflow 定义,不能假设任意新版本都能直接读取旧版本状态。应建立显式的兼容性矩阵,决定旧任务继续由旧 Worker 执行、通过迁移器转换,还是安全暂停并人工处理。

四、CI/CD 与发布门禁 ​

4.1 CI 与 CD 的职责 ​

**CI(持续集成)**主要证明变更可以构建并满足自动化验证要求。**CD(持续交付/部署)**负责将候选制品安全地送达目标环境,并控制对用户和任务的暴露范围。

对 Agent System,CI 不应仅检查代码。发布候选需要绑定:代码 Digest、Prompt/Workflow 配置版本、模型与工具兼容性、数据迁移版本、评估基线和安全策略版本。发布清单可采用以下参考结构:

yaml
release_id: studio-2026-10-29.1
source_commit: "<git-commit>"
artifacts:
  api_image_digest: "sha256:<digest>"
  worker_image_digest: "sha256:<digest>"
behavior:
  agent_config_revision: "agents-r42"
  workflow_revision: "workflow-r18"
  prompt_bundle_revision: "prompts-r25"
contracts:
  db_schema_revision: "db-014"
  checkpoint_schema_revision: "cp-3"
rollout:
  audience: "internal"
  max_new_run_percent: 5

以上为概念性发布清单,不是 Kubernetes、GitHub Actions 或任何框架的原生 Schema。生产中应增加签名、审批、环境和策略校验字段。

4.2 发布门禁应分层 ​

门禁必要证据失败处理
构建门禁制品与依赖可追溯拒绝候选
契约门禁API/事件/状态兼容阻断部署
安全门禁漏洞、权限、秘密检查阻断或审批例外
行为门禁H3 评估与 H10 回归不进入灰度
数据门禁迁移、备份、恢复路径暂停发布
运行门禁健康检查、SLO、告警不扩大流量
业务门禁关键任务与人工验收保持有限发布

模型评估存在统计波动,不能把一次单样本通过当作充分证据。关键行为不变量(如未授权不得发布)应使用确定性测试;报告质量和任务成功率则结合配对样本、置信区间及人工复核。

4.3 部署成功与发布成功的差异 ​

新 Worker 已启动并通过 Readiness,不代表它能正确恢复旧 Checkpoint;新模型 API 可连接,不代表工具调用结构与旧配置兼容;新前端可显示页面,不代表人工审批状态正确。因此发布门禁应包含至少一个真实业务合成任务,但合成任务必须使用测试数据、测试工具和受控预算,避免产生生产副作用。

五、灰度发布、金丝雀与版本绑定 ​

5.1 常见发布策略 ​

**Rolling Update(滚动更新)**逐步替换实例,适合无状态 API 和协议兼容的 Worker;对长时间运行任务,需要确保旧实例能够完成或安全移交任务。

**Blue-Green(蓝绿发布)**维护两套可切换环境,便于流量快速切换,但状态存储和 Schema 兼容仍是共同依赖。不能把“切回旧流量”误认为数据库已回到旧状态。

Canary(金丝雀发布)向少量用户、租户或新任务开放候选版本,观察业务与系统指标后扩大范围。对 Agent System,推荐以新建 Run 的比例或租户/任务类型分流,而不是随意在单个 Run 的执行中途切换 Worker 行为版本。

**Feature Flag(功能开关)**可以控制工具能力、模型路由或新工作流的可见范围;但开关变更同样属于行为配置变更,必须记录作用范围、版本和生效时间。

5.2 长任务的发布原则 ​

一个运行中的 Run 可能在发布前已完成资料检索、等待人工审批,发布后才继续生成报告。若新 Worker 更改了工具参数或状态结构,直接接管可能导致重复工具调用或审批失效。建议:

  • Run Pinning:创建 Run 时绑定工作流、Prompt、工具契约及模型策略版本。
  • Worker Compatibility:调度器仅将 Run 派给声明支持其状态/协议版本的 Worker。
  • Graceful Drain:停止给旧 Worker 分配新任务,允许现有步骤到安全点后持久化状态。
  • Migration Gate:跨版本恢复前检查迁移条件;不满足则保留旧执行池或转入人工处置。
  • Emergency Override:安全事件时可强制冻结高风险工具或暂停任务,但必须显式记录与普通版本绑定的例外。

5.3 灰度指标不仅是 HTTP 5xx ​

Agent System 灰度应同时观察:新 Run 成功率、终态比例、任务耗时分布、工具失败率、审批等待时长、每任务总成本、模型错误率、质量评估分数、重复外部操作数、未授权动作阻断数。尤其要区分新版本引入的异常与外部模型供应商自身的波动。

5.4 回滚的四个层面 ​

  1. 流量回滚:停止新版本接收新任务。
  2. 代码回滚:恢复上一个可信镜像摘要。
  3. 行为回滚:恢复上一个 Prompt、模型、工具和工作流配置版本。
  4. 状态/数据修复:对不兼容 Schema 或已产生的外部副作用执行专门恢复、补偿或人工核查。

前三项通常不能自动完成第四项。对已经发布的报告、发送的邮件或删除的文件,回滚镜像无法撤销外部世界的变化。应使用 H7 的 Operation Ledger、补偿流程和审计证据。

六、运行时生命周期与安全停止 ​

6.1 启动、就绪与存活检查 ​

Startup 用于判断应用是否完成初始化;Readiness 用于判断实例是否可以接收新工作;Liveness 用于判断实例是否处于需要重启的不可恢复状态。三者不可混用:模型供应商短暂不可用时,如果每个 Worker 的 Liveness 都失败,可能触发大规模重启并加剧故障。

API 的 Readiness 可检查本地依赖和必要连接;Worker 的 Readiness 还应考虑是否正在 Drain、是否拥有可用执行能力、是否可领取任务。外部模型供应商异常更适合通过依赖健康指标、熔断和降级处理,而非一律杀死进程。

6.2 优雅终止流程 ​

text
接到终止信号
  -> 将 Worker 标记为 draining
  -> 停止领取新任务
  -> 当前步骤到达安全中断点
  -> 保存 Checkpoint / 操作账本
  -> 释放或等待租约到期
  -> Flush 必要遥测数据
  -> 在终止宽限期内退出

终止宽限期必须与实际任务步骤耗时匹配。若工具操作可能无法中断,必须有操作 ID、远端状态查询与恢复后的去重机制。对于容器被强制杀死的情况,系统应依靠持久状态和 Lease/Fencing,而不是依赖 finally 一定执行。

6.3 Worker 伸缩与任务队列 ​

Worker 扩容不能只看 CPU。对于以模型调用和外部工具等待为主的任务,CPU 可能很低,但队列积压和任务延迟很高。常见伸缩信号包括:待执行任务数、队列最老任务等待时间、活跃 Run 数、每类工具并发、模型供应商 RPM/TPM 剩余额度及预算约束。

应按任务类型划分资源池,例如检索任务、模型密集任务、代码执行任务和浏览器任务,避免高耗时工具占满全部 Worker。扩容需要同时满足模型限额、数据库连接上限和成本预算,不能无限放大下游压力。

6.4 计划任务与周期性维护 ​

运维还包括:清理过期临时文件、压缩或归档日志、轮换凭据、校验备份、刷新索引、检查卡死任务、对账模型账单与操作账本。周期性维护任务也必须具备幂等和并发互斥机制,避免多副本重复执行删除或迁移。

七、生产监控、SLO 与值班机制 ​

7.1 三层运行视角 ​

平台健康:实例、网络、数据库、队列、存储、CPU/内存、磁盘、连接数。

执行健康:Run 启动率、完成率、重试次数、Step 延迟、工具失败、模型超时、Checkpoint 恢复、孤儿任务、队列积压。

业务健康:报告按时交付率、人工审批成功率、产物质量门槛通过率、引用可追溯性、每份有效报告成本、重复发布和权限违规次数。

H1 定义观测数据的采集与关联,H11 负责把这些数据转化为仪表盘、告警阈值、响应责任和操作手册。不能以“采集了大量日志”代替“能在事故发生时找到责任人并恢复服务”。

7.2 SLI / SLO 示例 ​

指标SLI 定义示例适用说明
提交可用性成功接受合法任务的比例API 入口
任务完成率指定时窗内成功终态的比例排除明确用户取消
交付时效截止时间前交付的任务比例需按任务类型分层
状态恢复故障后恢复成功的 Run 比例定义恢复时限
预算合规未超过硬预算的任务比例关注并发预留
安全约束未授权外部动作发生次数高风险不变量

示例 SLO 如“工作日内 99.5% 合法任务提交成功”只是演示目标,并非适用于所有系统的行业标准。真实目标需结合业务容忍度、历史基线、依赖供应商表现和成本决定。对安全关键不变量不能简单用百分比掩盖单次重大事件。

7.3 告警设计与噪声控制 ​

优先对用户可感知的失败、错误预算消耗、持续队列积压、关键数据丢失和外部副作用异常告警。CPU 短时升高或单次模型 429 不一定需要叫醒值班人员。告警必须包含:影响范围、开始时间、Run/Trace 关联、最近发布版本、已知依赖状态、应急操作入口及升级路径。

区分Page(需要立即响应)与 Ticket(可以在工作时间处理)。告警规则需要定期复盘误报、漏报和恢复时间,避免告警疲劳。

7.4 日志与隐私 ​

生产日志不应默认记录完整用户提示词、密钥、私有文档或模型上下文。应采用结构化字段、敏感信息脱敏、采样和分级保留;必要的安全审计记录按单独的访问权限和保留策略管理。调试所需的 Trace 可通过 Run ID 与脱敏事件关联,避免为了排障而扩大敏感数据暴露。

八、故障响应、备份与灾难恢复 ​

8.1 事故响应闭环 ​

text
检测 -> 分级 -> 指挥与沟通 -> 止损
     -> 诊断 -> 恢复 -> 验证
     -> 复盘 -> 整改与演练

对于 Agent System,事故分级不仅考虑系统不可用,还应考虑:是否发生未授权外部操作、是否泄露用户资料、是否产生错误报告、是否造成重复发布、是否出现预算失控。安全事件与可用性事件可能同时发生,需要明确共同指挥和升级路径。

8.2 Runbook 应包含什么 ​

每类关键告警对应一份可执行 Runbook,至少包含:触发条件、用户影响、依赖关系、排查查询、止损动作、回滚或降级步骤、数据一致性检查、升级联系人、恢复验收与复盘记录位置。示例:模型供应商持续 429 时,先确认配额和流量分布,再限制新 Run 并发、启用有能力约束的备用路由;不应直接将所有请求切到未经质量和数据策略验证的模型。

8.3 RPO、RTO 与恢复对象 ​

**RPO(Recovery Point Objective)**定义可接受的数据损失窗口;**RTO(Recovery Time Objective)**定义业务恢复时间目标。Agent System 应明确不同数据的优先级:任务/审批/操作账本通常比可重新生成的缓存更关键;对象存储中的最终产物可能需要版本化和异地备份;外部服务已执行的副作用不能通过本地数据库恢复自动撤销。

备份策略需要覆盖数据库、对象存储、工作流持久状态、配置发布清单、加密密钥恢复方案和必要审计证据。备份成功的通知不是恢复成功的证据,必须定期在隔离环境演练恢复、校验和重新启动任务。

8.4 恢复时的外部副作用核验 ​

典型故障:Worker 已调用“发布报告”接口,网络响应丢失,数据库未记录成功。恢复后不得立即重试发布。应先根据 operation_id 查询远端发布状态;若远端不支持幂等或状态查询,应将任务标记为 outcome_unknown,转入人工核查或有界补偿流程。操作账本与任务状态恢复的细节见 H4、H7。

8.5 事故复盘 ​

复盘应区分直接故障、促成条件、检测缺口和恢复阻碍,不以“操作人员不够小心”替代系统性分析。需要记录时间线、影响任务数、用户影响、数据与外部副作用、恢复决策、证据链接,以及具备负责人和截止时间的整改项。

九、安全运维与生产访问控制 ​

9.1 生产权限与职责分离 ​

开发者不应默认拥有全部生产数据库、工具密钥和用户文档的访问权限。采用角色与资源范围限制:发布操作员可部署签名制品,但不必读取用户原始数据;值班人员可暂停任务和查询脱敏 Trace,但高风险数据导出需要额外审批;Agent Worker 只获得其任务必需的工具权限。

紧急访问(Break-glass)需要限定时长、记录理由、强制审计和事后复核。应避免共享管理员账号及永久高权限密钥。

9.2 秘密与证书轮换 ​

凭据轮换需要考虑运行中的长任务。建议通过短期凭据、运行时凭据获取和可重试的认证失败处理减少长期暴露。轮换流程应包括新旧凭据并存窗口、验证、切换、撤销与审计;对第三方供应商不支持双密钥的情况,安排维护窗口并设计失败恢复。

9.3 供应链与运行环境加固 ​

使用可信基础镜像、定期补丁、最小权限容器、只读根文件系统(可行时)、受限网络出口和隔离的工具沙箱。对可执行代码、浏览器和下载文件采取更严格的资源与网络限制。镜像扫描不能替代运行时策略;生产环境的外部依赖变化也可能引入新的风险。

9.4 变更审计 ​

每次发布、配置变更、紧急暂停、权限提升、数据迁移和恢复操作,应能追溯操作者、时间、对象、原因、审批、变更前后版本和验证结果。审计记录应防篡改并受限访问,保留期限由业务与适用法规共同决定。

十、容量规划、性能与成本运营 ​

10.1 Agent 的容量不只由 QPS 决定 ​

单个任务可能连续调用多次模型、并行检索、执行代码并等待人工审批。容量模型需要分解为:

  • 到达率:单位时间新增任务数及峰值分布。
  • 服务需求:每任务模型调用次数、工具耗时、CPU/内存和外部 API 请求数。
  • 并发:同时活跃的 Run、模型请求、工具会话及审批等待任务。
  • 约束:模型 RPM/TPM、数据库连接、队列吞吐、预算和工具供应商配额。
  • 长尾:失败重试、慢模型响应、外部工具卡顿和人工等待。

Little's Law 在稳定系统且统计口径一致时给出 L = λW,可帮助估计系统平均在途任务数,但不直接证明峰值容量,也不适用于无限积压或非稳态负载。需结合负载测试与排队延迟分布校准。

10.2 扩缩容策略 ​

API 主要根据请求延迟、并发和资源利用率扩容;Worker 可根据队列等待时间、待执行 Step、租约数量和下游配额扩容;浏览器/代码执行器按沙箱资源和并发上限单独控制。缩容前先 Drain,避免大量任务被强制重试。

对模型供应商限流,应优先采用准入控制和背压;盲目增加 Worker 往往只会增加 429 和重试成本。H8 Resource Management 负责预算和计量,H11 负责把这些约束转化为生产容量策略和告警。

10.3 单位有效产物成本 ​

推荐按有效完成任务核算总成本,而不是仅按 Token 单价评估。成本范围包括模型调用、工具服务、计算、存储、日志、重试、人工审核和事故恢复。灰度发布时若候选版本降低了单次模型成本却提高了返工率,整体成本可能上升。

十一、研究报告 Studio:可实施的生产交付方案 ​

11.1 推荐的第一版生产架构 ​

对早期研究 Studio,建议优先采用:托管 PostgreSQL + 对象存储 + 独立 API 容器 + 独立 Worker 容器 + 可靠任务队列或工作流服务 + 模型/工具网关 + 集中式遥测。只有当任务量、隔离和部署需求明确时,再考虑更复杂的 Kubernetes 多集群方案。

第一版必须具备:持久任务状态、Run/Release 版本绑定、工具执行授权、预算上限、人工审批、幂等操作账本、日志关联、数据库备份、故障后任务恢复及可执行回滚流程。这些比“使用多少微服务”更能决定能否安全投入使用。

11.2 从开发到生产的十步实施路径 ​

第 1 步:定义生产契约。 明确用户、租户、数据类别、任务类型、允许的外部工具、最大任务时长、质量要求、SLO、预算与责任人。

第 2 步:建立部署单元。 API、Worker、工具执行环境与状态存储分离;定义进程启动、停止、健康检查和资源限制。

第 3 步:实现持久化执行。 Task/Run/Step、Checkpoint、审批与操作账本写入权威存储,验证 Worker 崩溃后恢复。

第 4 步:建立版本清单。 记录代码、Prompt、Workflow、模型策略、工具契约和 Schema 版本;新 Run 绑定快照。

第 5 步:建立 CI。 执行单元、契约、安全和关键行为测试,生成可追溯镜像和发布记录。

第 6 步:部署预发布环境。 使用测试账户、测试工具和独立数据;运行完整研究任务,验证审批与产物交付。

第 7 步:完成运维基础。 仪表盘、告警、Runbook、备份恢复演练、密钥轮换、成本对账与事故联系人。

第 8 步:内部灰度。 仅向内部新 Run 开放候选版本,观察任务成功率、质量、延迟、成本和工具异常。

第 9 步:逐级扩展。 按租户、任务类型或新 Run 百分比扩大流量;遇到指标劣化自动或人工停止放量。

第 10 步:持续运营。 定期复盘故障、清理数据、检查配置漂移、验证恢复、更新兼容矩阵与发布门禁。

11.3 典型故障演练 ​

场景注入方式必须验证
Worker 崩溃强制终止容器Run 可恢复且不重复副作用
模型限流模拟持续 429背压、重试预算、告警
数据库短断阻断连接状态不丢失、不错误确认
发布响应丢失丢弃远端响应操作结果查询与去重
灰度质量下降注入低质量候选停止放量、回退新 Run
Schema 不兼容旧状态交给新 Worker拒绝错误恢复或安全迁移
对象存储故障暂停上传产物状态不虚报完成
审批期间升级旧 Run 等待审批版本绑定与权限再校验
预算耗尽并行任务争抢预算原子预留、拒绝超支
区域性故障隔离主要依赖RPO/RTO 与人工处置

测试必须在隔离环境执行。对于真实外部发布、删除和敏感数据操作,采用测试端点与可撤销资源,避免演练本身造成生产损失。

十二、部署与运维的关键反模式 ​

12.1 “容器启动成功,所以系统可用” ​

只检查 Pod Ready 或 HTTP 200,会遗漏数据库迁移错误、工具权限失效、模型能力变化和长任务恢复失败。应补充端到端合成任务及关键状态验证。

12.2 “所有 Agent 共用一个进程,扩容最方便” ​

单进程可以用于 MVP,但高风险工具、长任务和 API 争抢资源时,应按负载与权限边界拆分。也不应为了形式上的架构完整性强制拆成大量服务。

12.3 “滚动更新自动解决长任务迁移” ​

滚动更新管理的是实例替换,不负责迁移 Agent Run 的状态语义。需要 Drain、Checkpoint、版本兼容和旧 Worker 保留策略。

12.4 “切回旧镜像就是回滚” ​

旧镜像未必能读取新 Schema;已发生的外部操作也不会撤销。必须将代码、配置、状态和外部副作用分别处理。

12.5 “无限重试能够提升成功率” ​

模型供应商限流、数据库故障或工具不可用时,无限重试会放大流量与成本。需要 Deadline、重试预算、熔断、背压和可见的失败终态。

12.6 “开发环境数据可以直接复制到预发布” ​

真实用户资料、生产密钥和外部工具权限可能造成泄露或误操作。应使用合成/脱敏数据、独立账户和严格出口控制。

12.7 “有监控平台就等于具备运维能力” ​

没有 SLO、告警分级、Runbook、值班责任、恢复演练和事故复盘,监控数据无法可靠转化为行动。

十三、生产就绪验收清单 ​

以下清单可作为项目发布评审的最小框架;具体门槛由风险级别和业务要求决定。

验收领域最低可验证要求
制品可追溯 Commit、镜像摘要、依赖清单
配置Run 绑定行为配置与工作流版本
数据迁移可回退或有明确补救方案
安全凭据隔离、工具最小权限、审计
执行Worker 崩溃后可恢复任务
副作用发布等操作可去重或人工核验
灰度可限制新 Run 流量并停止放量
回滚代码、配置、状态分别有处置方案
观测Run/Trace 关联、业务指标与告警
容量已测峰值、队列、下游配额与预算
灾备备份恢复演练、RPO/RTO 记录
组织值班、升级、Runbook 与事故复盘

13.1 生产发布的最小决策记录 ​

每次正式发布至少保存:发布 ID、负责人、变更范围、候选制品摘要、配置版本、数据迁移、测试与评估结果、风险及例外、灰度范围、放量指标、回滚触发条件、最终决策与时间戳。对多 Agent 系统,还应能按 Run ID 反查其实际使用的发布版本。

13.2 不同成熟度的实施优先级 ​

MVP 阶段:优先实现状态持久化、独立凭据、基本监控、自动备份、手动回滚和受控外部工具。

初期生产阶段:增加 CI/CD、发布清单、灰度、Worker Drain、预算管理、事故响应和恢复演练。

规模化阶段:增加多租户隔离、自动扩缩容、策略化发布、完整供应链证明、容量预测和跨区域恢复能力。成熟度取决于真实需求与验证证据,不由 Kubernetes、服务数量或架构图复杂度决定。

研究结论 ​

第一,Agent System 的发布单元必须同时包含代码、行为配置和状态兼容关系。 只固定容器镜像,无法保证 Prompt、模型策略、工具协议与旧任务状态在升级后保持一致。应使用可追溯的 Release Manifest 和 Run Pinning。

第二,长时间运行的 Agent Run 是部署设计的核心约束。 API 可以无状态滚动升级,但 Worker 需要安全停止、持久化恢复、租约保护和兼容性调度。发布策略应优先面向“新建 Run”分流,而不是无条件修改运行中的任务。

第三,部署、发布与回滚是不同动作。 部署让制品运行;发布控制用户和任务使用范围;回滚需要分别处理流量、代码、配置、持久状态与外部副作用。尤其不能将镜像回滚等同于撤销真实世界中的操作。

第四,生产运维必须同时观察平台、执行与业务三个层次。 CPU、HTTP 状态码和容器健康不能独立证明 Agent 正确完成任务。必须追踪任务成功率、产物质量、执行时效、成本、审批与安全不变量。

第五,可靠的运维能力依赖可执行的组织流程。 告警、Runbook、值班责任、备份恢复演练、事故复盘和变更审计是生产系统的一部分,而不是上线后的附加工作。

第六,平台复杂度应与风险和规模匹配。 对研究报告 Studio,API/Worker 分离、托管状态存储、可恢复执行和可控灰度,通常比一开始建设复杂多集群平台更有实际价值。

与后续专题的关系: 「H12 · 如何制定和执行 Agent System 的治理策略? - Policy & Governance」 将把本篇涉及的审批、例外、责任、控制与审计要求提升为组织级、可执行的治理规则。

附录 A:参考文献与原始资料 ​

以下以官方原始资料为主。链接用于支撑相关机制与术语;具体产品版本、默认行为及接口字段应在实施时再次核对。

证据映射: 容器部署、生命周期、健康检查与伸缩参考 [R1] - [R5];构建和供应链参考 [R6] - [R9];SRE、告警与运行机制参考 [R10] - [R12];长任务版本兼容参考 [R13][R14][R20];数据库恢复参考 [R15][R16];可靠性与事故响应参考 [R17][R18];模型 API 生产注意事项参考 [R19]。本文的 Studio 参考架构、十步实施路径、发布清单和验收矩阵属于对这些机制的工程综合设计,并非某一官方文档的原样规定。

附录 B:研究证据、验证声明与适用边界 ​

B.1 本次实际完成的工作 ​

  • 结构性校验: 检查了正式目录名称、七项元数据、专题导读、研究结论、两个固定附录及 Markdown 代码块配对。
  • 机制交叉核对: 将发布、长任务版本绑定、状态恢复、外部副作用和可观测性分别映射到 L1 - L2 - L3 - L4 - L5 - L6、H1、H4、H5、H7、H8、H10 的职责边界。
  • 案例推演: 为研究报告 Studio 提供生产拓扑、发布清单、实施步骤、故障演练和验收标准。

B.2 尚未完成的验证 ​

本文没有执行真实 Kubernetes 集群部署、CI/CD 流水线、镜像签名、数据库迁移、Worker Drain、生产灰度、跨区域故障切换或真实外部工具发布。示例 YAML 是概念性数据结构,不保证可直接提交给具体平台。文中示例 SLO、发布比例和流程为设计建议,不是经生产测量得出的指标。

B.3 适用边界与维护建议 ​

本文适用于具有持久任务、模型调用、工具执行、外部系统集成和人工审批的 Agent System。纯本地单 Agent 实验可以显著简化部署流程;涉及金融、医疗、关键基础设施或受监管数据的系统,需要增加相应法规、行业认证、第三方审计和更严格的恢复与访问要求。

模型供应商、Kubernetes、Temporal、LangGraph 等产品持续演进。实施时应固定实际使用的版本,并核对官方文档与兼容性矩阵。特别是 Worker Versioning、模型接口、健康检查参数和平台默认配置,不应仅凭本文进行生产变更。

下一篇: 「H12 · 如何制定和执行 Agent System 的治理策略? - Policy & Governance」。