要在生产环境中运行代理,你需要将其代码部署到托管计算中,以处理用户和应用的请求。 部署的代理有三层:你的框架或支撑程序、代理服务器和代理运行时。 Agent Bricks 在每一层都提供了选项,从 DurableAgentServer 到 Databricks 应用中的 Agent 运行时。
代理计算栈
部署的代理有三层。 每一层都会包裹它上面的一层。
| 层 | 它的作用是什么 | 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目录函数调用的对象,请自己赋予应用的服务主体访问权限。 如果部署无法应用所需的权限授予,它会在上传代码前停止,当前部署继续运行。