GitLab Duoエージェントプラットフォームの問題のトラブルシューティング
- プラン: Premium、Ultimate
- アドオン: GitLab Duo Core、Pro、またはEnterprise。
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
- ステータス: ベータ
統合開発環境(IDE)でGitLab Duoエージェントプラットフォームを使用している場合、次の問題が発生することがあります。
一般的なガイダンス
まず、GitLab Duoがオンになっていること、および適切に接続されていることを確認します。
- 前提条件を満たしていることを確認してください。
- 作業するブランチがチェックアウトされていることを確認します。
- IDEで必要な設定がオンになっていることを確認します。
- 管理者モードが無効になっていることを確認してください。
ネットワークの問題
ファイアウォールを使用するなどして、ネットワークがエージェントプラットフォームへの接続をブロックしている可能性があります。デフォルトでは、エージェントプラットフォームはgRPC(Google Remote Procedureコール)接続を使用します。ネットワークは、gRPCが機能するために、HTTP/2トラフィックをサービスに通過させる必要があります。
gRPCは、IDEでWebSocket接続に変更できます。
gRPCを使用してエージェントプラットフォーム・サービスに接続できることを確認するには:
- Google ChromeまたはFirefoxで、開発者ツールを開き、ネットワークタブを選択します。
- 列ヘッダーを右クリックして、Protocol(プロトコル)列を表示します。
- アドレスバーに、
https://duo-workflow-svc.runway.gitlab.net/DuoWorkflow/ExecuteWorkflowと入力します。 - リクエストが成功し、Protocol(プロトコル)列にChromeでは
h2、FirefoxではHTTP/2が含まれていることを確認します。
リクエストが失敗した場合、またはHTTP/2プロトコルが表示されない場合:
- NetskopeやZscalerなどのセキュリティシステムが、トラフィックをブロックまたは検査するように設定されている可能性があります。
- HTTP/2プロトコルがHTTP/1.1にダウングレードされると、エージェントプラットフォームが正常に動作しなくなります。
この問題を修正するには、ネットワーク管理者にhttps://duo-workflow-svc.runway.gitlab.net/DuoWorkflow/ExecuteWorkflowを正しい許可リストに登録するか、トラフィック検査から除外するように依頼してください。
gRPCの代わりにWebSocket接続を使用する
ネットワークの状況でgRPC接続が許可されない場合、VS CodeとJetBrains IDEでは、WebSocketが代替手段となります:
VS Codeの場合:
- File > Preferences > Settingsを選択します。
- GitLab: GitLab Duo Agent Platform: Connection Type設定を検索し、
WebSocketを選択します。
JetBrainsの場合:
- 上部のバーで、メインメニューを選択し、設定を選択します。
- 左側のサイドバーで、ツール > GitLab Duoを選択します。
- GitLab Duo Agent Platform > Connection Type(接続の種類)セクションで、
WebSocketを選択します。
VS Codeでデバッグログを表示する
VS Codeでは、デバッグログを表示して、いくつかの問題をトラブルシューティングできます。
- ローカルデバッグログを開きます:
- macOSの場合: Command+,
- WindowsおよびLinuxの場合: Control+,
- GitLab: Debug設定を検索して有効にします。
- 言語サーバーログを開きます:
- VS Codeで、表示 > Output(出力)を選択します。
- 下部の出力パネルの右上隅で、リストからGitLab WorkflowまたはGitLab Language Server(GitLab言語サーバー)を選択します。
- エラー、警告、接続の問題、または認証の問題がないか確認します。
VS Codeの設定
いくつかの方法を試して、GitリポジトリがVS Codeで適切に設定され、接続されていることを確認できます。
VS Code用GitLab Workflow拡張機能でプロジェクトを表示する
まず、VS CodeのVS Code用GitLab Workflow拡張機能で正しいプロジェクトが選択されていることを確認します。
- VS Codeの左側のサイドバーで、GitLab Workflow( )を選択します。
- プロジェクトがリストされ、選択されていることを確認します。
プロジェクト名の横にエラーメッセージが表示された場合は、それを選択して、更新する必要があるものを表示します。
たとえば、複数のリポジトリがあり、1つを選択する必要がある場合や、リポジトリがまったくない場合があります。
Gitリポジトリがない
ワークスペースに初期化されたGitリポジトリがない場合は、新しいリポジトリを作成する必要があります:
- 左側のサイドバーで、Source Control(ソース管理)( )を選択します。
- Initialize Repository(リポジトリの初期化)を選択します。
リポジトリが初期化されると、Source Control(ソース管理)ビューに名前が表示されます。
GitLabリモートがないGitリポジトリ
Gitリポジトリがあっても、GitLabに適切に接続されていない可能性があります。
- 左側のサイドバーで、Source Control(ソース管理)( )を選択します。
- Source Control(ソース管理)ラベルで右クリックし、リポジトリを選択します。
- リポジトリの横にある省略記号( )を選択し、次にリモート > Add Remote(リモートの追加)を選択します。
- GitLabプロジェクトのURLを入力します。
- 新しく追加されたリモートをアップストリームとして選択します。
複数のGitLabリモート
リポジトリに複数のGitLabリモートが設定されている可能性があります。正しいものを選択するには:
- 左側のサイドバーで、Source Control(ソース管理)( )を選択します。
- ステータスバーで、現在のリモート名を選択します。
- リストから、適切なGitLabリモートを選択します。
- 選択したリモートがGitLabのグループネームスペースに属していることを確認します。
複数のGitLabプロジェクト
VS Codeワークスペースに複数のGitLabプロジェクトが含まれている場合は、使用していないすべてのプロジェクトを閉じるとよいでしょう。
プロジェクトを閉じるには:
- 左側のサイドバーで、Source Control(ソース管理)( )を選択します。
- リポジトリが表示されていることを確認します: Source Control(ソース管理)ラベルで右クリックし、リポジトリを選択します。
- 閉じたいリポジトリを右クリックし、Close Repository(リポジトリを閉じる)を選択します。
グループネームスペースにないプロジェクト
GitLab Duo Agent Platformでは、プロジェクトがグループネームスペースに属している必要があります。
プロジェクトがあるネームスペースを特定するには、URLを確認してください。
必要に応じて、プロジェクトをグループネームスペースに転送することができます。
UIにフローが表示されない
フローを実行しようとしているのに、GitLab UIに表示されない場合:
- プロジェクトで少なくともデベロッパーのロールを持っていることを確認します。
- GitLab Duoがオンになっており、フローの実行が許可されていることを確認します。
- 必要な機能フラグである
duo_workflowとduo_workflow_in_ciが有効になっていることを確認します。
IDEコマンドが失敗するか、無期限に実行される
IDEでGitLab Duoチャット(エージェント型)またはソフトウェア開発フローを使用している場合、GitLab Duoがループ状態になったり、コマンドの実行が困難になったりすることがあります。
この問題は、Oh My ZSH!またはpowerlevel10kのようなシェルテーマやインテグレーションを使用している場合に発生することがあります。GitLab Duoエージェントがターミナルを起動すると、テーマまたはインテグレーションによってコマンドが正常に実行されないことがあります。
回避策として、エージェントから送信されたコマンドには、よりシンプルなテーマを使用します。イシュー2070は、この動作の改善を追跡するため、この回避策は不要になりました。
.zshrcファイルを編集する
VS CodeとJetBrains IDEでは、エージェントから送信されたコマンドを実行するときに、よりシンプルなテーマを使用するようにOh My ZSH!またはpowerlevel10kを設定します。IDEによって公開された環境変数を使用して、これらの値を設定できます。
このコードを含めるように~/.zshrcファイルを編集します:
# ~/.zshrc
# Path to your oh-my-zsh installation
export ZSH="$HOME/.oh-my-zsh"
# ...
# Decide whether to load a full terminal environment,
# or keep it minimal for agentic AI in IDEs
if [[ "$TERM_PROGRAM" == "vscode" || "$TERMINAL_EMULATOR" == "JetBrains-JediTerm" ]]; then
echo "IDE agentic environment detected, not loading full shell integrations"
else
# Oh My ZSH
source $ZSH/oh-my-zsh.sh
# Theme: Powerlevel10k
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
# Other integrations like syntax highlighting
fi
# Other setup, like PATH variablesBashシェルを編集する
VS CodeまたはJetBrains IDEでは、Bashの詳細プロンプトをオフにして、エージェントがそれらを初期化しないようにすることができます。このコードを含めるように~/.bashrcまたは~/.bash_profileファイルを編集します:
# ~/.bashrc or ~/.bash_profile
# Decide whether to load a full terminal environment,
# or keep it minimal for Agentic AI in IDEs
if [[ "$TERM_PROGRAM" == "vscode" || "$TERMINAL_EMULATOR" == "JetBrains-JediTerm" ]]; then
echo "IDE agentic environment detected, not loading full shell integrations"
# Keep only essential settings for agents
export PS1='\$ ' # Minimal prompt
else
# Load full Bash environment
# Custom prompt (e.g., Starship, custom PS1)
if command -v starship &> /dev/null; then
eval "$(starship init bash)"
else
# ... Add your own PS1 variable
fi
# Load additional integrations
fi
# Always load essential environment variables and aliasesまだ問題がありますか?
支援が必要な場合は、GitLab管理者にお問い合わせください。