代理程式運行環境

Agent Runtime 會讓你的代理程式在 Azure Databricks 託管的無伺服器運算上執行。 它會在 Databricks Apps 上執行你的代理伺服器,例如 DurableAgentServer,因此你部署的是程式碼,而不是配置伺服器。 想了解 Agent Runtime 如何與你的框架及代理伺服器相契合,請參閱 在 Azure Databricks 上部署代理程式。

Agent Runtime 提供的服務

  • 一個穩定且經過認證的端點:每個部署都是一個名為 agent-bricks-<name> 的應用程式,並擁有自己的 URL。 用戶端使用 Azure Databricks OAuth 權杖進行驗證。 請參閱 部署在 Azure Databricks 上的查詢代理程式。
  • 代理身分:代理作為應用程式的服務主體帳戶執行。 參見 代理身份。
  • 持久執行:對於使用 DurableAgentServer 的代理程式,部署會配置執行階段儲存庫,使執行狀態在工作者重新啟動後仍能保留,且中斷的執行可恢復。
  • 追蹤:部署會將 MLflow 追蹤設定為專案所繫結的實驗。 請參閱 追蹤概述。
  • 擴充:在 1 到 5 個實例上執行一個代理程式。 請參見 Databricks 應用程式的水平縮放。

代理人身份

代理的身份是它部署到的應用程式的服務主體。 代理程式會利用這個身分來呼叫 Azure Databricks API,並執行你使用 --auth app 新增的工具。

  • 部署時,agentbricks deploy 會授權服務主體存取代理所使用的記憶體、會話和執行狀態儲存。
  • 要讓代理程式存取其他資料和資源,請像對待任何應用程式一樣,授予應用程式的服務主體所需的權限。 請參閱 在 Databricks 應用程式中設定授權。
  • 使用 auth = "user" 的工具會以傳送請求的使用者權限執行,而非以服務主體的權限執行。 請參見 Request-user authorization。

部署代理程式

使用 Agent Bricks CLI 部署代理專案:

agentbricks --profile <profile> deploy my-agent

agentbricks deploy 執行下列動作:

  1. 建立或重用在 agent.toml 中宣告的記憶體與工作階段儲存體,並授予應用程式的服務主體存取這些儲存體的權限。
  2. 對於使用 DurableAgentServer的代理,則建立或重用部署的執行時儲存庫。
  3. 設定追蹤。
  4. 部署應用程式。

若要在多個實例上執行代理,請傳遞 --instances:

agentbricks --profile <profile> deploy my-agent --instances 2

當代理在多個實例上運行時,客戶端可以在 X-Routing-Key 標頭中傳送會話 ID,將會話中的所有請求導向同一實例。

管理部署

Command Description
agentbricks deployments list 列出你的代理程式部署。
agentbricks deployments get <app-name> 顯示部署的網址、狀態和描述。
agentbricks deployments logs <app-name> 顯示部署日誌。
agentbricks deployments start <app-name> 與 agentbricks deployments stop <app-name> 開始或停止部署。
agentbricks deployments delete <app-name> 刪除部署。

因為每個部署都是一個應用程式,你也可以在 Databricks Apps 中查看和監控它。 請參閱 Databricks 應用程式的記錄和監視。

Limitations

你無法更改現有部署的代理伺服器。 要切換伺服器,請建立一個使用你想要的 agentbricks init --server 選項的新專案,並以新名稱部署。

其他資源