Skip to main content

毎日の Sentry エラー修正

毎日 1 回、夜間に新しい Sentry エラーを取得し、それぞれに対して修正セッションを起動し、朝までに PR を用意する高度な Devin セッションをスケジュールします。
AuthorCognition
Category自動化
Featuresスケジュール, MCP, 高度
1

Sentry MCP を接続する

スケジュールを作成する前に、Devin があなたの Sentry データにアクセスできるようにする必要があります。
  1. Settings > MCP Marketplace に移動し、Sentry を検索します
  2. Enable をクリックし、OAuth で認証します — これにより Devin にあなたの Sentry の issue、event、および stack trace への読み取りアクセス権が付与されます
  3. 接続が正常に動作していることを確認するために、Test listing tools をクリックします
接続が完了すると、Devin はセッション内から Sentry プロジェクトをクエリし、issue の詳細や stack trace を取得し、breadcrumbs を読み取れるようになります。MCP サーバーの設定について詳しくはこちらを参照してください。
2

スケジュールを作成

Settings > Schedules に移動し、Create schedule をクリックします。
  • Name: Daily Sentry remediation — payments-api
  • Frequency: 毎日午前 6:00(スタンドアップ前に修正用 PR が準備できるように)
  • Agent: Advanced Devin — Devin がエラーごとに個別のセッションを起動し、修正を並列で実行できるようにします
  • Slack channel: チャンネル(例: #sentry-fixes)を選択します。実行が完了して PR のレビュー準備が整ったら、チームに通知されるようにします
  • Prompt:
3

コードベースや過去の修正をもとに Knowledge を構築する

Devin は、あなたのアプリのエラーパターンを理解していると、より質の高い修正を書けます。自分で Knowledge エントリを書く代わりに、Advanced Devin セッションを実行してコードベースと過去の修正を調査し、Knowledge を作成させましょう。これらのエントリは、Devin がスケジュールされた実行中に一致するエラーに遭遇したときに自動的に参照されます。また、上記のスケジュール済みプロンプトによって、PR フィードバックに基づいて Knowledge を更新するよう Devin に指示するため、時間の経過とともに精度が向上していきます。
4

通常の実行で得られる結果

毎朝、Devin は夜間のエラーキューを処理し、対象を絞った PR を作成します。以下が実際のセッション出力です:
Processed 5 Sentry errors from payments-api (past 24h):

1. TypeError: Cannot read property 'last4' of null (1,892 events)
   Root cause: Stripe webhook delivers `payment_method: null` for
   bank transfer payments. CheckoutReceipt.tsx:34 destructures
   without a null check.
   PR #612: Add null safety to CheckoutReceipt, show "Bank Transfer"
   fallback for non-card payments.

2. TimeoutError: Query timeout after 30s on /api/invoices (743 events)
   Root cause: N+1 query in InvoiceService.getMonthly() — each
   line item triggers a separate product lookup.
   PR #613: Add eager loading for invoice line items with
   Sequelize `include`.

3. RangeError: Maximum call stack size exceeded (412 events)
   Root cause: Circular reference in refund.toJSON() when a
   refund references its parent transaction which references
   the refund.
   PR #614: Break circular ref with a custom serializer,
   add max-depth test.

4-5. Two lower-frequency validation errors — PRs #615, #616.
各PRには、SentryのIssueへのリンク、根本原因の説明、修正内容、および元のエラーを検出できたはずのテストが含まれます。
5

チューニングと反復

1週間ほど運用したら、うまくいっている点を確認し、調整します:対象とするエラー数を決める。 まずは実行ごとに top 5 件のエラーから始めます。Devin が継続的にマージ可能な PR を作成できている場合は、8〜10件に増やします。修正に大幅な手直しが必要な場合は、3件に減らします。プロジェクトやタグで絞り込む。 プロンプトを特定の Sentry プロジェクト(payments-apiweb-frontend)に絞り込んだり、ノイズとなるタグを除外したりします。エラー件数が異なる場合は、プロジェクトごとに別々のスケジュールを作成できます。結果から学習する。 2〜3週間後に Advanced Devin セッションを実行して、どの修正が実際にリリースされたかを分析し、それを Knowledge に反映します: