GitLab Duo Chat(エージェント)
- プラン: Premium、Ultimate
- アドオン: GitLab Duo Core、Pro、またはEnterprise
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
- ステータス: ベータ
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
GitLab Duo Chat(エージェント)は、GitLab Duo Chat(クラシック)の拡張バージョンです。この新しいChatは、複雑な質問に対しより包括的に回答できるよう、ユーザーに代わって自律的にアクションを実行できます。
クラシックモードのChatが単一のコンテキストに基づいて質問に回答するのに対し、エージェントモードのChatは、GitLabプロジェクト全体の複数のソースから情報を検索、取得、統合することで、より徹底的で関連性の高い回答を提供します。エージェントモードのChatでは、ファイルの作成や編集も可能です。
「エージェントモード」とは、Chatが以下を行うことを意味します:
- 大規模言語モデルを使用して必要な情報を自律的に判断します。
- 一連の操作を実行して、その情報を収集します。
- 質問への回答を作成します。
- ローカルファイルを作成および変更できます。
コードベースの理解や実装計画の作成など、より大きな問題については、Duo Agent Platformのソフトウェア開発フローを使用してください。
概要については、GitLab Duo Chat(エージェント)を参照してください。
GitLab Duo Chatを使用する
GitLab Duo Chatは、以下で使用できます:
- GitLab UI。
- VS Code。
- JetBrains IDE。
- Visual Studio for Windows。
GitLab UIでGitLab Duo Chatを使用する
前提要件:
- 前提条件を満たしていることを確認してください。
GitLab UIでChatを使用するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- 右上隅で、GitLab Duo Chatを開く( )を選択します。画面の右側にドロワーが開きます。
- チャットテキストボックスの下で、**Agentic mode (Beta)**の切り替えをオンにします。
- チャットテキストボックスに質問を入力し、Enterキーを押すか、送信を選択します。回答を得るまでに数秒かかる場合があります。
- オプション。フォローアップの質問をします。
Webページをリロードしたり別のWebページに移動したりしても、Chatは最新の会話を記憶し、その会話はChatドロワーでアクティブなままです。
VS CodeでGitLab Duo Chatを使用する
前提要件:
- バージョン6.15.1以降のVS Code用GitLab Workflow拡張機能をインストールして設定します。
- その他の前提条件を満たしていることを確認してください。
GitLab Duo Chatをオンにする:
- VS Codeで、Settings > Settingsに移動します。
agent platformを検索します。- Gitlab › Duo Agent Platform: Enabledで、Enable GitLab Duo Agent Platformチェックボックスを選択します。
その後、GitLab Duo Chatを使用するには:
- 左側のサイドバーで、GitLab Duo Agent Platform (Beta)( )を選択します。
- Chatタブを選択します。
- プロンプトが表示されたら、Refresh pageを選択します。
- メッセージボックスに質問を入力し、Enterキーを押すか、送信を選択します。
JetBrains IDEでGitLab Duo Chatを使用する
前提要件:
- バージョン3.11.1以降のJetBrains用GitLabプラグインをインストールして設定します。
- その他の前提条件を満たしていることを確認してください。
GitLab Duo Chatをオンにする:
- JetBrains IDEで、Settings > Tools > GitLab Duoに移動します。
- **GitLab Duo Agent Platform (Beta)**で、Enable GitLab Duo Agent Platformチェックボックスを選択します。
- プロンプトが表示されたら、IDEを再起動します。
その後、GitLab Duo Chatを使用するには:
- 左側のサイドバーで、GitLab Duo Agent Platform (Beta)( )を選択します。
- Chatタブを選択します。
- メッセージボックスに質問を入力し、Enterキーを押すか、送信を選択します。
Visual StudioでGitLab Duo Chatを使用する
前提要件:
- バージョン0.60.0以降のVisual Studio用GitLab拡張機能をインストールして設定します。
- その他の前提条件を満たしていることを確認してください。
GitLab Duo Chatをオンにする:
- Visual Studioで、Tools > Options > GitLabに移動します。
- GitLabで、Generalを選択します。
- Enable Agentic Duo Chat (experimental)でTrueを選択し、OKを選択します。
その後、GitLab Duo Chatを使用するには:
- Extensions > GitLab > Open Agentic Chatを選択します。
- メッセージボックスに質問を入力し、Enterキーを押します。
チャット履歴を表示する
チャット履歴を表示するには:
- GitLab UIの場合: Chatドロワーの右上隅で、Chat履歴( )を選択します。
- IDEの場合: メッセージボックスの右上隅で、Chat history( )を選択します。
GitLab UIでは、チャット履歴内のすべての会話が表示されます。
IDEでは、最新の20件の会話が表示されます。イシュー1308では、この仕様の変更が提案されています。
複数の会話を行う
GitLab Duo Chatと無制限の数の同時会話を行うことができます。
会話は、GitLab UIのGitLab Duo ChatとIDE間で同期されます。
GitLab UIまたはIDEでGitLab Duo Chatを開きます。
質問を入力し、Enterキーを押すか、送信を選択します。
新しい会話を作成します:
- GitLab UIの場合: ドロワーの右上隅で、あたらしいチャット( )を選択します。
- IDEの場合: メッセージボックスの右上隅で、New chat( )を選択します。
質問を入力し、Enterキーを押すか、送信を選択します。
すべての会話を表示するには、チャット履歴を確認します。
会話を切り替えるには、チャット履歴で適切な会話を選択します。
IDEのみ: チャット履歴内の特定の会話を検索するには、Search chatsテキストボックスに検索語句を入力します。
LLMコンテキストウィンドウの制限により、会話はそれぞれ200,000トークン(約800,000文字)に切り詰められます。
会話を削除する
- GitLab UIまたはIDEで、チャット履歴を選択します。
- 履歴で、Delete this chat( )を選択します。
個々の会話は、30日間の非アクティブ状態後に有効期限が切れ、自動的に削除されます。
カスタムルールを作成する
IDEで、すべての会話でGitLab Duo Chatに従わせたい特定の指示がある場合は、カスタムルールを作成できます。
前提要件:
- VS Codeの場合は、バージョン6.32.2以降のVS Code用GitLab Workflow拡張機能をインストールして設定します。
- JetBrains IDEの場合は、バージョン3.12.2以降のJetBrains用GitLabプラグインをインストールして設定します。
- Visual Studioの場合は、バージョン0.60.0以降のVisual Studio用GitLab拡張機能をインストールして設定します。
カスタムルールを作成する前に存在していた会話は、これらのルールに従いません。
IDEワークスペースで、カスタムルールファイルを作成します:
.gitlab/duo/chat-rules.md。カスタムルールをファイルに入力します。例:
- don't put comments in the generated code - be brief in your explanations - always use single quotes for JavaScript stringsファイルを保存します。
GitLab Duo Chatに新しいカスタムルールに従わせるには、新しい会話を開始します。
カスタムルールを変更するたびに、これを行う必要があります。
詳細については、Custom rules in GitLab Duo Agentic Chatのブログを参照してください。
モデルを選択する
- 提供形態: GitLab.com
- ステータス: ベータ
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
GitLab UIでChatを使用する場合、会話に使用するモデルを選択できます。チャット履歴から以前のチャットを開いて会話を続ける場合、Chatは現在選択されているモデルを使用します。
IDEでのモデル選択はサポートされていません。
前提要件:
- トップレベルグループのオーナーによってGitLab Duo Agent Platform機能のモデルが選択されていないこと。グループに対してモデルが選択されている場合、Chatのモデルを変更することはできません。
モデルを選択するには:
- チャットテキストボックスの下で、**Agentic mode (Beta)**の切り替えをオンにします。
- ドロップダウンリストからモデルを選択します。
エージェントを選択する
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
- ステータス: 実験的機能
GitLab UIのプロジェクトでChatを使用する場合、Chatが使用する特定のエージェントを選択できます。
前提要件:
- AIカタログからプロジェクトにエージェントを追加する必要があります。
エージェントを選択するには:
- GitLab UIで、GitLab Duo Chatを開きます。
- ドロワーの右上隅で、新しいチャットを選択します。
- ドロップダウンリストで、カスタムエージェントを選択します。カスタムエージェントを設定していない場合、ドロップダウンリストはなく、ChatはデフォルトのGitLab Duoエージェントを使用します。
- 質問を入力し、Enterキーを押すか、送信を選択します。
カスタムエージェントとの会話を作成した後:
- 会話は、選択したカスタムエージェントを記憶します。
- チャット履歴を使用して同じ会話に戻ると、同じエージェントが使用されます。
GitLab Duo Chatの機能
GitLab Duo Chat(エージェント)は、GitLab Duo Chat(クラシック)を拡張し、以下の機能を追加しています:
- プロジェクト検索: キーワードベースの検索を使用して、プロジェクト内の関連するイシュー、マージリクエスト、その他のアーティファクトを検索できます。Agentic Chatには、セマンティック検索機能はありません。
- ファイルアクセス: ファイルパスを手動で指定しなくても、ローカルプロジェクト内のファイルを読み取って一覧表示できます。
- ファイルを作成および編集: 複数の場所で、複数のファイルを作成および編集できます。これはローカルファイルに影響します。
- リソース取得: 現在のプロジェクトのイシュー、マージリクエスト、パイプラインログに関する詳細情報を自動的に取得することができます。
- マルチソース分析: 複数のソースからの情報を統合して、複雑な質問に対するより完全な回答を提供できます。Model Context Protocolを使用して、GitLab Duo Chat(エージェント)を外部データソースおよびツールに接続できます。
- カスタムルール: 指定したカスタマイズされたルールに会話を従わせることができます。
- GitLab UIのGitLab Duo Chat(エージェント)のみ - コミットの作成: コミットを作成してプッシュできます。
Chat機能の比較
| 機能 | GitLab Duo Chat(クラシック) | GitLab Duo Chat(エージェント) |
|---|---|---|
| 一般的なプログラミングの質問をする | はい | はい |
| エディタで開いているファイルに関する回答を得る | はい | はい。ただし、質問内でファイルのパスを指定する必要があります。 |
| 指定されたファイルに関するコンテキストを提供する | はい。/includeを使用して会話にファイルを追加します。 | はい。ただし、質問内でファイルのパスを指定する必要があります。 |
| プロジェクトコンテンツを自律的に検索する | いいえ | はい |
| ファイルを自律的に作成および変更する | いいえ | はい。ファイルを変更するように依頼する必要があります。ただし、手動で行ったまだコミットしていない変更は上書きされる可能性があります。 |
| IDを指定せずにイシューとMRを取得する | いいえ | はい。他の条件で検索します。たとえば、MR、イシューのタイトル、担当者などです。 |
| 複数のソースからの情報を統合する | いいえ | はい |
| パイプラインログを分析する | はい。Duo Enterpriseアドオンが必要です。 | はい |
| 会話を再開する | はい。/newまたは/resetを使用します。 | はい。/newを使用するか、UIの場合は/resetを使用します。 |
| 会話を削除する | はい、チャット履歴から削除できます。 | はい、チャット履歴から削除できます。 |
| イシューとMRを作成する | いいえ | はい |
| Git読み取り専用コマンドを使用する | いいえ | はい |
| Git書き込みコマンドを使用する | いいえ | はい、UIのみ |
| Shellコマンドを実行する | いいえ | はい、IDEのみ |
| MCPツールを実行する | いいえ | はい、IDEのみ |
ユースケース
GitLab Duo Chatが特に役立つのは、次のような場合です:
- 複数のファイルまたはGitLabリソースからの情報を必要とする回答が必要な場合。
- 正確なファイルパスを指定せずに、コードベースに関する質問をしたい場合。
- プロジェクト全体のイシューまたはマージリクエストのステータスを把握しようとしている場合。
- ファイルを作成または編集してもらいたい場合。
プロンプトの例
GitLab Duo Chatは、自然言語の質問でよく機能します。次に例を示します:
Read the project structure and explain it to me、またはExplain the project。Find the API endpoints that handle user authentication in this codebase。Please explain the authorization flow for <application name>。How do I add a GraphQL mutation in this repository?Show me how error handling is implemented across our application。Component <component name> has methods for <x> and <y>. Could you split it up into two components?Could you add in-line documentation for all Java files in <directory>?Do merge request <MR URL> and merge request <MR URL> fully address this issue <issue URL>?
トラブルシューティング
GitLab Duo Chatを使用する場合、次の問題が発生する可能性があります。
接続または表示に関する問題
正しく接続され、Chatを表示できることを確認するには、トラブルシューティングを参照してください。
応答時間が遅い
Chatには、リクエストの処理時に大きなレイテンシーが発生します。
この問題は、Chatが情報を収集するために複数のAPIコールを行うために発生します。そのため、応答時間がクラシックモードのChatと比較して大幅に長くなることがよくあります。
権限の制限
Chatは、GitLab ユーザーがアクセス権限を持っているリソースと同じリソースにアクセスできます。
検索の制限
Chatは、セマンティック検索ではなく、キーワードベースの検索を使用します。つまり、検索で使用される正確なキーワードを含まない関連コンテンツをChatが見逃す可能性があります。
フィードバック
これはベータ機能です。皆様からのフィードバックが改善に役立ちます。イシュー542198で、ご意見、ご提案、または問題を共有してください。