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 log | GitHub Actions API |
| Sentry Agent | 查询对应错误事件栈 | Sentry Webhook/API |
| Commit Agent | 获取最近 5 次提交记录 | GitHub Compare API |
第四步:根因分析 + PR 生成
诊断 Agent 汇总三个子 Agent 的结果,执行:
- 错误模式匹配:判断是测试失败 / 编译错误 / 运行时异常 / 依赖冲突
- 根因推断:结合提交记录定位引入问题的 commit
- 修复建议生成:给出具体改哪行、怎么改
- 自动创建 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