OpenClaw 有价值应用(2026-05-31):多Agent日志分析与根因流——把故障排查从大海捞针变成系统定位
场景演示
凌晨 2 点,线上告警响起:「服务响应超时,影响 2000+ 用户」。SRE 工程师从床上爬起来,打开日志平台,面对的是 10 万行混杂着 5 个微服务的日志——根本不知道从哪看起。
这是每个工程师都经历过的噩梦。传统排查路径是:
- 先问监控:哪个指标先爆的?
- 再问日志:哪个错误关键字先出现的?
- 然后猜测:大概是 XXX 模块的问题?
- 最后验证:一小时后,终于定位到根因。
多Agent日志分析流把这件事变成:告警触发 → 流水线自动并行扫描 → 20分钟出根因报告 + 修复建议。
核心价值:把「人肉大海捞针」变成「系统并行扫描 + AI 推理定位」
Step by Step
第一步:告警触发,自动启动日志采集
当 Prometheus/grafana/自有监控系统发出 P0-P2 告警时,OpenClaw 的事件驱动流自动启动。
触发条件:告警标题含 ["ERROR", "超时", "OOM", "500", "服务不可"] 等关键字
OpenClaw 自动完成:
- 调用日志平台 API,按告警时间窗口拉取原始日志(通常前后各 30 分钟)
- 按服务名做日志分区切分
- 写入临时分析任务队列
使用的 Skills:
halo-backend-publisher(写分析报告)feishu_bitable_*(写日志任务状态到 Bitable)feishu_doc(通知相关人)
第二步:多Agent并行扫描(分诊阶段)
日志进入日志分诊 Agent 集群,并行处理:
| Agent | 职责 | 输出 |
|---|---|---|
| 错误聚合 Agent | 扫描 ERROR/FATAL/WARN,计算各服务错误频次 | 错误频率排行榜 |
| 延迟根因 Agent | 分析响应时间分布,定位慢请求集中在哪个接口 | 慢接口 Top5 |
| 关联追踪 Agent | 按 trace_id 串联跨服务请求链路 | 异常链路图 |
| 用户影响 Agent | 按 uid/token 统计受影响用户量 | 影响范围报告 |
四个 Agent 同时工作,互不依赖,结果写入共享的 日志分析临时表。
这一阶段核心逻辑:
For each log_line in raw_logs:
if contains_error(line): error_agent.process(line)
if contains_latency(line): latency_agent.process(line)
if contains_trace(line): trace_agent.process(line)
if contains_user(line): user_agent.process(line)
第三步:根因推理(收敛阶段)
所有 Agent 的输出汇总到根因推理 Agent,它负责:
- 交叉验证:错误频次最高的模块,是否也在慢接口中出现?
- 时序分析:哪个错误最先出现(蝴蝶结模型的根因起点)?
- 调用链还原:从 trace_id 还原完整调用栈,定位故障传播路径
- 输出根因报告,格式如下:
## 根因报告 | 2026-05-31 02:00
**故障等级**:P1
**影响范围**:约 2,347 用户,3 个接口不可用
**持续时长**:约 18 分钟
### 根因
用户订单服务(order-service)在 01:42 触发内存泄漏,
Golang 堆内存从 2GB 快速涨到 8GB(触发 OOM Kill)
### 传播路径
order-service OOM → 下游支付回调超时 →
营销活动接口 500 错误 → 用户端下单失败告警
### 建议修复
1. 立即:重启 order-service Pod(临时止血)
2. 短期:修复订单查询 SQL(N+1 问题导致内存溢出)
3. 中期:增加 order-service 内存 limit + 熔断策略
第四步:自动通知 + 后续追踪
根因报告生成后,自动推送飞书群 + 邮件,并写入 Bitable 工单系统,附上:
- 根因分类(内存泄漏 / SQL 问题 / 网络抖动 / 配置错误)
- 复盘责任人
- 下次复盘会议时间(自动预约)
可复制提示词
日志分诊 Agent 提示词模板
你是一个专业的 SRE 日志分析 Agent。
当前任务:分析以下日志片段,提取 ERROR/WARN/FATAL 级别错误。
## 分析要求
1. 按服务名(service_name)分组统计错误频次
2. 提取每个错误的首次出现时间( earliest_time)
3. 提取错误关键字和上下文(前后各3行)
4. 输出格式:JSON数组
## 日志片段
{{log_content}}
## 输出示例
[
{
"service": "order-service",
"error_count": 23,
"earliest_time": "2026-05-31T01:42:03Z",
"top_errors": ["connection timeout", "OOM detected"],
"sample_context": "..."
}
]
根因推理 Agent 提示词模板
你是一个资深故障复盘专家,擅长用蝴蝶结模型(Bow-tie Model)分析故障根因。
## 各 Agent 输出的分析结果
- 错误聚合:{{error_report}}
- 延迟分析:{{latency_report}}
- 调用链追踪:{{trace_report}}
- 用户影响:{{user_impact}}
## 推理要求
1. 确定故障起点(Center):哪个错误最先发生?
2. 确定直接原因(Cause):为什么这个错误会发生?
3. 确定直接结果(Consequence):导致了哪些外围故障?
4. 确定影响范围(Extent):多少用户/接口受影响?
5. 给出可操作的修复建议(分立即/短期/中期)
## 输出格式
Markdown 格式根因报告,包含:根因、传播路径、修复建议
使用的 Skills
| Skill | 用途 | 说明 |
|---|---|---|
halo-backend-publisher | 自动发布根因报告到博客 | 沉淀知识,供团队查阅 |
feishu_bitable_* | 日志任务状态写入 Bitable | 形成故障知识库,支持历史查询 |
feishu_doc | 发送故障通知 | 推送到相关人 |
feishu_chat | 群通知 | 触发飞书群告警 |
browser-automation | 自动登录日志平台拉取日志 | 覆盖日志平台无 API 的场景 |
价值与注意事项
核心价值
- 时间压缩:传统人工排查 1-2 小时 → 系统并行扫描 20 分钟,压缩到原来的 1/3~1/6
- 减少经验依赖:新工程师也能拿到系统定位的根因报告,不再需要「老司机」带队
- 知识沉淀:每次故障自动写 Bitable,形成故障知识库,久而久之能发现高频故障模式
- 7×24 自运转:凌晨告警也能自动启动分析,早上到公司直接看报告
注意事项
- 日志质量问题:日志字段不统一、分级不规范时,分析准确率会下降。流水线前要先治理日志格式。
- 误报过滤:非业务异常的噪音日志(如连接池心跳)需要提前过滤,否则会干扰分诊结果。
- trace_id 覆盖率:调用链追踪依赖 trace_id,若微服务框架没有统一注入,分析会退化为关键字匹配。
- 敏感信息:日志中可能含用户手机号、身份证等,需要在进入流水线前做脱敏处理。
- 不要完全替代人工:系统给出的是「最可能根因」,最终判断仍需工程师确认,尤其是涉及数据一致性、回滚等高风险决策时。
- 与现有工具协同:推荐与 Datadog / Grafana / ELK 等现有监控体系集成,OpenClaw 负责智能层,不重复造轮子。
关联阅读:如果你对多 Agent 在运维领域的应用感兴趣,还可以参考:《多Agent故障响应中台》(2026-03-18)和《多Agent系统故障自愈流》(2026-05-20),分别侧重故障响应流程自动化和系统自愈能力。