こんにちは、TalentXでバックエンド開発をしている内之丸です。
今回は、Slack・Jiraを利用している開発チーム向けに、Devin × Atlassian MCPを使用してエラー調査から改修までの対応を半自動化する方法をご紹介いたします。
前提
Devinについて
Cognition社が開発した自律型AIエージェントで、要件理解から設計、実装、テスト、修正までを一貫して行うことができます。
本記事では、エラー発生時の調査や改修対応を担うエージェントとしてDevinを活用します。
TalentXでもDevinを導入し、開発やレビュー、調査等に活用しています。
Jiraについて
プロジェクト管理ツールで、チケットによるタスク管理や進捗可視化を行うことができます。
私たちのチームでも、エラー対応を含むタスク管理にJiraを使用しています。
また、Atlassian MCPを使用することで、AIエージェントを通じてJiraチケットの作成や編集を行うことができます。
システム導入前のエラー対応
これまではエラーが発生したタイミングで、都度エンジニアがエラー内容を確認し、必要に応じて調査とJiraチケット起票、改修対応を行っていました。 エラーが頻発すると、調査等の対応に追われ、メインの開発進捗が安定しない課題がありました。
導入システムの構成
Slackワークフローを起点としてDevinを起動し、
エラー内容の調査、Jiraチケットの作成、必要に応じた改修までを一連の流れで行います。
エラー通知
バックエンドサーバーでエラーが発生した場合、エラー通知用のSlackチャンネルにエラーメッセージが通知されるようになっています。
※細かい通知の仕組みは割愛しますSlack × Devin連携
SlackとDevinを連携することにより、Slackから@Devinメンションをつけてメッセージを送信することでDevinに指示を出すことができます。
参考:https://docs.devinenterprise.com/ja/integrations/slackSlackワークフローによるDevin起動
エラー通知が来たタイミングで自動的にDevinを起動することも可能ですが、外部システム障害に伴うエラーや、調査済みで未対応のエラーなど、調査する必要がないケースでもDevinが起動してしまうと、不要なコストが発生してしまいます。
そのため、エンジニアが「このエラーは調査する」と判断した場合のみDevinを起動できるよう、エラー通知のメッセージに虫眼鏡スタンプを押すことをトリガとして、Devinへ指示を出すSlackワークフローを作成しました。Atlassian MCPによるタスク管理
DevinのMCP marketplaceからAtlassian MCPをインストールしておきます。Use MCPボタンからDevinの指示に従って操作することで、Atlassianへの認証を行うことができます。
今回はAtlassian MCPを使用し、以下のような流れで指示を出しました。- まずエラーの原因調査を行う
- コードの修正が必要な場合のみ、既存のJiraチケットを参照する
- 同一内容のチケットが作成済みであれば、そこで処理を終了する
- チケットが存在しない場合は、新規にチケットを作成し、修正内容を記載する
Devinにそのままコード修正を任せることも可能ですが、Atlassian MCPを使用することで以下のメリットがあります。
- チケット内容を事前に確認することで、Devinがコード修正を行う前に方向性のレビューができる
- Jiraチケットで管理することで、エラーの改修状況を把握し、後々のタスク分析も可能となる
- 新しく入社したメンバー(作成済みのチケットを把握していない人)でも、スムーズにエラー対応を進められる
DevinのJira Integrationによるコード修正
Atlassian MCPとは別に、Jira Integrationという機能があります。 Atlassian MCPがJiraチケットの作成・参照を担うのに対し、Jira Integrationは、チケット内容をもとにDevinへコード修正を指示するための仕組みです。
Jiraチケットにdevinというタグを付与することで、Devinがより具体的な実行計画を作成し、チケットのコメントに投稿します。 内容に問題がなければ、コメントのClick hereリンクからワンクリックでコード修正の指示を出すことができます。
今回はAtlassian MCPでJiraチケットを作成する際、devinタグを付与した状態で作成するように指示することで、Jira Integrationを利用し、改修までスムーズにDevinに任せることができます。
参考:https://docs.devin.ai/integrations/jira
工夫した点
Slackワークフローのリポジトリ選択
実際のエラー対応では、必ずしも単一のリポジトリだけを調査すれば良いとは限りません。 チームのバックエンドリポジトリを調査するケースが多いですが、他サービスのAPIを呼んでいる箇所や、フロント起因の可能性など、複数リポジトリで調査を進めた方が良い場合があります。 こうしたケースに対応するため、ワークフロー起動時に調査するリポジトリを選択できる形式としました。
Jiraチケット参照時の条件指定
エラー対応を自動化する上では、Devinが不要な情報に引っ張られないようにすることも重要です。
調査済みのエラーかどうかを確認する際、取得するチケットを少なくすることで、処理を早くするとともに、より正確にDevinが判断できるようになります。
今回は以下条件を指定してチケットの参照、作成を行うようプロンプトを作成しました。
- スペース:
自分のチームのスペース - チケット種別:
バグ - ステータス:
To Do
専用のタグやスプリントを用意するのも良いと思います。
最後に
今回はDevin × Atlassian MCPを活用し、エラー調査から改修までの対応を半自動化するフローについて紹介しました。 エラー対応の初動を自動化し、人は判断やレビューに集中できる点が、この仕組みの大きなメリットだと感じています。 AIを活用したエラー対応を検討している方の参考になれば幸いです。
TalentXでは一緒に働く仲間を募集しております。カジュアル面談も行っていますので気になる方はぜひご応募いただければ幸いです。 i-myrefer.jp