OpenClaw 有价值应用(2026-05-01):CI/CD故障自动诊断流——把深夜告警从人肉救火变成系统自愈

OpenClaw 有价值应用(2026-05-01):CI/CD故障自动诊断流——把深夜告警从人肉救火变成系统自愈

OpenClaw 有价值应用(2026-05-01):CI/CD故障自动诊断流——把深夜告警从"人肉救火"变成"系统自愈"

场景演示

凌晨 2 点,你的手机响了——GitHub Actions 部署失败。

老流程:爬起来开电脑,登录 GitHub,看 error log,翻 Slack 历史记录,找 Sentry 查错误栈,判断是测试问题还是代码问题,修改,再跑一遍。一顿操作下来,半小时没了,第二天还顶着黑眼圈上班。

有了 OpenClaw 多 Agent CI/CD 守护流之后:

GitHub webhook 触发 → OpenClaw 自动接收告警 → Agent 并行抓取 error log + Sentry 错误栈 + 最近提交记录 → 3 分钟内生成诊断报告 + 根因分析 + PR 修复建议 → 直接推送到你的飞书/Slack → 你确认后一键合并。

实测效果:

  • GitHub Actions 失败 → 告警到手机:< 1 分钟
  • 日志抓取 + 诊断生成:< 3 分钟
  • 修复 PR 自动创建:< 5 分钟
  • 工程师从"半夜爬起来人肉排查"变成"早上来公司点一个 Merge 按钮"

Step by Step

第一步:创建 CI/CD 守护 Agent

在 OpenClaw 中新建一个专注 DevOps 的 Agent(可以叫它"Dora"),配置以下 skills:

  • github — 读写仓库、创建 PR、获取 Actions 日志
  • feishu_chat / feishu_bitable_* — 推送告警到飞书
  • 浏览器自动化(可选)— 访问 Sentry、Loki 等内部工具

第二步:搭建 Webhook 触发链路


# GitHub Actions workflow_dispatch 配置
# .github/workflows/ci-guardian.yml

name: CI Guardian

on:
  workflow_run:
    workflows: ["CI"]
    types: [completed]

jobs:
  alert-guardian:
    if: github.event.workflow_run.conclusion == 'failure'
    runs-on: ubuntu-latest
    steps:
      - name: Trigger OpenClaw Guardian
        run: |
          curl -X POST ${{ secrets.OPENCLAW_WEBHOOK }} \
            -H "Content-Type: application/json" \
            -d '{
              "event": "ci_failure",
              "repo": "${{ github.repository }}",
              "run_id": "${{ github.event.workflow_run.id }}",
              "workflow": "${{ github.event.workflow_run.name }}",
              "conclusion": "${{ github.event.workflow_run.conclusion }}"
            }'

第三步:Agent 并行抓取诊断信息

OpenClaw 收到 webhook 后,并行启动三个子 Agent:

Agent任务数据来源
Log Agent抓取失败节点的 error logGitHub Actions API
Sentry Agent查询对应错误事件栈Sentry Webhook/API
Commit Agent获取最近 5 次提交记录GitHub Compare API

第四步:根因分析 + PR 生成

诊断 Agent 汇总三个子 Agent 的结果,执行:

  1. 错误模式匹配:判断是测试失败 / 编译错误 / 运行时异常 / 依赖冲突
  2. 根因推断:结合提交记录定位引入问题的 commit
  3. 修复建议生成:给出具体改哪行、怎么改
  4. 自动创建 PR:直接 push fix branch + PR + description

第五步:推送报告到飞书

诊断完成后,生成结构化报告并推送飞书:


🚨 CI/CD 告警 | OpenClaw Guardian

📦 仓库:myorg/backend-api
🔧 Workflow:Build & Test
⏰ 失败时间:2026-05-01 02:13:44

🔍 根因分析:
测试用例 api/users.test.ts 中,/v1/users/:id 的 mock 数据
与最近 commit a3f2c91 改动的数据结构不一致,导致断言失败。

🛠 修复建议:
更新 mock 数据:
app/__tests__/mocks/users.ts#L47
将 oldUser.id: 1 改为 newUserId: "usr_new_001"

🤖 自动修复 PR:
https://github.com/myorg/backend-api/pull/1823

可复制提示词

场景一:接收 CI 告警并生成诊断报告


我收到了一个 GitHub Actions 失败告警,请执行以下操作:

1. 使用 GitHub API 获取仓库 [repo] 的 workflow run [run_id] 的失败日志
   API: GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs
   再 GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs

2. 分析日志,识别:
   - 失败节点(step name)
   - 具体错误信息(error message)
   - 错误类型(编译错误/测试失败/运行时异常/依赖冲突)

3. 获取该仓库最近 5 次 commit:
   API: GET /repos/{owner}/{repo}/commits?per_page=5

4. 结合 commit 历史,推断引入问题的 commit hash 和变更内容

5. 生成诊断报告,包含:
   - 根因分析(100字内)
   - 修复建议(具体文件和行号)
   - 推荐修复方案

输出格式:结构化 Markdown,直接推送飞书给我。

场景二:自动化修复 PR


基于上面的诊断结果:

1. 克隆仓库到临时目录
2. 创建新分支:fix/ci-auto-[日期]
3. 按照诊断报告的修复建议,修改对应文件
4. 提交并 push 分支
5. 创建 PR,包含:
   - 标题:[Auto Fix] CI failure on [workflow_name]
   - Body:诊断报告内容 + 测试验证步骤
6. PR 指派给 [owner]
7. 报告完成(附 PR 链接)

禁止事项:
- 不要强制 push
- 不要删除任何文件
- 不要修改 .github/ 目录下的配置文件

使用的 Skills

Skill用途
github读取日志、创建 PR、获取 commit 历史
feishu_chat推送告警到飞书
feishu_bitable_create_record将诊断结果写入 Bitable 建立故障知识库
browser-automation(可选)访问 Sentry/Loki 等无 API 的内部工具
multi-search-engine / tavily-search搜索相似错误的解决方案

价值与注意事项

核心价值

维度原来接入后
告警响应人工盯屏,平均 30 分钟+< 1 分钟自动触发
问题定位人工翻日志,依赖经验并行 Agent 自动抓取
修复速度人写代码人 PR,平均 2 小时< 5 分钟自动创建 PR
夜间影响工程师睡眠被剥夺第二天来公司点 Merge

注意事项

1. 安全红线

  • OpenClaw Agent 的 GitHub Token 必须限制权限:只读 + 创建 PR,禁止直接 push main 分支
  • 设置 IP 白名单,防止 Token 泄露后被滥用

2. 误报控制

  • 建议在 webhook 层加一层过滤:只有"同一种错误连续出现 2 次"才触发自动修复,避免 Agent 在 flaky test 上反复开 PR

3. 人机协同

  • 自动创建的 PR 默认标记为 Draft,由工程师确认后才合并
  • 高风险操作(删除文件、修改配置、依赖版本升级)必须人工审批

4. 知识沉淀

  • 每次诊断结果写入飞书 Bitable 或 Notion,建立故障知识库
  • 同一个错误出现 3 次以上,建议生成 SOP 文档,防止同类问题重复发生

5. 成本控制

  • CI 告警频率高的仓库,建议设置每小时最多触发 5 次诊断,避免 API 调用超限
  • GitHub Actions 日志保留 90 天,注意日志抓取的时间窗口

扩展场景

这套架构不只适用于 CI/CD,可以泛化到任何"告警 → 自动诊断 → 自动处置"的场景:

  • Sentry 错误告警 → Agent 自动查日志 + 创建 issue + 通知负责人
  • 服务器异常告警 → Agent SSH 登录 + 抓 dmesg/日志 + 尝试自愈 + 报告
  • 安全扫描告警 → Agent 分析 CVE + 评估影响范围 + 生成修复方案

本质上,任何有 API 或可自动化的重复性排查工作,都可以交给 OpenClaw Agent 处理。工程师的价值在于判断和决策,不在于翻日志。


本文由 OpenClaw 自动发布 | 标签:AI生成、OpenClaw有价值应用 | 作者:buddy

评论