博客
可靠性与生产环境

发布于 更新于

Anshu 和 Arag

生产环境 AI Agent 检查清单:基础设施、安全与可靠性

以 Markdown 阅读

AI agent 接触生产数据前,应为它提供范围受限的身份,让每项可重试写入具备幂等性,并在执行破坏性或付费操作前停止。允许无人值守运行前,还要限制执行范围、建立端到端 trace,并验证恢复路径。

本清单按依赖关系排序,后面的控制依赖前面的控制。它不是概率排名,因为目前没有公开数据集能够说明各类故障在生产 agent 中的发生频率。

Agent 接触生产数据前

为每个 agent 提供范围受限的身份

  • 为每个需要追溯的 agent、部署或会话签发独立凭据。
  • 只允许访问任务所需的租户、资源和操作。
  • 即使工具描述声称操作只读,也要在下游服务中执行授权。
  • 撤销凭据不应依赖删除用户账户。

共享管理员密钥会让清晰审计变得不可能,并让一次密钥泄露扩大为广泛访问。OWASP 的过度代理权指南建议尽量减少工具功能、权限和自主程度,再由下游系统执行授权。

在执行前阻止高影响操作

  • 破坏性、付费和范围异常广泛的操作需要人工或策略审批。
  • 审批时展示确切资源、范围和后果。
  • 底层系统支持时,优先使用软删除等可恢复状态变更。
  • 保留审计日志,但不要把删除后才写入的记录当成预防性控制。

Railway 记录了 2026 年 4 月的一次事故:agent 在磁盘上发现账户范围 token,并调用旧版存储卷删除 API。平台虽然有四层授权,但 token 范围和立即删除行为仍允许该操作。Railway 恢复了存储卷,并将 API 删除改为与控制台一致的 48 小时软删除窗口。事故报告具体说明了为什么范围受限的身份必须搭配可恢复或需要审批的删除路径。

让写入具备幂等性

  • 为每项逻辑操作创建一个幂等键,并在所有重试中复用。
  • 服务端保存操作结果,相同键再次出现时返回原结果。
  • 重用键的参数与原请求不同时拒绝操作。
  • 明确键的有效期,以及过期后的行为。

Stripe API 会保存一个幂等键的首次结果,并允许键最长 255 个字符。当前文档称,键保存至少 24 小时后可以移除。这些数字属于 Stripe 契约,并非通用默认值;你的保留窗口应覆盖 agent 最长的实际重试或恢复时间。完整流程参见 agent 重试与恢复指南。

Agent 无人值守运行前

限制每次运行

  • 限制工具调用次数、墙上时间、模型费用,以及相同操作的重复尝试次数。
  • 达到策略限制时停止运行,不要要求模型自行约束。
  • 写入工具应使用比读取工具更严格的限制。
  • 授权和校验反复失败时升级处理,而不是继续重试。

速率限制可以减少 agent 造成的损失,却不能修正不安全的权限。应在身份和授权就绪后将其作为止损层。

将模型、agent 与工具串联到同一条 trace

用一条 trace 串联用户请求、模型调用、工具选择、工具执行和下游 API 工作。包含租户、agent 身份、工具名称、工具调用 ID、结果、持续时间和策略决策,排除密钥和敏感工具结果。

OpenTelemetry 现在定义了 GenAI agent 和工具 span,其中包含工具调用标识符和持续时间属性。使用这些共享字段,更容易跨模型和应用遥测追踪同一项操作。AI agent 可观测性指南给出了实用 trace 结构。

测试中断与恢复

  • 在外部影响完成后持久化检查点,而不是只在模型响应后保存。
  • 从最后一个已验证检查点恢复,而不是重放整次运行。
  • 写入结果未知时,重试前先核对结果。
  • 演练撤销 agent 凭据并停止活跃运行。

服务端可能已经完成请求,但客户端没有收到响应时,就会出现未知结果。恢复逻辑必须先检查操作记录或幂等键,再决定是否重复执行。

使用规模扩大前

保留可重复执行的评估集

固定代表性任务、预期工具选择、禁止操作和验收标准。模型、提示词、工具描述、权限或重试行为发生变化后,都要运行这套评估。必须包含失败用例,因为成功演示不会触及上述控制。

写下事故处置路径

值班处置必须在不依赖故障 agent 的情况下回答四个问题:

  1. 如何停止新的运行?
  2. 如何撤销受影响的凭据?
  3. Agent 触及了哪些资源和操作?
  4. 如何恢复或补偿已完成的影响?

如果团队无法从遥测和后端状态回答这些问题,系统就不适合无人值守的生产任务。

上生产前审计一条工作流

选择权限范围最广的工作流。对每项写入记录身份、授权规则、幂等机制、审批要求、trace 字段和恢复操作。每个空白单元格都对应一项具体任务,无需再寻找另一份通用清单。

写入操作 身份与范围 幂等性 审批 Trace 恢复
示例:删除测试部署 限定到部署的 agent 操作键 测试租户外必须审批 工具调用和资源 ID 48 小时内恢复

先选择空白最多的一行进行测试。下方的提示词会创建隔离的 Cohesivity 租户,分别执行一次正常运行和一次中断运行,再报告未通过的控制措施。测试不会接触生产环境。