要在生產環境中執行代理,你會將其程式碼部署到受管運算資源,以處理使用者和應用程式的請求。 已部署的代理程式有三層:你的框架或測試框架、代理伺服器,以及代理執行時。 Agent Bricks 在每一層都提供選項,從 DurableAgentServer 到 Databricks 應用程式上的 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 目錄函式呼叫的物件,請自行授予應用程式的服務主體對這些資源的存取權限。 如果部署無法套用所需的授予權限,它會在上傳程式碼前停止,並讓目前的部署繼續執行。