Strands Agents
用 Python 或 TypeScript 构建并端到端控制生产级 AI Agent 的 SDK。
按维度查看评分与理由
证据显示仓库包含安全策略(SECURITY.md)和贡献指南,但未提供权限模型、用户确认机制、数据流透明度或敏感数据处理细节。依赖安全未提及,外部影响未描述,回滚机制未说明,来源归属仅通过README中的品牌提及,但发布者未验证。因此所有信任标准得分为0。
自一致性:README和pyproject.toml中的Python版本要求一致(>=3.10),但未发现内部矛盾。依赖可用性:依赖列表存在,但未提供锁定或验证机制。失败消息:未提供错误处理或用户可见的失败消息。因此自一致性得2,依赖可用性得1,失败消息得0。
受众和场景:README描述了多种使用场景(从简单对话到复杂工作流),但未明确目标受众。能力边界:未明确说明限制。触发精度:未提供触发机制。环境适配:提供了Python和TypeScript的安装说明,但未提及操作系统或云环境兼容性。因此受众和场景得2,能力边界得1,触发精度得0,环境适配得2。
信息架构:README提供了清晰的目录结构。安装说明:提供了pip和npm安装命令。命名稳定性:未提及API稳定性。示例和FAQ:提供了快速入门示例,但无FAQ。已知限制:未提及。许可证:明确Apache-2.0。版本和变更日志:未提供变更日志。维护责任:未明确。因此信息架构得2,安装说明得2,命名稳定性得1,示例和FAQ得2,已知限制得0,许可证得2,版本和变更日志得1,维护责任得1。
输出可用性:示例展示了基本用法,但未展示输出格式。边际价值:提供了多模型支持和MCP等特性,但未与其他框架比较。成本效益:未提供性能或成本数据。因此输出可用性得1,边际价值得2,成本效益得1。
声明可追溯性:README中的声明未链接到具体代码或测试。跨来源佐证:未提供外部验证。事实与推断分离:未明确区分。因此所有标准得1。
- 发布者身份未验证,应视为未知,不要基于品牌信任。
- 未提供权限模型、数据流透明度和敏感数据处理细节,使用前需自行评估。
- 依赖安全未提及,建议检查依赖锁定和漏洞扫描。
- 未提供回滚机制,生产环境需谨慎。
- 未提供已知限制和失败消息,可能影响故障排查。
这个 Agent 能做什么,适合哪些场景?
Strands Agents 是一个用于构建和运行 AI Agent 的开源 SDK 单仓库,包含 Python SDK、TypeScript SDK、开发者 CLI、文档站点和治理资料。两个 SDK 都提供 Agent loop、模型提供商接入与工具机制,可用于从对话助手到自主工作流的实现。应用可通过 Python 的 Agent 或 TypeScript 的 Agent 创建执行实例,并以工具、模型提供商和运行控制扩展其行为。项目明确提供 MCP、流式处理、多 Agent 模式和结构化输出能力,并支持 Amazon Bedrock、Anthropic、OpenAI、Gemini 及自定义模型提供商。默认模型提供商是 Amazon Bedrock;部署和运行的具体基础设施仍由采用者自行配置。
开发者在 Python 中从 strands 导入 Agent,并可将 strands_tools 的 calculator 等工具传入 Agent(tools=[calculator]);随后以 agent("What is the square root of 1764") 发起一次任务。TypeScript 中可创建 new Agent(),再通过 await agent.invoke("What is the square root of 1764?") 获得 result 并输出。SDK 的 Agent loop 负责执行 Agent 工作流,并结合模型提供商和工具;README 还说明可用 hooks 拦截步骤、记录、验证或重定向处理,并提供 guardrails 与 steering handlers。仓库同时包含 strands-mcp 相关入口,以及文档站点、Python/TypeScript 构建与测试工作流。
- 需要在 Python 服务中为用户问题调用模型和 calculator 等工具的后端开发者。
- 正在用 Node.js 20+ 和 TypeScript 开发 Agent 应用,并希望通过 Agent.invoke() 获取调用结果的团队。
- 需要在 Amazon Bedrock、Anthropic、OpenAI、Gemini 或自定义模型提供商之间选择模型后端的平台工程团队。
- 希望在 Agent loop 的步骤中插入日志、验证或重定向逻辑的生产系统开发者。
- 需要 MCP、双向流式处理、结构化输出或多 Agent 模式的 Agent 工作流实现者。
这个 Agent 有哪些优点和局限?
- 同一仓库同时提供 Python 和 TypeScript SDK,且两者都围绕 Agent loop、模型提供商和工具构建。
- 明确支持 Amazon Bedrock、Anthropic、OpenAI、Gemini、更多提供商及自定义提供商,适合避免把应用逻辑固定在单一模型后端。
- hooks 可在 Agent 执行步骤中进行记录、验证或重定向;README 还列出 guardrails 和 steering handlers。
- MCP、流式处理、多 Agent 模式和结构化输出被列为内置能力,而非仅限示例项目。
- 仓库包含文档站点、开发者 CLI 与跨 SDK 的治理资料,便于同时维护代码、文档和协作规范。
- 默认路径依赖 AWS 凭证以及已启用的 Claude Sonnet Amazon Bedrock 模型访问,未具备这些条件时不能按默认示例直接运行。
- Python 与 TypeScript 有不同运行时要求和工具链:Python 需要 3.10+,TypeScript 需要 Node.js 20+。
- README 仅说明其他提供商可用,未在给出的材料中提供 Anthropic、OpenAI、Gemini 或 Ollama 的具体配置步骤。
- 生产部署、模型选择、上下文管理策略和观测系统的具体配置仍需采用者设计,材料未给出一键部署流程。
- strands-mcp 虽在仓库导航中出现,但给出的材料未说明其安装、认证或暴露的具体 MCP 功能。
如何安装或部署这个 Agent?
Python 需要 Python 3.10+:
pip install strands-agents strands-agents-toolsTypeScript 需要 Node.js 20+:
npm install @strands-agents/sdk两个 SDK 默认使用 Amazon Bedrock。使用默认配置前,需要配置 AWS 凭证,并启用 Claude Sonnet 的模型访问权限。
如何使用这个 Agent?
Python:
from strands import Agent
from strands_tools import calculatoragent = Agent(tools=[calculator])
agent("What is the square root of 1764")TypeScript:
import { Agent } from '@strands-agents/sdk'const agent = new Agent()
const result = await agent.invoke('What is the square root of 1764?')
console.log(result)若不使用默认 Bedrock 提供商,README 明确列出 Anthropic、OpenAI、Gemini、Ollama 等其他提供商,但未给出其具体配置命令。