核心用法
Strands Agents SDK 是一个基于 Python 的 AI Agent 开发框架,支持通过简洁的 API 快速构建自主代理。核心使用方式围绕 Agent 类展开,开发者可通过 Agent(model=..., tools=[...]) 模式配置代理。框架默认集成 Amazon Bedrock(Claude Sonnet 4),同时支持 Ollama 本地模型、Anthropic、OpenAI、Gemini 等共 11 种模型提供商。
工具创建采用装饰器模式,使用 @tool 即可将函数转换为代理可用工具,类型提示自动生成 JSON Schema。框架内置 46 种预置工具(文件操作、Shell 命令、HTTP 请求、图像生成等),并支持 MCP(Model Context Protocol)协议集成,可连接任意 MCP 服务器扩展能力。多 Agent 架构提供三种模式:嵌套代理(Agents as Tools)、Swarm 模式(自主协调的多代理团队)和 Graph 模式(基于 DAG 的确定性执行流)。
显著优点
多模型生态支持:涵盖从本地 Ollama 到企业级 Bedrock 的全谱系模型,支持跨云部署和模型降级策略。Apache-2.0 开源协议确保商业友好性。
丰富的工具生态:46 种内置工具覆盖计算、文件系统、网络、数据库、向量存储等场景,支持热重载(hot reload)开发模式,无需重启即可更新工具代码。
标准化协议集成:原生支持 MCP 协议连接外部工具服务,以及 Google A2A(Agent-to-Agent)协议实现跨进程代理通信,便于构建分布式智能体系统。
企业级特性:内置 OpenTelemetry 可观测性追踪、Bedrock Guardrails 内容过滤、跨区域推理支持,以及基于 S3/File 的会话持久化机制。
潜在缺点与局限性
安全风险显著:run_command 工具使用 shell=True 执行命令,存在命令注入漏洞;文件操作工具缺乏路径验证,可能导致目录遍历攻击。作为 T3 来源(个人开发者维护)而非 AWS 官方直接分发,代码审计责任需用户自行承担。
实验性功能不稳定:双向流式语音对话(BidiAgent)标记为实验性,API 可能变更;Swarm 和 Graph 模式在高并发场景下的性能表现未经大规模生产验证。
环境配置复杂:多模型提供商需要各自独立的 API 密钥配置(Anthropic 必须提供 max_tokens,Ollama 需处理工具调用兼容性),增加了部署复杂度。部分开源模型(特别是消融模型)可能丧失工具调用能力。
适合的目标群体
适用于需要构建复杂 AI Agent 系统的 Python 开发者、AI 工程师和解决方案架构师。特别适合以下场景:多步骤任务自动化(研究-写作-审核流程)、需要混合使用本地和云端模型的混合云部署、以及需要与现有 MCP 工具生态集成的企业环境。
不建议在高安全性要求的生产环境(金融交易、医疗诊断、关键基础设施)中直接使用,也不适用于处理不可信用户输入的场景。
使用风险
命令执行风险:由于 shell=True 和缺乏输入验证,恶意提示词可能导致任意代码执行。建议在容器化环境(Docker/K8s)中运行,并配置只读文件系统。
数据隐私风险:虽然技能本身不上传数据,但默认 Bedrock 和第三方 API(OpenAI/Anthropic)会将请求发送至云端,敏感数据可能泄露。本地 Ollama 模式可避免此风险。
依赖供应链风险:依赖社区维护的 strands-agents 包,虽为 AWS 开源项目,但 Skill 本身由个人开发者打包,存在供应链攻击面。建议锁定依赖版本并审计 create-agent.py 和 run-agent.py 脚本。
权限提升风险:代理拥有 Python 执行权限和文件系统访问权限,在共享环境中可能意外访问其他项目数据。建议以最小权限用户运行,并启用文件系统沙箱。