本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
遙測設定和交付
您的代理程式發出 Amazon Bedrock AgentCore Evaluations 用來重建每個工作階段的跨度。如需 AgentCore 如何代表工作階段、追蹤和跨度,請參閱了解 AgentCore 中代理資源的可觀測性。
若要為工作階段評分,服務需要對話內容:模型提示、模型完成,以及工具輸入和輸出。該內容的位置取決於您的代理程式如何提供遙測,這是本頁所說明的內容。
主題
設定可觀測性
檢測您的代理程式是產生遙測的一部分,評估服務可以讀取。您的代理程式也必須啟用可觀測性,以便將其遙測匯出至 Amazon CloudWatch。請完成下列步驟:
-
啟用 Amazon CloudWatch 交易搜尋。評估需要在兩種交付模式中進行。請參閱啟用 AgentCore 可觀測性。
-
根據您託管代理程式的位置,啟用代理程式的可觀測性:
-
在 Amazon Bedrock AgentCore 執行期上:請參閱在 AgentCore 託管代理程式的代理程式程式碼中啟用可觀測性。
-
託管於 AgentCore 執行期 (Amazon ECS、Amazon EKS、 AWS Lambda 或其他環境) 外:請參閱啟用託管於 AgentCore 外之代理程式的可觀測性。您也可以在此設定接收遙測的日誌群組。
-
-
檢查代理程式使用的交付模式,以便了解遙測的目的地。根據預設,您在 2026 年 7 月 20 日當天或之後建立的代理程式會使用統一遙測,而您在該日期之前建立的代理程式則使用分割遙測。統一遙測需要 ADOT 0.18.0 版或更新版本 (
aws-opentelemetry-distro>=0.18.0)。舊版會將範圍傳送至共用aws/spans日誌群組。對於 AgentCore Runtime 上的代理程式,您可以使用
UNIFIED_TRACES_DESTINATION_ENABLED環境變數切換模式:將其設定為true以用於統一遙測,或false將其設定為分割遙測。如需環境變數、IAM 許可和每個託管選項的完整程序,請參閱 Amazon Bedrock AgentCore 執行時間中託管之代理程式的範圍目的地。
變更交付模式不會移動 AgentCore 已交付的遙測。較舊的跨度會保留在其寫入的日誌群組中,因此服務仍會評估您在變更之前記錄的工作階段。
遙測交付模式
AgentCore 會以兩種模式之一提供代理程式的遙測:
-
統一遙測 (建議) 將所有項目一起保存。承載模型承載和工具請求和回應的屬性會保留在跨度上,而您代理程式的所有遙測都會移至一個日誌群組。
-
分割遙測會分隔兩者。 AWS Distro for OpenTelemetry (ADOT) 會將這些屬性從範圍移至單獨的記錄,這會移至與範圍不同的日誌群組。
AgentCore Evaluations 會讀取這兩種模式。您不會在評估服務中進行選擇,相同的評估者也會為您提供相同的結果。我們建議統一遙測,可在可使用 AgentCore 執行期的所有 AWS 商業區域中使用。
統一遙測 (建議)
使用統一遙測,所有代理程式的遙測都會移至一個日誌群組。跨度會移至該spans日誌群組中的日誌串流,代理程式自己的日誌和主控台輸出旁。跨度會保留承載模型的屬性,以及工具請求和回應,因此服務會從跨度本身讀取所需的一切。
哪個日誌群組保留範圍取決於您託管代理程式的位置:
-
在 Amazon Bedrock AgentCore 執行期:代理程式的日誌群組
/aws/bedrock-agentcore/runtimes/<agent_id>-<endpoint_name>。AgentCore 會為您設定此項目。 -
在 AgentCore 執行期之外託管:您在
OTEL_EXPORTER_OTLP_TRACES_HEADERS環境變數中命名的日誌群組。
將範圍和日誌保留在一個位置,有助於超越評估。您可以一起查看追蹤和日誌、撰寫 AWS Identity and Access Management (IAM) 政策並為單一代理程式設定客戶受管金鑰加密,以及透過訂閱一個日誌群組來匯出代理程式產生的所有內容。
分割遙測
使用分割遙測,ADOT 會從跨度移除大型承載。匯出每個跨度時,它會提取承載模型承載和工具請求和回應的屬性,並將其作為單獨的事件記錄傳送,讓跨度保留其中繼資料及其較小的屬性。事件記錄僅存在於此模式中,並且遵循 OpenTelemetry 事件慣例。
每個事件記錄會透過共用 traceId和 連結回其範圍spanId,而內容位於記錄 中body,例如在 body.input.messages和 中body.output.messages。
這兩種類型的記錄接著會移至不同的位置:
-
跨度會移至共用
aws/spans日誌群組。當您開啟交易搜尋時CloudWatch 會建立此日誌群組。 -
事件記錄會移至單獨的日誌群組。在 AgentCore Runtime 上,這是 AgentCore 為您設定的日誌串流中的AgentCore
otel-rt-logs日誌群組。在 AgentCore 執行期之外,它是您在OTEL_EXPORTER_OTLP_LOGS_HEADERS環境變數中命名的日誌群組。
若要評估工作階段,服務會從 進行讀取aws/spans,並將其與其事件記錄進行比對。
服務從跨度讀取的內容
對於工作階段中的每個跨度,服務會執行下列動作:
-
根據架構集的屬性,算出它的跨度。範圍可以是調用代理程式範圍 (最上層代理程式執行)、執行工具範圍 (單一工具呼叫) 或推論範圍 (單一模型呼叫)。
-
讀取其所需的值,例如使用者提示、客服人員回應,以及工具輸入和輸出。例如,使用者提示來自客服人員輸入中的使用者角色訊息,而客服人員回應來自客服人員輸出中的助理角色訊息。
在這兩種交付模式中,識別跨度的屬性一律會停留在跨度上。只有對話內容會移動。該內容位於範圍中的位置也取決於您的檢測程式庫:大多數程式庫會將其記錄為範圍屬性,有些則將其附加至範圍作為事件。對於每個程式庫,每個影格頁面會列出識別屬性,說出內容所在的位置,並顯示兩種模式的範例範圍。
參考
AgentCore Evaluations 以下列 OpenTelemetry 規格為基礎:
-
OpenTelemetry 網站上的追蹤語意慣例
:跨度和追蹤的結構及其意義。 -
OpenTelemetry 網站上的事件語意慣例
:事件記錄的結構及其意義。 -
GitHub 網站上的生成式 AI 語意慣例
:描述代理程式、模型和工具操作的 gen_ai.*屬性。
客服人員範例
下列範例示範如何檢測在 Amazon Bedrock AgentCore 執行期外託管的 Strands 代理程式。每個範例都會使用 ADOT 將遙測匯出至 Amazon CloudWatch。他們專注於可觀測性設定,而不是評估 API。這些範例使用 Strands,但相同的託管和遙測匯出模式適用於其他支援的架構,例如 LangGraph。
-
Amazon EKS:在 GitHub 網站上,Amazon EKS 上 EKS
託管代理程式和 Strands 代理程式的可觀測性 。 -
Amazon ECS:GitHub 網站上的 Amazon ECS 上的 Strands 代理
程式。 -
AWS Lambda:GitHub 網站上的 AWS Lambda 中的 Strands 代理
程式。