第十九部 生产实践与综合项目
第 113 章 Agentic 运维实践:让系统安全失败并可由他人恢复#
运维岗位维护代理注册、工作流、权限、预算、事件、评测和恢复。目标不是让模型永不出错,而是错误被限制、证据被保存、任务可恢复、不可逆决定仍由正确的人负责。
113.1 智能制片职责边界、巡检与版本发布#
职责边界。
运维可部署工作流、回滚 Prompt、开关熔断、处理死信和恢复状态;不能批准故事、权利或发布。输入是版本化组件与政策,输出是健康系统、Trace、事件、SLO 和事故证据。
生产权限短时授予,测试环境无真实发布和真实预算。
日常巡检。
检查任务积压、死信、熔断、预算异常、上下文失效、评测漂移、人工等待和发布队列。看趋势而非只看红灯。
API 成功率与生产批准率分开。供应商 99% 成功但候选批准率下降,仍需调查。
版本发布。
Prompt、适配器、规则和评测器有测试、灰度和回滚。运维负责人部署一个 Prompt 新版到 10% 流量,比较 Schema、拒绝率、成本和错误类型。
Blocker 逃逸触发自动回滚,已生成候选标版本,不重新解释历史。
113.2 权限、幂等与预算背压#
权限红队。
让镜头代理尝试改锁定剧本、超预算调用和发布。资源层必须拒绝并记录安全事件。提示中的“紧急”不扩大 Token。
外部研究文本注入上传指令,代理因无外发权限无法完成攻击。
幂等和重复。
重复投递批准事件,确认只创建一次下游任务、一次预算结算和一次供应商调用。Worker 在调用后、记录前崩溃,运维负责人使用调用意图和远端任务查询恢复。
手工删除重复记录不计通过,必须修业务不变量。
预算与背压。
生成队列超过人工审批能力时,工作流减速,不继续扇出。预算耗尽时保存部分候选并生成升级包,不静默降级。
运维负责人调整并发和优先级,保证发布 blocker 与低风险预演不争同一队列。
113.3 死信恢复、人工队列与验收#
死信与恢复。
处理一个因 Schema 冲突进入死信的任务:查看原输入、修上游、创建新任务并链接旧记录。不能直接改死信 payload 重放。
删除物化视图后从事件与快照恢复,比较任务、预算和资产状态。
人工队列。
审批是正式节点,有 SLO、证据和升级。批量候选可比较,但权利与发布逐项确认。队列拥堵触发上游背压和制片通知。
运维不代替审批者点击通过。
验收与交付。
可观测性 15%;安全权限 15%;版本灰度 15%;幂等恢复 20%;预算背压 15%;死信恢复 10%;Runbook 交接 10%。
- 不可逆动作有技术门禁。
- 重复事件不重复花费。
- 组件可灰度和回滚。
- 预算耗尽安全停止。
- 非原作者可按 Runbook 恢复。
交付:ops_dashboard_spec.md、canary_report.csv、security_events.jsonl、idempotency_tests/、dead_letter_report.md、recovery_drill.md、oncall_runbook.md。
113.4 夜班事故、队列演练、交接与生产复盘#
模拟夜班:重复事件与预算异常。
凌晨 01:14,监控显示同一镜头两次供应商扣费。值班运维负责人先暂停该任务类型的新扇出,按 correlation ID 查看事件:shot.approved 被重复投递,任务表只创建一条,但 Worker 崩溃后重启,外部调用意图尚未提交便再次调用。
运维负责人查询两个远端任务,保留较早结果,另一个标重复费用并通知制片;修复采用调用前持久化意图、稳定幂等键和远端任务恢复。随后在测试环境注入“调用成功后立即崩溃”,确认只产生一次外部任务。系统恢复后先开放 5% 流量。
02:06,过期身份资产从缓存进入 Prompt。运维负责人通过资产晋升事件发现缓存失效消费者死信。相关候选全部隔离,缓存键加入身份版本校验和,死信修复后创建新任务而不修改旧事件。
人工队列背压。
早晨视觉审批积压 83 项,运维负责人降低低风险生成并发,把主角近景和发布 blocker 提升优先级,通知制片容量变化。没有让代理自动批准低分候选。
Runbook 交接测试。
另一名运维负责人按 Runbook 重放事故,从告警找到 Trace、判断安全状态、执行熔断、恢复和验证。任何需要原值班者口述的步骤都转成文档或自动查询。
演练主持人点评:运维不以“服务没停”自豪。错误重复扣费、旧资产污染或权限越界即使没有宕机,也是生产事故。合格系统要安全、可解释、可恢复,并尊重人类决定边界。
生产现场复盘。
演练主持人给出一条从素材批准到重复扣费的分布式 Trace,运维负责人标出事件、任务、调用意图、供应商任务和结算之间的不变量,提出崩溃点与恢复算法。答案不能是“加数据库锁”,需说明锁保护什么、租约过期和重复消息怎样处理。
第二题要求为镜头代理设计最小 Capability Token:可读当前场 Pack,可写候选,可调用三次低清模型,但不能改锁定台词、读取授权原件或发布。第三题给出人工审批积压,运维负责人需设计优先级与背压,不能让模型自动放宽门槛。
最后由另一人按运维负责人 Runbook 完成一次快照恢复。若步骤依赖隐含环境变量、私人密钥或作者记忆,交接项验收不通过。生产证据包括 Trace、策略版本、演练日志、恢复对比和回滚。运维能力由故障条件下的业务一致性证明,不由正常日的绿色仪表盘证明。
恢复后还需运行不变量审计,确认预算、任务、资产和审批数量与故障前一致;服务能启动但业务账本错乱,仍然属于恢复失败。