將代理人與工具連結起來

將代理與工具連結,賦予他們超越文字產生的實用功能,例如搜尋文件、查詢資料表、呼叫外部 API,或執行自訂程式碼。

你的代理程式碼(以 LangGraph 或 OpenAI SDK 等框架建構),以及像 Claude Code 和 Cursor 這類程式設計助理,會透過 Databricks 中三條受控的路徑,經由 MCP 呼叫工具:MCP Services 用於 GitHub 和 Slack 等第三方工具、託管於 Databricks Apps 上且供自訂工具使用的自有 MCP 伺服器,以及用於 Databricks 資料與程式碼的受管理 MCP 伺服器;以上全部都在 Unity Catalog 中透過授權、原則與稽核進行治理。

此圖顯示 MCP 路徑,Azure Databricks 建議大多數整合採用此路徑。 MCP 是連接代理與外部服務的多種方式之一。 除了 MCP 服務外,你也可以直接透過 Unity Catalog 的 HTTP 連線呼叫 REST API。 選擇 Managed OAuth 以依使用者進行驗證、選擇 Unity Catalog 連線代理程式 以從代理程式碼呼叫 API,或選擇用來包裝 http_request()Unity Catalog 函式工具。 下表總結了從 Azure Databricks 資料到外部服務的各種連接方式:

Approach 建議使用案例
適用於 Azure Databricks 資料的受控 MCP 伺服器 使用此方法查詢 Azure Databricks 資料,並搭配現成的 Genie、Databricks AI Search、Databricks SQL 及 Unity Catalog 函式 MCP 伺服器執行受控函式。
外部 MCP 伺服器 對於發布 MCP 伺服器的服務,請使用此方法。 它提供透過 Unity AI Gateway 自動發現工具與受控存取。
管理型 OAuth 此方法可用於 Google Drive 或 SharePoint 整合。 Azure Databricks 管理 OAuth 憑證,因此不需要應用程式註冊。
Unity 目錄連接代理 使用此方法直接從代理程式碼中呼叫 REST API,並使用外部服務的客戶端 SDK。
Unity 目錄功能工具 將此方法用於以 SQL 為基礎的工具定義,封裝 http_request() 函式。

適用於 Azure Databricks 資料的受控 MCP 伺服器

Azure Databricks 提供現成可用的管理型 MCP 伺服器,讓代理程式能受控存取你工作空間中的資料和功能,無需建置或託管伺服器。 每台伺服器都有專屬的 URL 與 OAuth 範圍,Unity 目錄負責存取:

  • Genie:在 Genie 代理與 Unity 目錄資料表中以自然語言查詢結構化資料。
  • Databricks AI 搜尋(向量搜尋):在向量搜尋索引中搜尋文件。
  • Databricks SQL:對 Unity 目錄資料表執行 SQL 查詢。
  • Unity 目錄函式:呼叫在 Unity 目錄中註冊的自訂 Python 與 SQL 函式。

關於伺服器網址、OAuth 範圍及完整目錄,請參見 Azure Databricks managed MCP servers。 若要從代理程式呼叫這些伺服器,請參見「 在代理中使用 MCP 伺服器」。

外部 MCP 伺服器

將你的客服人員連接到外部應用程式,如 Slack、Google 行事曆,或任何有 API 的服務。 Azure Databricks 根據外部服務是否有 MCP 伺服器、是否需要逐用戶驗證,或是偏好直接從代理程式碼呼叫 API 提供多種方法。 所有方法都依賴 Unity Catalog HTTP 連線,提供安全且受控的憑證管理,並支援多種認證方法,包括 OAuth 2.0 使用者對機器(U2M)及機器對機器(M2M)認證。

如果外部服務有可用的 MCP 伺服器,Azure Databricks 建議將其註冊為 Unity 目錄中的 MCP 服務。 MCP 服務透過 Unity AI Gateway 提供自動工具探索、每位使用者的驗證與治理,以及授權、工具選取和服務政策。

對於常見的軟體即服務(SaaS)工具,如 Slack、GitHub 和 Google Drive,Azure Databricks 提供無需設定即可使用的 MCP 服務。 請參閱 Databricks 提供的 MCP 服務

管理型 OAuth

Azure Databricks 提供受管理的 OAuth 流程給部分 API 工具提供者。 你不需要註冊自己的 OAuth 應用程式或管理憑證。 Azure Databricks 推薦 Managed OAuth 用於開發與測試。 若生產環境使用情境需要產生自訂 OAuth 憑證,請參閱供應商文件以獲得更多資訊。

以下整合使用由 Azure Databricks 管理並安全儲存的 OAuth 憑證。

Provider 配置說明 支援的範圍 Description
Google Drive API None https://www.googleapis.com/auth/drive.readonly https://www.googleapis.com/auth/documents.readonly https://www.googleapis.com/auth/spreadsheets.readonly offline_access 僅讀 Google 雲端硬碟檔案存取,包括 Google 文件和 Google 試算表。
Gmail API None https://www.googleapis.com/auth/gmail.readonly offline_access Gmail 訊息、討論串、草稿和標籤的唯讀存取。
Google 日曆 API None https://www.googleapis.com/auth/calendar.readonly offline_access 對 Google 日曆事件、日曆和空閒/忙碌資訊的唯讀存取權限。
SharePoint API None https://graph.microsoft.com/User.Read https://graph.microsoft.com/User.ReadBasic.All https://graph.microsoft.com/Sites.Read.All https://graph.microsoft.com/Files.Read https://graph.microsoft.com/Files.Read.All https://graph.microsoft.com/Mail.Read https://graph.microsoft.com/Mail.ReadBasic https://graph.microsoft.com/Mail.Read.Shared https://graph.microsoft.com/MailboxFolder.Read https://graph.microsoft.com/MailboxItem.Read https://graph.microsoft.com/Calendars.Read https://graph.microsoft.com/Calendars.Read.Shared https://graph.microsoft.com/Chat.Read https://graph.microsoft.com/Chat.ReadBasic https://graph.microsoft.com/ChatMember.Read https://graph.microsoft.com/ChatMessage.Read https://graph.microsoft.com/Channel.ReadBasic.All https://graph.microsoft.com/ChannelMessage.Read.All https://graph.microsoft.com/OnlineMeetings.Read https://graph.microsoft.com/OnlineMeetingTranscript.Read.All https://graph.microsoft.com/OnlineMeetingAiInsight.Read https://graph.microsoft.com/OnlineMeetingArtifact.Read.All https://graph.microsoft.com/OnlineMeetingRecording.Read.All offline_access openid profile email 透過 Microsoft Graph 可唯讀存取 SharePoint 與 OneDrive 檔案、Outlook 郵件與行事曆,以及 Microsoft Teams 聊天、頻道和會議。

要設定受管理的 OAuth,請建立一個 HTTP 連線,使用 OAuth 使用者對機器每位使用者 的認證類型,然後從 OAuth 提供者 下拉式選單中選擇你的提供者。 詳細步驟請參見 建立與外部服務的連線

提供者會在首次使用時提示每位使用者授權。

如有需要,請將受管理的 OAuth 所使用的下列重新導向 URI 加入允許清單:

重新導向 URI
AWS https://oregon.cloud.databricks.com/api/2.0/http/oauth/redirect
Azure https://westus.azuredatabricks.net/api/2.0/http/oauth/redirect
GCP https://us-central1.gcp.databricks.com/api/2.0/http/oauth/redirect

對於已公開 MCP 伺服器的託管 OAuth 提供者,如 Glean、GitHub、Atlassian 和 Slack,Azure Databricks 可以在你註冊伺服器為 MCP 服務時管理 OAuth 憑證。 請參閱 代管 OAuth 提供者

Unity Catalog 連接代理端點

使用 Unity Catalog 的 Connections 代理端點 ,搭配外部服務的客戶端 SDK 直接從代理程式碼呼叫 REST API。 將 SDK 的基礎 URL 指向代理端點,並使用 Azure Databricks 令牌作為 API 金鑰。 Azure Databricks 會驗證請求,並自動從 Unity 目錄連線注入外部服務的憑證。 你的程式碼不會直接處理外部服務的標記。

所需權限:USE CONNECTION 在連接物件上。

OpenAI

DatabricksOpenAI 來透過 Unity Catalog 連線代理將呼叫路由到外部 OpenAI。 首先,使用你儲存在 Databricks 秘密中的 OpenAI API 金鑰建立一個 Unity Catalog HTTP 連線:

CREATE CONNECTION openai_connection TYPE HTTP
OPTIONS (
  host 'https://api.openai.com',
  base_path '/v1',
  bearer_token secret ('<secret-scope>', '<secret-key>')
);

接著安裝套件 databricks-openai ,並在代理程式碼中使用代理 URL 和工作空間客戶端:

pip install databricks-openai
from databricks_openai import DatabricksOpenAI
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

client = DatabricksOpenAI(
    workspace_client=w,
    base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/openai_connection/proxy/",
)

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

Slack

設定 Slack SDK 讓它透過 Unity Catalog 連線代理路由。 建立一個 Unity Catalog HTTP 連線,包含主機 https://slack.com 和基礎路徑 /api,然後使用代理 URL 作為 SDK 的基礎 URL:

from slack_sdk import WebClient
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

client = WebClient(
    token=w.config.authenticate()["Authorization"].split(" ")[1],
    base_url=f"{w.config.host}/api/2.0/unity-catalog/connections/slack_connection/proxy/",
)

result = client.chat_postMessage(channel="C123456", text="Hello from Databricks!")
print(result["message"]["text"])

泛型 ODBC

對於沒有專用 SDK 的服務,請直接使用帶有代理網址的 requests 函式庫:

import requests
from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

response = requests.post(
    f"{w.config.host}/api/2.0/unity-catalog/connections/my_connection/proxy/api/v1/resource",
    headers={
        **w.config.authenticate(),
        "Content-Type": "application/json",
    },
    json={"key": "value"},
)

關於代理端點、支援的認證方法及連線設定的詳細資訊,請參閱 透過 HTTP 連線代理轉發請求

Unity Catalog 函數工具

Note

Azure Databricks 建議使用 MCP ServicesUnity Catalog 的 Connections proxy 來進行新的整合。 搭配 http_request 的 Unity Catalog 函式工具仍受支援,但已不再是建議採用的做法。

你可以建立一個 Unity 目錄函式,讓它繞過 http_request() 來呼叫外部服務。 這種方法對於基於 SQL 的工具定義非常有用,例如將訊息發佈到 Slack 的函式。 完整攻略,包括 SQL 範例及連線類型限制,請參見 「呼叫外部 http_request API(舊有)」。

筆記本範例

以下筆記本示範如何建立可連接 Slack、OpenAI 及 Azure AI 搜尋服務 的 AI 代理工具。

Slack 傳訊代理程式工具

拿筆記本

Microsoft 圖形 API 代理工具

拿筆記本

Azure AI 搜索代理工具

拿筆記本

關於如何將代理人員連接到 Microsoft Teams 的導覽,請參見「Connect a AI agent to Microsoft Teams」。

其他資源