Integration mit Coding-Agenten

Von Bedeutung

Dieses Feature befindet sich in der Betaversion. Kontoadministratoren können den Zugriff auf dieses Feature über die Seite " Vorschau" der Kontokonsole steuern. Siehe Manage Azure Databricks Previews.

Mit der Azure Databricks Codierungs-Agent-Integration können Sie den Zugriff und die Verwendung für Codierungs-Agents wie Cursor, Gemini CLI und Codex CLI verwalten. Basierend auf Unity AI Gateway bietet es Ratenbegrenzung, Nutzungsnachverfolgung und Inference-Tabellen für Ihre Codierungstools.

Features

  • Zugriff: Direkter Zugriff auf verschiedene Codierungstools und Modelle, alle unter einer Rechnung.
  • Observability: Ein einzelnes einheitliches Dashboard zum Nachverfolgen von Nutzung, Ausgaben und Metriken in allen Ihren Codierungstools.
  • Einheitliche Governance: Administratoren können Modellberechtigungen und Geschwindigkeitsbeschränkungen direkt über unity AI Gateway verwalten.

Anforderungen

Konfiguration

Die schnellste Möglichkeit für die ersten Schritte ist ucode, eine CLI aus Azure Databricks, die unterstützte Codierungs-Agents mit Unity AI Gateway in einem Einzigen Befehl installiert, authentifiziert und konfiguriert.

ucode (Unity AI Gateway Coding CLI) ist der einzige Einstiegspunkt zum Ausführen von Codierungs-Agents für Unity AI Gateway. Es verarbeitet OAuth, schreibt die Konfigurationsdatei jedes Agents und leitet Datenverkehr über jeden LLM- oder MCP-Server weiter, den Sie registriert haben. Unterstützte Agents:

Schritt 1: Installieren von Ucode

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

Erfordert Python 3.12 oder höher und uv.

Schritt 2: Öffnen eines Codierungs-Agents

Starten Sie den Agenten, den Sie möchten. Beim ersten Start fordert ucode Sie auf, die URL Ihres Azure Databricks-Arbeitsbereichs einzugeben, authentifiziert Sie und schreibt automatisch die Konfigurationsdatei des Agenten. Nachfolgende Startvorgänge werden direkt an den Agenten weitergeleitet.

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

ucode reicht Optionen hinter dem Agentnamen an das zugrunde liegende Werkzeug durch, zum Beispiel:

ucode codex --full-auto

Führen Sie Folgendes aus, um mehrere Codierungs-Agents gleichzeitig zu konfigurieren:

ucode configure

So registrieren Sie Azure Databricks MCP-Server (Unity Catalog-Funktionen, Vector Search, SQL Warehouses und ermittelte externe Verbindungen) mit MCP-fähigen Agents:

ucode configure mcp

So rufen Sie die Nutzungszusammenfassung Ihres Unity AI Gateway der letzten 7 Tage auf:

ucode usage

Führen Sie für den vollständigen Befehlsverweis Folgendes aus:

ucode --help

Dashboard

Nachdem die Codierungs-Agent-Nutzung über unity AI Gateway nachverfolgt wurde, können Sie Ihre Metriken im integrierten Dashboard anzeigen und überwachen.

Um das Dashboard zu öffnen, wählen Sie auf der Seite "AI-Gateway" die Option "Dashboard anzeigen " aus. Diese Aktion erstellt ein vorkonfiguriertes Dashboard mit Diagrammen für die Verwendung von Codierungstools.

Schaltfläche

Codierungs-Agent-Dashboard

Manuelle Einrichtung

Wenn Sie Agents selbst konfigurieren möchten, befolgen Sie die Anweisungen für:

Cursor-IDE

So konfigurieren Sie Den Cursor für die Verwendung von Unity AI Gateway-Endpunkten:

Schritt 1: Konfigurieren der Basis-URL und des API-Schlüssels

  1. Öffnen Sie den Cursor und navigieren Sie zuEinstellungen>Cursoreinstellungen>Modelle>API-Schlüssel.

  2. Aktivieren Sie OpenAI-Basis-URL überschreiben und geben Sie die URL ein:

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

    Ersetzen Sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL.

  3. Fügen Sie Ihr Azure Databricks persönliches Zugriffstoken in das Feld OpenAI-API-Schlüssel ein.

Schritt 2: Hinzufügen von benutzerdefinierten Modellen

  1. Klicken Sie in den Cursoreinstellungen auf +Benutzerdefiniertes Modell hinzufügen .
  2. Fügen Sie Ihren Unity AI Gateway-Endpunktnamen hinzu, und aktivieren Sie den Umschalter.

Hinweis

Derzeit werden nur von Azure Databricks erstellte Foundation-Model-Endpunkte unterstützt.

Schritt 3: Testen der Integration

  1. Öffnen Sie den Ask-Modus mit Cmd+L (macOS) oder Ctrl+L (Windows/Linux), und wählen Sie Ihr Modell aus.
  2. Senden sie eine Nachricht. Alle Anfragen werden jetzt über Azure Databricks geleitet.

Codex CLI

Schritt 1: Installieren oder Aktualisieren der Codex CLI

Installieren oder aktualisieren Sie codex CLI, Version 0.118 oder höher:

npm install -g @openai/codex@latest

Schritt 2: Erstellen oder Aktualisieren der Codex-Konfigurationsdatei

Erstellen oder Bearbeiten der Codex-Konfigurationsdatei unter ~/.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

Ersetzen Sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL.

Schritt 3: Authentifizieren bei Ihrem Arbeitsbereich

Hinweis

Dies muss nur einmal erfolgen. Sie müssen sich nicht jedes Mal erneut authentifizieren, wenn Sie Codex starten.

Stellen Sie zunächst sicher, dass die Azure Databricks CLI installiert ist. Anweisungen finden Sie unter Installieren oder Aktualisieren der Databricks CLI .

Authentifizieren Sie sich dann:

databricks auth login --host <workspace-url>

Ersetzen Sie <workspace-url> durch Ihre Azure Databricks Arbeitsbereichs-URL.

Schritt 4: Codex starten

codex

Um das Modell zu ändern, verwenden Sie /model.

Gemini CLI

Schritt 1: Installieren der neuesten Version von Gemini CLI

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

Schritt 2: Konfigurieren von Umgebungsvariablen

Erstellen Sie eine Datei ~/.gemini/.env , und fügen Sie die folgende Konfiguration hinzu. Weitere Details finden Sie in den Dokumentationen zur Gemini CLI-Authentifizierung .

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>

Ersetzen Sie <workspace-url> durch Ihre AZURE DATABRICKS Arbeitsbereichs-URL und <databricks_pat_token> durch Ihr persönliches Zugriffstoken.

Einrichten der OpenTelemetry-Datensammlung

Azure Databricks unterstützt das Exportieren von OpenTelemetry-Metriken und Protokolldaten mithilfe von Codierungsagenten in die im Unity-Katalog verwalteten Delta-Tabellen. Alle Metriken sind Zeitreihendaten, die mithilfe des OpenTelemetry-Standardmetrikenprotokolls exportiert werden, und Protokolle werden mithilfe des OpenTelemetry-Protokollprotokolls exportiert.

Anforderungen

Schritt 1: Erstellen von OpenTelemetry-Tabellen im Unity-Katalog

Erstellen Sie verwaltete Tabellen im Unity-Katalog, die mit den OpenTelemetry-Metriken und Protokollschemas vorkonfiguriert sind.

Metriktabelle

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

Protokolltabelle

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

Schritt 2: Aktualisieren von env vars in Ihrem Codierungs-Agent

Konfigurieren Sie in jedem Codierungs-Agent mit aktivierter OpenTelemetry-Metrikunterstützung die folgenden Umgebungsvariablen.

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

Schritt 3: Führen Sie Ihren Codierungs-Agent aus.

Ihre Daten sollten innerhalb von 5 Minuten an die Unity-Katalogtabellen weitergegeben werden.

Nächste Schritte