AI 代理通常需要查询或作结构化数据来回答问题、更新记录或创建数据管道。
Databricks 提供了多种方法,用于将代理连接到 Unity 目录表和外部数据存储中的结构化数据。 使用预配置的 MCP 服务器立即访问 Genie 空间和 SQL 仓库,或为专用工作流生成自定义工具。
本页演示如何:
查询 Unity 目录表中的数据
如果您的代理需要查询 Unity Catalog 表中的数据,Databricks 建议使用 Genie spaces。 Genie 空间是一个由最多 25 个 Unity Catalog 表组成的集合,Genie 可以使用自然语言进行上下文管理和查询。 代理可以使用预配置的 MCP URL 访问 Genie 空间。
连接到Genie空间:
- 使用要查询的表创建 Genie 空间,并与必须访问该空间的用户或服务主体共享空间。 请参阅设置和管理 AI/BI Genie 空间。
- 创建代理并将其连接到空间的预配置的托管 MCP URL:
https://<workspace-hostname>/api/2.0/mcp/genie/{genie_space_id}。
若要了解如何创作连接到托管 MCP 服务器的代理,请参阅 使用 Databricks 托管 MCP 服务器。
注释
Genie 的托管 MCP 服务器调用 Genie 作为 MCP 工具,这意味着调用 Genie API 时不会传递历史记录。
Genie 多代理系统
重要说明
此功能目前以公共预览版提供。
对于高级多代理系统,还可以使用 Genie 作为代理,而不是使用 MCP 集成它。 将 Genie 称为代理时,可以确定性地将现有聊天上下文传递给 Genie。
有关代码优先方法,请参阅在多代理系统中使用 Genie(模型服务)。 有关 UI 优先策略,请参阅 使用 Agent Bricks:Supervisor Agent 来创建协调的多代理系统。
使用 Unity 目录 SQL 函数工具查询数据
当提前知道查询并且代理提供参数时,使用 Unity 目录 SQL 函数创建结构化检索工具。
以下示例创建一个名为lookup_customer_info的 Unity Catalog 函数,该函数允许 AI 代理从假设的 customer_data 表检索结构化数据。
在 SQL 编辑器中运行以下代码。
CREATE OR REPLACE FUNCTION main.default.lookup_customer_info(
customer_name STRING COMMENT 'Name of the customer whose info to look up'
)
RETURNS STRING
COMMENT 'Returns metadata about a particular customer, given the customer's name, including the customer's email and ID. The
customer ID can be used for other queries.'
RETURN SELECT CONCAT(
'Customer ID: ', customer_id, ', ',
'Customer Email: ', customer_email
)
FROM main.default.customer_data
WHERE customer_name = customer_name
LIMIT 1;
创建 Unity 目录工具后,将其添加到代理。 请参阅 “创建代理”工具。