AWS代付、代实名
阿里云国际 | 腾讯云国际

基于Strands Agents SDK 构建AI Agent 运行时

亚马逊AWS官方博客

基于Strands Agents SDK 构建AI Agent 运行时

背景

AI Agent 作为当前发展最快的技术趋势之一, 不同于专注特定领域任务的传统 AI 应用, 能在更少人工干预的情况下, 管理和执行端到端的流程, 从单纯的工具进化为团队成员, 使企业生产力、效率和增长方面进入一个新的时代. 有研究报告指出: “AI Agent 竞争势头已经明显增强, 93%的企业管理者认为在接下来的一年内在企业内部规模扩展AI Agent 的使用会让企业在同类竞争者中保持领先地位”. 尽管如此, 现实情况是: 大部分企业还不知道以何种方式快速构建、运行和管理AI Agents, 将AI Agents 快速在企业内部落地应用. 基于此, 本文从AI Agent 的结构和组成入手, 结合AWS Strands Agents SDK, 构建一个集 Agent 构建和运行的参考实现平台, 且在参考实现平台集成了AgentCore Browser user tool 和 AgentCore Code Interpreter tool, 方便用户使用相应的工具来构建Agents.

AI Agent ** **组成、架构及开发框架

在Google 的Agents 白皮书中, 针对AI Agent的核心功能, 给出了其组成构件和架构, 如下图所示.

AI Agent 包含三个必不可少的组件:

  • The model(模型)

在AI Agent 范畴, 模型是指大语言模型(LLM), 作为Agent的中心化决策者, 进行任务分解、执行和检测任务是否完成. 一般来讲, Agent 中使用的模型, 基于推理和逻辑框架(如, ReAct, Chain-of-Thought, 或者 Tree-of-Thoughts), 需要有很强的指令遵循能力.

  • Tools(工具集)

尽管模型在文本、图片等方面具有很强的生成能力, 但由于模型不能与外部世界交互, 模型的能力受到极大约束. 而工具可以抹平这种裂痕, 使得Agents 可以与外部数据和服务进行交互, 更大范围拓展Agent 除模型本身之外的能力.

  • The orchestration layer(编排层)

编排层描述Agent 如何 接收外部信息, 执行内部推理(Reasoning), 使用推理结果来确定下一步动作和决策的这一循环过程.这个过程会一直循环, 直到Agent完成任务目标或者达到停止点.

Agent 的工作流程如下图所示:

  • AI Agents 与外部环境交互, 并从用户接收输入、触发或者目标.
  • 通过模型的推理, 将目标分解成特定的动作和步骤, 并确定任务的顺序
  • 任务执行过程中, AI Agents 可以访问内部的数据和工具(如知识库、企业系统)以及通过MCP 协议访问外部的工具(如第三方数据库, Web 搜索等)
  • AI Agent Orchestration 组件循环执行 Reasoning -> Action Plan -> Execution 这个Loop. 循环过程中可能会有安全护栏(Guardrails) 来确保道德、运营和安全标准
  • 由于Agent 执行过程可能会执行多轮循环, 受限于模型的上下文窗口长度以及对模型精度的要求, AI Agent 使用 Memory 来维护执行过程的上下文, 从前面的迭代或者过去的执行中学习, 提升Agent的性能表现
  • 在Multi-Agent 场景, Agent -to -Agent(A2A) 协议被用来实现Agent 之间的协作.

Strands Agents SDK 是一个开源的AI Agent 开发框架, 使用Strands Agents SDK, 可以利用几行代码快速开发生产可用的multi-agents AI系统. 具有丰富的特性:

  • Agent Loop: Strands Agents 实现了处理用户输入、决策、执行工具、响应生成的循环过程, 这个过程支持复杂的、多步骤的推理和动作执行, 并且可以无缝的集成Model 和
  • 在Model 方面, 提供多种Model Provider 实现, 如Amazon Bedrock, Anthropic, OpenAI, Ollama, LiteLLM 等, 开发者可以灵活 的选择各种商业或者开源的模型来驱动AI Agent.
  • 在Tools 方面, Strands Agents 支持

  • Python Tools: 支持 以@tool 函数装饰器方式和基于Python 模块方式来定义Agent 可用的Tools
  • Model Context Protocol(MCP) Tools: 集成MCP Server 的Tools 作为 Agent 可用的Tools, 并且支持STDIO 和 Streamable HTTP 两种Transport 类型的MCP Server
  • Agent Tools: 在multi-agent 场景, Strands Agents 框架支持将其他Agent作为 当前Agent的一个Tool 来完成特定领域的任务.

Strands Agents 自带了丰富的、开箱即用的基础工具, 如文件读写、memory(mem0_memory 和agent_core_memory)、browser use(local_chromium_browser和agent_core_browser(remote))、Code Interpretation(python_repl 和 agent_core_interpreter)、多模态(image_reader, generate_image, nova_reels, diagram) 等等, 极大地方便了Agent 应用的开发, 使得开发者可以像搭积木一样, 快速开发出自己的Agent.

  • 在Multi-Agent 方面, Strands Agents 支持以下模式:

  • Agent-to-Agent(A2A) protocol, 支持不同平台和实现的AI Agents 间无缝沟通
  • Agents as Tools, 通过编排(orchestration) Agent 来接收用户输入并决定使用哪个特定的Agent 来完成相应的任务, 也就是将特定的Agent 当具体的工具来用
  • Swarm, 多个Agent 以团队的方式共同来完成复杂任务, 这种方式允许Agent 间自主协作, 共享上下文以及记忆来完成共同的任务
  • Graph, 以有向无环图(DAG)的方式编排各个Agent, Agent作为节点, 以DAG结构图作为执行顺序, 一个节点(Agent) 的输出将传播到与其连接的节点, 并作为其输入. 这种模式可以实现非常的复杂的Agent系统
  • Workflow, 这种模式适合复杂的多步骤流程, 并且任务间有依赖关系, 必须等上一步执行完成后, 才能执行下一步, 每一步都由一个专家Agent 来完成对应的任务.

除上述核心特性外, Strands Agents SDK 在Agent 的安全性、应用的可观测性以及Agent 部署方面提供了原生支持, 可以说, Strands Agents SDK 提供了开发AI Agent所需的方方面面, 使开发者可以便捷的、快速的开发自己的Agent 应用.

AI Agent ** **构建和运行时

Strands Agents SDK显著提升了AI Agent的开发效率,但仍存在两个关键挑战:首先,开发完成后的Agent部署与运行管理问题;其次,尽管SDK已经极大地简化了开发流程,但依然需要编写代码,对非技术背景的业务人员形成了使用障碍. 进一步思考 :

  • 是否可以不用写代码就可以构建自己的Agent, 这样业务人员都可以快速构建想要的Agent
  • Agent 构建好后, 是否可以不用考虑Agent 的部署, 立即可运行, 对外提供可访问的端点
  • 很多业务场景需要Agent 周期性运行, 是否能让配置或者构建好的Agent 按时调度运行

从工程实现的视角对AI Agent进行解构,我们可以识别出其由以下四个核心组件构成:

  • Model(LLM): Agent 的大脑
  • Tools: Agent 的 触手
  • System Prompt: Agent 的行为规范
  • Envrioments: Agent 需要感知的环境信息, 如系统环境变量, 当前对话的文档等

基于上述考虑, 我们可以通过配置的方式 声明一个AI Agent 这四部分分别是什么, 然后通过代码根据这四部分的配置, 动态构建出一个 AI Agent 实例, 并提供Agent 的运行环境, 实现 1) 通过配置即可构建Agent, 2) Agent 构建即可运行, 使AI Agent 可以快速在企业内部进行落地实施.

基于** **Strands Agents SDK ** **的** ** AI Agent ** **构建和运行时架构

基于上述思考, 笔者基于Strands Agents SDK 开发了一个AI Agent 的构建和运行平台(参考实现)-AgentX. 可以实现:

  • 通过配置的方式来构建AI Agent. 支持Strands Agents 自带的Tools, MCP Server Tools 以及Agent as Tool, 并且支持各种模型接入.
  • 配置好的Agent 可以通过API Endpoint 来进行调用, 无需构建专门的Agent 运行时, 真正做到Agent 配置即可运行
  • 支持 Agent 定时调度执行配置
  • 支持Agent 运行历史记录管理

AgentX 架构如下图所示:

  • 使用ECS 来部署整个应用, 使用ECS Fargate 作为Capacity Provider
  • 整体应用分为前端、后端、以及各种MCP Server
  • 使用Amazon DynamoDB 来存储 Agent 的配置以及Agent的运行历史记录
  • 使用Amazon Lambda 和 EventBridge 实现Agent 的定时调度执行

整个项目可以通过CDK 一键部署, 部署前需要将前、后端应用以及需要部署的MCP Server 构建成Docker 镜像并推送到的AWS ECR 中.

配置** **Agent

部署完成后, 在Agent 管理页面, 可以配置Agent. 配置Agent的过程 实际就是对Agent 使用的模型, System Prompt, 需要使用的Tools以及环境变量参数进行设置.

运行和调用** **Agent

Agent 配置完成后, 可以通过在UI 界面上选择配置好的Agent 来完成相应的任务, 如下图所示. 也可以在应用层面, 通过API Endpoint 来调用Agent. 可以看到, 我们配置好Agent 之后, Agent 立即可运行, 不需要额外的部署.

Agent 执行 以及 MCP Server Tools 调用如下图所示.

MCP Server ** **管理

可以对企业内部或者一些公开的MCP Server 进行维护和管理, 通过配置的方式, 将这些MCP Server 的 Tools 作为Agent的Tools. 目前该项目只支持Streamable HTTP Transport 类型的MCP Server.

Agent ** **调度

通过配置Cron 表达式的方式, 来定时调度Agent 执行任务. 对于需要周期性让Agent 来完成某项任务的场景提供了开箱即用的支持.

应用场景

使用上述Agent 构建和运行时平台, 用户可以快速在以下场景(但不限于)落地Agent应用.

智能数据分析

结合数仓 Redshift MCP Server(或者其他的数据库MCP Server), 可以配置Agent 来实现基于Agent 的数据分析, 如对数据进行预测性分析或者诊断性分析. 对于简单的查数以及指标计算场景, Agent 结合数据库MCP Server就能很好的支持, 如果数据表比较多, 表间的关系比较复杂, 在结合MCP Server 的同时, 可以将Schema 信息放到RAG 中, 将RAG 也作为Agent 的工具, 来实现 Chat BI 或者Text2SQL 的场景.

通过配置Redshift MCP Server 作为Agent 的工具, 来实现游戏埋点事件数据(模拟数据)的预测性分析, 如下图所示. Agent 会充分利用MCP 工具以及的模型本身的知识, 构建数据预测模型, 对基础数据进行预测性分析, 并将分析结果以HTML页面的方式进行可视化展示.

基于** **Agent ** **的云端资源巡检

在一些关键业务场景中, 企业IT运维人员需要定时对资源的各项运行指标进行检查, 来确保基础架构以及上层应用的稳定运行. 由于需要检查的方面比较多, 如数据库运行指标检查, EC2 运行指标检查, EKS 集群运行检查, 可以每个方面的检查配置一个专门的Agent来执行, 最后通过一个编排(Orchstrator) Agent 来统筹执行整个巡检任务, 将不同方面的巡检指派给不同的Agent, 也是Multi-Agent 的场景.

下图是一个编排 Agent 结合两个其他的Agent(MySQL 巡检Agent 和 EC2巡检Agent) 的Multi-Agent 配置.

保存配置后, 此编排Agent 就可以对AWS EC2 和 RDS 资源进行运行指标巡检, 编排Agent 对巡检任务进行分解, 将EC2的巡检任务指派给 EC2巡检Agent, 将RDS 资源巡检的任务交给RDS巡检Agent. 其中EC2 巡检结果如下图所示, 可以看到, EC2 巡检Agent 识别到有EC2 CPU峰值利用率 超过 93.89%, 超过设定的阈值(75%)18.89%.

RDS 巡检结果如下图所示, RDS 巡检Agent 查找到有RDS 实例可用内存(55.28MB)小于阈值(500MB).

最后编排Agent对上述检查结果进行统一整理和分析, 并给出行动建议, 非常详尽, 对于查找的问题, 可以添加其他的Tools, 如slack tool, 将巡检报告以及查找的问题发送到对应的Channel, 实现告警通知.

远程** **Browser Use ** **和** ** Code Interpreter ** **沙箱

在内容营销的场景, 可能需要通过浏览器自动化网络内容操作, 需要Agent 有Browser Use 的能力; 在一些数据分析的场景, 需要执行代码对数据进行分析, 需要有安全的代码执行环境. 对于上述两种场景, Strands Agents 已经集成了Amazon AgentCore 中的 Browser Use 和 Code Interpreter 工具, 在笔者构建的平台上也可以通过配置的方式将这两个工具集成到对应的Agent中. 下面分别是AgentCore Browser Use 和 Code Interpreter 工具在Agent中的使用示例.

AWS ** **知识专家

将AWS Knowledge MCP 作为Agent 的工具, 可以使用户立刻化身AWS 知识专家, 对于AWS 服务的使用, 最佳实践都可以通过Agent 来回答, 如下图所示.

由于本平台很好的提供了Agent的构建和运行时环境, 用户可以根据实际的业务场景需求来快速构建出Agent, 并将Agent应用到实际的业务场景中去. 如果业务场景需要用到更多的工具, 可以开发相应的MCP Server 或者开发对应的Strands Agents Tool 来满足Agent 的需求.

总结

本文对AI Agent 的组成和架构进行了阐述, 介绍了AI Agent 开发框架 Strands Agent SDK 及其相关特性, 并基于Strands Agent SDK 开发了一站式Agent 构建和运行时平台AgentX, 支持以配置的方式构建Agent, 配置完Agent 即可运行, 用户可快速将Agent 应用到的Agentic Data Analytics、智能IT巡检等业务场景中.

参考** **资料** ***前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。


点击联系客服Telegram
赞(0)
未经允许不得转载:AWS USDT代付 | Payment 解决方案 » 基于Strands Agents SDK 构建AI Agent 运行时

AWS代付、代充值免实名

联系我们阿里云国际免实名