View a markdown version of this page

microVMs - Amazon Bedrock AgentCore

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

microVMs

Amazon Bedrock AgentCore 執行期可處理擴展、工作階段管理、安全隔離和基礎設施管理,讓您專注於建置智慧型代理程式體驗,而不是操作複雜性。透過利用此處所述的功能,您可以建置、部署和管理複雜的 AI 代理器,為您的使用者提供價值,同時協助維護企業級安全性和可靠性。

關鍵元件

AgentCore 執行期

AgentCore 執行期是託管 AI 代理器或工具程式碼的基礎元件。它代表一個容器化應用程式,可處理使用者輸入、維護內容,並使用 AI 功能執行動作。建立 代理程式時,您可以定義其行為、功能和可存取的工具。例如,客戶支援客服人員可能會回答產品問題、傳回程序,並將複雜的問題呈報給人力代表。

您可以使用 AgentCore CLI、AgentCore Python SDK 或直接透過 SDK 建置和部署代理程式至 AgentCore 執行期。 AWS SDKs 使用 AgentCore Python SDK,您可以使用常用的架構來定義您的代理程式,例如 LangGraph、CrewAI 或 Strands 代理程式。開發套件可處理基礎設施複雜性,讓您專注於代理程式的邏輯和功能。

每個 AgentCore 執行時間:

  • 具有唯一的身分

  • 已進行版本控制,以支援受控制的部署和更新

版本

每個 AgentCore 執行期都會維護不可變的版本,以擷取特定時間點組態的完整快照:

  • 當您建立 AgentCore 執行期時,會自動建立第 1 版 (V1)

  • 每次更新組態 (容器映像、通訊協定設定、網路設定) 都會建立新的版本

  • 每個版本都包含執行所需的所有必要組態

此版本控制系統提供可靠的部署歷史記錄和復原功能。

端點

端點為 AgentCore 執行期的特定版本提供可定址的存取點。每個端點:

  • 具有用於調用的唯一 ARN

  • 參考代理程式執行期的特定版本

  • 即使您更新實作,也能穩定存取您的代理程式

金鑰端點詳細資訊:

  • 當您呼叫 CreateAgentRuntime 並指向最新版本時,會自動建立「DEFAULT」端點

  • 當您更新 AgentCore 執行期時,會建立新的版本,但DEFAULT端點會自動更新以參考它

  • 您可以使用 CreateAgentRuntimeEndpoint 操作為不同的環境建立自訂端點 (開發、測試、生產)

  • 當使用者向端點提出請求時,請求會解析為該端點參考的特定代理程式版本

端點具有不同的生命週期狀態:

  • CREATING - 建立端點時的初始狀態

  • CREATE_FAILED - 表示建立失敗,因為許可或其他問題

  • READY - 端點可運作且接受請求

  • UPDATING - 正在修改端點以參考新版本

  • UPDATE_FAILED - 表示更新操作失敗

您可以在不停機的情況下更新端點,實現無縫的版本轉換和轉返。

工作階段

工作階段代表使用者與 AgentCore 執行期之間的個別互動內容。每個工作階段:

  • 透過您的應用程式runtimeSessionId提供的唯一 來識別,或者如果 runtimeSessionId 保留空白,則由第一次調用中的執行時間本身識別

  • 在具有完全隔離 CPU、記憶體和檔案系統資源的專用microVM中執行

  • 在相同對話中保留多個互動的內容

  • 總執行時間最多可保留 8 小時

工作階段狀態包括:

  • 作用中 - 目前正在處理請求或執行背景任務

  • 閒置 - 不處理任何請求,但在等待下一次互動時維護內容

  • 已終止 - 工作階段因閒置 (15 分鐘)、達到生命週期上限 (8 小時) 或被視為狀況不良而結束

重要的工作階段特性:

  • 工作階段終止後,整個 microVM 會終止並清除記憶體

  • 終止runtimeSessionId後具有相同 的後續請求將建立新的執行環境

  • 工作階段隔離可防止跨工作階段資料污染並確保安全性

  • 工作階段狀態為暫時性,不應用於長期耐久性 (使用 AgentCore 記憶體作為內容耐久性)

工作階段之間的完全隔離對於企業安全至關重要,特別是在處理非確定性 AI 程序時。

平台版本

平台版本控制 AgentCore 執行期如何啟動您的代理程式。您可以在每個代理程式執行時間上以 platformVersion 欄位 (V1 或 V2) 設定它。V1 是預設值。平台版本適用於代理程式執行期本身;它與擷取組態歷史記錄的執行期版本不同。

Amazon Bedrock AgentCore 執行期 V2 會從快照啟動您的代理程式,無論並行或影像大小如何,它都能保持冷啟動速度和一致性。AgentCore 執行期會準備您的環境一次,並拍攝其快照,然後還原每個新執行個體的快照,而不是在每次啟動時初始化您的環境。

一致的冷啟動

無論並行或影像大小為何,V2 都會保持冷啟動延遲一致,因為每個執行個體都會還原準備好的快照,而不是初始化您的環境。這對於大型容器映像最為重要,否則每次冷啟動時載入速度會變慢。

永遠上線或高載代理程式的成本較低

V2 費用會根據您的代理程式主動使用的內容而定。AgentCore Runtime 會在您的代理程式釋出記憶體時回收記憶體,並減少平台額外負荷。

注意

從快照還原會變更您建構客服人員程式碼的方式。若要了解如何最佳化您的代理程式並充分利用平台版本 V2,請參閱最佳化 AgentCore 執行期 V2 的代理程式。

支援的區域

V2 可在下列 AWS 區域使用:

  • 美國東部 (維吉尼亞北部)、 us-east-1

  • 美國東部 (俄亥俄)、 us-east-2

  • 美國西部 (奧勒岡)、 us-west-2

  • 歐洲 (愛爾蘭)、 eu-west-1

  • 亞太區域 (東京)、 ap-northeast-1

啟用 V2

您可以為每個代理程式執行時間設定平台版本。當您建立執行時間時加以設定,或更新現有的執行時間以在平台版本之間移動。如果您在建立執行時間platformVersion時省略 ,則執行時間會使用 V1。如果您在更新執行時間時省略它,執行時間會保留其目前的平台版本。

範例
AWS Management Console
  1. 開啟 Amazon Bedrock AgentCore 主控台,然後選擇執行期。

  2. 在執行時間頁面上,選擇建立執行時間。

  3. 輸入代理程式或工具的名稱。

  4. 針對運算類型,選擇microVMs。

  5. 在代理程式/工具來源下,選擇來源類型並提供成品,例如容器映像 URI 或程式碼。

  6. 針對平台版本,選擇 V2。

  7. (選用) 設定傳入身分驗證、進階組態和許可,例如 IAM 執行角色和 KMS 加密金鑰。

  8. 選擇建立執行時間。AgentCore 會建立代理程式執行期版本 1 和指向它的DEFAULT端點。

AWS CLI
  1. 在 create-agent-runtime命令--platform-version V2上設定 。

    aws bedrock-agentcore-control create-agent-runtime \ --agent-runtime-name "my-agent" \ --role-arn "arn:aws:iam::111122223333:role/AgentExecutionRole" \ --agent-runtime-artifact '{ "containerConfiguration": { "containerUri": "111122223333.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest" } }' \ --network-configuration '{"networkMode": "PUBLIC"}' \ --platform-version V2
  2. 若要確認平台版本,請呼叫 get-agent-runtime。

    aws bedrock-agentcore-control get-agent-runtime \ --agent-runtime-id my-agent-ABCDE12345 \ --query platformVersion
AWS SDK
  1. 下列範例使用 boto3 在 V2 上建立代理程式執行期。

    import boto3 client = boto3.client("bedrock-agentcore-control", region_name="us-west-2") client.create_agent_runtime( agentRuntimeName="my-agent", roleArn="arn:aws:iam::111122223333:role/AgentExecutionRole", agentRuntimeArtifact={ "containerConfiguration": { "containerUri": "111122223333.dkr.ecr.us-west-2.amazonaws.com/my-agent:latest" } }, networkConfiguration={"networkMode": "PUBLIC"}, platformVersion="V2", )
  2. create_agent_runtime 回應不會傳回 platformVersion。呼叫 get_agent_runtime 進行確認。

預期事項

V2 建立或更新操作會準備和快照您的環境,因此其行為與 V1 不同。

建立和更新需要幾分鐘的時間

在 V1 上,執行時間以秒READY為單位達到 。在 V2 上,準備快照會增加一次性成本,並在執行時間達到 之前建立和更新執行幾分鐘READY。

您的容器必須在 120 秒內報告運作狀態良好

AgentCore 執行期會在第一個運作狀態良好的/ping回應上取得快照。/ping 只有在初始化完成後才會報告 的運作狀態,以便快照擷取完全初始化的代理程式。如果執行時間在啟動後 120 秒內未報告運作狀態良好,則建立會失敗,並顯示運作狀態檢查錯誤。

輪詢終端機狀態

create 和 update操作會在執行時間仍為 CREATING或 時傳回UPDATING。如果您在執行時間達到結束狀態delete之前呼叫 update或 ,操作會傳回 ConflictException。輪詢get_agent_runtime直到狀態為 READY或結束於 FAILED,並等待幾分鐘讓 V2 執行時間達到 READY。

import time def wait_until_ready(client, agent_runtime_id): while True: status = client.get_agent_runtime(agentRuntimeId=agent_runtime_id)["status"] if status == "READY" or status.endswith("FAILED"): return status time.sleep(5)
注意

V2 目前將代理程式環境變數的總大小限制為直接程式碼部署 1.5 KB 和容器代理程式 2.5 KB,相較於 V1 上的 4 KB。如果您的組態超過此限制,請求會因 而失敗ValidationException。AgentCore 執行期會提高此限制以符合 V1。

快照生命週期

在 V2 上,AgentCore 執行期會管理端點指向的每個執行期版本的快照。您不會直接建立或刪除快照。它們會遵循您的執行時間和端點變更。

已建立

AgentCore 執行期會在端點指向版本時準備快照。當您建立執行期時,AgentCore 執行期會將您的版本託管在預設端點上,並準備其快照。執行時間可以有多個指向不同版本的端點,因此執行時間一次可以有多個快照。

Updated

當您更新執行時間時,AgentCore 執行時間會在預設端點上託管新版本,並準備新的快照。先前託管的版本不再參考,因此 AgentCore 執行期會標記其快照以供刪除,並在現有工作階段結束後將其移除。

已刪除

AgentCore 執行期會在沒有端點指向快照時刪除快照。當您更新執行時間、移除端點對版本的參考,或刪除執行時間或執行時間端點時,就會發生這種情況。刪除最多可能需要 8 小時,這是工作階段生命週期上限,因為已在快照上執行的工作階段會持續到結束為止。

基礎設施即程式碼

AWS CloudFormation 和 AWS CDK 目前不支援設定 platformVersion。

身分驗證和安全性

傳入身分驗證控制誰可以透過 AWS Identity and Access Management 或 OAuth 2.0 存取您的代理程式,在允許請求繼續之前驗證來自身分提供者的承載字符。傳出身分驗證可讓您的代理程式使用 OAuth 或 API 金鑰安全地存取第三方服務,並使用 AgentCore Identity 在使用者委派或自主模式下管理登入資料。如需詳細資訊,請參閱使用傳入身分驗證和傳出身分驗證進行身分驗證和授權。

傳入身分驗證

傳入身分驗證採用 AgentCore Identity 技術,可控制誰可以在 AgentCore 執行期中存取和叫用您的代理程式或工具。

身分驗證方法

  • AWS IAM (SigV4):使用 AWS 登入資料進行身分驗證

  • OAuth 2.0 :與外部身分提供者整合

OAuth 組態選項

  • 探索 URL:您的身分提供者的 OpenID Connect 探索端點

  • 允許對象:您的權杖應包含的有效對象值清單

  • 允許用戶端 :可存取此代理程式的用戶端識別符清單

身分驗證流程

  1. 最終使用者向您的身分提供者進行身分驗證 (Amazon Cognito、Okta、Microsoft Entra ID)

  2. 您的用戶端應用程式在身分驗證成功後會收到承載字符

  3. 呼叫代理程式時,用戶端會在授權標頭中傳遞此字符

  4. AgentCore 執行期會使用授權伺服器驗證權杖

  5. 如果有效,則會處理請求;如果無效,則會拒絕請求

這可確保只有具有適當授權的已驗證使用者才能存取您的代理程式。

傳出身分驗證

採用 Amazon Bedrock AgentCore Identity 的傳出身分驗證可讓您託管在 AgentCore 執行期的代理程式安全地存取第三方服務:

身分驗證方法

  • OAuth :適用於支援 OAuth 流程的服務

  • API 金鑰 :適用於使用金鑰型身分驗證的服務

身分驗證模式

  • 使用者委派 :使用其登入資料代表最終使用者採取行動

  • 自治 :使用服務層級登入資料獨立執行

支援的服務

  • Slack、Zoom 和 GitHub 等企業系統

  • AWS 服務

  • 自訂 APIs和資料來源

AgentCore Identity 可安全地管理這些登入資料,防止您的代理程式程式碼或日誌中的登入資料暴露。

額外功能

非同步處理

AgentCore Runtime 透過下列方式支援長時間執行的工作負載:

  • 超過請求/回應週期之操作的背景任務處理

  • 透過/ping端點自動追蹤狀態

  • 支援長達 8 小時的操作

如需詳細資訊,請參閱使用 Amazon Bedrock AgentCore 執行期處理非同步和長時間執行的代理程式。

串流回應

客服人員可以在取得部分結果時串流,而不是等待完成處理。這可讓您提供更具回應性的使用者體驗,特別是對於產生大量內容或需要大量時間才能完成的操作。如需詳細資訊,請參閱串流代理程式回應。

WebSocket API

AgentCore 執行期為互動式代理程式通訊的即時雙向串流連線提供 WebSocket 支援。這可讓客服人員體驗更具回應性和互動式。如需詳細資訊,請參閱使用 WebSocket 開始雙向串流。

通訊協定支援

AgentCore Runtime 支援多個通訊協定:

實作概觀

以下是如何開始使用 AgentCore 執行期。如需完整範例,請參閱 AgentCore CLI 入門。

準備您的代理程式或工具程式碼

  • 使用任何 AI 架構或自訂程式碼來定義您的代理程式邏輯

  • 使用 AgentCore SDK 或自訂實作新增所需的 HTTP 端點

  • requirements.txt 檔案中的套件相依性

部署您的代理程式或工具

  • 直接建置容器映像並將其推送至 Amazon ECR,或透過 AgentCore SDK

  • 使用容器映像建立 AgentCore 執行期

  • 初始版本 (V1) 和 DEFAULT 端點會自動建立

叫用您的代理程式或工具

管理和觀察工作階段,並進行更新

  • 使用相同的工作階段 ID 進行後續互動,以維護內容

  • 檢閱日誌、追蹤和可觀測性指標

  • 透過修改 AgentCore 執行期來部署更新 (建立新版本)

  • 透過更新端點以指向新版本來控制推展