対象はソフトウェアの開発チームです。バグ修正にAIを使いたい人に関係します。Duolingoの社内ツールなので、外部に公開された製品ではありません。ただ、土台のClaude Agent SDKは、日本の開発者も使えます(当サイトの確認:11/3)。
Duolingoでは、管理者とベータ版の利用者が、スマホを振るとバグ報告の画面を開けます。これを「Shake-to-Report(STR)」と呼びます。管理者からの報告は、自動でJira(課題管理ツール)のチケットになります。スクリーンショット、ログ、端末情報も付きます。
それでも、報告が増えるほど修正は追いつかず、バグの未対応分は膨らんでいました。
画像:Duolingo(公式発表)「バグを直して」の一言では足りなかった
DevX AIチームは、最初に「Claude、fix this bug」という短い指示を試しました。公式ブログによると、バグ修正にはコードの変更以外の作業が多くあります。
エンジニアはまず、何が起きたかをつなぎ合わせます。ログを調べ、報告者の操作を再構築します。有効だったA/Bテストを確認し、関連コードを探します。実機で再現を試し、最近の変更を調べ、実装者を探すこともあります。
「直して」と頼むことは、この全工程を説明なしにAIへ求めることでした。そこでチームは、調査の手作業をAIに任せる方針に変えました。
調査で扱う内容
「AI STR Fix」は、Claude Agent SDKで作られています。大半の作業はSonnetが担当し、難しい作業はOpusが受け持ちます。各作業には、システムプロンプト、ユーザープロンプト、スキル、作業用フォルダが渡されます。フォルダにはチケット情報と、リポジトリの写しが入っています。
途中の調査結果は、プロンプトではなくファイルとして保存します。後続のAIが、前の結果を読み込めるようにするためです。コンテキストウィンドウ(一度に読める量)を汚さずに済みます。
調べる内容は、次の6つです。
- 関連コード:どこを直すかを探す作業です。ある修正PRでは、上位3ファイルの推薦が、実際に変更された3ファイルと一致しました。
- 利用者の操作:数千件の記録から、時系列の流れを作ります。事前に機械的な絞り込みを行い、トークン(AIが文字を数える単位)の無駄を避けます。
- 関連する実験:対象外の端末向けの実験を除きます。原因が実験なら、実験を止めれば早く直せます。
- 関連する変更:先に見つけたコードを手がかりに、最近の変更だけを調べます。既に修正済みの古いチケットも見つかります。
- 再現手順:操作、コード、実験の情報から、手順を作ります。アプリのデバッグ機能を使い、早く到達できるようにします。
- 担当者の推薦:約1,000人の社員の中から、関係する領域に詳しい人を挙げます。
修正の工程も足していった
最初は、情報を集めてAIに修正を任せるだけでした。エンジニアの役割は、書くことから確認とレビューに移りました。
使ううちに、手作業が見つかり、工程が増えました。
- 自己レビュー:明らかな間違い、壊れたテスト、波及する影響を、AIが先に確認します。
- CIの修正:CIの結果を監視し、失敗を直します。
- 機能の事前調査:既存コードの作法に合うよう、実装前に機能の仕組みを調べます。
- 自動のベータ版ビルド:修正ブランチが整うと、ベータ版が自動で作られます。誰でも入れて確認できます。
公式ブログによると、AI STR Fixはリリースを止めるバグを直した実績があります。実行したSTRチケットごとに、数時間分の手作業を自動化できるとのことです。各チームは、自分たちのバグに合う調査工程を足し始めています。
画像:Duolingo(公式発表)日本の開発チームが使える部分
Claude Agent SDKを含むClaudeのAPIは、日本で使えます。料金はドル建て(税別)です(当サイトの確認:11/3)。ブログは、AI STR Fix自体の公開には触れていません。
編集部の見方では、参考になるのは、調査の手順を分けた設計です。「直して」と頼む前に、人間が毎回やる調査を書き出し、1つずつAIに渡す。その結果を、人にもAIにも読める形で残す。この進め方は、自社のバグ管理でも試せます。