在 Azure Databricks 上部署代理程序

要在生产环境中运行代理,你需要将其代码部署到托管计算中,以处理用户和应用的请求。 部署的代理有三层:你的框架或支撑程序、代理服务器和代理运行时。 Agent Bricks 在每一层都提供了选项,从 DurableAgentServer 到 Databricks 应用中的 Agent 运行时。

代理计算栈

部署的代理有三层。 每一层都会包裹它上面的一层。

代理计算栈:你的框架或测试框架,由公开调用 API 的代理服务器包裹,并运行在 Agent Runtime 上。

层 它的作用是什么 Azure Databricks 上的选项
框架或测试工具 运行代理循环:调用模型和工具,决定下一步该做什么。 任何框架或工具,比如LangGraph或OpenAI代理SDK,或者元工具,比如Omnigent。
代理服务器 将代理循环包裹在 HTTP 服务器中。 代理服务器负责暴露调用 API,管理客户端连接,并处理持久性。 DurableAgentServer (推荐)、遗留代理服务器,或你自己的服务器。
代理运行时 在托管计算资源上运行代理服务器,并处理托管、身份认证和扩展。 Databricks 应用上的代理运行时。

以下术语描述了各层之间的协同工作:

术语 含义
调用 API 客户端调用以运行代理的HTTP API。 参见 部署在 Azure Databricks 上的查询代理。
服务 代理运行时运行代理服务器,该服务器通过调用 API 对外提供你的代理。
部署 把你的代理代码放到代理运行时。

Note

Databricks Sandbox 不是计算栈的一层。 这是一个工具,你的代理调用它,在一个隔离环境中运行代码,与代理运行时分开,并可在限定范围内访问受治理的数据。 当你的代理编写和运行代码(例如数据分析脚本)时,使用沙盒。 要为CLI项目提供沙箱工具,运行 agentbricks tools add sandbox。

框架或测试框架

框架或脚手架就是你的代理代码。 它运行一个循环,利用模型进行推理,调用工具,并决定何时响应。 Agent Bricks 不需要特定的框架。

框架或测试工具 何时使用
Templates 开始一个新的代理。 Agent Bricks CLI 为 LangGraph 和 OpenAI Agents SDK 生成项目脚手架。 模板会把你的框架代码和连接到代理服务器的代码分开。
现有代理 带上你已经用LangGraph或OpenAI Agents SDK构建的代理。 在其目录中运行 agentbricks init --existing。 参见 引入现有代理。
Meta-harness 通过 Omnigent 将多个组件(如编码代理)组合成一个代理。

代理服务器

智能体服务器是一个库,用来包裹你的代理循环并将其转化为服务。 它定义了客户端调用的API,跟踪每次运行,并决定运行中断时发生什么。

代理服务器 何时使用
DurableAgentServer(推荐) 使用Agent Bricks CLI构建的新代理。
遗留代理服务器 维护基于应用模板构建的代理。 为了与遗留代理服务器进行比较 DurableAgentServer ,请参见 Databricks上的代理服务器。
你自己的服务器 需要自定义端点、请求格式或协议的代理。 运行 agentbricks init --server custom,或者继续使用现有服务器。

代理运行时

代理运行时是运行代理服务器的托管计算资源。 你把代码部署到其中,而不是自己配置服务器。

代理运行时 何时使用
代理运行时 新代理。 可在 Databricks 应用上运行你的代理。 agentbricks deploy 配置你的代理所需的资源,授予代理对这些资源的访问权限,并将其部署到稳定且经过身份验证的端点。
模型服务(旧版) 较早版本的代理已部署到模型服务端点。 请参阅部署 AI 应用程序的代理(模型服务)。 要将其迁移到 Databricks Apps,请参见“将代理从模型服务迁移到 Databricks Apps”。

使用Agent Bricks CLI部署

Agent Bricks CLI连接了这三层。 它为你的框架代码生成脚手架,在本地的 DurableAgentServer 上运行它,并将其部署到 Agent Runtime:

agentbricks init my-agent --framework langgraph
cd my-agent
agentbricks dev
agentbricks deploy my-agent

要构建和部署你的第一个代理,请参阅 Agent Bricks quickstart。

部署代理所需的权限

运行 agentbricks deploy 的用户或服务主体需要执行以下操作:

  • 创建Databricks应用,或管理现有应用以便重新部署。 请参阅 配置 Databricks 应用的权限。
  • 创建在 agent.toml 中声明的内存和会话存储,或管理现有存储,以便 Agent Bricks 能够授予应用的服务主体对这些存储的访问权限。
  • 创建项目用于追踪的MLflow实验,或者如果已有的话编辑它。
  • 授予应用的服务主体对工具使用 --auth app 声明的资源的访问权限,例如,对 Unity Catalog 函数的 EXECUTE、对 Genie Agent 的 CAN RUN,或对沙箱范围内表的 SELECT。

Agent Bricks 只允许访问由 agent.toml 直接声明的资源。 如果工具使用了其他资源,比如Genie代理背后的表或Unity目录函数调用的对象,请自己赋予应用的服务主体访问权限。 如果部署无法应用所需的权限授予,它会在上传代码前停止,当前部署继续运行。

其他资源