构建 Agent 原型 - II

启动本地开发服务器

直接启动本地开发服务器:

agentcore dev

CLI 启动一个带有交互式聊天界面的本地开发服务器:

image-20260401114215928

测试 Agent

在交互式提示中,尝试以下查询:

测试退货政策工具:

What's the return policy for electronics?

预期结果:agent 调用 get_return_policy("electronics") 并返回带有条件的30天退货窗口。

image-20260401114358149

测试产品信息工具:

Tell me about the Wireless Headphones

预期结果:agent 调用 get_product_info("headphones") 并返回产品详情、价格和保修信息。

image-20260401114427398

测试网络搜索:

Search for common Bluetooth headphone troubleshooting tips

预期结果:agent 使用 Exa AI MCP 服务器搜索网络并返回相关的故障排除信息。

image-20260401114450999

测试多工具查询:

I bought a Smart Watch (PROD-002) and want to return it. What's the policy?

预期结果:agent 同时调用 get_product_info("PROD-002") 来识别类别,以及 get_return_policy("electronics") 来提供退货政策。

完成后按 Esc 退出开发服务器。

使用 CLI 调用进行测试(非交互式)

我们也可以从命令行调用 agent,而无需使用交互式 TUI。

在第一个终端中,以非交互模式启动开发服务器:

agentcore dev --logs

我们应该看到服务器启动并开始监视更改:

然后,在第二个终端中,调用 agent:

agentcore dev "What can you do?" --stream

agent 以流式方式直接向终端响应其功能摘要:

这对于脚本编写和 CI/CD 流水线非常有用。

将 Agent 部署到 AWS

使用 agentcore dev 进行本地开发非常适合快速迭代——我们可以获得即时反馈和紧密的开发循环。但在某些时候,我们希望 agent 在云端运行:可扩展、始终在线,并为真实用户做好准备。

AgentCore CLI 部署到aws:

agentcore deploy

image-20260401132224059

然后我们可以检查部署状态

agentcore status

image-20260401132245161

调用我们已部署的 agent

agentcore invoke "你能干啥?"

image-20260401132327274

现在我们的架构如下所示:

在aws页面上,能找到这个agentcore Runtime:

image-20260401134347688

image-20260401134428756

总结

当我们运行 agentcore create 时,CLI:

  1. 搭建了项目框架 — 创建了包含 agentcore/(配置 + CDK)和 app/(agent 代码)的目录结构
  2. 生成了 agent 代码 — 创建了带有 Strands Agent、示例工具和 MCP 客户端的 main.py
  3. 设置了 Python 环境 — 通过 uv 创建了虚拟环境并安装了依赖项
  4. 初始化了 git — 设置了带有适当 .gitignore 文件的 git 仓库

当我们自定义 main.py 时,我们:

  1. 替换了示例工具,使用了特定领域的工具(get_return_policyget_product_info
  2. 保留了 MCP 客户端(Exa AI)作为网络搜索功能
  3. 添加了客户支持系统提示以指导 agent 的行为

当我们运行 agentcore dev 时,CLI:

  1. 创建了 .venv(如果不存在)
  2. 运行了 uv sync 以从 pyproject.toml 安装依赖项
  3. 在端口 8080 上启动了 uvicorn 运行我们的 agent
  4. 启用了热重载 — 任何代码更改都会自动生效

当我们运行 agentcore deploy 时,CLI:

  1. 打包了我们的 agent — 将我们的代码和依赖项捆绑成可部署的工件
  2. 配置了基础设施 — 通过 CDK 创建了必要的 IAM 角色和运行时环境
  3. 部署到 AgentCore Runtime — 将我们的 agent 推送到云端完全托管的可扩展端点