View a markdown version of this page

遙測設定和交付 - Amazon Bedrock AgentCore

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

遙測設定和交付

您的代理程式發出 Amazon Bedrock AgentCore Evaluations 用來重建每個工作階段的跨度。如需 AgentCore 如何代表工作階段、追蹤和跨度,請參閱了解 AgentCore 中代理資源的可觀測性。

若要為工作階段評分,服務需要對話內容:模型提示、模型完成,以及工具輸入和輸出。該內容的位置取決於您的代理程式如何提供遙測,這是本頁所說明的內容。

主題

設定可觀測性

檢測您的代理程式是產生遙測的一部分,評估服務可以讀取。您的代理程式也必須啟用可觀測性,以便將其遙測匯出至 Amazon CloudWatch。請完成下列步驟:

  1. 啟用 Amazon CloudWatch 交易搜尋。評估需要在兩種交付模式中進行。請參閱啟用 AgentCore 可觀測性。

  2. 根據您託管代理程式的位置,啟用代理程式的可觀測性:

  3. 檢查代理程式使用的交付模式,以便了解遙測的目的地。根據預設,您在 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日誌群組中的日誌串流,代理程式自己的日誌和主控台輸出旁。跨度會保留承載模型的屬性,以及工具請求和回應,因此服務會從跨度本身讀取所需的一切。

統一遙測:ADOT 會將每個跨度及其內容傳送至一個日誌群組

哪個日誌群組保留範圍取決於您託管代理程式的位置:

  • 在 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。

分割遙測:ADOT 會將範圍傳送至 aws/spans,並將對話內容作為事件記錄傳送至客服人員日誌群組

這兩種類型的記錄接著會移至不同的位置:

  • 跨度會移至共用aws/spans日誌群組。當您開啟交易搜尋時CloudWatch 會建立此日誌群組。

  • 事件記錄會移至單獨的日誌群組。在 AgentCore Runtime 上,這是 AgentCore 為您設定的日誌串流中的AgentCoreotel-rt-logs日誌群組。在 AgentCore 執行期之外,它是您在OTEL_EXPORTER_OTLP_LOGS_HEADERS環境變數中命名的日誌群組。

若要評估工作階段,服務會從 進行讀取aws/spans,並將其與其事件記錄進行比對。

服務從跨度讀取的內容

對於工作階段中的每個跨度,服務會執行下列動作:

  1. 根據架構集的屬性,算出它的跨度。範圍可以是調用代理程式範圍 (最上層代理程式執行)、執行工具範圍 (單一工具呼叫) 或推論範圍 (單一模型呼叫)。

  2. 讀取其所需的值,例如使用者提示、客服人員回應,以及工具輸入和輸出。例如,使用者提示來自客服人員輸入中的使用者角色訊息,而客服人員回應來自客服人員輸出中的助理角色訊息。

在這兩種交付模式中,識別跨度的屬性一律會停留在跨度上。只有對話內容會移動。該內容位於範圍中的位置也取決於您的檢測程式庫:大多數程式庫會將其記錄為範圍屬性,有些則將其附加至範圍作為事件。對於每個程式庫,每個影格頁面會列出識別屬性,說出內容所在的位置,並顯示兩種模式的範例範圍。

參考

AgentCore Evaluations 以下列 OpenTelemetry 規格為基礎:

客服人員範例

下列範例示範如何檢測在 Amazon Bedrock AgentCore 執行期外託管的 Strands 代理程式。每個範例都會使用 ADOT 將遙測匯出至 Amazon CloudWatch。他們專注於可觀測性設定,而不是評估 API。這些範例使用 Strands,但相同的託管和遙測匯出模式適用於其他支援的架構,例如 LangGraph。