Important
이 기능은 베타 버전으로 제공됩니다. 계정 관리자는 계정 콘솔 미리 보기 페이지에서 이 기능에 대한 액세스를 제어할 수 있습니다. Azure Databricks 미리 보기 관리를 참조하세요.
Azure Databricks 코딩 에이전트 통합을 사용하면 Unity AI Gateway의 모델 서비스를 통해 커서, Gemini CLI 및 Codex CLI와 같은 코딩 에이전트의 트래픽을 라우팅할 수 있습니다. 모델 서비스, 사용자 또는 그룹 수준에서 구성된 모든 컨트롤을 사용하여 속도 제한, 사용량 추적 및 유추 테이블을 제공합니다.
Features
- 액세스: 하나의 청구서 아래에 있는 다양한 코딩 도구 및 모델에 직접 액세스합니다.
- 관찰 가능성: 모든 코딩 도구에서 사용량, 지출 및 메트릭을 추적하는 단일 통합 대시보드입니다.
- 통합 거버넌스: 관리자는 모델 서비스, 사용자 또는 그룹 수준에서 Unity AI Gateway를 통해 모델 권한 및 속도 제한을 관리할 수 있습니다.
Requirements
- 계정에 대해 Unity AI Gateway 미리 보기가 사용하도록 설정되었습니다. Azure Databricks 미리 보기 관리를 참조하세요.
- Azure Databricks 작업 영역은 유니티 AI 게이트웨이 지원 지역.
- 작업 영역에서 Unity 카탈로그가 사용하도록 설정되었습니다. Unity 카탈로그에 작업 영역 사용을 참조하세요.
설치
가장 빠른 시작 방법은 하나의 명령으로 Unity AI Gateway를 사용하여 지원되는 코딩 에이전트를 설치, 인증 및 구성하는 Azure Databricks CLI인 ucode 사용하는 것입니다.
ucode 사용(권장)
ucode (Unity AI Gateway 코딩 CLI)는 Unity AI Gateway에 대한 코딩 에이전트를 실행하기 위한 단일 진입점입니다. OAuth를 처리하고, 각 에이전트의 구성 파일을 작성하고, 등록한 LLM 또는 MCP 서버를 통해 트래픽을 라우팅합니다. 지원되는 에이전트:
- Codex CLI
- Gemini CLI
- OpenCode
- GitHub Copilot CLI
- Pi
- 추가 기능 및 사항
1단계: ucode 설치
uv tool install git+https://github.com/databricks/ucode
Python 3.12 이상 및 uv 필요합니다.
2단계: 코딩 에이전트 열기
원하는 에이전트를 실행합니다. 처음 시작할 때 ucode Azure Databricks 작업 영역 URL을 묻는 메시지를 표시하고, 에이전트의 구성 파일을 자동으로 인증하고 씁니다. 후속 실행은 바로 에이전트로 전달됩니다.
ucode codex # OpenAI Codex
ucode gemini # Gemini CLI
ucode opencode # OpenCode
ucode copilot # GitHub Copilot CLI
ucode pi # Pi
ucode 에이전트 이름 뒤의 플래그를 기본 도구로 전달합니다. 예를 들면 다음과 같습니다.
ucode codex --full-auto
여러 코딩 에이전트를 동시에 구성하려면 다음을 실행합니다.
ucode configure
MCP 지원 에이전트에 Azure Databricks MCP 서버(Unity 카탈로그 함수, AI Search, SQL 웨어하우스 및 검색된 외부 연결)를 등록하려면 다음을 수행합니다.
ucode configure mcp
지난 7일 동안의 Unity AI Gateway 사용 요약을 보려면 다음을 수행합니다.
ucode usage
전체 명령 참조에 대해 다음을 실행합니다.
ucode --help
Dashboard
Unity AI Gateway를 통해 코딩 에이전트 사용량을 추적한 후 기본 제공 대시보드에서 메트릭을 보고 모니터링할 수 있습니다.
대시보드를 열려면 AI 게이트웨이 페이지에서 대시보드 보기를 선택합니다. 이 작업은 코딩 도구 사용을 위한 그래프가 있는 미리 구성된 대시보드를 만듭니다.
수동 설치
에이전트를 직접 구성하려면 다음 지침을 따르세요.
커서 IDE
Unity AI 게이트웨이에서 모델 서비스를 사용하도록 커서를 구성하려면 다음을 수행합니다.
1단계: 기본 URL 및 API 키 구성
커서를 열고 설정>커서 설정>모델>API 키로 이동합니다.
OpenAI 기본 URL 재정의를 사용하도록 설정하고 URL을 입력합니다.
https://<workspace-url>/ai-gateway/cursor/v1<workspace-url>Azure Databricks 작업 영역 URL로 대체합니다.Azure Databricks 개인용 액세스 토큰을 OpenAI API 키 필드에 붙여넣습니다.
2단계: 사용자 지정 모델 추가
- 커서 설정에서 + 사용자 지정 모델 추가 를 클릭합니다.
- 모델 서비스 이름(예
system.ai.databricks-claude-opus-4-6: )을 추가하고 토글을 사용하도록 설정합니다.
메모
현재는 Azure Databricks 제공된 모델 서비스만 지원됩니다.
3단계: 통합 테스트
-
Cmd+L(macOS) 또는Ctrl+L(Windows/Linux)로 요청 모드를 열고 모델을 선택합니다. - 메시지를 보냅니다. 이제 모든 요청이 Azure Databricks를 통해 라우팅됩니다.
Codex 명령줄 인터페이스 (CLI)
1단계: Codex CLI 설치 또는 업데이트
Codex CLI 버전 0.118 이상을 설치하거나 업데이트합니다.
npm install -g @openai/codex@latest
2단계: Codex 구성 파일 만들기 또는 업데이트
다음 위치에서 Codex 구성 파일을 만들거나 편집합니다.~/.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
<workspace-url> Azure Databricks 작업 영역 URL로 대체합니다.
3단계: 작업 영역에 인증
메모
이 작업은 한 번만 수행하면 됩니다. Codex를 시작할 때마다 다시 인증할 필요가 없습니다.
먼저 Azure Databricks CLI가 설치되어 있는지 확인합니다. 지침 은 Databricks CLI 설치 또는 업데이트를 참조하세요.
그런 다음, 인증하세요.
databricks auth login --host <workspace-url>
<workspace-url> Azure Databricks 작업 영역 URL로 대체합니다.
4단계: Codex 시작
codex
모델을 변경하려면 .를 사용합니다 /model.
Gemini CLI
1단계: 최신 버전의 Gemini CLI 설치
npm install -g @google/gemini-cli@nightly
2단계: 환경 변수 구성
파일을 ~/.gemini/.env 만들고 다음 구성을 추가합니다. 자세한 내용은 Gemini CLI 인증 문서를 참조하세요 .
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>
<workspace-url> Azure Databricks 작업 영역 URL로 바꾸고 <databricks_pat_token> 개인용 액세스 토큰으로 대체합니다.
OpenTelemetry 데이터 수집 설정
Azure Databricks는 코딩 에이전트에서 Unity 카탈로그 관리 델타 테이블로 OpenTelemetry 메트릭 및 로그 내보내기를 지원합니다. 모든 메트릭은 OpenTelemetry 표준 메트릭 프로토콜을 사용하여 내보낸 시계열 데이터이며 로그는 OpenTelemetry 로그 프로토콜을 사용하여 내보냅니다.
Requirements
- Azure Databricks 미리 보기에서 OpenTelemetry를 사용하도록 설정했습니다. Azure Databricks 미리 보기 관리를 참조하세요.
1단계: Unity 카탈로그에서 OpenTelemetry 테이블 만들기
OpenTelemetry 메트릭 및 로그 스키마로 미리 구성된 Unity 카탈로그 관리 테이블을 만듭니다.
메트릭 테이블
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'
)
로그 테이블
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'
)
2단계: 코딩 에이전트에서 env vars 업데이트
OpenTelemetry 메트릭 지원을 사용하도록 설정된 코딩 에이전트에서 다음 환경 변수를 구성합니다.
{
"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"
}
3단계: 코딩 에이전트를 실행합니다.
데이터는 5분 이내에 Unity 카탈로그 테이블로 전파되어야 합니다.