Udostępnij przez


Integracja z agentami kodowania

Ważne

Ta funkcja jest dostępna w wersji beta. Administratorzy kont mogą kontrolować dostęp do tej funkcji ze strony Podglądy .

Dzięki integracji agenta kodowania usługi Azure Databricks możesz zarządzać dostępem i użyciem agentów kodowania, takich jak Cursor, Gemini CLI, Codex CLI i Claude Code. Zbudowany na AI Gateway, zapewnia ograniczanie szybkości, śledzenie użycia oraz tabele wnioskowania dla narzędzi do kodowania.

Funkcje

  • Dostęp: bezpośredni dostęp do różnych narzędzi i modeli kodowania, a wszystko w ramach jednej faktury.
  • Możliwość obserwowania: jeden ujednolicony pulpit nawigacyjny do śledzenia użycia, wydatków i metryk we wszystkich narzędziach do kodowania.
  • Ujednolicone zarządzanie: Administratorzy mogą zarządzać uprawnieniami modelu i limitami danych bezpośrednio poprzez bramę sztucznej inteligencji.

Requirements

Obsługiwani agenci

Obsługiwane są następujące agenty kodowania:

Konfiguracja

Cursor

Aby skonfigurować Cursor do używania punktów końcowych AI Gateway:

Krok 1. Konfigurowanie podstawowego adresu URL i klucza interfejsu API

  1. Otwórz kursor i przejdź do Ustawienia>Ustawienia kursora>Modele>Klucze API.

  2. Włącz zastąpienie podstawowego adresu URL OpenAI i wprowadź adres URL:

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

    Zastąp <ai-gateway-url> adresem URL punktu końcowego swojej bramy AI.

  3. Wklej osobisty token dostępu usługi Azure Databricks w polu Klucz interfejsu API OpenAI .

Krok 2. Dodawanie modeli niestandardowych

  1. Kliknij + Dodaj model niestandardowy w ustawieniach kursora.
  2. Dodaj nazwę punktu końcowego dla AI Gateway i aktywuj przełącznik.

Uwaga / Notatka

Obecnie obsługiwane są tylko punkty końcowe modelu podstawowego utworzone przez usługę Azure Databricks.

Krok 3. Testowanie integracji

  1. Otwórz tryb zapytania Cmd+L (macOS) lub Ctrl+L (Windows/Linux) i wybierz model.
  2. Wyślij wiadomość. Wszystkie żądania są teraz kierowane przez usługę Azure Databricks.

Interfejs wiersza polecenia Codex

Krok 1. Ustawianie zmiennej środowiskowej DATABRICKS_TOKEN

export DATABRICKS_TOKEN=<databricks_pat_token>

Krok 2. Konfigurowanie klienta Codex

Utwórz lub edytuj plik konfiguracji Codex pod adresem ~/.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"

Zastąp <ai-gateway-url> adresem URL punktu końcowego Twojej bramy AI.

Gemini CLI

Krok 1. Instalowanie najnowszej wersji interfejsu wiersza polecenia Gemini

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

Krok 2. Konfigurowanie zmiennych środowiskowych

Utwórz plik ~/.gemini/.env i dodaj następującą konfigurację. Aby uzyskać więcej informacji, zobacz dokumentację uwierzytelniania interfejsu wiersza polecenia 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>

Zastąp <ai-gateway-url> adresem URL punktu końcowego AI Gateway i <databricks_pat_token> swoim osobistym tokenem dostępu.

Claude Code

Krok 1. Konfigurowanie klienta programu Claude Code

Dodaj następującą konfigurację do ~/.claude/settings.json. Aby uzyskać więcej informacji, zobacz dokumentację ustawień kodu Claude'a .

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

Zastąp <ai-gateway-url> adresem URL punktu końcowego AI Gateway i <databricks_pat_token> osobistym tokenem dostępu.

Krok 2 (opcjonalnie): Konfigurowanie kolekcji metryk OpenTelemetry

Zobacz Konfigurowanie zbierania danych OpenTelemetry, aby uzyskać szczegółowe informacje na temat eksportowania metryk i dzienników z Claude Code do zarządzanych przez Unity Catalog tabel Delta.

Dashboard

Po śledzeniu użycia agenta kodowania za pośrednictwem bramy sztucznej inteligencji możesz wyświetlać i monitorować metryki na wbudowanym pulpicie nawigacyjnym.

Aby uzyskać dostęp do pulpitu nawigacyjnego, wybierz pozycję Wyświetl pulpit nawigacyjny na stronie bramy sztucznej inteligencji. Spowoduje to utworzenie wstępnie skonfigurowanego pulpitu nawigacyjnego z wykresami dotyczącymi użycia narzędzi do kodowania.

Przycisk Wyświetl pulpit nawigacyjny

Pulpit nawigacyjny agenta kodowania

Konfigurowanie zbierania danych OpenTelemetry

Usługa Azure Databricks obsługuje eksportowanie metryk i dzienników OpenTelemetry z Claude Code do zarządzanych tabel Delta w wykazie aparatu Unity. Wszystkie metryki to dane szeregów czasowych eksportowane przy użyciu standardowego protokołu metryk OpenTelemetry, a dzienniki są eksportowane przy użyciu protokołu dzienników OpenTelemetry. Aby uzyskać informacje o dostępnych metrykach i zdarzeniach, zobacz Claude Code monitoring usage (Użycie monitorowania kodu Claude'a).

Requirements

Krok 1: Tworzenie tabel OpenTelemetry w Unity Catalog

Utwórz prekonfigurowane tabele zarządzane Unity Catalog za pomocą schematów metryk i dzienników OpenTelemetry.

Tabela metryk

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

Tabela dzienników

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

Krok 2. Aktualizowanie pliku ustawień kodu Claude'a

Dodaj następujące zmienne środowiskowe do bloku env w pliku ~/.claude/settings.json, aby włączyć eksportowanie metryk i dzienników.

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

Zastąp następujące elementy:

  • <workspace-url> przy użyciu adresu URL obszaru roboczego usługi Azure Databricks.
  • <databricks_pat_token> przy użyciu osobistego tokenu dostępu.
  • <catalog>.<schema>.<table_prefix> z prefiksem wykazu, schematu i tabeli używanym podczas tworzenia tabel OpenTelemetry.

Uwaga / Notatka

Wartość domyślna OTEL_METRIC_EXPORT_INTERVAL to 60000 ms (60 sekund). Powyższy przykład ustawia wartość 10000 ms (10 sekund). Wartość domyślna OTEL_LOGS_EXPORT_INTERVAL to 5000 ms (5 sekund).

Krok 3. Uruchamianie kodu Claude'a

claude

Dane powinny trafić do tabel katalogu Unity w ciągu 5 minut.

Dalsze kroki