Aller au contenu principal

Intégrer avec des agents de codage

info

Bêta

Cette fonctionnalité est en Bêta. Les administrateurs de compte peuvent contrôler l'accès à cette fonctionnalité depuis la page Aperçus de la console de compte. Consultez Gérer les aperçus Databricks.

Grâce à l’intégration des agents de codage Databricks, vous pouvez acheminer le trafic des agents de codage tels que Cursor, Gemini CLI et Codex CLI via les services de modèle dans Unity AI Gateway. Ceci fournit la limitation de débit, le suivi de l’utilisation et les tables d’inférence — avec tous les contrôles configurés au niveau du service de modèle, de l’utilisateur ou du groupe.

Fonctionnalités

  • Accès : Accès direct à divers outils de codage et modèles, le tout sous une seule facture.
  • Observabilité : Un tableau de bord unifié unique pour suivre l'utilisation, les dépenses et les indicateurs sur tous vos outils de codage.
  • **Gouvernance unifiée** : Les administrateurs peuvent gérer les autorisations de modèle et les limites de débit via Unity AI Gateway au niveau du service de modèle, de l'utilisateur ou du groupe.

Exigences

Configuration

La manière la plus rapide de démarrer est d'utiliser ucode, un CLI de Databricks qui installe, authentifie et configure les agents de codage pris en charge avec Unity AI Gateway en une seule commande.

Utilisez ucode (recommandé)

ucode (Unity AI Gateway Coding CLI) est le point d'entrée unique pour exécuter des agents de codage sur Unity AI Gateway. Il gère l'OAuth, écrit le fichier de configuration de chaque agent et achemine le trafic via tout serveur LLM ou MCP que vous avez enregistré. Agents pris en charge :

Étape 1 : installez ucode

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

Nécessite Python 3.12 ou version ultérieure et uv.

Étape 2 : Ouvrez un agent de codage

Exécutez l'agent que vous souhaitez. Au premier lancement, ucode vous invite à saisir l'URL de votre workspace Databricks, s'authentifie et écrit automatiquement le fichier de configuration de l'agent. Les lancements ultérieurs accèdent directement à l'agent.

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

ucode transmet les indicateurs après le nom de l'agent à l'outil sous-jacent, par exemple :

Bash
ucode codex --full-auto

Pour configurer plusieurs agents de codage en même temps, exécutez :

Bash
ucode configure

Pour enregistrer les serveurs MCP Databricks (fonctions Unity Catalog, AI Search, SQL Warehouses et connexions externes découvertes) auprès d'agents compatibles MCP :

Bash
ucode configure mcp

Pour consulter le récapitulatif de votre utilisation de Unity AI Gateway au cours des 7 derniers jours :

Bash
ucode usage

Pour la référence complète de la commande, exécutez :

Bash
ucode --help

Tableau de bord

Une fois que l'utilisation de l'agent de codage est suivie via Unity AI Gateway, vous pouvez consulter et surveiller vos métriques dans le tableau de bord intégré.

Pour ouvrir le tableau de bord, cliquez sur Gouverner en haut à droite de la page Unity AI Gateway, puis cliquez sur Tableau de bord d'utilisation . Le tableau de bord d'utilisation intégré comprend un onglet Coding Agents avec des graphes pour l'utilisation des outils de codage.

Tableau de bord de l'agent de codage

Configuration manuelle

Si vous préférez configurer vous-même les agents, suivez les instructions pour :

IDE Cursor

Pour configurer Cursor afin d'utiliser les services de modèle dans la passerelle d'IA Unity :

Étape 1 : Configurer l'URL de base et la clé API

  1. Ouvrez le Curseur et naviguez vers Paramètres > Paramètres du Curseur > Modèles > Clés API .

  2. Activez **Remplacer l'URL de base d'OpenAI** et saisissez l'URL :

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

    Remplacez <workspace-url> par l'URL de votre Databricks Workspace.

  3. Collez votre jeton d'accès personnel Databricks dans le champ Clé API OpenAI .

Étape 2 : Ajoutez des modèles personnalisés

  1. Cliquez sur + Ajouter un modèle personnalisé dans les paramètres du curseur.
  2. Ajoutez le nom de votre service de modèle (par exemple, system.ai.databricks-claude-opus-4-6) et activez le bouton bascule.
remarque

Actuellement, seuls les services de modèle fournis par Databricks sont pris en charge.

Étape 3 : testez l'intégration

  1. Ouvrez le mode Demande avec Cmd+L (macOS) ou Ctrl+L (Windows/Linux) et sélectionnez votre modèle.
  2. Envoyez un message. Toutes les requêtes passent maintenant par Databricks.

Codex CLI

Étape 1 : Installez ou mettez à jour Codex CLI

Installez ou mettez à jour vers Codex CLI version 0,118 ou ultérieure :

Bash
npm install -g @openai/codex@latest

Étape 2 : Créer ou mettre à jour le fichier de configuration Codex

Créer ou modifier le fichier de configuration du Codex à ~/.codex/config.toml:

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

Remplacez <workspace-url> par l'URL de votre Databricks Workspace.

Étape 3 : Authentifiez-vous à votre Workspace

remarque

Cette opération ne doit être effectuée qu'une seule fois. Vous n'avez pas besoin de vous réauthentifier chaque fois que vous start Codex.

Tout d'abord, assurez-vous d'avoir le CLI Databricks installé. Consultez Installer ou mettre à jour la CLI Databricks pour obtenir des instructions.

Ensuite, authentifiez-vous :

Bash
databricks auth login --host <workspace-url>

Remplacez <workspace-url> par l'URL de votre Databricks Workspace.

Étape 4 : Start Codex

Bash
codex

Pour changer de modèle, utilisez /model.

Gemini CLI

Étape 1 : installez la dernière version de Gemini CLI

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

Étape 2 : Configurez les variables d'environnement

Créez un fichier ~/.gemini/.env et ajoutez la configuration suivante. Consultez les documents d'authentification Gemini CLI pour plus de détails.

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>

Remplacez <workspace-url> par l'URL de votre workspace Databricks et <databricks_pat_token> par votre jeton d'accès personnel.

Configurer la collecte de données OpenTelemetry

Databricks prend en charge l'exportation des métriques OpenTelemetry et des logs des agents de codage vers les tables Delta gérées par Unity Catalog. Toutes les métriques sont des données de séries temporelles exportées à l'aide du protocole de métriques standard OpenTelemetry, et les logs sont exportés à l'aide du protocole de logs OpenTelemetry.

Exigences

Étape 1 : Créer des tables OpenTelemetry dans Unity Catalog

Créez des tables gérées par Unity Catalog préconfigurées avec les schémas de métriques et de logs OpenTelemetry.

Table de métriques

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

Table de logs

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

Étape 2 : mettez à jour les variables d'environnement de votre agent de codage

Dans tout agent de codage avec le support des métriques OpenTelemetry activé, configurez les variables d'environnement suivantes.

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

Étape 3 : Exécutez votre agent de codage.

Vos données devraient se propager vers les tables Unity Catalog dans les 5 minutes.

Étapes suivantes