本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
的 Amazon Bedrock AgentCore 執行期 AWS Marketplace
本文件為想要列出可在 Amazon Bedrock AgentCore 執行期上部署之 AI 代理程式或工具的 AWS Marketplace 賣方提供資訊。它概述了用於準備 Bedrock AgentCore 執行期支援容器的技術要求、組態準則和最佳實務 AWS Marketplace。
主題
概觀
Amazon Bedrock AgentCore 執行期提供安全、無伺服器和專門建置的託管環境,用於部署和執行 AI 代理器或工具。在 上列出 Bedrock AgentCore 執行期容器時 AWS Marketplace,您需要確保容器符合特定要求,才能在 Bedrock AgentCore 環境中正常運作。
注意
如需進一步了解,請參閱 Amazon Bedrock AgentCore 執行期入門。
Bedrock AgentCore 容器技術需求
Amazon Bedrock AgentCore 執行期在列出 AI 代理器、MCP 伺服器和 A2A 伺服器方面有不同的技術需求。
-
客服人員需求
-
MCP 伺服器需求
-
A2A 伺服器需求
客服人員需求
您的容器化代理程式必須符合下列核心需求:
-
/ping 端點:運作狀態檢查的 GET 端點
-
/invocations 端點:客服人員互動的 POST 端點
-
Docker 容器:ARM64 容器化部署套件
-
連接埠:容器必須公開連接埠
8080以進行 HTTP 型代理程式通訊
/ping - GET
此端點會驗證您的代理程式是否正常運作,並準備好處理請求。
回應範例:
{ "status": "Healthy" }
/invocations - POST
當客戶使用 JSON 格式的承載呼叫具有 InvokeAgentRuntime 動作的客服人員時,這是主要客服人員互動端點。InvokeAgentRuntime 支援串流回應,可讓客戶在部分回應可用時收到回應。
請求範例:
Content-Type: application/json { "prompt": "What's the weather today?" }
回應範例:
-
JSON 回應 (非串流):
Content-Type: application/json { "response": "Your agent's response here", "status": "success" } -
SSE 回應 (串流):
Content-Type: text/event-stream data: {"event": "partial response 1"} data: {"event": "partial response 2"} data: {"event": "final response"}
MCP 伺服器需求
Amazon Bedrock AgentCore 執行期可讓您部署和執行模型內容通訊協定 (MCP) 伺服器。當您使用 MCP 通訊協定設定 Amazon Bedrock AgentCore 執行期時,服務預期 MCP 伺服器容器位於路徑 0.0.0.0:8000/mcp。這是大多數官方 MCP 伺服器 SDKs支援的預設路徑。
由於 Amazon Bedrock AgentCore 執行期預設提供工作階段隔離,因此需要無狀態可串流 HTTP 伺服器。執行時間會自動為不包含 的任何請求新增 Mcp-Session-Id標頭。這可讓 MCP 用戶端維持與相同 Amazon Bedrock AgentCore 執行期工作階段的連線持續性。
InvokeAgentRuntime API 會直接傳遞承載資料,以便輕鬆代理 MCP 等通訊協定的 RPC 訊息。
使用要求:
-
Transport - 必須使用無狀態可串流 - 僅限 http
-
工作階段管理 - 平台會自動新增工作階段隔離的
Mcp-Session-Id標頭 -
主機 - 容器必須接聽
0.0.0.0 -
連接埠 - 容器必須公開 MCP 伺服器通訊
8000的連接埠 -
路徑 - 必須公開
/mcp為 POST 端點才能接收 MCP RPC 訊息。InvokeAgentRuntimeAPI 會將請求傳遞至 MCP 伺服器的此路徑。 -
通訊協定 - MCP 伺服器必須支援 MCP 通訊協定,包括下列通訊協定訊息:
-
tools/list -
tools/call(受 FastMCP 等常見架構支援)
-
若要進一步了解 MCP 伺服器需求,請參閱在 AgentCore 執行期中部署 MCP 伺服器。
/mcp - POST
這是客戶使用 InvokeAgentRuntime 呼叫 MCP 伺服器時的主要客服人員互動端點。
範例清單請求:
Content-Type: application/json { "jsonrpc": "2.0", "id": 1, "method": "tools/list", }
範例清單回應:
JSON 回應 (非串流):
Content-Type: application/json { "jsonrpc": "2.0", "id": 1, "result": { "tools": [ { "name": "get_weather", "title": "Weather Information Provider", "description": "Get current weather information for a location", "inputSchema": { "type": "object", "properties": { "location": { "type": "string", "description": "City name or zip code" } }, "required": ["location"] } } ], "nextCursor": "next-page-cursor" } }
工具呼叫請求範例:
Content-Type: application/json { "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "get_weather", "arguments": { "location": "New York" } } }
工具呼叫回應範例:
JSON 回應 (非串流):
Content-Type: application/json { "jsonrpc": "2.0", "id": 2, "result": { "content": [ { "type": "text", "text": "Current weather in New York:\nTemperature: 72°F\nConditions: Partly cloudy" } ], "isError": false } }
A2A 伺服器需求
Amazon Bedrock AgentCore 執行期可讓您在 AgentCore 執行期中部署和執行 Agent-to-Agent (A2A) 伺服器。Amazon Bedrock AgentCore 的 A2A 通訊協定支援可做為透明代理層,與 A2A 伺服器無縫整合。為 A2A 設定時,Amazon Bedrock AgentCore 預期容器在根路徑 (0.0.0.0:9000/) 9000的連接埠上執行無狀態、可串流的 HTTP 伺服器,這符合預設的 A2A 伺服器組態。
此服務提供企業級工作階段隔離,同時維持通訊協定透明度 - 來自 InvokeAgentRuntime API 的 JSON-RPC 承載會直接傳遞至 A2A 容器,無需修改。此架構會保留標準 A2A 通訊協定功能,例如透過 的代理程式卡/.well-known/agent-card.json和 JSON-RPC 通訊的內建代理程式探索,同時新增企業身分驗證 (SigV4/OAuth 2.0) 和可擴展性。
與其他通訊協定的主要區別在於連接埠 (9000 vs 8080 for HTTP)、掛載路徑 (/ vs /invocations) 和標準化代理程式探索機制,使得 Amazon Bedrock AgentCore 成為生產環境中 A2A 代理程式的理想部署平台。
使用要求:
-
連接埠 - A2A 伺服器在連接埠 9000 上執行 (相較於 HTTP 的 8080、MCP 的 8000)
-
主機 - 容器必須接聽
0.0.0.0 -
路徑
-
A2A 伺服器掛載於
/(vs/invocationsfor HTTP,/mcpfor MCP) -
/ping使用 GET 進行 的運作狀態檢查
-
-
客服人員卡 - A2A 透過位於 的客服人員卡提供內建客服人員探索
/.well-known/agent-card.json -
Protocol - 使用 JSON-RPC agent-to-agent通訊
-
身分驗證 - 同時支援 SigV4 和 OAuth 2.0 身分驗證機制
若要進一步了解 A2A 伺服器需求,請參閱在 AgentCore 執行期中部署 A2A 伺服器。
/ - POST
這是客戶使用 InvokeAgentRuntime 呼叫 A2A 伺服器時的主要客服人員互動端點。
客服人員調用請求範例:
Content-Type: application/json { "jsonrpc": "2.0", "id": "req-001", "method": "message/send", "params": { "message": { "role": "user", "parts": [ { "kind": "text", "text": "what is 101 * 11?" } ], "messageId": "12345678-1234-1234-1234-123456789012" } } }
客服人員叫用回應範例:
JSON 回應 (非串流):
Content-Type: application/json { "jsonrpc": "2.0", "id": "req-001", "result": { "artifacts": [ { "parts": [ { "kind": "text", "text": "101 * 11 is 1111" } ] } ] } }
客服人員卡擷取範例:
curl https://bedrock-agentcore.<REGION>.amazonaws.com/runtimes/{escaped_agent_arn}/invocations/.well-known/agent-card.json
/ping - GET
這是執行運作狀態檢查的端點。
測試 Bedrock AgentCore 執行期容器
將容器提交至 之前 AWS Marketplace,請徹底進行測試:
本機代理程式測試
使用 Docker 在本機測試您的代理程式
docker run -p 8080:8080 <your-container-image> # Test ping endpoint curl http://localhost:8080/ping # Test agent invocation endpoint curl -X POST http://localhost:8080/invocations \ -H "Content-Type: application/json" \ -d '{"prompt": "Hello world!"}'
本機 MCP 伺服器測試
使用 Docker 在本機測試 MCP 伺服器
docker run -p 8000:8000 <your-container-image> # Test ping endpoint curl http://localhost:8000/ping # Test MCP endpoint with tools/list curl -X POST http://localhost:8000/mcp \ -H "Content-Type: application/json" \ -d '{"jsonrpc": "2.0","id": 1,"method": "tools/list"}' # Test MCP endpoint with tools/call curl -X POST http://localhost:8000/mcp \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": {"name": "get_weather", "arguments": {"location": "New York"}}}'
本機 A2A 伺服器測試
使用 Docker 在本機測試您的 A2A 伺服器
docker run -p 9000:9000 <your-container-image> # Test ping endpoint curl http://localhost:9000/ping # Retrieve agent card curl http://localhost:9000/.well-known/agent-card.json # Test A2A endpoint with message/send curl -X POST http://localhost:9000/ \ -H "Content-Type: application/json" \ -d '{ "jsonrpc": "2.0", "id": "req-001", "method": "message/send", "params": { "message": { "role": "user", "parts": [ { "kind": "text", "text": "what is 101 * 11?"}],"messageId": "12345678-1234-1234-1234-123456789012" }}}'
在 Bedrock AgentCore 執行期上測試
在本機測試容器之後,請將其上傳至 Amazon Elastic Container Registry (Amazon ECR),並將其部署至 Amazon Bedrock AgentCore 執行期。您可以使用 Amazon Bedrock AgentCore 執行期主控台或 AWS Command Line Interface (AWS CLI) 部署。
容器組態的最佳實務
安全考量
-
隔離 - 請勿在調用之間存放敏感資料
-
身分驗證 - 驗證所有傳入的請求
-
記錄 - 記錄適當的資訊,但避免包含敏感資料
-
相依性 - 保持所有相依性為最新狀態,以防止安全漏洞
效能最佳化
-
冷啟動 - 針對快速冷啟動最佳化您的容器
-
記憶體使用量 - 將記憶體使用量降至最低,以改善效能
-
並行 - 設計您的代理程式以有效率地處理並行請求
-
逾時 - 實作適當的逾時處理
錯誤處理
-
緩和降級 - 在服務無法使用時實作備用機制
-
結構化錯誤 - 傳回具有適當 HTTP 狀態碼的良好結構化錯誤回應
-
重試邏輯 - 針對暫時性失敗實作適當的重試邏輯
AWS Marketplace 提交要求
當您將 AgentCore 執行期容器提交至 時 AWS Marketplace,請包含:
-
容器映像 – 您的容器映像推送至 Amazon ECR
-
文件 – 有關如何使用您的代理程式或 MCP 伺服器的完整文件
-
使用範例 – 如何叫用代理程式或 MCP 伺服器的明確範例
-
支援資訊 – 支援聯絡資訊
-
定價資訊 – 清除代理程式或 MCP 伺服器的定價結構
其他資源
如需詳細資訊,請參閱下列內容:
在 上支援 AgentCore 執行期 AWS Marketplace
如需有關在 上列出 AgentCore 執行期容器的問題 AWS Marketplace,請參閱取得 的支援 AWS Marketplace。
如需 AgentCore 執行期的技術問題,請參閱 AWS 支援 和客戶服務