プロジェクトの経緯を把握して開発者を支援するGitLab Duo
そこで必要になるのがGitLabのAI「GitLab Duo」だ。先述したように、GitLabはソフトウェア開発に必要な全ての機能が1つのプラットフォームに統合されている。このアプローチにより、開発プロセス全体のデータが一元管理され、AIに対して一貫性のあるコンテクストを提供することが可能となる。その結果、GitLab Duoは開発者に対して、包括的な支援を効率的に行うことができる。例えばプロンプトベースのコード生成以外にも、イシューの議論を要約、テストコードをもとに仕様書を(リバースで)作成するといったことができる。

通常のクラウド環境だけではなく、オンプレミス環境でも利用可能だ。例えばローカルに閉じたLLMを使う、あるいは閉じたプライベート環境で使えるのも独自の強みとなる。
一般的に単独で使うAIは「スポットで入る助っ人」のような存在だ。優秀だが、与えられる情報が限られていれば、分かることも限られる。一方、GitLab Duoは開発全体のコンテクストを共有しているので、全て知っているチームメンバーのような存在だ。佐々木氏は「同じ釜の飯を食い、同じバンで北海道を旅行した仲間のように」と言う。
例えば、イシューでの議論を踏まえた上で最適なソースコードを提案したり、継続的インテグレーション(CI)での失敗時には、CIのログだけでなく、プラットフォーム上のあらゆる情報を参照した上で失敗の原因分析をしたり、脆弱性が検出された際には、既存のコードのどこに修正を加えたらよいかを提案したりといったように、開発フェーズ毎の断片的なサポートではなく、方活的なサポートが得られる。こうしたことは、1つのプラットフォームに集約されたデータを基に、一貫したコンテクストをAIが理解しているからこそ可能となる。
佐々木氏は次のようなデモを披露した。まずはCIで失敗したケース。新たなロジックを組み込んだら、CIでうまくいかなくなることがある。そういう時、CIに詳しいメンバーを呼び「どこが悪いか見てくれる?」と相談する。人間だと休暇中や離席中ですぐに聞けないこともあるが、AI(GitLab Duo)なら属人化せずにいつでも質問できる。
GitLab Duoで「CIで失敗した理由を教えてください」と依頼すると、過去のCIのログやソースコード変更履歴も参照し、根本原因を探し当てる。例えば「正常終了を期待したケースで、例外が発生しています。このstaticなmethodに、こういうexceptionハンドリングを加えてください」と対処方法まで提案してくれる。
ポイントは、提案したmethod名やソースコードが、ログにはないものということだ。AIがCIのログしか見ない場合、ソースコードでどのような関数や引数を使っているかは知ることができない。これまで通り、例えばChatGPTのプロンプトにCIのログだけコピペして原因分析を求めても、コンテクストを共有していないためこうした修正案を出すことはできないはずだ。一方GitLab Duoは、このCIがどのようなソースコードのコミットからキックされたかを把握できる。そのため文脈に応じた修正案を示すことができる。
佐々木氏は「こうした効果がいろんなところにまぶされています。AIが全てのコンテクストを知り尽くしている仲間のように活躍できます」と強調する。
あらためてAIがチームメンバーの一員として活躍することで得られる効果を振り返ってみよう。繰り返し述べているようにコンテクストを踏まえたコーディング、脆弱性の自動的な検出・修正提案、CI/CDの失敗分析などトラブルシューティングのような開発支援がある。他にも、これまでの議論の要約をAIがやることで、新人や新規メンバーがスムーズにチームの仲間入りすることができる。プロジェクトに途中から入るメンバーにとって、プロジェクトのコンテクストをキャッチアップするために延々と続くイシューを読むのは大変だ。だから、AIが要約してくれることは時間の短縮にも繋がる。
最後に佐々木氏は次のように述べた。「ぜひAIをチームの一員として招いてみてください。GitLabは開発者がより創造的な作業に集中できるような環境を作れるようにとGitLab Duoを提供しています。それから普段のチームメンバーと一緒に北海道などに旅行してみてください。本当に身の上話しかすることがないので、互いの人生のコンテクストを共有できて、とても強いチームになると思います!」
3月26日開催!GitLabを90分で学ぶウェビナー
GitLabでは誰でも無料でお使いいただける、Community Editionを提供しております。このウェビナーではその機能を90分で解説いたします!
是非ご参加ください!