Important
這項功能目前處於 公開預覽版。
瞭解如何使用 HTTP 要求,將 AI 代理程式工具 連線到 Slack、Google Calendar 或任何服務與 API 的外部應用程式。 代理程式可以使用外部連線的工具,將工作自動化、傳送訊息,以及從第三方平臺擷取數據。
Requirements
- 為您的外部應用程式建立 Unity 目錄 HTTP 連線 。 Unity 目錄連線提供安全、受控管的認證管理,並支援多種標準驗證方法,包括 OAuth 2.0 使用者對機器和機器對機器驗證。
使用外部 MCP 伺服器中的工具
如果您要連線的外部服務有可用的 MCP 伺服器,則連線代理程式的最簡單方法是透過 外部 MCP 伺服器。 此方法提供:
- 自動工具發現:MCP 伺服器使用標準 API 公開所有可用工具。
- 簡化整合: 使用標準 SDK 連接和執行工具。
- 減少維護:工具定義由外部 MCP 伺服器集中管理。
如需詳細指示,請參閱 使用外部 MCP 伺服器 。
在代理程式代碼中建立工具
若要使用 Python 將 HTTP 請求傳送至外部服務,請使用程式庫中的 databricks-sdk 函式。 此函式會使用 Unity 目錄連線來驗證,將 HTTP 要求傳送至外部服務。
所需權限:USE CONNECTION 在連接物件上。
下列範例會從代理程式碼內部提出外部 HTTP 要求。
from databricks.sdk import WorkspaceClient
from databricks.sdk.service.serving import ExternalFunctionRequestHttpMethod
WorkspaceClient().serving_endpoints.http_request(
conn="connection_name",
method=ExternalFunctionRequestHttpMethod.POST,
path="/api/v1/resource",
json={"key": "value"},
headers={"extra_header_key": "extra_header_value"},
)
-
conn:指定主機、埠、base_path和存取認證的連接物件。 -
method:用來進行呼叫的 HTTP 要求方法。 例如:GET、POST、PUT、DELETE -
path:在叫用服務資源base_path之後串連的路徑。 -
json:要隨請求一起傳送的 JSON 主體。 -
headers:用於指定請求標頭的映射表。
建立 Unity Catalog 功能工具
Note
具有 http_request 的 SQL 存取被封鎖,適用於用戶到機器的每位使用者連接類型。 請改用 Python Databricks SDK。
建立 HTTP 連線並測試其運作正常之後,請建立使用連線的 Unity Catalog 函式。 下列範例會建立 Unity Catalog 函式工具,讓代理程式可用來將訊息張貼至 Slack:
CREATE OR REPLACE FUNCTION main.default.slack_post_message(
text STRING COMMENT 'message content'
)
RETURNS STRING
COMMENT 'Sends a Slack message by passing in the message and returns the response received from the external service.'
RETURN (http_request(
conn => 'test_sql_slack',
method => 'POST',
path => '/api/chat.postMessage',
json => to_json(named_struct(
'channel', "C032G2DAH3",
'text', text
))
)).text
請參閱 CREATE FUNCTION (SQL 和 Python)。
筆記本範例
將代理程式連線至 Slack
請參閱 將 AI 代理程式連線到 Slack。
將客服專員連線到 Microsoft Teams
請參閱將 AI 代理程式連線到 Microsoft Teams。
外部連線工具
下列筆記本示範如何建立連線到 Slack、OpenAI 和 Azure AI 搜尋的 AI 代理程式工具。
Slack 傳訊代理程式工具
Microsoft Graph API 代理程式工具
Azure AI 搜尋代理程式工具
局限性
- 外部 MCP 連線不支援使用 Private Link 與 VPC 中資源的私有連線。 如果您的 AI 代理程式需要連線至 VPC 中的資源,請聯絡您的支援團隊。