Partilhar via


Integrar com agentes de codificação

Importante

Este recurso está em versão Beta. Os administradores de contas podem controlar o acesso a esta funcionalidade a partir da página de Pré-visualizações .

Com a integração do agente de codificação Azure Databricks, pode gerir o acesso e a utilização de agentes de codificação como Cursor, Gemini CLI, Codex CLI e Claude Code. Construído sobre o AI Gateway, fornece tabelas de limitação de taxas, rastreamento de utilização e inferência para as suas ferramentas de programação.

Caraterísticas

  • Acesso: Acesso direto a várias ferramentas e modelos de codificação, tudo sob uma única fatura.
  • Observabilidade: Um painel unificado único para acompanhar o uso, os gastos e as métricas em todas as suas ferramentas de programação.
  • Governação unificada: Os administradores podem gerir as permissões dos modelos e os limites de taxa diretamente através do AI Gateway.

Requerimentos

Agentes suportados

São suportados os seguintes agentes de codificação:

Configuração

Cursor

Para configurar o Cursor para usar os endpoints do AI Gateway:

Passo 1: Configurar URL base e chave API

  1. Abra o Cursor e navegue até Definições>Definições do Cursor>Modelos>Chaves API.

  2. Ative Override OpenAI Base URL e introduza o URL:

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

    Substitua <ai-gateway-url> pelo URL do endpoint do seu AI Gateway.

  3. Cole o seu token de acesso pessoal Azure Databricks no campo OpenAI API Key .

Passo 2: Adicionar modelos personalizados

  1. Clique + Adicionar Modelo Personalizado nas Definições do cursor.
  2. Adiciona o nome do endpoint do AI Gateway e ativa o interruptor.

Observação

Atualmente, apenas os endpoints do modelo de fundação criado pelo Azure Databricks são suportados.

Passo 3: Testar a integração

  1. Abre o modo Ask com Cmd+L (macOS) ou Ctrl+L (Windows/Linux) e seleciona o teu modelo.
  2. Envia uma mensagem. Todos os pedidos agora são encaminhados através do Azure Databricks.

Codex CLI

Passo 1: Defina a variável de ambiente DATABRICKS_TOKEN

export DATABRICKS_TOKEN=<databricks_pat_token>

Passo 2: Configurar o cliente Codex

Criar ou editar o ficheiro de configuração do Codex em ~/.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"

Substitua <ai-gateway-url> pelo URL do endpoint do seu AI Gateway.

Gemini CLI

Passo 1: Instalar a versão mais recente da Gemini CLI

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

Passo 2: Configurar variáveis de ambiente

Crie um ficheiro ~/.gemini/.env e adicione a seguinte configuração. Consulte a documentação de autenticação da CLI Gemini para mais detalhes.

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>

Substitua <ai-gateway-url> pelo URL do endpoint do seu AI Gateway e <databricks_pat_token> pelo seu token de acesso pessoal.

Código Claude

Passo 1: Configurar o cliente Claude Code

Adicione a seguinte configuração ao ~/.claude/settings.json. Consulte a documentação das definições do Claude Code para mais detalhes.

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

Substitua <ai-gateway-url> pelo URL do endpoint do seu AI Gateway e <databricks_pat_token> pelo seu token de acesso pessoal.

Passo 2 (opcional): Configurar a recolha de métricas do OpenTelemetry

Consulte Configurar a recolha de dados OpenTelemetry para detalhes sobre a exportação de métricas e registos do Código Claude para tabelas Delta geridas pelo Unity Catalog.

Painel de Controlo

Depois de o uso do agente de codificação ser rastreado através do AI Gateway, pode visualizar e monitorizar as suas métricas no painel de controlo predefinido.

Para aceder ao painel, selecione Ver painel na página do AI Gateway. Isto cria um painel pré-configurado com gráficos para utilização de ferramentas de programação.

Ver botão do painel de instrumentos

Painel de agentes de codificação

Configurar a recolha de dados OpenTelemetry

O Azure Databricks suporta a exportação de métricas e registos do OpenTelemetry do Claude Code para tabelas Delta geridas pelo Unity Catalog. Todas as métricas são dados de séries temporais exportadas usando o protocolo padrão de métricas OpenTelemetry, e os registos são exportados usando o protocolo de registos OpenTelemetry. Para métricas e eventos disponíveis, consulte o código Claude para monitorizar a utilização.

Requerimentos

Passo 1: Criar tabelas OpenTelemetry no Catálogo Unity

Crie tabelas geridas no Unity Catalog pré-configuradas com os esquemas de métricas e logs do OpenTelemetry.

Tabela de métricas

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 de registos

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

Passo 2: Atualizar o ficheiro de definições Claude Code

Adicione as seguintes variáveis de ambiente ao env bloco no seu ~/.claude/settings.json ficheiro para permitir a exportação de métricas e registos:

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

Substitua o seguinte:

  • <workspace-url> com a URL do seu espaço de trabalho Azure Databricks.
  • <databricks_pat_token> com o seu token de acesso pessoal.
  • <catalog>.<schema>.<table_prefix> com o prefixo de catálogo, esquema e tabela utilizado na criação das tabelas OpenTelemetry.

Observação

O OTEL_METRIC_EXPORT_INTERVAL padrão é de 60000 ms (60 segundos). O exemplo acima define para 10000 ms (10 segundos). O OTEL_LOGS_EXPORT_INTERVAL padrão é de 5000 ms (5 segundos).

Passo 3: Executar o Código Claude

claude

Os seus dados devem propagar-se para as tabelas do Catálogo Unity em 5 minutos.

Próximos passos