目 录CONTENT

文章目录

使用 Amazon Bedrock AgentCore Runtime 直接代码部署,实现更快的迭代

Administrator
2025-11-05 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

📢 转载信息

原文链接:https://aws.amazon.com/blogs/machine-learning/iterate-faster-with-amazon-bedrock-agentcore-runtime-direct-code-deployment/

原文作者:Chaitra Mathur, Kosti Vasilakakis, and Qingwei Li


Amazon Bedrock AgentCore 是一个用于安全、大规模构建、部署和运营高效代理的智能体平台。Amazon Bedrock AgentCore Runtime 是 Bedrock AgentCore 的全托管服务,它提供低延迟的无服务器环境来部署代理和工具。它支持会话隔离,支持包括流行开源框架在内的多种代理框架,并处理多模态工作负载和长期运行的代理。


AgentCore Runtime 支持基于容器的部署,其中容器定义包含在 Docker 文件中,代理构建为容器镜像。拥有容器构建和部署流水线的客户可以从这种方法中受益,其中代理部署可以集成到现有流水线中。


今天,AgentCore Runtime 发布了第二种部署代理的方法——直接代码部署(适用于 Python)。代理代码及其依赖项可以打包成 zip 归档文件,从而无需 Docker 定义和 ECR 依赖。这使得开发人员可以更轻松地进行原型设计和更快地迭代。这种方法非常适合那些在部署代理时不希望担心 Docker 专业知识和容器基础设施的客户。


在本文中,我们将演示如何使用直接代码部署(适用于 Python)。

介绍 AgentCore Runtime 直接代码部署

在使用基于容器的部署方法时,开发人员需要创建 Dockerfile、构建 ARM 兼容容器、管理 ECR 存储库,并为代码更改上传容器。当已建立自动化部署的容器 DevOps 流水线时,此方法效果很好。


然而,寻求完全托管部署的客户可以从直接代码部署中受益,这可以显著提高开发人员的时间和生产力。直接代码部署为快速原型设计代理功能到大规模部署生产工作负载提供了一条安全且可扩展的路径。


我们将讨论每种部署选项的优势,以帮助您为使用案例选择正确的方法。



通过直接代码部署,开发人员创建代码和依赖项的 zip 归档文件,将其上传到 Amazon S3,并在代理配置中配置存储桶。当使用 AgentCore 启动工具包时,该工具包会处理依赖项检测、打包和上传,从而提供大大简化的开发人员体验。直接代码部署也支持使用 API 进行操作。


让我们从高层次上比较这两种方法的部署步骤:

基于容器的部署

基于容器的部署方法涉及以下步骤:

  • 创建 Dockerfile
  • 构建 ARM 兼容容器
  • 创建 ECR 存储库
  • 上传到 ECR
  • 部署到 AgentCore Runtime

直接代码部署

直接代码部署方法涉及以下步骤:

  • 将您的代码和依赖项打包成 zip 归档文件
  • 将其上传到 S3
  • 在代理配置中配置存储桶
  • 部署到 AgentCore Runtime

如何使用直接代码部署

让我们用一个使用 Strands Agents SDK 创建并使用 AgentCore 启动工具包部署的代理来说明直接代码部署的工作原理。

先决条件

在开始之前,请确保您具备以下条件:

  • Python 3.10 到 3.13 的任何版本
  • 安装了您首选的包管理器。例如,我们使用 uv 包管理器。
  • 用于创建和部署代理的 AWS 账户
  • Amazon Bedrock 对 Anthropic Claude Sonnet 4.0 的模型访问权限

第 1 步:初始化您的项目

使用 uv 包管理器设置一个新的 Python 项目,然后导航到项目目录:

uv init <project> --python 3.13
cd <project>

第 2 步:为项目添加依赖项

安装项目所需的 Bedrock AgentCore 库和开发工具。在此示例中,依赖项是使用 .toml 文件添加的,也可以在 requirements.txt 文件中指定:

uv add bedrock-agentcore strands-agents strands-agents-tools
uv add --dev bedrock-agentcore-starter-toolkit
source .venv/bin/activate

第 3 步:创建 agent.py 文件

创建定义您的 AI 代理行为的主代理实现文件:

from bedrock_agentcore import BedrockAgentCoreApp
from strands import Agent, tool
from strands_tools import calculator
from strands.models import BedrockModel
import logging

app = BedrockAgentCoreApp(debug=True)
# Logging setup
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

# Create a custom tool
@tool
def weather():
    """ Get weather """
    return "sunny"

model_id = "us.anthropic.claude-sonnet-4-20250514-v1:0"
model = BedrockModel(
    model_id=model_id,
)

agent = Agent(
    model=model,
    tools=[calculator, weather],
    system_prompt="You're a helpful assistant. You can do simple math calculation, and tell the weather."
)

@app.entrypoint
def invoke(payload):
    """Your AI agent function"""
    user_input = payload.get("prompt", "Hello! How can I help you today?")
    logger.info("\n User input: %s", user_input)
    response = agent(user_input)
    logger.info("\n Agent result: %s ", response.message)
    return response.message['content'][0]['text'] if __name__ == "__main__":
    app.run()

第 4 步:部署到 AgentCore Runtime

配置并将您的代理部署到 AgentCore Runtime 环境:

agentcore configure --entrypoint agent.py --name <agent-name>

这将启动一个交互式会话,您可以在其中配置 S3 存储桶以下载 zip 部署包,并选择部署配置类型(如下所示的配置)。要选择直接代码部署,请选择选项 1 – Code Zip

部署配置

选择部署类型:

  1. Code Zip(推荐)– 简单、无服务器、无需 Docker
  2. Container – 用于自定义运行时或复杂依赖项
agentcore launch

此命令创建一个 zip 部署包,将其上传到指定的 S3 存储桶,并在 AgentCore Runtime 环境中启动代理,使其准备好接收和处理请求。

为了测试解决方案,我们提示代理查询天气情况:

agentcore invoke '{"prompt":"How is the weather today?"}'

首次部署大约需要 30 秒才能完成,但后续对代理的更新受益于简化的直接代码部署过程,耗时应不到一半,从而支持开发过程中的更快迭代周期

何时选择直接代码而不是基于容器的部署

让我们从一些维度来看直接代码和基于容器的部署选项有何不同。这将帮助您选择最适合您的选项:

  • 部署过程:直接代码将代理部署为 zip 文件,无需 DockerECRCodeBuild。基于容器的部署使用 DockerECR,并提供完整的 Dockerfile 控制权。
  • 部署时间:尽管首次部署代理时差异不大,但后续的代理更新在使用直接代码部署时明显更快(从容器的平均 30 秒缩短到直接代码部署的约 10 秒)。
  • 工件存储:直接代码将 ZIP 包存储在S3 存储桶中。基于容器的部署将 Docker 镜像存储在 Amazon ECR 中。直接代码部署会在标准 S3 存储费率(自 2026 年 2 月 27 日起)下产生存储成本,因为工件存储在服务账户中。基于容器的部署会在您的账户中产生 Amazon ECR 费用。
  • 定制化:直接代码部署通过基于 ZIP 的打包支持自定义依赖项,而基于容器的部署则依赖于 Dockerfile
  • 包大小:直接代码部署将包大小限制为 250MB,而基于容器的包最大可达 2GB。
  • 语言支持:直接代码目前支持 Python 3.10、3.11、3.12 和 3.13。基于容器的部署支持多种语言和运行时。

我们的总体指导方针是:

当您的包超过 250MB、您拥有现有的容器 CI/CD 流水线,或者您需要高度专业化的依赖项和自定义打包要求时,基于容器的部署是正确的选择。如果您需要多语言支持、自定义系统依赖项或直接控制您账户中的工件存储和版本控制,请选择容器。

当您的包小于 250MB、您使用 Python 3.10-3.13 以及像 LangGraph、Strands 或 CrewAI 这样的常见框架,并且需要快速迭代周期的快速原型设计时,直接代码部署是正确的选择。如果您的构建过程简单且没有复杂的依赖项,并且您希望移除 Docker/ECR/CodeBuild 的设置,请选择直接代码部署。

混合方法对许多团队都有效:使用直接代码部署进行快速原型设计和实验,其中快速迭代和简单的设置可以加速开发;然后,当包大小、多语言需求或专业化构建过程要求更高时,再过渡到容器用于生产环境。

结论

Amazon Bedrock AgentCore 的直接代码部署使得迭代式代理开发周期更快,同时仍能从部署的企业级安全性和规模中受益。开发人员现在无需创建容器,即可通过直接部署其代码来快速进行原型设计和迭代。要开始使用 Amazon Bedrock AgentCore 直接代码部署,请访问 AWS 文档




🚀 想要体验更好更全面的AI调用?

欢迎使用青云聚合API,约为官网价格的十分之一,支持300+全球最新模型,以及全球各种生图生视频模型,无需翻墙高速稳定,文档丰富,小白也可以简单操作。

0

评论区