Important
此功能目前以公共预览版提供。
了解如何使用 HTTP 请求将 AI 代理工具 连接到外部应用程序,如 Slack、Google Calendar 或任何具有 API 的服务。 代理可以使用外部连接的工具自动执行任务、发送消息以及从第三方平台检索数据。
Requirements
- 为该外部应用程序创建 Unity Catalog HTTP 连接。 Unity 目录连接提供安全、受治理的凭据管理和支持多种标准身份验证方法,包括 OAuth 2.0 用户到计算机和计算机到计算机身份验证。
使用外部 MCP 服务器中的工具
如果要连接到的外部服务提供 MCP 服务器,则连接代理的最简单方法是通过 外部 MCP 服务器。 此方法提供:
- 自动工具发现:MCP 服务器使用标准 API 公开所有可用工具。
- 简化集成:使用标准 SDK 连接和执行工具。
- 减少维护:工具定义由外部 MCP 服务器集中管理。
有关详细说明,请参阅 使用外部 MCP 服务器 。
在代理代码中创建工具
若要使用 Python 将 HTTP 请求发送到外部服务,请使用库中 的 http_request 函数 databricks-sdk 。 此函数使用 Unity Catalog 连接向外部服务发送进行身份验证的 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 目录函数。 以下示例创建一个 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 连接不支持与使用专用链接的 MCU 中的资源建立专用连接。 如果你的 AI 代理需要连接到你的 VPC 中的资源,请联系你的支持团队。