从本地到云端 | OpenClaw Agent + Bedrock AgentCore SDK 部署全攻略

26 阅读1分钟

手里有个跑得好好的 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

async for event in agent.stream_async(prompt):
    yield event

app.run()


这段代码做了三件事:
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,一行配置搞定:

# .bedrock_agentcore.yaml
observability:
  enabled: true
  traces:
    export_to: cloudwatch

部署后自动把 trace 发到 Amazon CloudWatch,可以在控制台看到每次请求的完整调用链。

部署到 AgentCore Runtime

# 一条命令部署
agentcore deploy

这条命令会:

  1. 打包 Agent 代码和依赖
  2. 上传到 AgentCore Runtime
  3. 配置自动扩缩容
  4. 返回调用端点

部署完成后拿到端点 URL。

调用已部署的 Agent

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 可以跨会话记住上下文:

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 直接调用:

# 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 更划算。

踩坑记录

  1. Python 版本:需要 3.10+,3.9 会报 asyncio 兼容问题
  2. IAM 权限:首次部署需要 bedrock-agentcore:* 权限,正式环境记得收窄
  3. 模型访问:确保在 Bedrock 控制台开启了目标模型的访问权限
  4. 冷启动:首次调用有 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…