跳到正文
🔵 社区案例 — 基于社区验证案例改编 进阶 开发工具

Sentry 自动修 Bug 工作流:睡觉时 AI 自动修 Bug,早上验收 PR

用 OpenClaw + Claude Code 构建完整的 Sentry → 自动分析 → AI 修 Bug → GitHub PR 工作流。凌晨 3 点的告警不再需要爬起来处理,早上醒来 AI 已提交 PR,等你 code review。

⚔️ 难度 ★★☆ 进阶
⏱ 配置耗时 1-2 小时配置
🎁 掉落 节省 1-2 小时配置
🦞 部署 可一键部署

🎯 做完你会得到

减少 80% 的深夜告警处理;Bug 修复周期从平均 4 小时缩短到 AI 隔夜完成;开发团队可以专注于真正复杂的问题。

👤 适合谁

  • 后端/全栈开发者
  • 有频繁 bug 需要处理的开发团队
  • 想要 7×24 无人值守开发流水线的工程师

⚡ 效果预览

凌晨 3 点 Sentry 检测到支付回调超时 Bug,OpenClaw 自动分析错误类型 → 判定为可自动修复→ 启动 Claude Code 子代理 → 写修复代码(加 exponential backoff)→ 运行测试 → 提交 GitHub PR。早上 7 点收到通知:3 个 Bug 已自动修复,PR#127 #128 #129 待 Review。

真实应用

eastondev.com(2026年2月)发布详细教程,描述了完整的 Sentry + OpenClaw + Claude Code 自动修复 Bug 工作流。作者在凌晨 3:47 被 PagerDuty 告警叫醒处理一个简单的支付回调超时 bug,之后决定构建这个自动化流程:“这类 bug 不值得在凌晨 3 点叫醒我。重试机制没做好,加个 exponential backoff 就解决了,为什么不能让 AI 处理这些重复性工作?“该工作流的核心思路:OpenClaw 负责 24/7 监控,Sentry 检测错误后触发 webhook,OpenClaw 分析错误类型和严重程度,决定是否自动修复,可修复的交给 Claude Code 子代理完成修复和 PR 创建,全程无需人工介入。

解决什么问题

开发者深夜被告警叫醒处理 bug 的痛苦:

  • 凌晨 3 点被叫醒,睡眼惺忪看日志、写代码、提交 PR
  • 大部分深夜 bug 是”已知的简单类型”(超时处理不当、空指针、配置错误)
  • 手动处理这些重复性 bug 消耗大量时间和精力
  • 但这些问题又不得不处理,否则影响用户体验

AI 方案:OpenClaw 当”项目经理”,Claude Code 当”程序员”,你只需要审批 PR。

系统架构

┌──────────┐  webhook   ┌─────────────────────────────────┐
│  Sentry  │ ────────→ │     OpenClaw 主控Agent           │
│  (检测)   │            │  • 24/7 监听 webhook             │
└──────────┘            │  • 分析错误类型和严重程度          │
                        │  • 决策:自动修复 / 通知人工 / 忽略  │
                        └──────────────┬──────────────────┘
                                      │ spawn

                       ┌─────────────────────────────────┐
                       │    Claude Code 子代理 (执行者)    │
                       │  • 拉取最新代码                   │
                       │  • 分析 bug 根因                   │
                       │  • 写修复代码                     │
                       │  • 运行测试                      │
                       │  • 创建 GitHub PR                │
                       └─────────────────────────────────┘

关键点:OpenClaw 不直接修改代码,只负责”决策”和”协调”,实际代码修改由 Claude Code 子代理完成,确保安全性和代码质量。

前置条件

  • OpenClaw 已安装并运行
  • Claude Code 已安装(npm install -g @anthropic-ai/claude-code
  • Sentry 账号(需要创建项目和配置 webhook)
  • GitHub 仓库(需要 Personal Access Token)
  • Slack/飞书/Telegram(接收通知)

配置步骤

1. 配置 Sentry Webhook

  1. 登录 Sentry,进入项目 Settings → Integrations → Webhooks
  2. 添加 OpenClaw webhook URL:
https://your-openclaw-gateway.com/hooks/sentry?sessionKey=bug-fix-pipeline
  1. 创建告警规则:error count > 5 in 5 minutes 时触发 webhook

2. 配置 OpenClaw 监控 Agent

创建 ~/.openclaw/agents/sentry-bug-monitor.yaml

name: sentry-bug-monitor

hooks:
  sentry:
    path: /hooks/sentry
    defaultSessionKey: bug-fix-pipeline

steps:
  - id: parse-error
    command: json.parse stdin
    description: "Parse Sentry error data"

  - id: classify
    command: llm-task "Analyze error type and severity"
    args:
      error: $parse-error.stacktrace
      message: $parse-error.message
    schema: error-classification.json

  - id: decision
    command: state.set "action" $classify.recommended_action

  - id: auto-fix
    command: subagent.spawn
    args:
      type: claude-code
      task: "Fix bug: ${parse-error.title}"
      context: $parse-error
      repo: $parse-error.project.repo
    condition: $classify.severity == "medium" && $classify.auto_fixable == true

  - id: notify-human
    command: slack.send "#alerts"
    args:
      message: "Critical error found, human intervention needed: ${parse-error.url}"
    condition: $classify.severity == "critical"

3. 配置 Claude Code 子代理任务

Claude Code 子代理的工作流程:

# 1. 拉取最新代码
git clone $REPO_URL /tmp/fix-workspace
cd /tmp/fix-workspace

# 2. 创建修复分支
git checkout -b auto-fix/$ERROR_ID

# 3. 分析 bug 根因
# (分析 stack trace 和相关代码文件)

# 4. 编写修复代码
# (根据错误类型选择修复策略)

# 5. 运行测试验证
npm test
pytest tests/

# 6. 推送分支并创建 PR
git push origin auto-fix/$ERROR_ID
gh pr create --title "[Auto-fix] $ERROR_TITLE" --body "Auto-fix by Claude Code"

4. 定义错误分类规则(error-classification.json)

{
  "error_type": "enum(network_timeout, null_pointer, config_error, logic_error, other)",
  "severity": "enum(low, medium, critical)",
  "auto_fixable": "boolean",
  "recommended_action": "enum(auto_fix, notify_human, ignore)"
}

自动修复判定规则:

  • error_type = network_timeout + severity = mediumauto_fixable: true
  • error_type = null_pointer + severity = mediumauto_fixable: true(有测试覆盖时)
  • severity = criticalrecommended_action: notify_human

使用示例

凌晨 3:17,Sentry 检测到 Bug

Sentry webhook → OpenClaw:

error_id: ERR-20260323-0317
title: "Payment callback timeout"
stacktrace: "...at PaymentService.processCallback (payment.js:142)"
severity: medium

OpenClaw 分析:

  • 错误类型:network_timeout(网络超时重试机制不当)
  • 可自动修复:✅ true
  • 严重程度:medium

决策:启动 Claude Code 子代理

Claude Code 自动执行:

# 在 payment.js:142 添加 exponential backoff
const retryWithBackoff = async (fn, maxRetries = 3) => {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (err) {
      if (i === maxRetries - 1) throw err;
      await sleep(Math.pow(2, i) * 1000); // 1s, 2s, 4s
    }
  }
};

测试通过 → 创建 PR → 通知 Slack

早上 7:30,你收到 Slack 通知

🐛 [Auto-fix] Payment callback timeout
📄 PR#127 · auto-fix/ERR-20260323-0317
📊 Tests: ✅ 12 passed, 0 failed
🔍 Root cause: 缺少重试机制,网络超时不重试直接失败
💡 Fix: 添加 exponential backoff,最多重试3次
👀 Review: https://github.com/your-org/your-repo/pull/127

你只需要:点击 Review,Merge。

常见可自动修复的 Bug 类型

Bug 类型错误特征自动修复策略
网络超时timeout, connection refused添加 exponential backoff
空指针null is not defined, cannot read添加 null 检查
配置错误config missing, env undefined使用默认值 fallback
日志缺失console.error, logger.warn添加日志记录
类型错误TypeError添加类型检查或类型断言

预期结果

  • 深夜告警减少 80%(AI 处理了 80% 的可自动修复问题)
  • Bug 修复周期:从平均 4 小时 → 隔夜自动完成
  • 团队专注力:开发者只处理真正复杂的问题
  • 代码质量:每个修复都有完整的 PR 和 CI 测试记录

踩坑记录

AI 修复引入了新 Bug

症状:Claude Code 的自动修复通过测试,但上线后引入了新的 regression。

解法

  • 严格限制可自动修复的 Bug 类型(只修复已知的简单类型)
  • 所有 PR 必须 CI 通过 + 人工 review 才能 merge
  • 设置 auto_fixable: false 的条件,宁可漏报也不误报

Sentry webhook 触发过于频繁

症状:一个 bug 触发大量重复 webhook,导致 AI 被 spam。

解法:在 Sentry 中设置去重规则(如:相同错误 5 分钟内不重复告警)。

不满意怎么调

  • 只要监控和通知 → 关闭 auto-fix,仅让 AI 分析问题并通知你
  • 不需要 Claude Code → 使用 OpenClaw 自带的代码编辑能力(但质量不如 Claude Code)
  • 多仓库 → 在 OpenClaw 中为每个仓库配置独立的 repo 参数
#开发#Sentry#Bug修复#GitHub#Claude Code#自动化#DevOps#开发工具