亚马逊AWS官方博客
运行时实例:Amazon Bedrock AgentCore 上用于生产级人工智能代理的持久化计算
当您将人工智能代理从原型阶段迁移至生产环境时,基础设施层面的挑战会成倍增加。您的代理需要在持续数小时或数天运行的多步骤工作流中保持状态。它们需要与其他代理进行协调,共享上下文,有时还需要访问 GPU 来完成专门的任务。Amazon Bedrock AgentCore 运行时 microVM 为调用提供完全托管的环境,该环境最长可运行 8 小时并通过托管会话存储支持有状态的工作流。有些工作负载还受益于专用且容量更大的环境,例如当代理需要连续运行数天、访问 GPU 或底层操作系统,或在同一主机上运行多个协作代理时。
今天,我很高兴地宣布推出运行时实例,这是 Amazon Bedrock AgentCore 运行时中的一个新的补充计算选项,可为您的代理提供专为复杂代理工作负载构建的持久托管基础设施。
您将获得
运行时实例提供 AWS 的 EC2 基础设施,您可以在单个运行时部署多个代理,每个代理都有自己的依赖项和构件类型。您的代理可以在最长持续 14 天的共享会话中与同一个主机进行协作。该服务支持对计算密集型任务进行 GPU 加速,支持在空闲期间停止/重启会话以节省成本,并为想要独立部署的团队提供容器化部署。对于需要在会话之外持久保存的知识,运行时实例自然地与 Amazon Elastic Block Store(Amazon EBS)和 AgentCore 内存配对,可使您的代理在多个会话和环境中实现长期记忆。
在今天之前,如果您想让代理持续运行数天,或代理需要 GPU 访问,或需要多代理协调,您必须自己构建并管理相应的基础设施。您预置了 EC2 实例,配置了网络,设置了会话管理,处理了扩展,并将监控整合在一起。运行时实例会为您处理所有这些操作,同时集成与您已用于 AgentCore 运行时 microVM 的相同 AgentCore API、身份控制和可观测性功能。
一些能让代理开发者感到开心的事情:您的代理可以在共享会话中作为工具相互调用,自主迭代直到作业完成。您可以自带任何框架(CrewAI、LangGraph、LlamaIndex、Strands)和任何模型。包装内容极少,仅包含一个 @app.entrypoint 装饰器以及一个 zip 文件或容器镜像。而且,如果您的工作流持续数天,可以在周一晚上进入休眠状态,并在周三早上恢复,且所有内容保持完整。
运行时 microVM 和运行时实例是互补的计算选项,您可以单独使用它们,也可以通过相同的 AgentCore 运行时 API 一起使用。运行时 microVM 上的轻量级编排工具代理可以协调工作并将其分派给在实例上运行的专业工作程序代理。编排工具使用运行时 microVM 的快速扩展功能来处理 API 调用、任务路由和结果聚合,而实例上的工作程序则执行需要持久状态和操作系统直接访问的计算密集型任务,例如代码编译、安全扫描或 GUI 自动化。
我将向您展示它的工作原理
我为此演示构建了两个代理:一个代码编写器代理,用于根据自然语言描述生成 Python 代码;一个代码审查器代理,用于分析生成的代码中的漏洞、安全问题以及代码风格改进。两个代理共享同一个文件系统,因此审查器可以读取编写器生成的任何内容,而无需在它们之间进行任何数据传输或 API 调用。
以下是代码编写器(简化版本,无错误处理):
writer = Agent(
model="us.anthropic.claude-sonnet-4-5-20250929-v1:0",
system_prompt=(
"You are a senior Python engineer. "
"Given a task, return ONLY a single Python code block — no prose."
),
)
@app.entrypoint
def handler(event, context):
task = event.get("task") or event.get("prompt")
session_id = getattr(context, "session_id", None) or event.get("session_id")
session_dir = SHARED_DIR / session_id
session_dir.mkdir(parents=True, exist_ok=True)
code = str(writer(task))
(session_dir / "code.py").write_text(code)
return {"agent": "writer", "wrote": str(session_dir / "code.py"), "code": code}
以下是代码审查器代理(简化版本,无错误处理):
reviewer = Agent(
model="us.anthropic.claude-sonnet-4-5-20250929-v1:0",
system_prompt=(
"You are a strict Python code reviewer. "
"Given code, return 3 bullet points: bugs, style, suggestions."
),
)
@app.entrypoint
def handler(event, context):
session_id = getattr(context, "session_id", None) or event.get("session_id")
code_path = SHARED_DIR / session_id / "code.py"
code = code_path.read_text()
review = str(reviewer(f"Review this code:\n\n{code}"))
return {"agent": "reviewer", "read": str(code_path), "review": review}
每个代理都是一个使用 Strands Agents 的 Python 应用程序,具有 @app.entrypoint 装饰器,并可使用您选择的模型。我把每个代理都打包成一个 zip 文件。在本演示中,我将使用 AWS 管理控制台。您也可以使用 AgentCore CLI、AWS 命令行界面(AWS CLI)或基础设施即代码。
第 1 步:创建容量提供程序。
容量提供程序定义您的代理运行所在的 EC2 基础设施。在 AgentCore 控制台中,我在左侧导航栏中选择运行时,然后选择容量提供程序选项卡和创建容量提供程序。
给它取一个名称,选择 Linux(64 位 ARM)作为操作系统,并选择 c7g.2xlarge 作为允许的实例类型。这为我提供了 8 个vCPU和 16GiB 的内存,足以让两个代理顺畅地并行运行。
接下来,配置 VPC、子网和安全组以实现网络访问。在存储配置下,保留默认的 gp3 卷。在服务访问权限下,选择创建新服务角色,然后让控制台创建代表我管理 EC2 实例的基础设施角色。
选择创建容量提供程序,然后等待几秒钟。状态变为活动。
记下容量提供程序的配置摘要:操作系统、实例类型、子网、安全组、实例配置文件和基础设施角色。创建后,只能编辑描述,因此请先验证您的设置,然后再继续。
第 2 步:创建运行时并部署第一个代理。
返回运行时页面,选择创建运行时。给它取一个名称,选择实例作为计算类型,然后选择我在上一步创建的容量提供程序。
在代理来源下,选择 S3 源,然后选择上传到 S3。选择我的代理压缩文件(ACIDemoWriter.zip),将语言运行时设置为 Python 3.13,并指定 agent.py 作为代理入口点。这是包含我的 @app.entrypoint 修饰函数的文件。在权限下,选择创建默认角色,让控制台预置我的代理所需的 IAM 角色。
选择创建运行时并等待状态变为就绪。
对我的代码审查器代理重复同样的过程。创建第二个运行时,选择相同的容量提供程序,上传我的审查器代理 zip 文件,然后等待它变为就绪状态。两个代理现在共享同一个底层 EC2 基础设施。
控制台向我展示了查看调用代码部分,其中包含即用型 Python、TypeScript 和 JavaScript 代码段,用于以编程方式调用我的代理。但是在此演示中,我使用了内置的测试功能。我在编写器代理的页面上选择测试。
运行时演练场打开。顶部显示了三个字段:运行时代理、端点和会话 ID 。控制台会自动生成会话 ID。我记下了它,因为我会在审查器代理中重复使用它。
在输入字段中,我键入一个 JSON 有效载荷,要求编写器代理生成代码:
{"prompt": "write a fibonacci suite"}
选择运行。几秒钟后,输出面板显示代理的响应。编写器代理生成了一个 Python 模块,其中包含 Fibonacci 序列的两种实现(基于列表的函数和生成器),并将其写入 /tmp/agentcore-session/ca5ec24d-07f5-4eeb-add1-5ba416bf9eb2/code.py。注意文件路径中的会话 ID。该目录是此会话的共享文件系统。
第 4 步:在同一会话中调用审查器代理。
现在,将运行时代理下拉列表切换到 ACIDemoReviewer。重要部分:我将相同的会话 ID(ca5ec24d-07f5-4eeb-add1-5ba416bf9eb2)粘贴到会话 ID字段中。这就是连接两个代理的纽带。
我键入一个简单的提示:
{"prompt": "review the code"}
选择运行。审查器代理从共享会话目录中读取编写器生成的文件,并返回详细的代码审查。它未发现严重漏洞,但建议添加类型提示、输入验证,并简化异常情况的处理。
这两个代理从未交换过消息或调用彼此的 API。它们通过运行时实例在会话中提供的共享文件系统进行协作。您可以将此模式扩展到任意数量的代理:运行代码的测试代理、生成 README 文件的文档代理、扫描漏洞的安全代理,它们都可以共享同一个工作目录。
关键细节
开始使用时需要注意以下几点:
- 支持的操作系统:启动时为 Linux(ARM64 和 x86_64)。
- 会话持久性:会话最长可持续 14 天。
- 运行时:支持原生代码的 Python 3.11-14。还支持容器镜像。
- GPU:支持 GPU 加速的实例类型。
- 集成:使用与 AgentCore 运行时相同的 AgentCore API、身份、可观测性和策略控制。
- 定价:标准 EC2 定价加上 AgentCore 编排的管理费。
- 区域:美国东部(俄亥俄州、弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(孟买、新加坡、悉尼、东京)和欧洲地区(法兰克福、爱尔兰)
要开始使用,请访问 Amazon Bedrock AgentCore 文档中的运行时实例,然后创建您的第一个容量提供程序。







