Skip to content

运行保障与可观测性

本文讨论 AaaS 平台的运行保障与可观测性,重点覆盖 Sandbox 场景下的 CI/CD、环境准备、Agent 安装、进程监控,以及 FaaS、Worker、Wasm 的等价监控模型。规范中的运行事实与 Trace 模型见 RunRuntime ConnectionTracing

为什么这一章重要

Agent 平台上线后,真正决定可用性的往往不是 prompt 质量,而是运行保障能力:

  • 环境是否一致
  • 依赖是否可重复安装
  • Agent 进程是否可健康运行
  • 故障是否可发现、可重试、可恢复
  • 会话、工件和 Trace 是否能在事故后完整留痕

在这方面,Sandbox、FaaS、Worker、Wasm 的监控方式并不相同,但平台必须给出统一的运营视图。

Sandbox 场景的 CI/CD 流

Sandbox 最接近“完整机器环境”,因此也最需要接近传统软件交付的 CI/CD 流。

1. Build 阶段

  • 构建基础镜像或运行模板
  • 固定系统依赖、语言运行时、包管理器和常用工具版本
  • 预热大体积依赖和缓存目录
  • 输出镜像版本、依赖清单和安全扫描结果

2. Prepare 阶段

  • 根据 execution profile 拉起 Sandbox
  • 挂载工作目录、缓存、对象存储凭证和策略配置
  • 执行环境准备动作,例如 actions 中定义的预处理步骤
  • 注入受控 Secret、Config 和网络策略

3. Agent 安装阶段

  • 安装 Agent runtime 或具体工具,例如 coding agent CLI、MCP client、浏览器驱动
  • 校验版本、可执行文件、模型配置和关键依赖
  • 执行 smoke test,确认 runtime attach、输出事件和 Trace 导出链路正常

4. 启动与运行阶段

  • 启动 Agent 主进程,并由 supervisor 管理退出码和重启策略
  • 与 Runtime Session Gateway 建立 attach 和 heartbeat
  • 接收任务输入并持续输出消息、Artifact、Checkpoint 和 Trace
  • 对关键子进程、浏览器、PTY、磁盘占用和网络出口做持续监控

5. 收尾与回收阶段

  • 在成功、失败、取消时统一上传日志、Trace、工件和检查点
  • 按策略保留或销毁工作区
  • 释放 Secret、短期租约和临时网络权限

FaaS、Worker、Wasm 的等价 CI/CD 流

Sandbox 的重点是“准备一台可工作的机器环境”;其他执行环境的重点通常不是安装一个长期驻留的 Agent 进程,而是发布正确版本、验证执行链路并持续确认运行健康。

FaaS

  • Build 阶段固定函数 bundle、layer、运行时版本和配置模板
  • Release 阶段发布版本、别名、灰度比例和回滚策略
  • Readiness 阶段执行预热调用,验证下游依赖、Secret 注入和 Trace 导出链路
  • Runtime 阶段监控调用时延、超时、冷启动、并发和错误分类

Worker

  • Build 阶段固定 consumer 镜像或二进制、依赖锁定和队列协议版本
  • Release 阶段配置队列绑定、并发度、lease 参数和滚动发布策略
  • Readiness 阶段执行 polling smoke test,验证消息解码、Run 映射和补偿逻辑
  • Runtime 阶段监控队列积压、消费速率、lease 续约、重试和死信转移

Wasm

  • Build 阶段编译模块、固定 capability manifest、完成签名和策略校验
  • Release 阶段按区域、租户或流量比例做 staged rollout
  • Readiness 阶段验证实例化、宿主 API 权限和 Trace 导出链路
  • Runtime 阶段监控模块加载、实例启动、quota reject、trap 和执行时延

Sandbox 需要重点监控什么

环境准备信号

  • Sandbox 准备耗时
  • 镜像拉取和依赖安装耗时
  • 预处理步骤成功率
  • attach 成功率

进程健康信号

  • Agent 主进程存活状态
  • 子进程树数量与异常退出
  • PTY 是否阻塞
  • 浏览器或辅助服务是否僵死

资源与会话信号

  • CPU、内存、磁盘和网络占用
  • 会话 TTL 与 heartbeat 间隔
  • 工作区大小和缓存命中率
  • Checkpoint 创建耗时与恢复成功率

业务结果信号

  • Run 成功率、重试率、取消率
  • 输出事件延迟
  • Tool 调用成功率
  • Artifact 产出率和 Trace 完整度

Sandbox 的运行时监控建议

推荐引入三层监控:

  • 进程层
    • 监控主进程、子进程、退出码、fd、内存和线程数
  • 会话层
    • 监控 attach、heartbeat、recover、lease、TTL 和 output lag
  • 任务层
    • 监控 Run 状态、Attempt 切换、工具调用、Artifact、Checkpoint 和 Span

这三层必须能通过 runIdsessionIdrunSpaceIdtraceId 关联起来,否则排障成本会很高。

FaaS 如何提供类似的监控能力

FaaS 通常没有长期驻留进程,因此“进程监控”要转化为“调用级和实例级健康信号”:

  • 发布阶段监控函数版本、别名、灰度比例和回滚状态
  • 运行阶段监控调用成功率、时延、超时、并发、冷启动和错误分类
  • 平台侧通过 Run / Attempt 记录某次调用映射到哪个函数版本
  • 通过 Trace 把一次 FaaS 调用与上游 Agent Run 关联起来

在 FaaS 中,不需要心跳监控单个长期进程,但需要重点监控:

  • 调用是否按预期开始
  • 调用是否在超时窗口内结束
  • 失败是否可以安全重试
  • 输出事件和 Trace 是否完整落到平台

Worker 如何提供类似的监控能力

Worker 通常以消费者形式运行,监控重点是“队列推进能力”和“租约健康”:

  • 队列长度、积压时长、消费速率
  • lease 或 visibility timeout 是否被及时续约
  • 单任务执行时长、重试次数和死信转移
  • worker 进程存活、polling 失败率和批次大小
  • Run 与队列消息的映射关系是否稳定

如果 Worker 承担编排器或后台推进职责,还要监控:

  • 状态推进延迟
  • 补偿执行成功率
  • 终态投影延迟

Wasm 如何提供类似的监控能力

Wasm 运行环境的重点不在“进程树”,而在“实例生命周期与资源配额”:

  • 模块加载成功率和实例化耗时
  • CPU 配额、内存上限、系统调用或宿主 API 拒绝率
  • 输入输出大小和执行时延
  • 模块版本、签名和策略检查结果
  • Trace 导出和错误归一化情况

如果 Wasm 用在边缘场景,还要监控:

  • 区域分布
  • 边缘回源比例
  • 策略缓存命中率

把 Sandbox 的监控能力翻译到其他环境

关键不是要求 FaaS、Worker、Wasm 复制 Sandbox 的进程树视角,而是把相同的运营目标投影成各自可观测的健康信号。

运营目标SandboxFaaSWorkerWasm
环境准备prepare、attach、工作区挂载deploy、warmup、env inject、预热调用consumer bootstrap、queue bind、config fetchmodule load、capability check、instance warmup
Agent 安装或版本就绪runtime install、依赖校验、smoke testbundle / layer 固定、函数版本校验镜像 bake、init hook、协议版本校验module build、签名校验、host shim 检查
运行健康supervisor、process tree、heartbeatinvoke success、timeout、并发、cold startlease renew、poll loop、consumer heartbeattrap、quota reject、exec latency
故障恢复checkpoint、session recover、workspace 保留幂等重试、事件重放、安全回滚requeue、compensation、dead letterstateless replay 或轻量快照
观测完整性logs、spans、artifact completenessinvocation trace completenessqueue-to-run trace continuityedge trace completeness

统一运营视图应该长什么样

尽管不同执行环境监控重点不同,平台层仍然应该把它们投影到同一组运营对象:

  • Run
    • 用户能否感知成功、失败、取消、超时和继续执行
  • Attempt
    • 某次执行落在哪个 provider、环境、版本和空间
  • Session
    • 是否成功 attach、heartbeat、recover 和释放
  • Artifact / Checkpoint
    • 是否产出、能否恢复、是否需要保留
  • Trace
    • 是否完整覆盖模型调用、工具调用、内部步骤和错误链路

推荐的统一监控指标

指标类别SandboxFaaSWorkerWasm
启动健康prepare、attach、进程启动deploy、cold start、invoke startpoll、lease、consumer startmodule load、instance start
执行健康heartbeat、process exit、tool latencyduration、timeout、error codelag、retry、dead letterquota reject、trap、latency
状态恢复checkpoint、session recoverretry safety、idempotencyrequeue、compensationstateless replay 或轻量快照
观测质量logs、spans、artifact completenessinvocation trace completenessqueue to run trace continuityedge trace completeness

运营建议

对 Sandbox

  • 把环境准备、依赖安装和 Agent 安装纳入正式 CI/CD,而不是只靠运行时脚本
  • 用 supervisor 管理 Agent 进程,不要把单个 CLI 进程直接当作生产守护进程
  • 为每个执行画像定义最小健康检查和最大启动时间

对 FaaS

  • 关注版本发布、冷启动和幂等安全,而不是试图模拟长期心跳
  • 让平台保存函数版本到 Attempt 快照中,便于问题追溯

对 Worker

  • 把队列积压和死信率当作一等生产信号
  • 明确后台推进失败时谁来补偿和谁来告警

对 Wasm

  • 优先把它用于轻量、可限制、易审计的步骤
  • 不要强行让 Wasm 承担复杂依赖和长期会话主任务

相关规范

Informative whitepaper. Normative contracts live under /spec/.