第 14 章 Strands部署AgentCore

第 14 章:把 Agent 部署到云上

第 14 章:把 Agent 部署到云上

在 YouTube 观看

关于本课

本课程的视频是某个时间点的快照。Strands 还在快速迭代,所以这一页里的代码是最新的写法,但视频里讲的概念仍然成立。有疑问时,以代码为准。

本课代码:samples/14-deploy

从本地到生产

前面所有内容都跑在本地机器上。Strands Agent 本身就是 Python,所以你可以把它容器化,跑到任何地方。本课把它部署到 AWS,用 Amazon Bedrock AgentCore:Runtime 负责隔离执行,Memory 负责持久化和长期回忆,Observability 负责自动追踪。

AgentCore 概览

让 Agent 可以部署

把 Agent 包进一个 BedrockAgentCoreApp,再给它一个 entrypoint。Agent 本身没有变化;下面这个客服 Agent 就是前面几课一路搭起来的那个,只是换上了 AgentCore Memory 的 session manager 来做持久化:

from strands import Agent
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from bedrock_agentcore.memory.integrations.strands.config import (
    AgentCoreMemoryConfig, RetrievalConfig
)
from bedrock_agentcore.memory.integrations.strands.session_manager import (
    AgentCoreMemorySessionManager
)

app = BedrockAgentCoreApp()

MEMORY_ID = os.environ.get("BEDROCK_AGENTCORE_MEMORY_ID", "")

def create_agent(actor_id: str, session_id: str):
    # AgentCore Memory for persistence + long-term recall
    session_manager = None
    if MEMORY_ID:
        config = AgentCoreMemoryConfig(
            memory_id=MEMORY_ID,
            session_id=session_id,
            actor_id=actor_id,
            retrieval_config={
                "/users/{actorId}/facts": RetrievalConfig(),
                "/users/{actorId}/preferences": RetrievalConfig(),
            },
        )
        session_manager = AgentCoreMemorySessionManager(
            agentcore_memory_config=config,
            region_name="us-east-1",
        )

    return Agent(
        tools=[lookup_customer, get_order_history, process_refund],
        plugins=[AgentSkills(skills=["./skills"]), RefundWorkflowHandler(), tone_handler],
        system_prompt=SYSTEM_PROMPT,
        context_manager="auto",
        session_manager=session_manager,
    )

📂 main.py · lambda-deployment/ (alternative: AWS Lambda)

retrieval_config 里的 namespace 告诉 AgentCore Memory,每一轮该从哪些长期记忆策略里取内容。这样老用户回来时,Agent 能直接想起他的事实和偏好,不用把旧对话再重放一遍。

部署命令

# Install CLI
npm install -g @aws/agentcore

# Scaffold project
agentcore create

# Add memory
agentcore add memory --name CustomerServiceMemory --strategies SEMANTIC,USER_PREFERENCE

# Deploy
agentcore deploy

# Invoke
SESSION_ID=""
agentcore invoke --session-id "$SESSION_ID" \
  '{"prompt": "I need help returning my order", "actor_id": "sarah"}'

AgentCore 提供了什么

组件 作用
Runtime 隔离的 microVM,跨请求保持状态
Memory 对话持久化 + 语义化的长期回忆
Observability 自动产生 trace、日志和执行遥测
Gateway 把 API 暴露成兼容 MCP 的 Tool
Identity IAM 或 OAuth 认证关卡

AgentCore 的能力不止这些。完整的图景看 AgentCore 开发者指南。

你还缺什么

部署好的 Agent 只是生产架构里的一部分。它周围仍然需要 API 网关、限流、重试、安全控制、监控和错误处理。外围架构和 Agent 本身一样重要。

参考资源