本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
适用于 Amazon Bedrock AgentCore 运行时 AWS Marketplace
本文档为想要列出可部署在 Amazon Bedrock AgentCore Runtime 上的 AI 代理或工具的 AWS Marketplace 卖家提供信息。它概述了为支持 Bedrock AgentCore Runtime 的容器做好准备的技术要求、配置指南和最佳实践。 AWS Marketplace
主题
概述
Amazon Bedrock AgentCore Runtime 为部署和运行 AI 代理或工具提供了一个安全、无服务器和专门构建的托管环境。在上列出 Bedrock AgentCore Runtime 容器时 AWS Marketplace,你需要确保它满足特定要求,以便在 Bedrock AgentCore 环境中正常运行。
注意
要了解更多信息,请参阅 Amazon Bedrock AgentCore 运行时入门。
基岩 AgentCore 容器技术要求
Amazon Bedrock AgentCore Runtime 对列出 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 Runtime 允许您部署和运行模型上下文协议 (MCP) 服务器。当你使用 MCP 协议配置 Amazon Bedrock R AgentCore untime 时,该服务需要路径上有 MCP 服务器容器。0.0.0.0:8000/mcp这是大多数官方 MCP 服务器 SDKs 支持的默认路径。
由于 Amazon Bedrock AgentCore Runtime 默认提供会话隔离,因此它需要无状态的 Streamable-HTTP 服务器。对于任何不包含 Mcp-Session-Id 标头的请求,该运行时都会自动添加一个标头。这允许 MCP 客户端保持与同一 Amazon Bedrock AgentCore 运行时会话的连接连续性。
InvokeAgentRuntime API 会直接透传有效载荷数据,因而能够轻松代理 MCP 等协议的 RPC 消息。
要求:
-
传输 - 必须仅使用无状态且可流式传输的 HTTP
-
会话管理 - 平台会自动添加
Mcp-Session-Id标头以实现会话隔离 -
主机 - 容器必须侦听
0.0.0.0 -
端口 - 容器必须公开端口
8000才能进行 MCP 服务器通信 -
路径 - 必须将
/mcp公开为 POST 端点,以便接收 MCP RPC 消息。InvokeAgentRuntimeAPI 会将请求传递到此路径,以供 MCP 服务器处理。 -
协议 - MCP 服务器必须支持 MCP 协议,包括以下协议消息:
-
tools/list -
tools/call(由 FastMCP 等常见框架支持)
-
要了解有关 MCP 服务器要求的更多信息,请参阅在运行时部署 MCP 服务器。 AgentCore
/mcp - POST
这是客户使用呼叫 MCP 服务器时的主要代理互动端点。 InvokeAgentRuntime
发布请求示例:
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 Runtime 允许您在运行时中部署和运行 Agent-to-Agent (A2A) 服务器。 AgentCore Amazon Bedrock AgentCore 的 A2A 协议支持通过充当透明代理层来实现与 A2A 服务器的无缝集成。在 A2A 配置时,Amazon Bedrock AgentCore 希望容器9000在根路径 (0.0.0.0:9000/) 的端口上运行无状态、可流式传输的 HTTP 服务器,这与默认 A2A 服务器配置一致。
该服务提供企业级会话隔离,同时保持协议透明度——来自 InvokeAgentRuntime API的JSON-RPC有效负载无需修改即可直接传递到A2A容器。该架构保留了标准的 A2A 协议功能,例如通过代理卡和 JSON-RPC 通信发现内置代理,同时增加了企业身份验证 (Sigv4/ 2.0) /.well-known/agent-card.json 和可扩展性。OAuth
与其他协议的主要区别在于端口(HTTP 为 9000 与 8080)、挂载路径(/vs/invocations)和标准化代理发现机制,这使得 Amazon Bedrock AgentCore 成为生产环境中 A2A 代理的理想部署平台。
要求:
-
端口-A2A 服务器在端口 9000 上运行(而 HTTP 为 8080,MCP 为 8000)
-
主机 - 容器必须侦听
0.0.0.0 -
路径
-
A2A 服务器安装在
/(与 HTTP 相比,/mcpMCP 服务器/invocations的安装位置) -
/ping使用 GET 时进行健康检查
-
-
特工卡片-A2A 通过代理卡提供内置代理发现功能
/.well-known/agent-card.json -
协议-使用 JSON-RPC 进行通信 agent-to-agent
-
身份验证-同时支持 Sigv4 和 OAuth 2.0 身份验证方案
要了解有关 A2A 服务器要求的更多信息,请参阅在运行时部署 A2A 服务器。 AgentCore
/ - POST
这是客户使用呼叫 A2A 服务器时的主要代理互动端点。 InvokeAgentRuntime
代理调用请求示例:
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 ECR) Container Registry,然后将其部署到亚马逊 Bedrock Runtime。 AgentCore 您可以使用 Amazon Bedrock AgentCore 运行时控制台或 AWS Command Line Interface (AWS CLI) 进行部署。
容器配置的最佳实践
安全注意事项
-
隔离 - 不要在两次调用之间存储敏感数据
-
身份验证 - 验证所有传入请求
-
日志记录 - 记录适当的信息,但要避免包含敏感数据
-
依赖项 - 确保所有依赖项始终处于最新状态,以防出现安全漏洞
性能优化
-
冷启动 - 优化您的容器以实现快速冷启动
-
内存使用 - 最大限度减少内存占用以提高性能
-
并发处理 - 代理需设计为能够高效处理并发请求
-
超时 - 实施适当的超时处理
错误处理
-
优雅降级 - 在服务不可用时实施回退机制
-
结构化错误 - 返回结构良好的错误响应,并配备恰当的 HTTP 状态码
-
重试逻辑 - 针对暂时性故障实施适当的重试逻辑
AWS Marketplace 提交要求
当你向提交 AgentCore 运行时容器时 AWS Marketplace,请包括:
-
容器镜像 — 您的容器镜像已推送到 Amazon ECR
-
文档 — 有关如何使用代理或 MCP 服务器的全面文档
-
用法示例 — 如何调用代理或 MCP 服务器的清晰示例
-
S@@ upport 信息 — 支持联系信息
-
定价信息 — 为您的代理或 MCP 服务器提供清晰的定价结构
其他资源
有关更多信息,请参阅下列内容:
对 AgentCore Runtime 的支持 AWS Marketplace
有关在上架 AgentCore 运行时容器的问题 AWS Marketplace,请参阅获取支持 AWS Marketplace。
有关 AgentCore Runtime 的技术问题,请参阅AWS 支持 和客户服务