View a markdown version of this page

Amazon Bedrock AgentCore 執行期目標 - Amazon Bedrock AgentCore

Amazon Bedrock AgentCore 執行期目標

您可以新增 Amazon Bedrock AgentCore 執行期代理程式做為閘道目標。閘道會將流量直接傳送至執行期代理程式,無需彙總或通訊協定轉譯。與將工具功能結合到統一虛擬 MCP 伺服器的 MCP 目標不同,AgentCore 執行期目標會在用戶端和執行期代理程式之間轉送請求和回應,而無需修改。

當您AgentCore想要:

  • 透過單一閘道端點,為您的執行階段代理程式提供集中式存取管理。

  • 為您的執行期代理程式使用閘道的內建身分驗證和可觀測性。

  • 當多個目標連接到閘道時,使用路徑型路由將請求路由到特定的執行期代理程式。

  • 使用 Amazon Bedrock AgentCore 最佳化來產生來自代理程式追蹤的建議、透過閘道即時流量的 A/B 測試變更,以及部署獲勝組態,以最佳化代理程式的效能。如需詳細資訊,請參閱 AgentCore 最佳化

重要考量和限制

使用 AgentCore 執行期目標時,請注意下列考量:

  • 閘道會將流量直接傳送到 AgentCore 執行期目標,而不彙總功能。

  • AgentCore 執行期目標可以新增至未設定通訊協定類型的閘道。它們無法新增至 MCP 通訊協定類型閘道。

  • AgentCore 執行期目標無法使用功能同步或語意工具搜尋。用戶端必須透過路徑型路由個別處理每個目標。

  • AgentCore 執行期目標支援 Server-Sent Events (SSE) 串流。

  • 緩衝模式下支援請求和回應攔截器 Lambda 函數。串流模式中尚未支援攔截器。

目標組態

當您建立 AgentCore 執行期目標時,您會提供執行期 ARN 和選用的限定詞。閘道會在內部解析執行時間端點,因此您不需要自行建構執行時間 URL。

AgentCore 執行期目標的目標組態使用以下結構:

{ "http": { "agentcoreRuntime": { "arn": "arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/RUNTIME_ID", "qualifier": "DEFAULT", "schema": { "source": { "s3": { "uri": "s3://DOC-EXAMPLE-BUCKET/agent-schema.yaml" } } } } } }
  • arn (必要) – Amazon Bedrock AgentCore 執行期代理程式的 ARN。

  • 限定詞 (選用) – 執行時間限定詞。預設為 DEFAULT

  • 結構描述 (選用) – 描述執行時間目標請求和回應結構的 API 結構描述。閘道使用此結構描述來啟用政策引擎功能,例如護欄。結構描述格式會自動偵測為 OpenAPI 或 Smithy。

    對於使用 MCP 或 A2A 通訊協定的執行期代理程式,會自動套用預設結構描述,您不需要提供。對於使用 HTTP 通訊協定的執行期代理程式,您必須提供結構描述才能使用護欄。

    schema 物件包含source指定結構描述內容位置的 :

    • s3 – 指向結構描述檔案的 S3 URI (例如,s3://DOC-EXAMPLE-BUCKET/agent-schema.yaml)。

    • inlinePayload – 直接以字串形式提供的結構描述內容。

注意

如果您的執行期代理程式使用 HTTP 通訊協定,而且您想要透過閘道的政策引擎套用護欄,則必須提供結構描述。對於使用 MCP 或 A2A 通訊協定的執行期代理程式,會自動套用預設結構描述。

叫用 AgentCore 執行期目標

若要透過閘道叫用 AgentCore 執行期目標,請將 POST 請求傳送至目標的叫用 URL。URL 格式為:

https://{gatewayId}.gateway.bedrock-agentcore.{region}.amazonaws.com/{targetName}/invocations

{gatewayId} 將 取代為您的閘道 ID、{region}將 取代為 AWS 區域,並將 {targetName}取代為目標的名稱。

下列範例使用 curl 來叫用 AgentCore 執行期目標:

curl -X POST https://gateway-id.gateway.bedrock-agentcore.us-west-2.amazonaws.com/my-target/invocations \ -H "Content-Type: application/json" \ -H "Authorization: Bearer <token>" \ -d '{"input": {"prompt": "Hello"}}'

您也可以使用 Amazon Bedrock AgentCore SDK 搭配端點 URL 覆寫:

aws bedrock-agentcore invoke-agent-runtime \ --endpoint-url https://gateway-id.gateway.bedrock-agentcore.us-west-2.amazonaws.com/my-target \ --runtimeArn arn:aws:bedrock-agentcore:us-west-2:111122223333:runtime/RUNTIME_ID

傳出授權

AgentCore 執行期目標支援下列傳出授權類型:

  • IAM (SigV4) – 閘道會擔任閘道服務角色,以取得憑證以簽署對執行時間目標的請求。當您設定 IAM 授權時,您可以使用 IAM 政策來限制僅對閘道角色的存取,以確保所有執行期請求都流經閘道。

  • 呼叫者 IAM 登入資料 – 閘道會使用呼叫者的 IAM 登入資料來簽署對執行時間目標的請求。閘道會代表發起人擔任角色,並使用發起人的身分簽署傳出請求。

  • OAuth (JWT) – 閘道會透過 Amazon Bedrock AgentCore 身分服務,從目標中設定的憑證提供者擷取 OAuth 字符。

  • 權杖傳遞 – 閘道會驗證傳入權杖,並將其傳遞至執行期目標,無需修改。當執行時間處理自己的授權時,這會很有用。

透過閘道強制執行流量

您可以使用 AgentCore Gateway 預付 AgentCore 執行期,讓閘道成為執行期的單一受管進入點 — 為您提供以政策為基礎的授權、Amazon Bedrock Guardrails、請求和回應攔截器,以及統一的可觀測性,這些都適用於代理程式自己的環境之外。如需完整理由,請參閱使用 AgentCore Gateway 開啟您的執行時間。但這只有在您無法略過閘道並直接存取執行時間時才有用。您現在可以達成此目標,無論執行時間是使用 IAM (SigV4) 還是 OAuth (JWT) 傳入授權。

您可以在執行時間上設定此限制。閘道會為轉送的每個請求的來源加上戳記,而執行時間會驗證傳入的來源。特定機制取決於執行時間的傳入授權類型:

  • IAM (SigV4) 執行時間 – 連接以資源為基礎的政策,將調用限制在閘道的執行角色。如需政策及其所需的信任政策強化,請參閱限制對閘道的 IAM (SigV4) 傳入呼叫

  • OAuth (JWT) 執行時間 – 在執行時間的 allowedWorkloadConfiguration上設定 customJWTAuthorizer,以僅允許閘道的工作負載。如需組態和欄位參考,請參閱限制對閘道的呼叫

與 MCP 目標的功能比較

您可以使用兩種方法將 MCP 伺服器與 Amazon Bedrock AgentCore 閘道整合:在彙總模式下使用 MCP 目標類型,或使用 AgentCore 執行期目標類型。下表會比較每種方法的功能。

功能 具有 MCP 目標的 MCP 閘道 AgentCore 執行期目標

工具/功能彙總

將所有 MCP 目標的功能彙總到單一統一虛擬 MCP 伺服器。用戶端會看到一個合併tools/list回應。

獨立運作。閘道會將流量直接傳送至目標,而不合併功能。用戶端必須透過路徑型路由個別處理每個目標。

語意工具搜尋

索引工具描述,並透過自然語言查詢啟用探索。

不可用。閘道不會擷取或索引功能。用戶端必須知道確切的工具名稱或使用伺服器自己的 tools/list

回應攔截器 Lambda

支援非串流 MCP 操作的請求和回應攔截器。

在緩衝模式下支援請求和回應攔截器 Lambda 函數。串流模式中尚未支援攔截器。