コーディング エージェントとの統合

Azure Databricksコーディング エージェントの統合により、Cursor、Gemini CLI、Codex CLI などのコーディング エージェントからのトラフィックを、Unity AI Gateway のモデル サービスを介してルーティングできます。 これにより、レート制限、使用状況の追跡、推論のテーブルが提供され、すべてのコントロールがモデル サービス、ユーザー、またはグループ レベルで構成されます。

Features

  • アクセス: 1 つの請求書の下にあるさまざまなコーディング ツールとモデルに直接アクセスできます。
  • 可観測性: すべてのコーディング ツールの使用状況、支出、メトリックを追跡するための 1 つの統合ダッシュボード。
  • 統合ガバナンス: 管理者は、モデル サービス、ユーザー、またはグループ レベルで Unity AI Gateway を使用してモデルのアクセス許可とレート制限を管理できます。

Requirements

セットアップ

最も速く開始する方法は、ucode(1 つのコマンドで Unity AI Gateway を使用してサポートされているコーディング エージェントをインストール、認証、構成するAzure Databricksの CLI) を使用することです。

ucode (Unity AI Gateway のコーディング CLI) は、Unity AI Gateway に対してコーディング エージェントを実行するための単一のエントリ ポイントです。 OAuth を処理し、各エージェントの構成ファイルを書き込み、登録したすべての LLM または MCP サーバーを介してトラフィックをルーティングします。 サポートされているエージェント:

すべてのサポートされているコーディングエージェントを見るには、 ucode --helpを実行します。

手順 1: ucode をインストールする

uv tool install git+https://github.com/databricks/ucode

Python 3.12 以降と uv が必要です。

手順 2: コーディング エージェントを開く

目的のエージェントを実行します。 最初の起動時に、ucode は、Azure Databricks ワークスペースの URL の入力を求め、エージェントの構成ファイルを自動的に認証して書き込みます。 以降の起動は、エージェントに直接移動します。

ucode codex      # OpenAI Codex
ucode gemini     # Gemini CLI
ucode opencode   # OpenCode
ucode copilot    # GitHub Copilot CLI
ucode pi         # Pi

ucode は、エージェント名の後のフラグを基になるツールに渡します。次に例を示します。

ucode codex --full-auto

複数のコーディング エージェントを同時に構成するには、次のコマンドを実行します。

ucode configure

Azure Databricks MCP サーバー (Unity カタログ関数、AI 検索、SQL ウェアハウス、検出された外部接続) を MCP 対応エージェントに登録するには:

ucode configure mcp

過去 7 日間の Unity AI Gateway の使用状況の概要を表示するには:

ucode usage

完全なコマンド リファレンスについては、次を実行します。

ucode --help

Dashboard

Unity AI Gateway を使用してコーディング エージェントの使用状況を追跡した後は、組み込みのダッシュボードでメトリックを表示および監視できます。

ダッシュボードを開くには、Unity AI Gateway ページの右上にある [ 管理 ] をクリックし、[ 使用状況ダッシュボード] をクリックします。 組み込みの使用状況ダッシュボードには、[ コーディング エージェント ] タブと、コーディング ツールの使用に関するグラフが含まれています。

コーディング エージェント ダッシュボード

手動セットアップ

エージェントを自分で構成する場合は、次の手順に従います。

カーソル IDE

Unity AI Gateway でモデル サービスを使用するように Cursor を構成するには:

手順 1: ベース URL と API キーを構成する

  1. カーソルを開き、 設定>Cursor 設定>Models>API キーに移動します。

  2. OpenAI ベース URL のオーバーライドを有効にし、URL を入力します。

    https://<workspace-url>/ai-gateway/cursor/v1
    

    <workspace-url>をAzure Databricksワークスペースの URL に置き換えます。

  3. Azure Databricks の個人用アクセス トークンを OpenAI API キー フィールドに貼り付けます。

手順 2: カスタム モデルを追加する

  1. [カーソル設定] で [ + カスタム モデルの追加] をクリックします。
  2. モデル サービス名 (たとえば、 system.ai.claude-opus-4-6) を追加し、トグルを有効にします。

メモ

現時点では、Azure Databricks提供されるモデル サービスのみがサポートされています。

手順 3: 統合をテストする

  1. Cmd+L (macOS) または Ctrl+L (Windows/Linux) で Ask モードを開き、モデルを選択します。
  2. メッセージを送信します。 すべての要求が Azure Databricks 経由でルーティングされるようになりました。

Codex コマンドラインインターフェース

手順 1: Codex CLI をインストールまたは更新する

Codex CLI バージョン 0.118 以降をインストールまたは更新します。

npm install -g @openai/codex@latest

手順 2: Codex 構成ファイルを作成または更新する

~/.codex/config.tomlで Codex 構成ファイルを作成または編集します。

profile = "default"

[profiles.default]
model_provider = "Databricks"

[model_providers.Databricks]
name = "Databricks :re[ai-gateway]"
base_url = "<workspace-url>/ai-gateway/codex/v1"
wire_api = "responses"

[model_providers.Databricks.auth]
command = "sh"
args = ["-c", "databricks auth token --host <workspace-url> --output json | jq -r '.access_token'"]
timeout_ms = 5000
refresh_interval_ms = 1800000

<workspace-url>をAzure Databricksワークスペースの URL に置き換えます。

手順 3: ワークスペースに対する認証

メモ

これは 1 回だけ行う必要があります。 Codex を起動するたびに再認証する必要はありません。

まず、Azure Databricks CLI がインストールされていることを確認します。 手順については、 Databricks CLI のインストールまたは更新 を参照してください。

次に、次の認証を行います。

databricks auth login --host <workspace-url>

<workspace-url>をAzure Databricksワークスペースの URL に置き換えます。

手順 4: Codex を開始する

codex

モデルを変更するには、 /modelを使用します。

Gemini CLI

手順 1: Gemini CLI の最新バージョンをインストールする

npm install -g @google/gemini-cli@nightly

手順 2: 環境変数を構成する

ファイル ~/.gemini/.env を作成し、次の構成を追加します。 詳細については、 Gemini CLI 認証に関するドキュメント を参照してください。

GEMINI_MODEL=databricks-gemini-2-5-flash
GOOGLE_GEMINI_BASE_URL=https://<workspace-url>/ai-gateway/gemini
GEMINI_API_KEY_AUTH_MECHANISM="bearer"
GEMINI_API_KEY=<databricks_pat_token>

<workspace-url>をAzure Databricksワークスペースの URL に置き換え、<databricks_pat_token>を個人用アクセス トークンに置き換えます。

コーディングエージェントを使ったオープンソースモデルを活用しましょう

Azure Databricks、glm-5-2などのオープンソース(OSS)モデルとコーディングエージェントの統合をサポートしています。

上記の 要件 に加え、ワークスペースはターゲットとなるOSSモデルにもアクセスできなければなりません。

OpenCode

ucode」で説明されているようにを設定し、モデルとしてsystem.ai.glm-5-2を選択します。

手動セットアップ

あるいは、 OpenCodeドキュメントに記載されている通りOpenCodeをインストールし、その後 ~/.config/opencode/opencode.jsonを作成または編集することもできます。

{
  "$schema": "https://opencode.ai/config.json",
  "model": "databricks-oss/<open source model service name>",
  "provider": {
    "databricks-oss": {
      "npm": "@ai-sdk/openai",
      "options": {
        "baseURL": "<workspace-url>/ai-gateway/mlflow/v1",
        "apiKey": "<databricks_pat_token>"
      },
      "models": {
        "<open source model service name>": {}
      }
    }
  }
}

次の部分を置き換えます。

  • <workspace-url> を Azure Databricks ワークスペース URL と共に使用します。
  • <databricks_pat_token> 個人用アクセス トークンを使用しなさい。
  • <オープンソース model service name> 例えば、ターゲットOSSモデルサービスでは system.ai.glm-5-2

そしてOpenCodeを開始します:

opencode

コデックス

Codexは、Codexがサポートする Open Responses API を通じてオープンソースモデルに接続しています。

Use ucodeで説明されているようにを設定し、その後実行します:

ucode codex --model <open source model service name>

例えば、GLM 5.2をCodexで使用するには、以下を実行します:

ucode codex --model system.ai.glm-5-2
手動セットアップ

または、 Codex CLIに記載されている方法でCodex CLIをインストールし、その後作成または編集 ~/.codex/config.toml:

model = "<open source model service name>"
model_provider = "Databricks"

[model_providers.Databricks]
name = "Databricks :re[ai-gateway]"
base_url = "<workspace-url>/ai-gateway/codex/v1"
wire_api = "responses"

[model_providers.Databricks.auth]
command = "sh"
args = ["-c", "databricks auth token --host <workspace-url> --output json | jq -r '.access_token'"]
# Re-run the token command periodically so long sessions don't fail when the
# short-lived Databricks token expires.
timeout_ms = 5000
refresh_interval_ms = 1800000

<workspace-url> を Azure Databricks ワークスペースの URL に、<オープンソース model service name> を対象の OSS モデル サービスに置き換えます。たとえば system.ai.glm-5-2 です。

次にCodexを始めてください:

codex

OpenTelemetry データ収集を設定する

Azure Databricks では、OpenTelemetry メトリックとログをコーディング エージェントから Unity カタログのマネージド デルタ テーブルにエクスポートできます。 すべてのメトリックは、OpenTelemetry 標準メトリック プロトコルを使用してエクスポートされた時系列データであり、ログは OpenTelemetry ログ プロトコルを使用してエクスポートされます。

Requirements

手順 1: Unity カタログで OpenTelemetry テーブルを作成する

OpenTelemetry メトリックとログ スキーマを使用して事前構成された Unity カタログのマネージド テーブルを作成します。

メトリック テーブル

CREATE TABLE <catalog>.<schema>.<table_prefix>_otel_metrics (
  name STRING,
  description STRING,
  unit STRING,
  metric_type STRING,
  gauge STRUCT<
    start_time_unix_nano: LONG,
    time_unix_nano: LONG,
    value: DOUBLE,
    exemplars: ARRAY<STRUCT<
      time_unix_nano: LONG,
      value: DOUBLE,
      span_id: STRING,
      trace_id: STRING,
      filtered_attributes: MAP<STRING, STRING>
    >>,
    attributes: MAP<STRING, STRING>,
    flags: INT
  >,
  sum STRUCT<
    start_time_unix_nano: LONG,
    time_unix_nano: LONG,
    value: DOUBLE,
    exemplars: ARRAY<STRUCT<
      time_unix_nano: LONG,
      value: DOUBLE,
      span_id: STRING,
      trace_id: STRING,
      filtered_attributes: MAP<STRING, STRING>
    >>,
    attributes: MAP<STRING, STRING>,
    flags: INT,
    aggregation_temporality: STRING,
    is_monotonic: BOOLEAN
  >,
  histogram STRUCT<
    start_time_unix_nano: LONG,
    time_unix_nano: LONG,
    count: LONG,
    sum: DOUBLE,
    bucket_counts: ARRAY<LONG>,
    explicit_bounds: ARRAY<DOUBLE>,
    exemplars: ARRAY<STRUCT<
      time_unix_nano: LONG,
      value: DOUBLE,
      span_id: STRING,
      trace_id: STRING,
      filtered_attributes: MAP<STRING, STRING>
    >>,
    attributes: MAP<STRING, STRING>,
    flags: INT,
    min: DOUBLE,
    max: DOUBLE,
    aggregation_temporality: STRING
  >,
  exponential_histogram STRUCT<
    attributes: MAP<STRING, STRING>,
    start_time_unix_nano: LONG,
    time_unix_nano: LONG,
    count: LONG,
    sum: DOUBLE,
    scale: INT,
    zero_count: LONG,
    positive_bucket: STRUCT<
      offset: INT,
      bucket_counts: ARRAY<LONG>
    >,
    negative_bucket: STRUCT<
      offset: INT,
      bucket_counts: ARRAY<LONG>
    >,
    flags: INT,
    exemplars: ARRAY<STRUCT<
      time_unix_nano: LONG,
      value: DOUBLE,
      span_id: STRING,
      trace_id: STRING,
      filtered_attributes: MAP<STRING, STRING>
    >>,
    min: DOUBLE,
    max: DOUBLE,
    zero_threshold: DOUBLE,
    aggregation_temporality: STRING
  >,
  summary STRUCT<
    start_time_unix_nano: LONG,
    time_unix_nano: LONG,
    count: LONG,
    sum: DOUBLE,
    quantile_values: ARRAY<STRUCT<
      quantile: DOUBLE,
      value: DOUBLE
    >>,
    attributes: MAP<STRING, STRING>,
    flags: INT
  >,
  metadata MAP<STRING, STRING>,
  resource STRUCT<
    attributes: MAP<STRING, STRING>,
    dropped_attributes_count: INT
  >,
  resource_schema_url STRING,
  instrumentation_scope STRUCT<
    name: STRING,
    version: STRING,
    attributes: MAP<STRING, STRING>,
    dropped_attributes_count: INT
  >,
  metric_schema_url STRING
) USING DELTA
TBLPROPERTIES (
  'otel.schemaVersion' = 'v1'
)

ログ テーブル

CREATE TABLE <catalog>.<schema>.<table_prefix>_otel_logs (
  event_name STRING,
  trace_id STRING,
  span_id STRING,
  time_unix_nano LONG,
  observed_time_unix_nano LONG,
  severity_number STRING,
  severity_text STRING,
  body STRING,
  attributes MAP<STRING, STRING>,
  dropped_attributes_count INT,
  flags INT,
  resource STRUCT<
    attributes: MAP<STRING, STRING>,
    dropped_attributes_count: INT
  >,
  resource_schema_url STRING,
  instrumentation_scope STRUCT<
    name: STRING,
    version: STRING,
    attributes: MAP<STRING, STRING>,
    dropped_attributes_count: INT
  >,
  log_schema_url STRING
) USING DELTA
TBLPROPERTIES (
  'otel.schemaVersion' = 'v1'
)

手順 2: コーディング エージェントの env vars を更新する

OpenTelemetry メトリックのサポートが有効になっているコーディング エージェントで、次の環境変数を構成します。

{
  "OTEL_METRICS_EXPORTER": "otlp",
  "OTEL_EXPORTER_OTLP_METRICS_PROTOCOL": "http/protobuf",
  "OTEL_EXPORTER_OTLP_METRICS_ENDPOINT": "https://<workspace-url>/api/2.0/otel/v1/metrics",
  "OTEL_EXPORTER_OTLP_METRICS_HEADERS": "content-type=application/x-protobuf,Authorization=Bearer <databricks_pat_token>,X-Databricks-UC-Table-Name=<catalog>.<schema>.<table_prefix>_otel_metrics",
  "OTEL_METRIC_EXPORT_INTERVAL": "10000",
  "OTEL_LOGS_EXPORTER": "otlp",
  "OTEL_EXPORTER_OTLP_LOGS_PROTOCOL": "http/protobuf",
  "OTEL_EXPORTER_OTLP_LOGS_ENDPOINT": "https://<workspace-url>/api/2.0/otel/v1/logs",
  "OTEL_EXPORTER_OTLP_LOGS_HEADERS": "content-type=application/x-protobuf,Authorization=Bearer <databricks_pat_token>,X-Databricks-UC-Table-Name=<catalog>.<schema>.<table_prefix>_otel_logs",
  "OTEL_LOGS_EXPORT_INTERVAL": "5000"
}

手順 3: コーディング エージェントを実行します。

データは、5 分以内に Unity カタログ テーブルに反映されます。

次のステップ