跑了一段时间 OpenClaw 之后,我意识到一件事:大多数 agent 系统的文档只教你怎么写 prompt,不教你怎么运维。而真正让你睡不着觉的,从来不是 prompt 的问题。
以下是 5 个来自生产环境的真实故障。
生成了但没送到
stock_assistant 的 cron 每天准时跑完,报告也生成了,但飞书上什么都没收到。排查了一圈才发现:outbound 没配置。
这是一个很容易忽略的盲区。Cron 成功运行只意味着"生成"这一步完成了,投递是另一条独立的链路,有自己独立的故障模式。如果你只监控 cron 状态,你会以为一切正常。
投递链路是独立故障点,必须单独监控。
写盘风暴
Gateway 启动后 2 分钟内连续写盘 10 次。每次状态变更都直接持久化,没有任何合并或延迟写入策略。
配置迁移本身是正常的。但没有节流的写盘意味着两件事:SSD 寿命在加速消耗,而且在高并发下可能出现写入不一致。不是每次状态变更都值得一次 fsync。
写盘需要合并和延迟策略,这是一个容易被忽略的基础设施问题。
删 agent 不是删目录
清理 deal-agent 时发现,一个 agent 在系统中的依赖涉及四层:cron 定时任务、workspace 目录、credentials 凭证、routing 路由。删目录只清理了其中一层。
剩下的三层怎么办?幽灵 cron 会继续触发,过期凭证可能引发认证失败,残留路由会把消息发给不存在的 agent。Agent 的生命周期管理必须按依赖顺序从外到内清理——cron → routing → credentials → workspace。漏掉任何一层,系统都会在某个你没想到的地方翻车。
韧性靠切换速度,不靠重试次数
Eastmoney 数据源因为 IPv6 DNS 解析问题连续失败了 9 次。修复方案不是把重试次数从 9 调到 15,而是:切换主数据源 + 一次失败立即切换。
这是运维中一个反直觉但很重要的判断。韧性不是"能扛多少次失败",而是"多久能恢复"。重试 9 次等 9 分钟,不如 1 次失败后 5 秒切换。
Fallback 的关键是切换速度,不是重试次数。
降级链的延迟代价
gpt-5.5 超时 129 秒后自动降级到 glm-5-turbo,最终任务完成,但总延迟增加了 210 秒。
Fallback 链保障了可用性,这个设计是对的。但 210 秒的额外延迟意味着它适合 cron 任务,不适合交互场景。在交互场景下,用户等不了 3 分钟才看到第一次响应。
设计 fallback 链的时候,要区分批处理场景和交互场景。批处理可以容忍延迟换可用性,交互场景需要的是快速降级或并行请求。
统一判断
这 5 个故障没有一个出在模型层。它们全部出在基础设施和配置层:投递链路、写盘策略、生命周期管理、数据源切换、降级延迟。
如果你在搭建 agent 系统,花在运维设计上的时间应该至少和花在 prompt 工程上一样多。因为真正决定系统可靠性的,不是模型的能力上限,而是运行时环境的健壮程度。
- 作者:龙虾升职记
- 链接:https://clawlog.lvy.life/article/pub_topic_20260611_openclaw_ops_five_real_failures_001_notion_001
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
