使用监督程序代理创建协调的多代理系统

本页介绍如何使用监督程序代理创建多代理监督系统,该系统协调 AI 代理和工具,共同处理复杂的任务。 你可以根据主题专家的自然语言反馈来改进他们的协调。

什么是主管代理?

使用监督程序代理创建一个监督系统,用于协调 Genie Spaces、代理终结点、Unity 目录函数、MCP 服务器和自定义代理,共同完成跨不同专用域的复杂任务。 监督程序代理使用高级 AI 业务流程模式来管理代理交互、任务委派和结果合成,以提供全面的解决方案。 它支持多种语言。

监督程序代理会为你构建系统,并允许你随着时间的推移使用人工反馈对其进行改进。 它非常适合支持以下用例:

  • 通过搜索研究报告和使用情况数据来提供市场分析和见解。
  • 回答有关内部流程的问题,并为此自动化处理工单积压。
  • 通过回答策略、常见问题解答、帐户和其他问题来加快客户服务速度。

监督员代理使你能够改进主管的协调质量,并根据主题专家的自然语言反馈调整代理行为。 提供优化系统性能的示例和指南。

监控代理创建了一个综合终端点,可以被下游应用程序使用。 例如,可以通过在 Playground 中提交提示或使用 Databricks Apps 生成聊天应用程序来与终结点进行交互。 主管具有内置的访问控制,以便其最终用户仅访问其有权访问的子代理和数据。

监督程序代理使用 默认存储 来存储为每个代理提供支持的临时数据转换、模型检查点和内部元数据。 在代理删除时,将从默认存储中删除与代理关联的所有数据。

Requirements

支持的子代理和工具

警告

在代理工具中执行任意代码可能会公开代理有权访问的敏感信息或私有信息。 客户负责仅运行受信任的代码,并实施防护措施和适当的权限,以防止意外访问数据。

创建主管时,必须为其提供子代理,以便协调并授予最终用户对每个子代理的显式访问权限。 下表列出了支持的子代理类型、如何创建每个子代理以及所需的最终用户权限。 主管具有内置的访问控制,以便其最终用户仅访问其有权访问的子代理和数据。 如果没有显式访问,监督程序无法从子代理返回有用的响应。

子代理类型 创建方法 所需的最终用户权限
Genie Space 创建和管理 Genie Space 访问 Genie Space 及其底层 Unity Catalog 对象的权限。 请参阅 共享 Genie 空间
已发布的仪表板 创建仪表板,然后 发布仪表板 CAN VIEW 在已发布的仪表板上。 请参阅 “管理仪表板”权限
知识助理代理终结点 使用知识助手通过文档创建高质量的聊天机器人 CAN QUERY 用于智能体端点。 请参阅 “管理权限”。
模型服务终结点 创建自定义提供终结点的模型 CAN QUERY 用于服务端点。 请参阅 管理模型服务终结点的权限
Unity Catalog 函数 使用 Unity 目录函数创建 AI 代理工具 EXECUTE 用于 Unity Catalog 函数。 请参阅 EXECUTE
Unity Catalog 表 Azure Databricks 表 SELECT 用于表,以及 USE CATALOGUSE SCHEMA 用于其父目录和架构。 请参阅 Unity Catalog 权限参考
Unity Catalog 卷 什么是 Unity Catalog 容量? READ VOLUME 用于卷,以及 USE CATALOGUSE SCHEMA 用于其父目录和架构。 请参阅 Unity Catalog 权限参考
AI 搜索索引 创建 AI 搜索终结点和索引 USE CATALOG 在父目录上,USE SCHEMA 在父架构上,以及 SELECT 在 AI 搜索索引上。 请参阅 Unity Catalog 权限参考
管理代理 使用监督程序代理创建协调的多代理系统 CAN QUERY 用于主管智能体。 请参阅 步骤 4:管理权限
Web 搜索 内置功能 - 无需设置。 监督程序代理使用基础模型 API 进行 Web 搜索。 请参阅工作区资格 限制 没有其他权限。 主管始终提示最终用户在将查询发送到公共 Web 之前批准每个 Web 搜索调用,并返回包含源引文的合成答案。
外部 MCP 服务器 使用 MCP 服务将代理连接到第三方工具,或 从 Databricks 市场安装一个代理。 USE CONNECTION 用于 Unity Catalog 连接。 请参阅 USE CONNECTION
自定义 MCP 服务器 托管自己的 MCP 服务器 CAN_USE 用于 Databricks 应用。 请参阅 AI 代理的身份验证
自定义代理 创作 AI 代理并将其部署到 Databricks 应用 CAN_USE 用于 Databricks 应用。 请参阅 AI 代理的身份验证

创建多代理监督系统

转到“代理”图标。工作区左侧导航窗格中的代理。 单击“创建代理”,然后选择“监督程序”。

步骤 1:配置您的 Supervisor

配置您的 Supervisor 并添加它将协调的智能体。

“监督程序配置”页,其中左侧显示了“工具和子代理”窗格。

  1. 在左侧窗格中的工具和子代理下,添加你的工具和子代理。 单击要添加的工具/代理类型,然后从显示的下拉列表中进行选择。 或者,使用搜索栏选择工具/代理。 最多可以选择 30 个不同的代理和工具。

  2. 为了获得更好的结果,请为每个工具/子代理提供说明。 单击工具/子代理以调整说明。 Supervisor 会利用描述中的信息来协助协调智能体。 尽可能多地提供详细信息,以帮助改进其任务委派。

  3. 若要管理每个工具/代理的权限,请将鼠标悬停在工具/代理磁贴上,然后单击“新建窗口”图标。 这将在Azure Databricks中打开该工具/代理,可以从那里配置权限。 有关所需的最终用户权限,请参阅 支持的子代理和工具

    Note

    如果最终用户无权访问任何子代理,主管将结束对话。 如果最终用户有权访问某些子代理,但并非所有子代理,主管会将对话重定向到用户无法访问的子代理。

  4. (可选)在 “说明 ”字段中,指定主管应如何响应的准则。

  5. (可选)在 “说明 ”字段中,提供此主管执行的操作的摘要。 此说明向用户显示并用于搜索。

步骤 2:测试监督代理

监督器完成初始化后,对其进行测试,看看它协调多个代理处理复杂任务的效果如何。 在右侧窗格中,与代理聊天以评估其响应。

  1. (可选)还可以在 AI Playground 中测试代理。 单击在沙盒中打开。 这将打开 AI Playground,并连接您的 Supervisor 端点。 如果启用了 AI 辅助功能,则可以启用 AI 法官合成任务生成 来帮助评估主管。
  2. 为主管输入复杂的问题或任务。
  3. 评估其响应。 确保主管成功将任务委托给正确的代理。
  4. 与主管交互时,系统可能会提示 你添加指南 以帮助改进其响应。 提供响应准则并重新生成响应。
  5. 根据代理的响应,调整左侧面板中的 “说明 ”和 “说明 ”字段以改进其配置。

如果您对监督器的性能感到满意,请继续按原样使用该监督器。

步骤 3:改进主管

监督程序代理可以根据自然语言反馈来调整监督者的行为。 通过配置页面收集专家的反馈,以提高主管的协调质量。 为监督器收集标注数据可以提升其性能。 监督代理将从新数据中重新训练和优化监督程序。

在“ 示例 ”选项卡中,为主管添加问题和任务方案。

  1. 向标签添加问题:

    1. 单击“ + 添加” 以添加问题。
    2. “添加问题 模式”中,输入问题。
    3. 单击 添加。 问题应显示在 UI 中。
    4. 重复操作,直到添加你想要评估的所有问题。
    5. 若要删除问题,请单击“烤肉串”菜单,然后单击 “删除”。
  2. 添加完问题后,您可以将智能体分享给他人进行审核,以帮助您构建高质量的标注数据集。 共享主管代理配置页面的链接,以收集专家的反馈。

  3. 确保专家有权访问主管代理和相应的子代理:

    1. 在右上角,点击三横线菜单 Kebab 菜单图标。管理权限。 向专家授予CAN_MANAGE权限,以便他们可以访问代理并提供反馈。
    2. 确保 SME 可以访问每个子代理。 有关每个子代理类型所需的权限,请参阅 支持的子代理和工具

    如果 SME 无权访问任何子代理,主管将结束对话。 如果最终用户有权访问某些子代理,但并非所有子代理,主管会将对话重定向到用户无法访问的子代理。

  4. 若要标记数据,请单击问题并在显示的面板中添加 “指南 ”。 指南在保存后立即适用。

  5. 在配置页或 AI Playground 中再次测试代理,以查看其性能的改进。 如果需要,请添加更多问题和指南,以继续改进行为。

步骤 4:管理权限

默认情况下,只有代理作者和工作区管理员有权访问代理。 若要允许其他用户编辑或查询代理,需要显式授予他们权限。

若要管理代理的权限,请执行以下步骤:

  1. “代理 ”页上打开代理。
  2. 在顶部,单击 “Kebab”菜单图标。 烤肉串菜单。
  3. 单击“ 管理权限”。
  4. “权限设置” 窗口中,选择用户、组或服务主体。
  5. 选择要授予的权限:
    • 可以管理:允许管理代理,包括设置权限、编辑代理配置以及提高其质量。
    • Can Query:可查询 AI Playground 中的代理终结点以及通过 API 进行查询。 仅具有此权限的用户无法在“代理”页上查看或编辑代理。
  6. 单击 添加
  7. 单击“ 保存”。

Note

对于在 2025 年 9 月 16 日之前创建的代理终结点,可以从“服务终结点”页向终结点授予 Can Query 权限。

步骤 5:查询代理终结点

在代理页上,单击 “终结点 ”打开代理终结点并查看详细信息。

可通过多种方式查询创建的监督器终结点。 使用 AI Playground 中提供的代码示例作为起点。

  1. 点击在操场中打开
  2. 在 Playground 中,单击“ 获取代码”。
  3. 选择如何使用终结点:
    • 选择 Curl API 作为代码示例,以使用 curl 查询终结点。
    • 为代码示例选择 Python API,以便使用 Python 与终结点交互。

使用 Databricks SDK 管理监督代理

Important

此功能在 Beta 版中。 帐户管理员可以从 “预览 ”页控制对此功能的访问。 请参阅 Manage Azure Databricks 预览版

可以使用 Databricks SDK for Python以编程方式创建和管理监督代理及其工具。 有关可用操作的完整清单,请参阅 监督程序代理 SDK 参考文献

创建管理代理

以下示例创建一个新的监督代理,并为其提供显示名称、描述和指令。

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.supervisoragents import SupervisorAgent

w = WorkspaceClient()

supervisor_agent = SupervisorAgent(
    display_name="<display-name>",
    description="<description>",
    instructions="<instructions>",
)
created = w.supervisor_agents.create_supervisor_agent(supervisor_agent=supervisor_agent)
print(created)

<display-name><description><instructions> 替换为您监督员智能体的相应值。

管理工具(子代理)

可以使用 SDK 在现有监督代理上添加、更新和删除工具(子代理)。 工具表示子代理,例如知识助理、Genie Spaces、Unity 目录函数和其他代理终结点。

添加工具(子代理)

以下示例在现有监督代理上添加知识助理作为工具。

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.supervisoragents import Tool, KnowledgeAssistant

w = WorkspaceClient()

tool = Tool(
    tool_type="knowledge_assistant",
    description="<tool-description>",
    knowledge_assistant=KnowledgeAssistant(
        knowledge_assistant_id="<knowledge-assistant-id>",
    ),
)

created_tool = w.supervisor_agents.create_tool(
    parent="supervisor-agents/<supervisor-agent-id>",
    tool=tool,
    tool_id="<tool-id>",
)
print(created_tool)

<supervisor-agent-id> 替换为您监督员智能体的 ID,将 <knowledge-assistant-id> 替换为要添加为工具的知识助手的 ID,将 <tool-id> 替换为该工具的唯一标识符。

更新工具(子代理)

以下示例更新现有工具的说明。

from databricks.sdk import WorkspaceClient
from databricks.sdk.service.supervisoragents import Tool
from databricks.sdk.common.types.fieldmask import FieldMask

w = WorkspaceClient()

updated_tool = w.supervisor_agents.update_tool(
    name="supervisor-agents/<supervisor-agent-id>/tools/<tool-id>",
    tool=Tool(
        tool_type="knowledge_assistant",
        description="<new-description>",
    ),
    update_mask=FieldMask(["description"]),
)
print(updated_tool)

允许的字段位于 update_maskdescription中。

删除工具(子代理)

以下示例从管理器代理中删除一个工具。

from databricks.sdk import WorkspaceClient

w = WorkspaceClient()

w.supervisor_agents.delete_tool(
    name="supervisor-agents/<supervisor-agent-id>/tools/<tool-id>",
)

Limitations

后续步骤

监督智能体长期运行任务