Strands Evals SDK

评测、诊断并改进 AI Agent 与大模型应用。

Star 数
★ 251
最近更新
今天
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
代码库 / SDK命令行工具
可在哪里用
兼容但需适配Codex · Claude Code(部分支持)
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Python 3.10+strands-agents-evals用于文档中代理示例的 Strands Agents SDKShell / 命令行网络访问本地文件系统
典型场景
负责 Agent 发布质量的工程团队,在 CI 中先用 strands-evals validate 检查实验 JSON,再运行回归评测并通过 --fail-on 规则控制退出状态。
不适合
  • 使用非Strands运行时的团队,需自行编写适配代码
  • 希望开箱即用、无需配置模型凭证与追踪的团队

这个 Agent 能做什么,适合哪些场景?

Strands Evals SDK 是一个面向 AI Agent 和大模型应用的 Python 评测框架,可检查最终输出、工具调用轨迹、多智能体交互、技能使用、图文回答和完整会话。其核心对象包括 Case、Experiment、EvaluationReport 以及输出级、轨迹级、工具级、会话级和多模态 Evaluator,并允许实现自定义 Evaluator。评测任务以 Python callable 或 Agent 工厂运行,既能直接处理返回值,也能通过 OpenTelemetry trace 映射成 Session 后分析。框架还提供对话与工具模拟、实验用例生成、故障检测、根因分析、确定性混沌注入和实验 JSON 序列化。用户既可通过 Python API 集成,也可使用 strands-evals 命令行执行、校验、展示、诊断或生成实验;它是评测 SDK 和 CLI,而不是独立托管的 Agent 服务。

用户先用 Case 定义输入、期望输出、期望轨迹和元数据,再把案例及 OutputEvaluator、TrajectoryEvaluator、HelpfulnessEvaluator、GoalSuccessRateEvaluator 等评测器交给 Experiment。Experiment.run_evaluations() 调用用户提供的任务函数,并生成可显示或序列化的 EvaluationReport。轨迹评测可以读取原始消息列表,也能借助 StrandsEvalsTelemetry 捕获 OpenTelemetry spans,再由 StrandsInMemorySessionMapper 转换为 Session。ActorSimulator 可驱动目标导向的多轮对话;ToolSimulator 用大模型生成符合 Pydantic schema 的模拟工具响应,并可在相关工具间共享状态。ExperimentGenerator 根据上下文生成测试用例;detect_failures、analyze_root_cause 和 diagnose_session 检测会话故障并给出修复建议。ChaosPlugin 通过 Strands 插件钩子注入超时、网络错误、执行错误、校验错误或响应字段损坏;实验也可以保存为 JSON 并由 CLI 校验、运行和展示。

  1. 负责 Agent 发布质量的工程团队,在 CI 中先用 strands-evals validate 检查实验 JSON,再运行回归评测并通过 --fail-on 规则控制退出状态。
  2. 开发工具调用型助手的工程师,用 TrajectoryEvaluator、ToolSelectionAccuracyEvaluator 和 ToolParameterAccuracyEvaluator 检查工具选择、调用顺序及参数。
  3. 构建客服或任务型对话系统的团队,用 ActorSimulator 生成动态多轮用户交互,再用 HelpfulnessEvaluator 和 GoalSuccessRateEvaluator 判断会话效果。
  4. 没有可用测试 API、数据库或设备环境的开发者,用 ToolSimulator 生成 schema 校验且可共享状态的模拟工具响应。
  5. 可靠性工程师用 ChaosPlugin 注入工具超时、网络故障或响应损坏,并评估 Agent 的故障沟通、部分完成和恢复策略。
  6. 安全与质量团队使用多模态评测、技能选择评测、失败诊断或内置红队攻击策略检查特定风险。

如何安装或部署这个 Agent?

需要 Python 3.10 或更高版本。直接安装发布包:

pip install strands-agents-evals

若从源码开发,先创建虚拟环境,再按需要安装基础、测试或开发依赖:

python -m venv .venv
source .venv/bin/activate
pip install -e .
pip install -e ".[test]"
pip install -e ".[test,dev]"

Windows 的虚拟环境激活命令是 .venv\Scripts\activate。文档示例会导入 strands.Agent,但来源没有说明模型服务凭据、环境变量或默认模型配置;采用前需按所选模型和 Strands 运行环境补齐这些配置。

如何使用这个 Agent?

最小 Python 流程是创建 Case、配置 OutputEvaluator、运行 Experiment,并展示报告:

from strands import Agent
from strands_evals import Case, Experiment
from strands_evals.evaluators import OutputEvaluator

test_cases = [
    Case[str, str](
        name="knowledge-1",
        input="What is the capital of France?",
        expected_output="The capital of France is Paris.",
        metadata={"category": "knowledge"}
    )
]

evaluators = [
    OutputEvaluator(
        rubric="""
        Evaluate based on:
        1. Accuracy - Is the information correct?
        2. Completeness - Does it fully answer the question?
        3. Clarity - Is it easy to understand?

        Score 1.0 if all criteria are met excellently.
        Score 0.5 if some criteria are partially met.
        Score 0.0 if the response is inadequate.
        """
    )
]

experiment = Experiment[str, str](cases=test_cases, evaluators=evaluators)

def get_response(case: Case) -> str:
    agent = Agent(callback_handler=None)
    return str(agent(case.input))

report = experiment.run_evaluations(get_response)
report.run_display()

CLI 可校验并运行已序列化的实验,其中 --agent 接受 MODULE:CALLABLE 形式的 Agent 工厂:

strands-evals validate experiments/customer_service.json
strands-evals run experiments/customer_service.json \
  --agent my_pkg.agents:build_agent \
  --display

也可运行单个临时案例:

strands-evals run \
  --input "What is the capital of France?" \
  --expected-output "Paris" \
  --agent my_pkg.agents:build_agent

诊断 Session JSON 或根据上下文生成实验:

strands-evals diagnose session.json --confidence medium
strands-evals generate --context "$(cat tools.txt)" --num-cases 10 \
  --evaluator TrajectoryEvaluator -o experiments/generated.json

这个 Agent 有哪些优点和局限?

优点
  • 评测层次覆盖广:同一框架包含输出、轨迹、工具调用、会话、多智能体交互、技能和图文回答评测。
  • 不仅生成分数,还能通过 detect_failures、analyze_root_cause 和 diagnose_session 提供故障定位及修复建议。
  • ActorSimulator 和 ToolSimulator 支持动态多轮对话、schema 校验的工具响应及跨工具共享状态,可减少对真实基础设施的依赖。
  • ChaosPlugin 提供确定性的故障注入,并配有故障沟通、部分完成和恢复策略等专用评测器。
  • Python API、五个 CLI 子命令、JSON 序列化和自定义 Evaluator 为本地开发与 CI 接入提供了多种入口。
局限
  • 要求 Python 3.10+;文档中的完整 Agent、插件和 trace 示例围绕 Strands Agents 组件编写,其他运行时需要编写适配代码。
  • 大量高级评测与模拟采用 LLM-as-a-Judge 或大模型生成响应,会引入模型访问、延迟、费用和非确定性;来源未给出费用控制方案。
  • 来源没有说明首次运行所需的具体凭据、环境变量或默认模型提供商配置,团队必须自行完成提供商配置。
  • trace 级评测要求采集 OpenTelemetry spans 并映射为 Session,接入成本高于只比较输入输出。
  • 技能评测只识别列出的 harness 信号;无法识别的 harness 会返回空结果而非错误,因此必须先验证 parse_available_skills()。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Strands Evals SDK 当前 64 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 251 今天 Python —
Tracely 66 · 存在缺口 — ★ 1k 12 天前 Python Claude Code · OpenAI API · Claude API
LangWatch 78 · 表现良好 命令行工具免费版 + 付费版 ★ 5k 今天 TypeScript OpenAI API · Claude API
TanStack AI 76 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 3.3k 1 天前 TypeScript OpenAI API · Claude API

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
存在缺口
64/ 100 五分制 3.2 / 5
本评测基于 2026年9月17日 的源码;此后该项目发布了 6 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 11/29
可靠稳定 8/14
适用触发 14/18
规范维护 14/18
有效结果 12/13
证据核验 5/8
查看各维度的扣分理由
信任安全11 / 29 · 1.9/5

工作流以细粒度 GitHub 权限、协作者检查、人工审批环境、OIDC、账户 ID 掩码及不持久化检出凭据体现了较好的最小权限意识;但这主要覆盖 CI,而非 SDK 运行时。材料未显示高影响操作前的用户确认机制。README 提到模型评审、遥测轨迹、HTTP 图像及文件输出,但没有完整说明数据会发送到哪些模型或服务、保存多久或如何删除。敏感数据方面仅能看到 CI 密钥通过 secrets/OIDC 传递,缺少评估输入、轨迹和图像的隐私处理指导。依赖有版本范围,但无锁文件、漏洞扫描、哈希固定或供应链策略,且部分 Actions/自定义动作只固定到主版本或 main。外部效果和文件写入有所展示,模拟工具也明确不执行真实函数,但网络模型调用及真实 agent/tool 副作用未被系统列举。实验支持保存和版本化,但没有操作回滚或恢复流程。仓库、生态链接、AWS 作者元数据和 Apache 许可证提供了来源线索,不过发布者身份未获注册表验证,也没有更具体的维护者归属证明。

可靠稳定8 / 14 · 2.9/5

README、CLI 表格和项目配置整体描述了同一评估框架,但示例中出现 telemetry.memory_exporter 与 telemetry.in_memory_exporter 不一致,末尾多模态示例还截断为 case.input.medi,因此自洽性只能给薄弱分。Python 3.10–3.14、核心依赖、可选集成和测试矩阵均有明确声明,足以支持一般依赖可用性;扣分在于没有锁定的解析结果或安装故障说明。validate、--help、--fail-on、诊断流水线及工作流中的显式错误消息表明失败反馈受到重视,但未提供 CLI/实现源码来确认错误覆盖是否全面。

适用触发14 / 18 · 3.9/5

材料覆盖输出、轨迹、工具、技能、多模态、多轮、故障诊断、混沌和红队等大量明确受众场景,因此场景适配充分。能力边界部分清楚,例如模拟工具不调用函数体、技能信号不匹配时返回空结果、红队功能标为 experimental;但模型依赖、支持的数据规模和集成边界没有完整汇总。触发条件对诊断的 ON_FAILURE/ALWAYS、置信阈值、混沌插件钩子及 CLI 子命令说明较明确,但自动生成、模型评审等行为的精确触发和默认值仍需源码。环境方面给出 Python 版本、虚拟环境、开发/测试安装和多种可选后端,普通使用足够;不过云凭据、模型可用区、平台差异和资源要求未完整说明。

规范维护14 / 18 · 3.9/5

README 具有清晰的功能概览、快速开始、CLI、安装和分功能示例,信息架构与安装说明都很强。命名大体稳定,但遥测属性示例不一致以及截断的多模态代码降低稳定性。示例非常丰富,却没有真正的 FAQ,部分示例依赖未提供的对象或省略实现。已明确提示技能解析为空的限制、experimental 红队范围和许可证免责声明,但缺少集中式限制清单。Apache-2.0 元数据与完整 LICENSE 一致,许可证处理充分。版本来自 VCS 标签,并展示 PyPI 版本和实验版本化,但材料中没有 CHANGELOG、发布兼容政策或迁移说明。AWS 作者邮箱、Issues、PR 和 Discord 给出了维护入口,但未列出具体维护者、支持承诺或安全报告路径。

有效结果12 / 13 · 4.6/5

框架输出包括结构化 EvaluationOutput、可显示/JSON 化报告、标签、理由、轨迹及可执行修复建议,产物对 CI 和人工分析都较实用。它将多类评估、模拟、诊断、混沌测试和实验生成整合在一起,相比手工拼装具有明显增量价值。无真实基础设施的工具模拟、内存轨迹和 CLI 流程降低了采用成本;但 README 未量化 LLM 调用费用、延迟、令牌消耗或大规模运行成本,因此成本收益不能给满分。

证据核验5 / 8 · 3.1/5

多数功能主张都对应具体 API 名称、代码片段、CLI 命令或 pyproject 配置,具有一定可追踪性;但所给材料缺少实现源码和实质性测试文件,无法逐项追到算法或断言。安装、Python 支持、CLI 入口、许可证及测试工具在 README、pyproject 和工作流之间得到部分交叉印证;高级评估能力主要只有 README 单一来源。文档能区分模拟与真实执行,并披露技能解析的空结果边界及 experimental 功能,但“强大”“全面”“真实”等表述缺乏度量或证据,事实与营销性推断尚未完全分离。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 在处理含个人信息、机密提示、生产轨迹或远程图像的评估前,应先确认所选模型提供商、遥测导出器和可选集成的数据传输、留存与删除规则。
  • 不要把 LLM-as-a-judge、自动生成的用例或根因建议当作确定事实;应使用人工复核、固定基准和独立评估器交叉验证。
  • 生产或含凭据环境中运行真实 agent、工具及集成测试前,应单独审查其外部副作用和 IAM 权限;README 中的无副作用保证仅适用于 ToolSimulator 示例。
  • 部署时应生成并审查锁定依赖,启用漏洞与供应链扫描,并固定 CI Actions/第三方动作到不可变提交。
  • 先修正或验证遥测属性命名不一致和截断的多模态示例,再据此构建集成。
证据充分度:低 评估于 2026年9月17日 审查版本 92854bfb79fa 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.9.0
    发布说明摘录
    v1.9.0 _Auto-drafted from commits in v1.8.0..v1.9.0, grouped by conventional-commit type. Edit on the release page after publish if you want a polished writeup; the canonical release notes live on the website._ 🚀 Features - feat(skills): suggest evaluators and write experiment file in session-converter (#496) (8fcc8e0) - feat(skills): add extraction steps to session-converter skill (#491) (b44ce38) - feat(cli): add --case selector to run command (#492) (32e72bb) 🔧 Chores - chore(ci): relax CI gate on workstream/optimizer-workflow branch (#499) (69d85c5)
    在 GitHub 查看 ↗
  2. v1.8.0
    发布说明摘录
    v1.8.0 _Auto-drafted from commits in v1.7.0..v1.8.0, grouped by conventional-commit type. Edit on the release page after publish if you want a polished writeup; the canonical release notes live on the website._ 🚀 Features - feat(redteam): add CrescendoStrategy(stop_on_tool_call=) (#472) (8275e0f) ⚡ Performance - perf(experiment): run a case's evaluators concurrently (#467) (f6b894f) 📚 Documentation - docs: update README nav and examples (#470) (6511807) 📦 Build - build: drop unused strands-agents-tools dependency (#471) (2ce9b78) 👷 CI …
    在 GitHub 查看 ↗
  3. v1.7.0
    发布说明摘录
    v1.7.0 _Auto-drafted from commits in v1.6.0..v1.7.0, grouped by conventional-commit type. Edit on the release page after publish if you want a polished writeup; the canonical release notes live on the website._ 🚀 Features - feat(redteam)!: graduate red teaming out of experimental (#465) (064a5e5) 🐛 Fixes - fix: judge EventLoopException by its original cause (#464) (b59a389) - fix: replace retired Sonnet 4 model ID in integ tests (#441) (7e7a23e)
    在 GitHub 查看 ↗

常见问题

必须使用 Strands Agent 才能运行评测吗?
CLI 可针对 --agent 工厂或 --task callable 运行,Python Experiment 也接受用户提供的任务函数,因此输出评测并不限于固定 Agent 类。不过文档中的 Agent、trace 和混沌插件示例均使用 Strands 组件,其他框架需要自行适配输入、输出或 Session。
是否所有评测都需要调用大模型?
不是。框架包含确定性的匹配辅助函数和 SkillInvoked presence check,也允许编写普通 Python 自定义 Evaluator;但 LLM-as-a-Judge、ActorSimulator、ToolSimulator、实验生成及部分诊断能力依赖模型调用。
如何避免用真实外部服务进行测试?
可以用 ToolSimulator 注册工具、定义 Pydantic 输出 schema,并通过 share_state_id 在相关工具间共享状态。它会用模型生成模拟响应,不执行被装饰函数的函数体。
能否在 CI 中阻止不合格版本发布?
可以使用 strands-evals validate 做 schema 检查,再通过 strands-evals run 执行实验。来源还明确提到 --fail-on 退出码规则,但应通过相应子命令的 --help 查看完整参数。
Codex 和 Claude Code 的兼容范围是什么?
来源明确表示技能信号提取可识别 Codex 和 Claude Code 的轨迹,但没有证明整个 SDK 可作为这些产品中的原生 Agent 部署。因此兼容性仅覆盖部分轨迹解析与技能评测场景。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents