samples
AWS官方AI Agent开发框架Strands的示例库,几行代码即可构建完整Agent循环
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
AWS官方AI Agent开发框架Strands的示例库,几行代码即可构建完整Agent循环
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024 年,AWS 团队在内部构建 Agent 系统时,面临一个普遍困境:团队成员想要快速验证"大模型能否自动化完成某个业务流程",但每次都要从零搭建 Agent 循环(LLM Call → 解析输出 → 调用工具 → 循环决策)。这阻碍了创新速度。
于是,AWS 团队决定将内部框架开源,发布了 Strands Agents ——一个模型驱动(model-driven)的 Agent 开发 SDK。简单来说,它让开发者用几行代码就能搭起一个完整的 Agent 循环,而不必关心底层的状态管理、工具注册、对话窗口等繁琐细节。
samples 仓库就是这个 SDK 的官方示例合集,由 AWS 团队维护,展示了从入门到生产部署的全链路最佳实践。
samples 仓库按难度和用途划分为 8 个目录,结构清晰:
01-learn(入门基础)
学习路径从最简单的单 Agent 开始,逐步引入工具调用、MCP 协议、多模型提供商、流式输出、Guardrails(输出安全过滤)、记忆机制、AWS 服务集成、可观测性(OpenTelemetry)和双向流式传输(Bidi Streaming)。每一个子目录对应一个独立主题,配有详细的 Jupyter Notebook 和 README 说明文档。
例如 01-first-agent/02-simple-interactive-usecase 中的 recipe_bot.py 完整展示了一个菜谱助手 Agent的实现方式:只需约 50 行 Python 代码,定义一个 @tool 装饰的搜索函数,实例化 Agent 并传入 system prompt,一个能联网搜索菜谱的对话 Agent 就完成了。
02-deploy(生产部署)
AWS 官方提供了三种部署模式:
每种部署模式都配有 CDK(Cloud Development Kit)基础设施代码和部署脚本,开发者只需配置 AWS 凭证即可一键部署。
03-integrate(集成扩展)
展示如何将 Strands Agent 与外部系统集成,例如 MCP Server、第三方 API 等。
04-industry-use-cases(行业用例)
涵盖实际行业场景,例如客服自动化、数据分析、工作流编排等垂直领域应用。
05-technical-use-cases(技术用例)
深入技术细节,例如代码生成、复杂推理、长文本处理等技术向场景。
06-evaluate(效果评估)
提供 Agent 性能和质量评估的实验框架。
07-ux-demos(用户界面演示)
包含多种 UX 形态的参考实现:
streamlit-template:基于 Streamlit 的 Web 可视化界面,配合 AWS CDK 一键部署到云端,目录内含 Dockerfile + docker-compose.ymlslack-assistant:Slack 频道集成human-in-the-loop-approval-agent:人机协作审批流程video-games-sales-assistant:数据分析和 BI 可视化08-edge(边缘部署)
探索 Edge 场景下的 Agent 部署,可能涉及端侧推理或离线运行环境。
Strands Agents SDK 的 Python 核心位于 strands-py/src/strands/ 目录,采用清晰的模块化分层架构:
核心层(agent/)
Agent 是入口类,内部实现了完整的 Agent 循环:接收用户输入 → 调用 LLM → 解析工具调用决策 → 执行工具 → 将结果反馈给 LLM 继续循环,直到 Agent 输出最终回复。SDK 支持四种对话管理器:
NullConversationManager:无历史记忆,适合一次性任务SlidingWindowConversationManager:固定窗口大小,超出后丢弃旧消息SummarizingConversationManager:超出窗口后自动摘要,保持上下文完整工具层(tools/)
通过 @tool 装饰器注册任意 Python 函数为 Agent 可调用工具,兼容 MCP(Model Context Protocol)标准协议。工具可以是本地函数,也可以是远程 MCP Server。官方 strands-agents/tools 仓库(1092★)提供了常用工具集(搜索、计算、文件操作等)。
模型层(models/)
不绑定特定 LLM 提供商,支持:
开发者只需切换 model_provider 配置,即可让同一个 Agent 使用不同后端模型。
扩展层(memory/、multiagent/、plugins/、sandbox/)
memory:持久化记忆模块,支持长期上下文multiagent:多 Agent 协作框架,支持 A2A(Agent-to-Agent)协议plugins:插件化扩展机制sandbox:代码执行沙箱,安全运行 Agent 生成的代码samples 仓库本身是示例合集而非独立应用,因此部署评估需分场景讨论:
Python SDK 层面:通过 pip 可一键安装(pip install strands-agents),核心依赖仅 Python 3.10+ 和标准库,无 GPU 要求,1GB RAM + 500MB 磁盘即可运行基础 Agent。
Web UI 层面:streamlit-template 提供了完整的 Streamlit Web 应用模板,内含 Dockerfile 和 docker-compose.yml,可本地 Docker 快速启动。AWS CDK 模板支持一键部署到 AWS 云端。
生产部署层面:Lambda/Fargate/AgentCore 部署方案成熟,但需要 AWS 账号和正确配置的 IAM 权限,适合有云基础设施的团队。
整体部署难度评为"简单"——入门级 Agent 可在 10 分钟内本地运行;生产级云端部署需要额外配置 AWS 环境。
1. 示例非生产代码
README 明确声明:"examples in this repository are for demonstration and educational purposes only",samples 仓的代码未经生产级安全审计,直接用于生产环境存在风险。
2. AWS 强绑定
大量示例和工具链与 AWS 服务深度集成(Bedrock、S3、Lambda、Fargate),非 AWS 用户需自行适配。
3. 依赖于主 SDK
samples 仓本身没有核心逻辑,价值完全依附于 strands-agents/sdk-python(6176★)这个主 SDK,理解 SDK 本身才是关键。
4. 文档质量依赖官方维护
samples 仓是主 SDK 的配套示例,非核心代码库,更新频率与 SDK 保持一致但可能存在同步延迟。
Strands Agents 的设计哲学是**"模型驱动"**——不预设 Agent 的行为模式,而是让 LLM 的输出直接驱动 Agent 的决策流程。这种设计使框架高度灵活,能够适应从简单问答到复杂多步骤推理的各类场景。
samples 仓库作为官方最佳实践库,对于想要快速入门 Agent 开发的工程师而言,是一份结构清晰、内容权威的学习资源。它减少了开发者在框架选型和架构设计上的试错成本,让团队能够更快地将 AI Agent 原型转化为实际产品。
父项目 sdk-python 目前已获得 6176 颗 GitHub Stars,表明 Strands Agents 已获得开发者社群的广泛认可。作为 AWS 官方支持的框架,它在企业级 AI 应用场景中具有独特的信任背书优势。