Condividi tramite


Integrazione con agenti di codifica

Importante

Questa funzionalità è in versione beta. Gli amministratori dell'account possono controllare l'accesso a questa funzionalità dalla pagina Anteprime .

Con l'integrazione dell'agente di codifica di Azure Databricks, è possibile gestire l'accesso e l'utilizzo per agenti di codifica come Cursor, interfaccia della riga di comando gemini, interfaccia della riga di comando codex e Claude Code. Basato su Gateway di intelligenza artificiale, fornisce tabelle di limitazione della velocità, rilevamento dell'utilizzo e inferenza per gli strumenti di codifica.

Funzionalità

  • Accesso: accesso diretto a vari strumenti e modelli di codifica, tutti sotto una fattura.
  • Osservabilità: un singolo dashboard unificato per tenere traccia dell'utilizzo, della spesa e delle metriche in tutti gli strumenti di codifica.
  • Governance unificata: gli amministratori possono gestire le autorizzazioni del modello e i limiti di frequenza direttamente tramite il gateway di intelligenza artificiale.

Requisiti

Agenti supportati

Sono supportati gli agenti di codifica seguenti:

Configurazione

Cursor

Per configurare Cursor per l'uso degli endpoint del gateway di intelligenza artificiale:

Passaggio 1: Configurare l'URL di base e la chiave API

  1. Aprire Cursore e passare a Impostazioni>Impostazioni Cursore>Modelli>Chiavi API.

  2. Abilitare Override OpenAI Base URL (Esegui override dell'URL di base OpenAI) e immettere l'URL:

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

    Sostituire <ai-gateway-url> con l'URL dell'endpoint del gateway di intelligenza artificiale.

  3. Incollare il token di accesso personale di Azure Databricks nel campo Chiave API OpenAI .

Passaggio 2: Aggiungere modelli personalizzati

  1. Fare clic su + Aggiungi modello personalizzato in Impostazioni cursore.
  2. Aggiungere il nome dell'endpoint del gateway di intelligenza artificiale e attivare l'opzione.

Annotazioni

Attualmente sono supportati solo gli endpoint del modello di base creati da Azure Databricks.

Passaggio 3: Testare l'integrazione

  1. Aprire la modalità Ask con Cmd+L (macOS) o Ctrl+L (Windows/Linux) e selezionare il modello.
  2. Inviare un messaggio. Tutte le richieste ora instradano attraverso Azure Databricks.

Codex CLI

Passaggio 1: Impostare la variabile di ambiente DATABRICKS_TOKEN

export DATABRICKS_TOKEN=<databricks_pat_token>

Passaggio 2: Configurare il client Codex

Creare o modificare il file di configurazione Codex in ~/.codex/config.toml:

profile = "default"

[profiles.default]
model_provider = "proxy"
model = "databricks-gpt-5-2"

[model_providers.proxy]
name = "Databricks Proxy"
base_url = "https://<ai-gateway-url>/openai/v1"
env_key = "DATABRICKS_TOKEN"
wire_api = "responses"

Sostituire <ai-gateway-url> con l'URL dell'endpoint del gateway di intelligenza artificiale.

Interfaccia della riga di comando gemini

Passaggio 1: Installare la versione più recente dell'interfaccia della riga di comando di Gemini

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

Passaggio 2: Configurare le variabili di ambiente

Creare un file ~/.gemini/.env e aggiungere la configurazione seguente. Per altri dettagli, vedere la documentazione sull'autenticazione del CLI Gemini.

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>

Sostituire <ai-gateway-url> con l'URL dell'endpoint del gateway di intelligenza artificiale e <databricks_pat_token> con il token di accesso personale.

Claude Code

Passaggio 1: Configurare il client Claude Code

Aggiungere la configurazione seguente a ~/.claude/settings.json. Per altri dettagli, vedere la documentazione sulle impostazioni di Claude Code .

{
  "env": {
    "ANTHROPIC_MODEL": "databricks-claude-opus-4-6",
    "ANTHROPIC_BASE_URL": "https://<ai-gateway-url>/anthropic",
    "ANTHROPIC_AUTH_TOKEN": "<databricks_pat_token>",
    "ANTHROPIC_CUSTOM_HEADERS": "x-databricks-use-coding-agent-mode: true",
    "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"
  }
}

Sostituire <ai-gateway-url> con l'URL dell'endpoint del gateway di intelligenza artificiale e <databricks_pat_token> con il token di accesso personale.

Passaggio 2 (facoltativo): Configurare la raccolta di metriche OpenTelemetry

Vedere Configurare la raccolta di dati OpenTelemetry per informazioni dettagliate sull'esportazione di metriche e log da Claude Code alle tabelle Delta gestite dal catalogo Unity.

Dashboard

Dopo aver rilevato l'utilizzo dell'agente di codifica tramite il gateway di intelligenza artificiale, è possibile visualizzare e monitorare le metriche nel dashboard esistente.

Per accedere al dashboard, selezionare Visualizza dashboard nella pagina Gateway di intelligenza artificiale. Verrà creato un dashboard preconfigurato con grafici per l'utilizzo dello strumento di codifica.

Visualizza pulsante dashboard

Dashboard dell'agente di codifica

Configurare la raccolta dati OpenTelemetry

Azure Databricks supporta l'esportazione di metriche e log OpenTelemetry da Claude Code alle tabelle Delta gestite dal catalogo Unity. Tutte le metriche sono dati delle serie temporali esportati usando il protocollo di metrica standard OpenTelemetry e i log vengono esportati usando il protocollo di log OpenTelemetry. Per le metriche e gli eventi disponibili, vedere Claude Code monitoring usage.

Requisiti

Passaggio 1: Creare tabelle OpenTelemetry nel catalogo unity

Creare tabelle gestite da Unity Catalog preconfigurate con gli schemi per metriche e log di OpenTelemetry.

Tabella delle metriche

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

Tabella Registri

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

Passaggio 2: Aggiornare il file delle impostazioni di Claude Code

Aggiungere le seguenti variabili di ambiente al blocco env nel file ~/.claude/settings.json per abilitare l'esportazione delle metriche e dei log:

{
  "env": {
    "CLAUDE_CODE_ENABLE_TELEMETRY": "1",
    "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"
  }
}

Sostituire quanto segue:

  • <workspace-url> con l'URL del tuo spazio di lavoro di Azure Databricks.
  • <databricks_pat_token> con il token di accesso personale.
  • <catalog>.<schema>.<table_prefix> con i prefissi di catalogo, schema e tabella usati durante la creazione delle tabelle OpenTelemetry.

Annotazioni

Il OTEL_METRIC_EXPORT_INTERVAL valore predefinito è 60000 ms (60 secondi). Nell'esempio precedente viene impostato su 10000 ms (10 secondi). Il OTEL_LOGS_EXPORT_INTERVAL valore predefinito è 5000 ms (5 secondi).

Passaggio 3: Eseguire il codice Claude

claude

I dati devono essere propagati alle tabelle di Unity Catalog entro 5 minuti.

Passaggi successivi