次の方法で共有


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

Important

この機能は ベータ版です。 アカウント管理者は、アカウント コンソール の [プレビュー ] ページからこの機能へのアクセスを制御できます。 Manage Azure Databricks プレビューを参照してください。

Azure Databricksコーディング エージェント統合を使用すると、Cursor、Gemini CLI、Codex CLI などのコーディング エージェントのアクセスと使用を管理できます。 AI Gateway 上に構築され、コーディング ツールのレート制限、使用状況の追跡、推論テーブルを提供します。

Features

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

Requirements

サポートされているエージェント

次のコーディング エージェントがサポートされており、その他の統合が AI Gateway UI に一覧表示されています。

設定

Cursor

AI ゲートウェイ エンドポイントを使用するように Cursor を構成するには:

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

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

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

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

    <ai-gateway-url>を AI ゲートウェイ エンドポイント URL に置き換えます。

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

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

  1. [カーソル設定] で [ + カスタム モデルの追加] をクリックします。
  2. AI ゲートウェイ エンドポイント名を追加し、トグルを有効にします。

現在、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 AI Gateway"
base_url = "<ai-gateway-url>/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

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

  • <ai-gateway-url>base_url を AI Gateway エンドポイント URL を用いて行う。
  • args フィールドに 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://<ai-gateway-url>/gemini
GEMINI_API_KEY_AUTH_MECHANISM="bearer"
GEMINI_API_KEY=<databricks_pat_token>

<ai-gateway-url>を AI Gateway エンドポイントの URL に置き換え、<databricks_pat_token>を個人用アクセス トークンに置き換えます。

Dashboard

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

ダッシュボードにアクセスするには、[AI ゲートウェイ] ページから [ダッシュボードの表示 ] を選択します。 これにより、コーディング ツールを使用するためのグラフを含む事前構成済みのダッシュボードが作成されます。

[ダッシュボードの表示] ボタン

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

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 カタログ テーブルに反映されます。

次のステップ