OpenCode CLI を使用する

このページでは、Gemini Enterprise Agent Platform Workbench インスタンスで OpenCode コマンドライン インターフェース(CLI)を使用する方法について説明します。

このドキュメントは、Agent Platform Workbench を使用するデータ アナリスト、データ サイエンティスト、データ デベロッパーを対象としています。このドキュメントは、ノートブック環境でコードを作成する方法を理解していることを前提としています。

概要

OpenCode は、ターミナルで実行されるオープンソースの AI コーディング エージェントです。詳細については、opencode.ai をご覧ください。

管理者が有効にすると、Agent Platform Workbench インスタンスの JupyterLab インターフェースのターミナルで OpenCode CLI を使用できます。自然言語で指示を与えることで、インスタンス上のノートブックやファイルを操作したり、シェルコマンドや Cloud de Confiance by S3NS コマンドを実行したりできます。

制限事項

Agent Platform Workbench で OpenCode CLI を使用する場合は、次の制限事項を考慮してください。

  • OpenCode は CLI のみです。グラフィカルなチャット インターフェースと高度なエディタ内ツールは含まれていません。

  • OpenCode にノートブックの変更をリクエストすると、OpenCode はインスタンスのディスク上でノートブック ファイルを直接変更します。このため、ノートブック エディタの [元に戻す] ボタンまたは Control+Z(macOS の場合は Command+Z)を使用して、OpenCode で行われた編集を元に戻すことはできません。ただし、Undo your last change などの自然言語コマンドを使用して、OpenCode に変更を元に戻すようにリクエストできます。

  • OpenCode はディスクに直接書き込むため、JupyterLab で開いているファイルが変更される可能性があります。ノートブックに保存されていない変更がある場合は、OpenCode に同じノートブックの変更を依頼する前に保存してください。

  • OpenCode は、インスタンスでアクティブな認証情報を使用して実行されます。デフォルトでは、これらは Agent Platform Workbench インスタンスのサービス アカウントの認証情報であるため、OpenCode はインスタンスがアクセスできるリソースにアクセスできます。インスタンスで別の ID を認証すると(gcloud auth login または gcloud auth application-default login を実行するなど)、OpenCode はその ID の権限を使用します。

始める前に

  1. In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Cloud de Confiance project.

  3. Enable the Compute Engine, Notebooks, and Agent Platform APIs, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

必要なロール

Agent Platform Workbench で OpenCode CLI を使用するには、Agent Platform Workbench インスタンスのユーザーとインスタンスのサービス アカウントに権限を付与する必要があります。

インスタンスのユーザーに権限を付与する

Agent Platform Workbench インスタンスで OpenCode CLI を使用するために必要な権限を取得するには、プロジェクトに対する Agent Platform ユーザー(roles/aiplatform.user)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

インスタンスのサービス アカウントに権限を付与する

Agent Platform Workbench インスタンスのサービス アカウントに、Agent Platform Workbench インスタンスで OpenCode CLI を実行するために必要な権限が付与されていることを確認するには、プロジェクトの Agent Platform Workbench インスタンスのサービス アカウントに Agent Platform ユーザー(roles/aiplatform.user)IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

この事前定義ロールには、Agent Platform Workbench インスタンスで OpenCode CLI を実行するために必要な aiplatform.endpoints.predict 権限が含まれています。

管理者は、カスタムロールや他の事前定義ロールを使用して、この権限を Agent Platform Workbench インスタンスのサービス アカウントに付与することもできます。

OpenCode CLI を有効にする

OpenCode CLI は、Debian 12(workbench-instances-2603)イメージを使用する Agent Platform Workbench インスタンスでのみ使用できます。Debian 11(workbench-instances)イメージを使用するインスタンスにはインストールされません。

OpenCode CLI は、サポートされているインスタンスでデフォルトで有効になっています。無効にするには、enable-opencode インスタンス メタデータキーを false に設定します。詳細については、メタデータを使用して機能を管理するをご覧ください。

OpenCode CLI を使用する

  1. Cloud de Confiance コンソールで [インスタンス] ページに移動します。

    [インスタンス] に移動

  2. Agent Platform Workbench インスタンス名の横にある [JupyterLab を開く] をクリックします。

  3. JupyterLab で、[File] > [New launcher] をクリックします。

  4. [ランチャー] タブの [その他] セクションで、[OpenCode] タイルをクリックします。

    ターミナルが開き、OpenCode CLI が起動します。

  5. 「'test-notebook' という名前の新しいノートブックを作成して」などのプロンプトを入力します。

  6. OpenCode がファイルの編集やシェルコマンドの実行などのアクションを提案した場合は、確認して承認または拒否します。詳細については、ツールのアクションを承認するをご覧ください。

ツールのアクションを承認する

デフォルトでは、Agent Platform Workbench の OpenCode は、ファイルの編集、シェルコマンドの実行、URL の取得などの操作を行う前に、ユーザーの承認を求めます。提案された各アクションを確認してから承認します。

このデフォルト設定により、プロンプト インジェクションから保護されます。OpenCode が読み取るノートブック、スクリプト、ウェブページには、意図しないコマンド(外部アドレスへのデータの送信など)をエージェントに実行させようとする隠された指示が含まれている可能性があります。OpenCode はインスタンスの認証情報で実行されるため、承認を必須にすることで、実行前にそのようなアクションを確認して停止できます。

サードパーティ モデルを使用する

デフォルトでは、Agent Platform Workbench の OpenCode は、プロジェクトの Gemini Enterprise Agent Platform を介して提供される Gemini モデルと Claude モデルのみを使用するように構成されています。これらのリクエストは、プロジェクト独自の Gemini Enterprise Agent Platform に対してインスタンスの認証情報を使用して認証されるため、Cloud de Confiance by S3NS プロジェクト内に留まり、プロジェクトに適用されるセキュリティ管理の対象となります。

OpenCode は、リクエストがプロジェクト外に送信されるモデル プロバイダもサポートしています。これには、Google AI Studio(Gemini Developer API)が含まれます。これは、Gemini モデルを提供しているものの、プロジェクトの認証情報ではなく、個人の API キーで認証する別のサービスです。また、OpenAI や Anthropic の直接 API などの Google 以外のプロバイダも含まれます。これらはすべてデフォルトでオフになっています。独自の OpenCode 構成を編集してプロバイダの API キーを指定することで、いずれかを有効にできます。

OpenCode CLI へのアクセスを制御する

OpenCode へのアクセスは、OpenCode ランチャーが表示されるかどうかと、基盤となるモデルを呼び出せるかどうかの 2 つの独立したコントロールによって管理されます。これらは別々に設定します。ランチャーを非表示にしてもモデルはブロックされず、モデルを制限してもランチャーは削除されません。組織のポリシーに合わせて両方を設定してください。

OpenCode ランチャーを表示するかどうかを制御する

インスタンスで OpenCode を提供するかどうかを制御するには、enable-opencode インスタンス メタデータキーを使用します。OpenCode はデフォルトでオンになっています。管理者がキーを false に設定して非表示にしない限り、OpenCode タイルが JupyterLab ランチャーに表示されます。

この設定は、ランチャーを表示するかどうかのみを制御します。これ自体はモデルへのアクセスをブロックしません。インスタンスの環境にアクセスできるユーザー(ターミナル経由など)は、引き続き OpenCode を起動し、認証情報で使用が許可されているモデルを呼び出すことができます。OpenCode の機能を制限するには、次のセクションで説明するように、モデルへのアクセスを制御します。

モデルへのアクセスを制御する

OpenCode は、インスタンスの認証情報(Gemini CLI が使用する Gemini Enterprise Agent Platform 認証と同じ)を使用して、Gemini Enterprise Agent Platform を介してモデルを呼び出します。ユーザーは、デフォルトの Gemini モデルと Claude モデルを使用するために API キーを入力しません。リクエストは、インスタンスの ID がモデルの呼び出しを許可され、プロジェクトがモデルにアクセスできる場合にのみ成功します。このコントロールは、OpenCode がレスポンスを生成できるかどうかを決定します。OpenCode の起動方法に関係なく適用されます。

モデルへのアクセスを管理するには、Gemini Enterprise Agent Platform クライアントに適用されるものと同じコントロールを使用します。

  • 組織、フォルダ、プロジェクト レベルで特定のモデルを許可または制限するには、組織のポリシーを設定します。Model Garden モデルへのアクセスを制御するをご覧ください。

  • ID が推論にモデル エンドポイントを使用できないようにするには、aiplatform.endpoints.predict 権限を付与しないでください。

  • プロジェクト外のプロバイダのモデル(Anthropic の直接 API など)では、ユーザーが独自の OpenCode 構成でそのプロバイダの API キーを指定する必要があります。これらのモデルはデフォルトでオフになっています。詳細については、サードパーティ モデルを使用するをご覧ください。

次のステップ