在 Azure Databricks 上部署代理程式

要在生產環境中執行代理,你會將其程式碼部署到受管運算資源,以處理使用者和應用程式的請求。 已部署的代理程式有三層:你的框架或測試框架、代理伺服器,以及代理執行時。 Agent Bricks 在每一層都提供選項,從 DurableAgentServer 到 Databricks 應用程式上的 Agent Runtime。

代理運算堆疊

已部署的代理有三層。 每一層都會包覆其上方的一層。

代理運算堆疊:你的框架或支撐程式,由代理伺服器包裝,該伺服器會暴露呼叫 API,並在 Agent Runtime 上執行。

階層 其功能是什麼 Azure Databricks 上的選項
框架或測試框架 執行代理迴圈:呼叫模型和工具,決定下一步該怎麼做。 任何框架或工具,例如 LangGraph 或 OpenAI Agents SDK,或是像 Omnigent 這樣的元工具。
代理伺服器 將代理迴圈包裝在 HTTP 伺服器中。 代理伺服器負責提供叫用 API、管理用戶端連線並處理耐久性。 DurableAgentServer (推薦)、舊有代理伺服器,或是你自己的伺服器。
代理程式執行階段 在託管運算上運行代理伺服器,並處理主機託管、身份認證與擴展。 Databricks Apps 上的代理執行階段。

以下術語描述各層如何協同運作:

字詞 這是什麼意思?
叫用 API 客戶端呼叫來執行代理的 HTTP API。 請參閱 部署在 Azure Databricks 上的查詢代理程式。
提供 代理執行時會運行代理伺服器程式,伺服器透過呼叫 API 服務你的代理。
部署 將你的代理程式碼部署到代理程式執行階段。

Note

Databricks Sandbox 不是計算堆疊的一層。 這是一個你的代理程式呼叫的工具,讓你的代理程式在獨立的環境中執行程式碼,與代理執行時分開,並對你的管控資料有明確的範圍存取。 當你的代理撰寫並執行程式碼(例如資料分析腳本)時,請使用沙盒。 要讓 CLI 專案使用沙盒工具,執行 agentbricks tools add sandbox。

框架或測試工具

框架或控制程式就是你的代理程式碼。 它運行一個循環,使用模型進行推理、呼叫工具,並決定何時回應。 Agent Bricks 不需要特定的框架。

框架或線束 何時使用
範本 開始新的代理程式。 Agent Bricks CLI 為 LangGraph 及 OpenAI Agents SDK 建立專案骨架。 範本會讓你的框架程式碼和連接代理伺服器的程式碼分開。
現有代理程式 帶上你已經用 LangGraph 或 OpenAI Agents SDK 建立的代理程式。 在其所在目錄中執行 agentbricks init --existing。 請參見 引入現有代理程式。
Meta-harness 將多個框架(例如編碼代理)組合成一個代理,使用 Omnigent。

代理伺服器

agent server 是一個函式庫,會包裝你的代理迴圈並將其轉換成服務。 它定義了客戶端呼叫的 API,記錄每次執行,並決定執行中斷時的反應。

代理伺服器 何時使用
DurableAgentServer (建議) 新代理程式是用 Agent Bricks CLI 建立的。
舊有代理伺服器 維護由應用程式範本建立的代理。 若要將 DurableAgentServer 與舊有代理伺服器比較,請參閱 Databricks 上的代理伺服器。
你自己的伺服器 需要自訂端點、請求格式或協定的代理程式。 執行 agentbricks init --server custom,或者保留你現有的伺服器。

代理執行時間

代理執行階段是執行代理伺服器的受管理運算環境。 你要部署程式碼到它,而不是自己配置伺服器。

代理執行時間 何時使用
代理執行時間 新代理程式。 在 Databricks Apps 上執行你的代理程式。 agentbricks deploy 配置你的代理所需的資源,授權代理存取這些資源,並將代理部署到穩定且經過認證的端點。
模型服務(舊版) 先前部署於模型服務端點的代理程式。 參見「 部署代理以支援 AI 應用(模型服務)」。 若要將代理程式移至 Databricks 應用程式,請參見「 將代理從模型服務遷移至 Databricks 應用程式」。

使用 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 快速入門。

部署代理程式的權限

執行 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 目錄函式呼叫的物件,請自行授予應用程式的服務主體對這些資源的存取權限。 如果部署無法套用所需的授予權限,它會在上傳程式碼前停止,並讓目前的部署繼續執行。

其他資源