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 伺服器。用戶端會看到一個合併 |
獨立運作。閘道會將流量直接傳送至目標,而不合併功能。用戶端必須透過路徑型路由個別處理每個目標。 |
|
語意工具搜尋 |
索引工具描述,並透過自然語言查詢啟用探索。 |
不可用。閘道不會擷取或索引功能。用戶端必須知道確切的工具名稱或使用伺服器自己的 |
|
回應攔截器 Lambda |
支援非串流 MCP 操作的請求和回應攔截器。 |
在緩衝模式下支援請求和回應攔截器 Lambda 函數。串流模式中尚未支援攔截器。 |