Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Penting
Untuk kasus penggunaan baru, Databricks merekomendasikan penyebaran agen di Databricks Apps untuk kontrol penuh atas kode agen, konfigurasi server, dan alur kerja penyebaran. Lihat Menulis agen AI dan menyebarkannya di Aplikasi Databricks. Untuk memigrasikan agen yang ada, lihat Memigrasikan agen dari Model Melayani ke Aplikasi Databricks.
Agen AI sering kali perlu mengautentikasi ke sumber daya lain untuk menyelesaikan tugas. Misalnya, agen yang disebarkan mungkin perlu mengakses indeks Pencarian Vektor untuk mengkueri data yang tidak terstruktur atau Prompt Registry untuk memuat perintah dinamis.
Halaman ini mencakup metode autentikasi yang tersedia saat mengembangkan dan menyebarkan agen menggunakan Agent Framework.
Metode autentikasi
Tabel berikut membandingkan metode autentikasi yang tersedia. Anda dapat mencampur dan mencocokkan salah satu pendekatan ini:
| Metode | Deskripsi | Postur keamanan | Kompleksitas penyiapan |
|---|---|---|---|
| Passthrough autentikasi otomatis | Agen berjalan dengan izin pengguna yang menyebarkannya Databricks secara otomatis mengelola kredensial berumur pendek untuk sumber daya yang dideklarasikan |
Kredensial berumur pendek, rotasi otomatis | Rendah - mendeklarasikan dependensi pada waktu pengelogan |
| Autentikasi atas nama pengguna (OBO) | Agen berjalan dengan izin pengguna akhir yang membuat permintaan. | Menggunakan kredensial pengguna akhir dengan cakupan terbatas | Sedang - memerlukan deklarasi cakupan dan inisialisasi runtime |
| Autentikasi manual | Secara eksplisit memberikan kredensial menggunakan variabel lingkungan | Kredensial berumur panjang memerlukan pengelolaan rotasi | Tinggi - memerlukan manajemen kredensial manual |
Pilih metode autentikasi yang tepat untuk sumber daya Anda
Gunakan diagram alur ini untuk memilih metode autentikasi yang tepat untuk setiap sumber daya. Anda dapat menggabungkan metode sesuai kebutuhan, dan agen dapat menggunakan metode yang berbeda untuk setiap sumber daya tergantung pada kasus penggunaannya.
Apakah kontrol akses per pengguna atau audit yang diatribusikan pengguna diperlukan?
- Ya → Gunakan Autentikasi atas nama pengguna
- Tidak → Lanjutkan ke langkah 2
Apakah semua sumber daya mendukung autentikasi otomatis?
- Ya → Gunakan passthrough autentikasi otomatis (disarankan)
- Tidak ada → Menggunakan autentikasi Manual
Mengautentikasi pada server Databricks MCP
Untuk mengautentikasi ke server Databricks MCP, tentukan semua sumber daya yang dibutuhkan agen Anda pada waktu pengelogan.
Misalnya, jika agen Anda menggunakan URL server MCP yang tercantum di bawah ini, Anda harus menentukan semua indeks Pencarian Vektor dalam prod.customer_support skema dan prod.billing . Anda juga harus menentukan semua fungsi Unity Catalog di prod.billing:
https://<your-workspace-hostname>/api/2.0/mcp/vector-search/prod/customer_supporthttps://<your-workspace-hostname>/api/2.0/mcp/vector-search/prod/billinghttps://<your-workspace-hostname>/api/2.0/mcp/functions/prod/billing
Untuk menyederhanakan proses mengidentifikasi semua sumber daya dependen untuk server MCP terkelola, gunakan databricks-mcp paket databricks_mcp.DatabricksMCPClient().get_databricks_resources(<server_url>) PyPI untuk mengambil sumber daya yang diperlukan oleh server MCP terkelola.
Jika agen Anda meminta server MCP kustom yang dihosting di aplikasi Databricks, Anda dapat mengonfigurasi otorisasi dengan secara eksplisit menyertakan server sebagai sumber daya saat mencatat model Anda.
Penyambungan autentikasi otomatis
Passthrough autentikasi otomatis adalah cara paling sederhana untuk mengakses sumber daya yang dikelola Databricks. Deklarasikan dependensi sumber daya saat mencatat aktivitas agen, dan Databricks secara otomatis menyediakan, memutar, dan mengelola kredensial berumur pendek saat agen disebarkan.
Perilaku autentikasi ini mirip dengan perilaku "Jalankan sebagai pemilik" untuk dasbor Databricks. Sumber daya hilir, seperti tabel Unity Catalog, diakses menggunakan kredensial perwakilan layanan dengan akses hak istimewa terkecil hanya ke sumber daya yang dibutuhkan agen.
Cara kerja penerusan autentikasi otomatis
Saat agen dilayani di belakang titik akhir menggunakan passthrough autentikasi otomatis, Databricks melakukan langkah-langkah berikut:
Permintaan izin: Databricks memverifikasi bahwa pembuat endpoint dapat mengakses semua dependensi yang ditentukan selama logging agen.
Pembuatan dan pemberian prinsipal layanan: Prinsipal layanan dibuat untuk versi model agen dan secara otomatis diberikan akses baca ke sumber daya agen.
Nota
Prinsipal layanan yang dihasilkan sistem tidak muncul dalam daftar API atau antarmuka pengguna (UI). Jika versi model agen dihapus dari endpoint, maka prinsipal layanan akan dihapus juga.
Penyediaan dan rotasi kredensial: Kredensial jangka pendek (token OAuth M2M) untuk perwakilan layanan diterapkan pada titik akhir, memungkinkan kode agen untuk mengakses sumber daya Databricks. Databricks juga memperbarui kredensial, memastikan bahwa agen Anda terus memiliki akses aman ke sumber daya terkait.
Sumber daya yang didukung untuk penerusan autentikasi otomatis
Tabel berikut mencantumkan sumber daya Databricks yang mendukung penerusan autentikasi secara otomatis dan izin yang harus dimiliki oleh pembuat titik akhir saat mengkonfigurasi agen.
Nota
Sumber daya Katalog Unity juga memerlukan USE SCHEMA pada skema induk dan USE CATALOG pada katalog induk.
| Jenis sumber daya | Persetujuan | Versi MLflow minimum |
|---|---|---|
| Gudang SQL | Use Endpoint |
2.16.1 atau lebih tinggi |
| Titik akhir Layanan Model | Can Query |
2.13.1 atau lebih tinggi |
| Fungsi Katalog Unity | EXECUTE |
2.16.1 atau lebih tinggi |
| Ruang Angkasa Genie | Can Run |
2.17.1 atau lebih tinggi |
| Indeks Pencarian Vektor | Can Use |
2.13.1 atau lebih tinggi |
| Tabel Unity Catalog | SELECT |
2.18.0 atau lebih tinggi |
| Koneksi Katalog Unity | Use Connection |
2.17.1 atau lebih tinggi |
| Lakebase | databricks_superuser |
3.3.2 atau lebih tinggi |
Menerapkan passthrough autentikasi otomatis
Untuk mengaktifkan passthrough autentikasi otomatis, tentukan resource yang diperlukan saat Anda log masuk ke agen. Gunakan resources parameter dari log_model() API:
Nota
Ingatlah untuk mencatat semua sumber daya dependen hilir juga. Misalnya, jika Anda mencatat Genie Space, Anda juga harus mencatat tabelnya, SQL Warehouses, dan fungsi Unity Catalog.
import mlflow
from mlflow.models.resources import (
DatabricksVectorSearchIndex,
DatabricksServingEndpoint,
DatabricksSQLWarehouse,
DatabricksFunction,
DatabricksGenieSpace,
DatabricksTable,
DatabricksUCConnection,
DatabricksApp,
DatabricksLakebase
)
with mlflow.start_run():
logged_agent_info = mlflow.pyfunc.log_model(
python_model="agent.py",
artifact_path="agent",
input_example=input_example,
example_no_conversion=True,
# Specify resources for automatic authentication passthrough
resources=[
DatabricksVectorSearchIndex(index_name="prod.agents.databricks_docs_index"),
DatabricksServingEndpoint(endpoint_name="databricks-meta-llama-3-3-70b-instruct"),
DatabricksServingEndpoint(endpoint_name="databricks-bge-large-en"),
DatabricksSQLWarehouse(warehouse_id="your_warehouse_id"),
DatabricksFunction(function_name="ml.tools.python_exec"),
DatabricksGenieSpace(genie_space_id="your_genie_space_id"),
DatabricksTable(table_name="your_table_name"),
DatabricksUCConnection(connection_name="your_connection_name"),
DatabricksApp(app_name="app_name"),
DatabricksLakebase(database_instance_name="lakebase_instance_name"),
]
)
Autentikasi atas nama pengguna
Penting
Fitur ini ada di Pratinjau Umum.
Autentikasi atas nama pengguna (OBO) memungkinkan agen bertindak sebagai pengguna Databricks yang menjalankan kueri. Ini menyediakan:
- Akses per pengguna ke data sensitif
- Kontrol data yang mendetail yang diterapkan oleh Unity Catalog
- Token-token keamanan dibatasi cakupannya hanya untuk API yang diizinkan oleh agen Anda, dapat mengurangi risiko penyalahgunaan.
Persyaratan
- Autentikasi atas nama pengguna memerlukan MLflow 2.22.1 ke atas.
- Autentikasi atas nama pengguna dinonaktifkan secara default dan harus diaktifkan oleh admin ruang kerja. Tinjau pertimbangan keamanan sebelum mengaktifkan fitur ini.
Sumber daya yang didukung OBO
Pada titik akhir Model Serving, agen dengan autentikasi OBO hanya dapat mengakses sumber daya Databricks yang tercantum dalam tabel berikut. Sumber daya yang tidak tercantum di sini, seperti Volume Katalog Unity (unggah/unduh file), tidak didukung untuk OBO pada Model Serving.
Nota
Jika agen Anda memerlukan akses OBO ke sekumpulan sumber daya yang lebih luas, Databricks merekomendasikan penyebaran agen Anda di Aplikasi Databricks, yang mendukung cakupan OAuth tambahan. Lihat Memigrasikan agen dari Model Melayani ke Aplikasi Databricks.
| Sumber daya Databricks | Klien yang kompatibel |
|---|---|
| Indeks Pencarian Vektor |
databricks_langchain.VectorSearchRetrieverTool, databricks_openai.VectorSearchRetrieverTool, VectorSearchClient |
| Titik Akhir Penyajian Model | databricks.sdk.WorkspaceClient |
| Gudang SQL | databricks.sdk.WorkspaceClient |
| Koneksi UC | databricks.sdk.WorkspaceClient |
| Tabel dan Fungsi UC |
databricks.sdk.WorkspaceClient (Untuk mengakses tabel UC, Anda harus menggunakan kueri SQL menggunakan SQL Statement Execution API) |
| Ruang Angkasa Genie |
databricks.sdk.WorkspaceClient (disarankan), databricks_langchain.GenieAgent, atau databricks_ai_bridge.GenieAgent |
| Protokol Konteks Model (MCP) | databricks_mcp.DatabricksMCPClient |
Menerapkan autentikasi OBO
Untuk mengaktifkan autentikasi atas nama pengguna, selesaikan langkah-langkah berikut:
- Perbarui panggilan SDK untuk menentukan bahwa sumber daya diakses atas nama pengguna akhir.
- Perbarui kode agen untuk menginisialisasi akses OBO di dalam
predictfungsi, bukan di__init__, karena identitas pengguna hanya diketahui saat runtime. - Saat mencatat agen untuk penyebaran, nyatakan cakupan Databricks REST API yang diperlukan agen.
Cuplikan berikut menunjukkan cara mengonfigurasi akses atas nama pengguna ke sumber daya Databricks yang berbeda. Saat menginisialisasi perangkat, tangani kesalahan izin dengan lebih efektif dengan membungkus inisialisasi dalam blok try-except.
Alat Pengambilan Pencarian Vektor
from databricks.sdk import WorkspaceClient
from databricks_ai_bridge import ModelServingUserCredentials
from databricks_langchain import VectorSearchRetrieverTool
# Configure a Databricks SDK WorkspaceClient to use on behalf of end
# user authentication
user_client = WorkspaceClient(credentials_strategy = ModelServingUserCredentials())
vector_search_tools = []
# Exclude exception handling if the agent should fail
# when users lack access to all required Databricks resources
try:
tool = VectorSearchRetrieverTool(
index_name="<index_name>",
description="...",
tool_name="...",
workspace_client=user_client # Specify the user authorized client
)
vector_search_tools.append(tool)
except Exception as e:
_logger.debug("Skipping adding tool as user does not have permissions")
Aplikasi Pencarian Vektor
from databricks.vector_search.client import VectorSearchClient
from databricks.vector_search.utils import CredentialStrategy
# Configure a VectorSearch Client to use on behalf of end
# user authentication
user_authenticated_vsc = VectorSearchClient(credential_strategy=CredentialStrategy.MODEL_SERVING_USER_CREDENTIALS)
# Exclude exception handling if the agent should fail when
# users lack access to all required Databricks resources
try:
vs_index = user_authenticated_vsc.get_index(endpoint_name="endpoint_name", index_name="index_name")
...
except Exception as e:
_logger.debug("Skipping Vector Index because user does not have permissions")
MCP
from databricks.sdk import WorkspaceClient
from databricks_ai_bridge import ModelServingUserCredentials
from databricks_mcp import DatabricksMCPClient
# Configure a Databricks SDK WorkspaceClient to use on behalf of end
# user authentication
user_client = WorkspaceClient(credentials_strategy=ModelServingUserCredentials())
mcp_client = DatabricksMCPClient(
server_url="<mcp_server_url>",
workspace_client=user_client, # Specify the user client here
)
Titik Akhir Penyajian Model
from databricks.sdk import WorkspaceClient
from databricks_ai_bridge import ModelServingUserCredentials
# Configure a Databricks SDK WorkspaceClient to use on behalf of end
# user authentication
user_client = WorkspaceClient(credentials_strategy=ModelServingUserCredentials())
# Exclude exception handling if the agent should fail
# when users lack access to all required Databricks resources
try:
user_client.serving_endpoints.query("endpoint_name", input="")
except Exception as e:
_logger.debug("Skipping Model Serving Endpoint due to no permissions")
Koneksi UC
import requests
from databricks.sdk import WorkspaceClient
from databricks_ai_bridge import ModelServingUserCredentials
# Configure a Databricks SDK WorkspaceClient to use on behalf of end
# user authentication
user_client = WorkspaceClient(credentials_strategy=ModelServingUserCredentials())
response = requests.post(
f"{user_client.config.host}/api/2.0/unity-catalog/connections/connection_name/proxy/api/v1/resource",
headers={
**user_client.config.authenticate(),
"Content-Type": "application/json",
},
json={"key": "value"},
)
Ruang Genie (WorkspaceClient)
from databricks_langchain.genie import GenieAgent
from databricks.sdk import WorkspaceClient
from databricks_ai_bridge import ModelServingUserCredentials
# Configure a Databricks SDK WorkspaceClient to use on behalf of end
# user authentication
user_client = WorkspaceClient(credentials_strategy=ModelServingUserCredentials())
genie_agent = GenieAgent(
genie_space_id="space-id",
genie_agent_name="Genie",
description="This Genie Space has access to sales data in Europe",
client=user_client
)
# Use the Genie SDK methods available through WorkspaceClient
try:
response = agent.invoke("Your query here")
except Exception as e:
_logger.debug("Skipping Genie due to no permissions")
Genie Spaces (LangChain)
from databricks.sdk import WorkspaceClient
from databricks_ai_bridge import ModelServingUserCredentials
from databricks_langchain.genie import GenieAgent
# Configure a Databricks SDK WorkspaceClient to use on behalf of end
# user authentication
user_client = WorkspaceClient(credentials_strategy=ModelServingUserCredentials())
genie_agent = GenieAgent(
genie_space_id="<genie_space_id>",
genie_agent_name="Genie",
description="Genie_description",
client=user_client, # Specify the user client here
)
Menginisialisasi agen dalam fungsi prediksi
Karena identitas pengguna hanya diketahui saat kueri, Anda harus mengakses sumber daya OBO di dalam predict atau predict_stream, bukan dalam metode agen __init__. Ini memastikan bahwa sumber daya terisolasi di antara pemanggilan.
from mlflow.pyfunc import ResponsesAgent
class OBOResponsesAgent(ResponsesAgent):
def initialize_agent():
user_client = WorkspaceClient(
credentials_strategy=ModelServingUserCredentials()
)
system_authorized_client = WorkspaceClient()
### Use the clients above to access resources with either system or user authentication
def predict(
self, request
) -> ResponsesAgentResponse:
agent = initialize_agent() # Initialize the Agent in Predict
agent.predict(request)
...
Mendeklarasikan cakupan REST API saat mencatat agen
Saat Anda mencatat agen OBO untuk penyebaran, Anda harus mencantumkan cakupan Databricks REST API yang dipanggil oleh agen Anda atas nama pengguna. Ini memastikan agen mengikuti prinsip hak istimewa paling sedikit: token dibatasi hanya untuk API yang diperlukan agen Anda, mengurangi kemungkinan tindakan yang tidak sah atau penyalahgunaan token.
Pada titik akhir Model Serving, Anda hanya dapat menggunakan cakupan yang sesuai dengan sumber daya yang didukung OBO yang tercantum di atas.
Untuk mengaktifkan autentikasi atas nama pengguna, teruskan MLflow AuthPolicy ke log_model():
import mlflow
from mlflow.models.auth_policy import AuthPolicy, SystemAuthPolicy, UserAuthPolicy
from mlflow.models.resources import DatabricksServingEndpoint
# System policy: resources accessed with system credentials
system_policy = SystemAuthPolicy(
resources=[DatabricksServingEndpoint(endpoint_name="my_endpoint")]
)
# User policy: API scopes for OBO access
user_policy = UserAuthPolicy(api_scopes=[
"model-serving",
"vector-search"
])
# Log the agent with both policies
with mlflow.start_run():
mlflow.pyfunc.log_model(
name="agent",
python_model="agent.py",
auth_policy=AuthPolicy(
system_auth_policy=system_policy,
user_auth_policy=user_policy
)
)
Autentikasi OBO untuk klien OpenAI
Untuk agen yang menggunakan klien OpenAI, gunakan Databricks SDK untuk mengautentikasi secara otomatis selama penyebaran. Databricks SDK memiliki pembungkus untuk membangun klien OpenAI dengan autentikasi yang dikonfigurasi secara otomatis, get_open_ai_client():
% pip install databricks-sdk[openai]
from databricks.sdk import WorkspaceClient
def openai_client(self):
w = WorkspaceClient()
return w.serving_endpoints.get_open_ai_client()
Kemudian tentukan titik akhir Model Serving di resources untuk mengautentikasi secara otomatis pada waktu penyebaran.
Pertimbangan keamanan OBO
Pertimbangkan pertimbangan keamanan berikut sebelum mengaktifkan autentikasi atas nama pengguna dengan agen.
Akses sumber daya yang diperluas: Agen dapat mengakses sumber daya sensitif atas nama pengguna. Meskipun cakupan membatasi API, titik akhir mungkin memungkinkan lebih banyak tindakan daripada yang diminta agen Anda secara eksplisit. Misalnya, cakupan API model-serving memberikan izin kepada agen untuk menjalankan endpoint layanan atas nama pengguna. Namun, titik akhir penyajian dapat mengakses cakupan API tambahan yang tidak diizinkan untuk digunakan oleh agen asli.
Contoh buku catatan OBO
Buku catatan berikut ini memperlihatkan kepada Anda cara membuat agen dengan Pencarian Vektor menggunakan otorisasi atas nama pengguna.
Atas Nama Otorisasi Pengguna dengan Penelusuran Vektor
Buku catatan berikut ini memperlihatkan kepada Anda cara membuat agen yang mendukung eksekusi SQL pada Gudang SQL menggunakan otorisasi atas nama pengguna. Ini memungkinkan agen untuk memanggil fungsi Katalog Unity dengan aman menggunakan kredensial pengguna.
Nota
Saat ini adalah cara yang direkomendasikan untuk menjalankan Fungsi UC dengan OBO, karena Eksekusi Spark Tanpa Server dengan OBO belum didukung.
Atas Nama Otorisasi Pengguna untuk Eksekusi Perintah SQL
Autentikasi manual
Autentikasi manual memungkinkan kredensial ditentukan dengan jelas selama instalasi agen. Metode ini memiliki fleksibilitas paling besar tetapi membutuhkan lebih banyak pengaturan dan manajemen kredensial yang sedang berlangsung. Gunakan metode ini ketika:
- Sumber daya dependen tidak mendukung pengalihan autentikasi otomatis
- Agen perlu menggunakan kredensial selain kredensial penyebar agen
- Agen mengakses sumber daya eksternal atau API di luar Databricks
- Agen yang disebarkan mengakses registri prompt
Penting
Mengesampingkan variabel lingkungan keamanan menonaktifkan passthrough otomatis untuk sumber daya lain yang bergantung pada agen Anda.
Autentikasi OAuth (disarankan)
OAuth adalah pendekatan yang direkomendasikan untuk autentikasi manual karena memiliki autentikasi berbasis token yang aman untuk perwakilan layanan dengan kemampuan refresh token otomatis:
Beri izin kepada prinsipal layanan untuk sumber daya Databricks apa pun yang dapat diakses agen dengan hak istimewa untuk mengakses sumber daya Databricks. Untuk mengakses registri prompt, berikan izin pada
CREATE FUNCTION,EXECUTE, danMANAGEdalam skema Katalog Unity untuk menyimpan prompt.Buat rahasia databricks untuk kredensial OAuth.
Konfigurasikan kredensial OAuth dalam kode agen:
import os # Configure OAuth authentication for Prompt Registry access # Replace with actual secret scope and key names secret_scope_name = "your-secret-scope" client_id_key = "oauth-client-id" client_secret_key = "oauth-client-secret" os.environ["DATABRICKS_HOST"] = "https://<your-workspace-url>" os.environ["DATABRICKS_CLIENT_ID"] = dbutils.secrets.get(scope=secret_scope_name, key=client_id_key) os.environ["DATABRICKS_CLIENT_SECRET"] = dbutils.secrets.get(scope=secret_scope_name, key=client_secret_key)Gunakan rahasia (kunci) untuk terhubung dengan ruang kerja:
w = WorkspaceClient( host=os.environ["DATABRICKS_HOST"], client_id=os.environ["DATABRICKS_CLIENT_ID"], client_secret = os.environ["DATABRICKS_CLIENT_SECRET"] )Saat menyebarkan dengan
agents.deploy(), sertakan kredensial OAuth sebagai variabel lingkungan:agents.deploy( UC_MODEL_NAME, uc_registered_model_info.version, environment_vars={ "DATABRICKS_HOST": "https://<your-workspace-url>", "DATABRICKS_CLIENT_ID": f"{{{{secrets/{secret_scope_name}/{client_id_key}}}}}", "DATABRICKS_CLIENT_SECRET": f"{{{{secrets/{secret_scope_name}/{client_secret_key}}}}}" }, )
Autentikasi PAT
Autentikasi Token Akses Pribadi (PAT) menyediakan pengaturan yang lebih sederhana untuk lingkungan pengembangan dan pengujian, meskipun memerlukan manajemen kredensial yang lebih manual:
Dapatkan PAT menggunakan prinsipal layanan atau akun pribadi:
Principal Layanan (disarankan untuk keamanan):
- Buat prinsipal layanan.
- Beri izin kepada prinsipal layanan untuk sumber daya Databricks apa pun yang dapat diakses agen dengan hak istimewa untuk mengakses sumber daya Databricks. Untuk mengakses registri prompt, berikan izin pada
CREATE FUNCTION,EXECUTE, danMANAGEdalam skema Unity Catalog yang digunakan untuk menyimpan prompt. - Buat PAT untuk prinsipal layanan.
Akun pribadi:
Simpan PAT dengan aman dengan membuat rahasia Databricks untuk PAT.
Konfigurasikan autentikasi PAT dalam kode agen:
import os # Configure PAT authentication for Prompt Registry access # Replace with your actual secret scope and key names secret_scope_name = "your-secret-scope" secret_key_name = "your-pat-key" os.environ["DATABRICKS_HOST"] = "https://<your-workspace-url>" os.environ["DATABRICKS_TOKEN"] = dbutils.secrets.get(scope=secret_scope_name, key=secret_key_name) # Validate configuration assert os.environ["DATABRICKS_HOST"], "DATABRICKS_HOST must be set" assert os.environ["DATABRICKS_TOKEN"], "DATABRICKS_TOKEN must be set"Saat menyebarkan agen menggunakan
agents.deploy(), sertakan PAT sebagai variabel lingkungan:agents.deploy( UC_MODEL_NAME, uc_registered_model_info.version, environment_vars={ "DATABRICKS_HOST": "https://<your-workspace-url>", "DATABRICKS_TOKEN": f"{{{{secrets/{secret_scope_name}/{secret_key_name}}}}}" }, )