AIエージェントでエラー検知からプルリクエストまで自動化してみた(AWS)

こんにちは!プラットフォームエンジニアリングチームのryoです!
最近、AIエージェントを活用した自律型の開発・運用支援ツールの話題が増えてきましたね。
世の中には様々な自動化ツールがありますが、「エラーが起きた際、AIが自分でソースコードを読みに行き、修正とテストコードの生成まで全自動でやってくれたら最高なのでは?」という興味から、簡単なPoCとして「AIによるエラー自動修復エージェント」を作ってみました。
実運用を考えると、本番環境での自動修復はもちろんですが、それよりも「開発環境でのデバッグ支援」や「ステージング(STG)環境でのQAテスト中に見つかったバグの自動修正」といったより上流のフェーズでの利用が現実的かもしれません。
あくまでPoCなので実装はシンプルにしていますが、「AIエージェントをDevOpsや実際の開発・運用ワークフローにどう組み込めるか」を試すには非常に良い題材になりました。

どんなことをやりたかったのか

今回作ったアーキテクチャはシンプルで、
・アプリケーションでエラーが発生(Amazon CloudWatch Logsに出力)
・ログを検知してAWS Lambdaが起動し、AWS CodeCommitからソースコードを取得
・Amazon Bedrock(Claude 4.5 Sonnet)に原因分析とコード修正を依頼
・修正コードとテストコードをコミットし、プルリクエストを作成
・Slackへ原因の解説とPRのリンクを自動通知
という流れです。

完全に人間のエンジニアを置き換えるというよりは
・開発やSTG環境におけるバグ修正・テストサイクルの圧倒的な高速化
・エラー発生時の初動調査の自動化
・修正の叩き台とテストコードの自動提供
・本番環境でのアラート対応時における心理的・認知的負荷の軽減
といった、「各環境での開発や運用を助けてくれる頼もしい相棒(補助エージェント)」を想定しています。

アーキテクチャ

今回構築したシステムの全体像です。インフラ構築はすべてAWS CDK(TypeScript)で行い、サーバーレスで完結させています。

【検知】: アプリケーションのエラーログを CloudWatch Logs がキャッチします。
【起動】: ログのフィルターをトリガーに、エージェント(Lambda)が起動します。
【取得】: Lambdaが CodeCommit のAPIを叩き、エラー発生元のソースコードを取得します。
【推論】: Bedrockにエラーログとコードを渡し、原因分析と修正・テストコードの生成を依頼します。
【作成・通知】: CodeCommitに新しいブランチを切って修正内容とテストコードをコミットし、プルリクエストを作成。最後にその内容をSlackへ通知します。
※CodeCommitを使った理由はシンプルにAWSで完結させたかったことと、CodeCommitを利用したプルリクエストの利用例が少ないと感じていたからです。

実際に動かしてみる

それでは、実際に意図的なバグ(0除算エラーなど)をアプリケーションに仕込んで発生させてみます。
※今回は実際の動作検証がメインなので、実装部分は割愛します。

①テストをクリックしてエラーを発生させる。

②AIエージェントからSlackへプルリクエスト作成の通知が来る。

③Slackの「CodeCommitでPRを確認する」のリンクをクリックしてプルリクエストの内容を確認する。

④CodeCommitの変更タブをクリックして修正コードとテストコードを確認する。

テストコードの続きです。

検証結果

実際に動かした結果、エラー発生からSlack通知とプルリクエストの作成までが数十秒で完結し、以下の通り想定していた効果を確認できました。
・初動調査の自動化:エラーが出た瞬間に原因の仮説と修正案が手元に届くため、調査の取り掛かりが大幅に速くなる
・修正の叩き台提供:Bedrockが生成したコードをそのままマージするのではなく、レビューの起点として使うことで、修正品質を担保しながら作業時間を短縮できる
・テストコードの自動生成:修正と同時にテストコードも提案されるため、テスト作成の手間が減る
・認知的負荷の軽減:本番アラート対応時に「まず何を見ればいいか」がSlack通知で示されるため、深夜対応などの心理的負担が下がることが期待できる

まとめと今後の展望

今回のPoCを通して、AIエージェントによる自動修復は実現可能であり、特に開発環境やSTG環境でのバグ対応サイクルを短縮できるポテンシャルがあると感じました。
「エラーが起きたらAIが直してプルリクエストを投げておいてくれる」という体験は、開発者の心理的負荷を大きく下げてくれます。
今後はこれを実運用・他チームへ展開していくために機能拡充を予定しています。
AIエージェントをDevOpsにどう組み込むか、引き続き検証を続けていきます!