运行时实例:为生产环境 AI 代理提供持久计算
在 Amazon Bedrock AgentCore 上创建容量提供程序与运行时实例,部署代码编写和评审代理,并在同一会话的共享文件系统里完成协作。

#运行时实例:为生产环境 AI 代理提供持久计算
把 AI 代理从原型搬到生产环境时,基础设施方面的挑战会成倍增加。代理需要在持续数小时或数天的多步骤工作流中保持状态。它们需要与其他代理协同、共享上下文,有时还要使用 GPU 完成专门任务。Amazon Bedrock AgentCore 的运行时微虚拟机(runtime microVMs)提供完全托管的环境,单次调用最长可运行 8 小时,并通过托管会话存储支持有状态工作流。另一些工作负载还需要专用、容量更大的环境——例如代理要连续运行多日、访问 GPU 或底层操作系统,或在同一台主机上运行多个相互协作的代理。
今天,我宣布 Amazon Bedrock AgentCore Runtime 中一项新的补充计算选项:运行时实例(runtime instances)。它为代理提供持久、托管的基础设施,专为复杂的代理工作负载而建。详见 Amazon Bedrock AgentCore Runtime。
你将得到什么
运行时实例提供由 AWS 托管的 EC2 基础设施。你可以在同一个运行时中部署多个代理,每个代理有自己的依赖和制品类型。代理可以在共享会话中协作,会话最长保持 14 天。该服务支持 GPU 加速,用于计算密集型任务;支持停止并重启会话,以便在空闲期节省费用;也支持容器化部署,方便团队独立发布。需要在会话之外保留的知识,可以与 Amazon Elastic Block Store (Amazon EBS) 以及 AgentCore Memory 配合使用。AgentCore Memory 让代理在不同会话和环境之间保留长期记忆。
在此之前,如果代理要连续运行数日,或需要 GPU,或要做多代理协同,你得自己搭建并管理这些基础设施:开通 EC2 实例、配置网络、建立会话管理、处理扩缩容,再把监控拼起来。运行时实例会替你完成这些工作,并接入你在 AgentCore Runtime 微虚拟机上已经在用的同一套 AgentCore API、身份控制和可观测性。
有几件事会让代理开发者觉得顺手:代理可以在共享会话里把彼此当作工具来调用,自主迭代直到任务完成。你可以使用任意框架(CrewAI、LangGraph、LlamaIndex、Strands)和任意模型。打包要求很少:一个 @app.entrypoint 装饰器,加上一个 zip 文件或容器镜像。如果工作流跨越多日,可以在周一晚间休眠,周三早上恢复,现场保持完整。
运行时微虚拟机和运行时实例是互补的计算选项,可以单独使用,也可以通过同一套 AgentCore 运行时 API 一起使用。轻量的编排代理可以跑在运行时微虚拟机上,把工作分派给跑在实例上的专用工作代理。编排代理利用运行时微虚拟机的快速扩缩容来处理 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}Python
下面是代码评审代理(已简化,没有错误处理):
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}Python
每个代理都是使用 Strands Agents 的 Python 应用,带有 @app.entrypoint 装饰器,并各自选择模型。我把每个代理打成 zip 文件。这次演示使用 AWS 管理控制台。你也可以使用 AgentCore CLI、AWS Command Line Interface (AWS CLI) 或基础设施即代码。
步骤 1:创建容量提供程序。
容量提供程序(capacity provider)定义代理所运行的 EC2 基础设施。在 AgentCore 控制台左侧导航中选择 Runtime,再选择 Capacity providers 选项卡,然后选择 Create capacity provider。
我填写 Name,Operating system 选择 Linux(64-bit ARM),Allowed instance types 选择 c7g.2xlarge。这样有 8 个 vCPU 和 16 GiB 内存,足够两个代理并排运行。
再往下,我配置网络访问所需的 VPC、subnets 和 security groups。在 Storage configuration 下保留默认的 gp3 卷。在 Service access 下选择 Create a new service role,让控制台创建代为管理 EC2 实例的基础设施角色。
我选择 Create capacity provider,等待几秒。状态变为 Active。
记下容量提供程序配置摘要:操作系统、实例类型、子网、安全组、实例配置文件和基础设施角色。创建之后只能修改描述,继续之前请核对这些设置。
步骤 2:创建运行时并部署第一个代理。
回到 Runtime 页面,选择 Create runtime。填写 Name,Compute type 选择 Instances,并选择上一步创建的 Capacity provider。
在 Agent source 下选择 S3 Source,然后选择 Upload to S3。我选择代理 zip 文件(ACIDemoWriter.zip),把 Language runtime 设为 Python 3.13,,并把 Agent entry point 指定为 agent.py。这个文件包含带 @app.entrypoint 装饰器的函数。在 Permissions 下选择 Create default role,让控制台为代理预配所需的 IAM 角色。
我选择 Create runtime,等待状态变为 Ready。
对代码评审代理重复同样的过程。我创建第二个运行时,选择同一个容量提供程序,上传评审代理的 zip 文件,并等待它变为 Ready。两个代理现在共享同一套底层 EC2 基础设施。
控制台会显示 View invocation code 部分,其中有可直接使用的 Python、TypeScript 和 JavaScript 片段,用于以编程方式调用代理。这次演示我使用内置测试功能。在编写代理的页面上选择 Test。
步骤 3:调用代理并观察协作。
Runtime playground 打开。顶部有三个字段:Runtime agent、Endpoint 和 Session ID。控制台会自动生成会话 ID。我记下它,因为稍后要在评审代理上复用。
在 Input 字段中,我输入一段 JSON,要求编写代理生成代码:
{"prompt": "write a fibonacci suite"}JSON
我选择 Run。几秒后,Output 面板显示代理的响应。编写代理生成了一个 Python 模块,其中有两种斐波那契数列实现(一个基于列表的函数和一个生成器),并写入 /tmp/agentcore-session/ca5ec24d-07f5-4eeb-add1-5ba416bf9eb2/code.py。注意文件路径中的会话 ID。该目录就是这个会话的共享文件系统。
步骤 4:在同一会话中调用评审代理。
现在把 Runtime agent 下拉框切换到 ACIDemoReviewer。关键在于:我把同一个会话 ID(ca5ec24d-07f5-4eeb-add1-5ba416bf9eb2))粘贴到 Session ID 字段。正是它把两个代理连在一起。
我输入一条简单提示:
{"prompt": "review the code"}JSON
我选择 Run。评审代理从共享会话目录读取编写代理写出的文件,并返回详细的代码评审。它没有发现关键缺陷,但建议补充类型标注、输入校验,并简化边界情况的处理。
两个代理没有交换消息,也没有调用彼此的 API。它们通过运行时实例在会话内提供的共享文件系统完成协作。你可以把这个模式扩展到任意数量的代理:运行代码的测试代理、生成 README 的文档代理、扫描漏洞的安全代理,都共享同一个工作目录。
关键细节
开始使用时需要知道以下几点:
- 支持的操作系统:发布时为 Linux(ARM64 和 x86_64)。
- 会话保持:会话最长保持 14 天。
- 运行时:Python 3.11–14,支持原生代码。也支持容器镜像。
- GPU:支持 GPU 加速实例类型。
- 集成:使用与 AgentCore Runtime 相同的 AgentCore API、身份、可观测性和策略控制。
- 定价:标准 EC2 价格,另加 AgentCore 编排的管理费。
- 区域:美国东部(俄亥俄、弗吉尼亚北部)、美国西部(俄勒冈)、亚太地区(孟买、新加坡、悉尼、东京)以及欧洲(法兰克福、爱尔兰)
要开始使用,请查阅 Amazon Bedrock AgentCore 文档中的运行时实例,并创建你的第一个容量提供程序。
PRIMARY_SOURCE: https://aws.amazon.com/blogs/aws/runtime-instances-persistent-compute-for-production-ai-agents-on-amazon-bedrock-agentcore
- #运行时实例
- #AgentCore
- #部署
- #多代理
- #容量提供程序


