Important
此功能在 Beta 版中。 帐户管理员可以从 “预览 ”页控制对此功能的访问。 请参阅 Manage Azure Databricks 预览版。
可以生成Azure Databricks应用代理,该代理使用 Supervisor API (Beta)进行业务流程,而不是在自己的代码中管理代理循环。 结果与 创作自定义代理相同:具有聊天 UI、 /invocations 终结点和身份验证的已部署应用。 区别在于,Azure Databricks为你运行代理循环。 您的 agent.py 进行单个 API 调用,Azure Databricks 处理工具选择、执行和响应合成。
监督器 API 适用于任何 受支持的基础模型。 更改 model 字段即可切换提供程序,无需更改工具定义或处理程序逻辑。
何时使用监督程序 API
当代理仅使用Azure Databricks托管的工具并且不需要工具调用之间的自定义逻辑时,监督程序 API 可正常工作。 如果代理需要以下任一项,请改用 自定义代理循环 :
- 客户端函数工具(监督程序 API 不能在一个请求中混合托管和客户端工具)
- 除了Agent Bricks Knowledge Assistant的终结点以外的其他代理终结点
- 自定义检索器、自定义输入/输出或精细流控制
- 工具调用之间的自定义Python逻辑,例如条件分支或状态管理
- 控制推理参数,例如
temperature
有关完整的 API 参考和支持的参数,请参阅监督 API (Beta)。
Requirements
- Azure Databricks应用程序已在您的工作区中启用。 请参阅 “创作 AI 代理”并将其部署到 Databricks 应用。
- 已为您的账户启用 Unity AI 网关预览版。 请参阅 Manage Azure Databricks 预览版。
- 包
databricks-openai:pip install databricks-openai
使用监督程序 API 生成自定义代理
建议的起点是从最新的 Databricks 应用模板创建新应用。 最新的模板包括 AI 编码助手的内置 use-supervisor-api 技能,以及 add-tools 用于添加托管工具的技能。
若要从模板创建新应用,请参阅 创作 AI 代理并将其部署到 Databricks 应用。
从最新模板设置应用后,在 AI 编码助手中打开项目并运行:
Use the Supervisor API skill to update this agent to use the Databricks Supervisor API.
技能更新您的 agent_server/agent.py 以使用托管工具调用 DatabricksOpenAI().responses.create() ,从而替换手动代理循环。 它还会添加 databricks-openai 依赖项并记下 beta 限制。
结果是相同的已部署应用,具有聊天 UI、身份验证和 /invocations 终结点,但使用更简单的代理代码。 有关完整部署工作流(部署到应用、添加工具、评估),请参阅 创作 AI 代理并将其部署到 Databricks 应用。
支持的工具和参数
有关支持的工具类型、请求参数和代码示例的完整列表,请参阅监督器 API(Beta)。
对于每个您添加的工具,请在databricks.yml中授予相应的资源权限。 请参阅 add-tools 中的 .claude/skills/ 技能以获取示例。
托管工具的授权
当监督程序 API 运行代理循环时,它会使用应用的标识或请求用户的标识执行托管工具。 根据应用的所有用户是否应共享对您的工具的相同访问权限,还是每个用户只能访问其自身权限允许的内容来进行选择。
- 应用授权 (默认值):工具作为应用的服务主体运行。 向代理使用的每个工具授予服务主体权限。 请参阅 应用授权。
- 用户授权:工具以发送请求的用户身份运行,因此 Unity 目录权限、行筛选器和列掩码适用于每个用户。 请参阅以下部分。
以请求用户身份运行工具
若要代表请求用户运行托管工具,请将用户的令牌转发到 DatabricksOpenAI 客户端,并添加工具所需的用户授权范围。
添加应用所需的用户授权范围。 访问 Supervisor API 时都需要
ai-gateway。 为代理所使用的每种工具类型添加各工具的作用域:工具类型 所需范围 所有工具 ai-gatewaygenie_spacegenieuc_functionmcp.functionsknowledge_assistantmodel-servinguc_connectioncatalog.connectionsapp工具类型不支持用户授权。 若要将应用终结点调用为工具,请改用应用授权。 有关如何通过工作区 UI 或声明性自动化捆绑添加范围的信息,请参阅 用户授权。在你的
agent.py处理程序中,将用户工作区客户端传递给DatabricksOpenAI。 这是唯一一处 Supervisor 特有的连接方式:不要用用户客户端直接调用资源,而是把资源交给运行代理循环的客户端处理。from databricks_openai import DatabricksOpenAI from agent_server.utils import get_user_workspace_client # Inside your invoke or stream handler, not at app startup client = DatabricksOpenAI( workspace_client=get_user_workspace_client(), use_ai_gateway=True, )get_user_workspace_client()从请求头中读取转发的用户令牌,而这些请求头仅在查询时才会填充。 请在invoke和stream处理程序中调用它,切勿在__init__中或在应用启动时调用。 如果缺少转发令牌,则生成的客户端不会作为请求用户进行身份验证。 有关如何验证代理作为调用方而不是应用的服务主体运行,请参阅 用户授权。为每个运行该代理的用户授予每个工具所需的权限,例如在 Genie Space 上授予
CAN_RUN权限,或在知识助理终结点上授予CAN_QUERY权限。
其他资源
- 监督程序 API (Beta):完整的 API 参考、支持的工具和示例
- 创作 AI 代理并将其部署到 Databricks Apps:应用代理的完整部署工作流
- 在 Databricks Apps 上构建多代理系统:将多个代理连接在一起