Mengintegrasikan dengan agen pengkodian

Dengan integrasi agen pengkodean Azure Databricks, Anda dapat merutekan lalu lintas dari agen pengkodean seperti Kursor, Gemini CLI, dan Codex CLI melalui layanan model di Unity AI Gateway. Ini menyediakan pembatasan tarif, pelacakan penggunaan, dan tabel inferensi—dengan semua kontrol yang dikonfigurasi di tingkat layanan model, pengguna, atau grup.

Features

  • Akses: Akses langsung ke berbagai alat dan model pengkodian, semuanya di bawah satu faktur.
  • Pengamatan: Satu dasbor terpadu untuk melacak penggunaan, pengeluaran, dan metrik di semua alat pengkodian Anda.
  • Tata kelola terpadu: Admin dapat mengelola izin model dan batas tarif melalui Unity AI Gateway di tingkat layanan model, pengguna, atau grup.

Requirements

Siapkan

Cara tercepat untuk memulai adalah dengan ucode, CLI dari Azure Databricks yang menginstal, mengautentikasi, dan mengonfigurasi agen pengodean yang didukung dengan Unity AI Gateway dalam satu perintah.

ucode (Unity AI Gateway Coding CLI) adalah titik masuk tunggal untuk menjalankan agen pengkodian terhadap Unity AI Gateway. Ini menangani OAuth, menulis file konfigurasi setiap agen, dan merutekan lalu lintas melalui server LLM atau MCP apa pun yang telah Anda daftarkan. Agen yang didukung:

Langkah 1: Instal ucode

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

Memerlukan Python 3.12 atau yang lebih baru dan uv.

Langkah 2: Buka agen pengodian

Jalankan agen yang Anda inginkan. Pada peluncuran pertama, ucode meminta URL ruang kerja Azure Databricks Anda, mengautentikasi, dan menulis file konfigurasi agen secara otomatis. Peluncuran berikutnya langsung menuju agen.

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

ucode meneruskan flag setelah nama agen ke alat yang mendasarinya, misalnya:

ucode codex --full-auto

Untuk mengonfigurasi beberapa agen pengkodian secara bersamaan, jalankan:

ucode configure

Untuk mendaftarkan Azure Databricks server MCP (fungsi Unity Catalog, Pencarian AI, gudang SQL, dan koneksi eksternal yang ditemukan) dengan agen berkemampuan MCP:

ucode configure mcp

Untuk melihat ringkasan penggunaan Unity AI Gateway Anda selama 7 hari terakhir:

ucode usage

Untuk referensi perintah lengkap, jalankan:

ucode --help

Dashboard

Setelah penggunaan agen pengkodan dilacak melalui Unity AI Gateway, Anda dapat melihat dan memantau metrik Anda di dasbor bawaan.

Untuk membuka dasbor, klik Kelola di kanan atas halaman Unity AI Gateway, lalu klik Dasbor Penggunaan. Dasbor penggunaan bawaan mencakup tab Coding Agents dengan grafik untuk penggunaan alat pengkodian.

Dasbor agen pengkodian

Penyiapan manual

Jika Anda lebih suka mengonfigurasi agen sendiri, ikuti instruksi untuk:

IDE Kursor

Untuk mengonfigurasi Kursor untuk menggunakan layanan model di Unity AI Gateway:

Langkah 1: Mengonfigurasi URL dasar dan kunci API

  1. Buka Kursor dan navigasi ke Pengaturan>Kursor Pengaturan>Model>Kunci API.

  2. Aktifkan Ganti URL Dasar OpenAI dan masukkan URL:

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

    Ganti <workspace-url> dengan URL ruang kerja Azure Databricks Anda.

  3. Tempelkan token akses pribadi Azure Databricks Anda ke bidang OpenAI API Key.

Langkah 2: Menambahkan model kustom

  1. Klik + Tambahkan Model Kustom di Pengaturan Kursor.
  2. Tambahkan nama layanan model Anda (misalnya, system.ai.databricks-claude-opus-4-6) dan aktifkan tombol .

Note

Saat ini, hanya layanan model yang disediakan Azure Databricks yang didukung.

Langkah 3: Uji integrasi

  1. Buka mode Tanya dengan Cmd+L (macOS) atau Ctrl+L (Windows/Linux) dan pilih model Anda.
  2. Kirim pesan. Semua permintaan sekarang dialihkan melalui Azure Databricks.

Codex CLI

Langkah 1: Menginstal atau memperbarui Codex CLI

Instal atau perbarui ke Codex CLI versi 0.118 atau yang lebih baru:

npm install -g @openai/codex@latest

Langkah 2: Membuat atau memperbarui file konfigurasi Codex

Buat atau edit file konfigurasi Codex di ~/.codex/config.toml:

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

Ganti <workspace-url> dengan URL ruang kerja Azure Databricks Anda.

Langkah 3: Mengautentikasi ke ruang kerja Anda

Note

Ini hanya perlu dilakukan sekali. Anda tidak perlu mengautentikasi ulang setiap kali Anda memulai Codex.

Pertama, pastikan Anda telah menginstal CLI Azure Databricks. Lihat Menginstal atau memperbarui Databricks CLI untuk instruksi.

Kemudian autentikasi:

databricks auth login --host <workspace-url>

Ganti <workspace-url> dengan URL ruang kerja Azure Databricks Anda.

Langkah 4: Mulai Codex

codex

Untuk mengubah model, gunakan /model.

Gemini CLI

Langkah 1: Instal versi terbaru Gemini CLI

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

Langkah 2: Mengonfigurasi variabel lingkungan

Buat file ~/.gemini/.env dan tambahkan konfigurasi berikut. Lihat dokumen autentikasi Gemini CLI untuk detail selengkapnya.

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>

Ganti <workspace-url> dengan URL ruang kerja Azure Databricks dan <databricks_pat_token> dengan token akses pribadi Anda.

Gunakan model Open Source dengan agen pengkode

Azure Databricks mendukung integrasi model sumber terbuka (OSS), seperti glm-5-2, dengan agen coding.

Selain persyaratan di atas, workspace Anda juga harus memiliki akses ke model OSS target.

OpenCode

Atur ucode seperti yang dijelaskan di Gunakan ucode (disarankan), lalu pilih system.ai.glm-5-2 sebagai model Anda.

Pengaturan manual

Sebagai alternatif, Anda dapat menginstal OpenCode seperti yang dijelaskan dalam dokumentasi OpenCode, lalu membuat atau mengedit ~/.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>": {}
      }
    }
  }
}

Ganti yang berikut ini:

  • <workspace-url> dengan URL ruang kerja Azure Databricks Anda.
  • <databricks_pat_token> dengan token akses pribadi Anda.
  • <sumber terbuka model service name> dengan layanan model OSS yang dituju, misalnya system.ai.glm-5-2.

Kemudian mulai OpenCode:

opencode

Kodeks

Codex terhubung ke model Open Source melalui Open Responses API yang didukung Codex.

Atur ucode seperti yang dijelaskan di Gunakan ucode (disarankan), lalu jalankan:

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

Misalnya, untuk menggunakan GLM 5.2 dengan Codex, jalankan:

ucode codex --model system.ai.glm-5-2
Pengaturan manual

Sebagai alternatif, Anda dapat menginstal Codex CLI seperti yang dijelaskan di Codex CLI, lalu membuat atau mengedit ~/.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

Ganti <workspace-url> dengan URL workspace Azure Databricks Anda dan <sumber terbuka model service name> dengan layanan model OSS target, misalnyasystem.ai.glm-5-2.

Kemudian mulai Codex:

codex

Menyiapkan pengumpulan data OpenTelemetry

Azure Databricks mendukung ekspor metrik dan log OpenTelemetry dari agen pengkodean ke tabel Delta terkelola Unity Catalog. Semua metrik adalah data rangkaian waktu yang diekspor menggunakan protokol metrik standar OpenTelemetry, dan log diekspor menggunakan protokol log OpenTelemetry.

Requirements

Langkah 1: Membuat tabel OpenTelemetry di Unity Catalog

Buat tabel terkelola Unity Catalog yang telah dikonfigurasi sebelumnya dengan metrik OpenTelemetry dan skema log.

Tabel metrik

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'
)

Tabel log

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'
)

Langkah 2: Perbarui env vars di agen pengodean Anda

Di setiap agen pengkodian dengan dukungan metrik OpenTelemetry diaktifkan, konfigurasikan variabel lingkungan berikut.

{
  "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"
}

Langkah 3: Jalankan agen pengkodean Anda.

Data Anda harus disebarluaskan ke tabel Katalog Unity dalam waktu 5 menit.

Langkah berikutnya