手里有个跑得好好的 OpenClaw Agent,想搬到 AWS 上让它自动扩缩、有监控有告警?Amazon Bedrock AgentCore 就是干这个的------把任意框架的 AI Agent 变成生产级应用,不用自己管服务器。
这篇走一遍完整流程:本地 OpenClaw Agent → AgentCore SDK 封装 → 部署到 AgentCore Runtime → 调用测试。
AgentCore 是什么
Amazon Bedrock AgentCore 是亚马逊云科技 2026 年推出的 Agent 托管平台。核心卖点:
- 框架无关:Strands、LangGraph、CrewAI、Autogen,甚至自己写的框架都行
- 零基础设施:不用管服务器、容器、扩缩容
- 企业级能力:内置认证、记忆持久化、可覂测性、安全隔离
GitHub 上 Python SDK 已经 600 多颗星(aws/bedrock-agentcore-sdk-python),今天还在活跃更新。ntCoreApp from strands import Agent
app = BedrockAgentCoreApp()
@app.entrypoint async def handler(request): prompt = request.get("prompt") agent = Agent() # 默认用 Bedrock Claude
csharp
async for event in agent.stream_async(prompt):
yield event
app.run()
bash
这段代码做了三件事:
1. 创建 AgentCore 应用实例
2. 定义入口函数,接收请求、创建 Agent、流式返回结果
3. 启动应用
## 本地测试
```bash
# 确保 AWS 凭证已配置
aws configure list
# 本地运行
agentcore dev
# 另一个终端测试
curl -X POST http://localhost:8080/invoke \
-H "Content-Type: application/json" \
-d '{"prompt": "帮我写一个 Python 快速排序"}'
开启可观测性
AgentCore 原生支持 OpenTelemetry,一行配置搞定:
yaml
# .bedrock_agentcore.yaml
observability:
enabled: true
traces:
export_to: cloudwatch
部署后自动把 trace 发到 Amazon CloudWatch,可以在控制台看到每次请求的完整调用链。
部署到 AgentCore Runtime
bash
# 一条命令部署
agentcore deploy
这条命令会:
- 打包 Agent 代码和依赖
- 上传到 AgentCore Runtime
- 配置自动扩缩容
- 返回调用端点
部署完成后拿到端点 URL。
调用已部署的 Agent
python
import boto3
import json
client = boto3.client('bedrock-agentcore-runtime')
response = client.invoke_agent(
agentId='your-agent-id',
sessionId='test-session-001',
inputPayload=json.dumps({
'prompt': '用 Amazon S3 存日志有什么注意事项?'
})
)
for event in response['outputStream']:
print(event.get('chunk', {}).get('bytes', b'').decode())
记忆持久化
AgentCore 内置 Memory 服务,Agent 可以跨会话记住上下文:
python
from bedrock_agentcore.memory import MemoryClient
memory = MemoryClient()
# 存储
await memory.put(
namespace="user-123",
key="preferences",
value={"language": "zh-CN", "style": "concise"}
)
# 读取
prefs = await memory.get(namespace="user-123", key="preferences")
不用自己搭 Redis 或 DynamoDB,AgentCore 托管存储。
Gateway:把 API 变成 MCP 工具
AgentCore Gateway 可以把现有 REST API 自动转成 MCP 工具,Agent 直接调用:
yaml
# gateway-config.yaml
tools:
- name: get_weather
source:
type: http
url: https://api.weather.com/v1/current
method: GET
parameters:
- name: city
type: string
required: true
这样 Agent 就能直接说"查一下北京天气",Gateway 自动调 API。
成本
AgentCore Runtime 按调用次数和运行时长计费,不用的时候不花钱(缩到 0)。对比自己跑 EC2:
| 方案 | 月成本(估算) | 运维负担 |
|---|---|---|
| EC2 t4g.small 全天跑 | ~$12 | 需要自己管 |
| AgentCore Runtime | 按调用付费 | 零运维 |
低频调用场景下 AgentCore 更划算。
踩坑记录
- Python 版本 :需要 3.10+,3.9 会报
asyncio兼容问题 - IAM 权限 :首次部署需要
bedrock-agentcore:*权限,正式环境记得收窄 - 模型访问:确保在 Bedrock 控制台开启了目标模型的访问权限
- 冷启动:首次调用有 5-10 秒冷启动,后续请求毫秒级
Amazon Bedrock AgentCore 文档:docs.aws.amazon.com/bedrock-age... AgentCore Python SDK:github.com/aws/bedrock... Strands Agents:strandsagents.com/latest/ OpenClaw:github.com/openclaw/op...