拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Strands Evals v1.2.0 发布解读:OpenInference 多框架追踪支持与技能级评估器实战指南

人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务【免费下载链接】harness-sdkBuild an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python TypeScript - any model, any cloud.项目地址https://gitcode.com/GitHub_Trending/sdkpython13/harness-sdk点击查看免费下载本文基于strands-agents/evalsv1.2.0 版本发布说明changelog撰写围绕该版本在tracing追踪与evaluators评估器两大领域的关键更新展开新增 Claude Agents、OpenAI Agents SDK 的 OpenInference 映射支持、多智能体追踪根 Span 选择修复、bridge_parent_gaps行为变更以及面向技能型 Agent 的SkillSelectionAccuracyEvaluator。读完本文你将掌握如何把第三方框架的 OTel 追踪接入 Strands Evals 评估管线、如何利用detect_otel_mapper自动选择映射器以及如何对带技能Skills的 Agent 进行技能选择准确率评估。版本概览v1.2.0 发布于 2026-08-21是一个完全向后兼容全部条目breaking: false的版本共包含 8 项变更覆盖两个核心领域类型领域变更内容作者feattracing新增 Claude Agents OpenInference 集成测试PR 353liramon2fixtracing多智能体追踪中按最早start_time选择根 Agent SpanPR 371liramon2fixtracingbridge_parent_gaps改为返回新 Span 而非原地修改PR 375liramon2feattracingOpenInference 映射器新增 OpenAI Agents SDK 支持PR 366liramon2featevaluators新增面向技能型 Agent 的技能级评估器PR 330sangminwoofixevaluators降低针对新 session mappers 的集成测试波动PR 374liramon2othercommunity升级 mypy 依赖至3.0.0PR 368Unshureothercommunity升级opentelemetry-instrumentation-langchain至0.40.0,0.63.0PR 369Unshure其中最具实际价值的更新是OpenInference 映射器对 Claude Agents 与 OpenAI Agents SDK 的双重支持以及技能级评估器的引入。下面分别深入展开。OpenInference 映射器打通第三方 Agent 框架的追踪数据背景为什么需要 OpenInference 映射器Strands Evals 的评估管线以统一的Session对象为核心——它记录 Agent 的执行轨迹trajectory是TaskOutput的主要组成部分。但不同 Agent 框架产生的遥测 Span 格式各不相同评估器无法直接消费。解决方案是session mappers会话映射器把原始 Span 转换为评估器可消费的Session格式。官方文档trace_providers.mdx列出了三种内置映射器映射器适用场景StrandsInMemorySessionMapperStrands Harness SDK 内存 Span本地评估默认LangChainOtelSessionMapper使用 OpenTelemetry 插桩的 LangChain 应用OpenInferenceSessionMapper使用 OpenInference 插桩的应用如 Arize Phoenix、LlamaIndexv1.2.0 的核心工作正是围绕OpenInferenceSessionMapper扩展其可识别的框架范围。OpenInference是一套开源语义约定与插桩库它钩入 Agent 框架并产出标准化的 OTel Span。v1.2.0 之前该映射器已能处理 Claude Agentsv1.1.1 引入见 v1.1.1 changelog本次版本则新增了OpenAI Agents SDK的完整支持并配套了针对 Claude Agents 的集成测试PR 353。从框架兼容矩阵看见 framework-agnostic-evaluation 博客Strands Evals 通过 OpenInference 与 Traceloop 两条第三方插桩路径覆盖了 Claude Agents SDK、OpenAI Agents SDK、LangChain、Smolagents 等主流框架实现了定义一次用例与评估器任意框架直接评估的框架无关评估能力。使用方式detect_otel_mapper自动选择映射器官方推荐的用法是让工厂函数detect_otel_mapper自动检测它检查 Span 的 scope作用域识别出是哪个框架产生的追踪然后返回对应的映射器类。这一机制在 v1.2.0 中直接受益——OpenAI Agents SDK 与 Claude Agents 的 Span 都能被正确识别。仓库中提供了完整的可运行示例 claude-agents-evaluator.py 与 openai-agents-evaluator.py核心 task 函数如下from strands_evals.mappers import detect_otel_mapper, readable_spans_to_dicts async def task(case: Case) - dict[str, Any]: telemetry.in_memory_exporter.clear() response await run_commit_agent(case.input) telemetry.tracer_provider.force_flush() spans readable_spans_to_dicts(telemetry.in_memory_exporter.get_finished_spans()) session detect_otel_mapper(spans).map_to_session(spans, session_idcase.session_id) return {output: response, trajectory: session}关键点有三插桩先行使用ClaudeAgentSDKInstrumentor()或OpenAIAgentsInstrumentor()对 Agent SDK 进行插桩Span 通过StrandsEvalsTelemetry().setup_in_memory_exporter()在进程内收集映射器自动选择detect_otel_mapper(spans)检查 Span 的 scope 名称识别 Claude Agents / OpenAI Agents SDK 追踪并返回OpenInferenceSessionMapper无需手动指定框架TaskOutput 组装{output: response, trajectory: session}即评估管线所需的最小结构。切换到另一个框架时只需替换插桩器与 Agent 定义例如把ClaudeAgentSDKInstrumentor换成OpenAIAgentsInstrumentor把query换成Runner.runtask 函数、用例、评估器与报告代码完全不变——这正是框架无关评估的实战价值。多智能体追踪的根 Span 选择修复v1.2.0 还修复了一个多智能体场景下的追踪质量问题select root agent span by earliest start_time in multi-agent tracesPR 371。在多智能体multi-agent追踪中多个 Agent 的 Span 交织在一起如何确定哪一个是根rootAgent Span 直接决定追踪树的结构与评估轨迹的完整性。此前根 Span 的确定方式在特定时序下可能选错本次修复改为按最早start_time选择根 Agent Span使根 Span 的判定与时序语义一致。该修复意味着当多个 Agent 并行或嵌套执行时最早启动的那个 Agent 会话被视为根其子 Span 正确挂载从而保证Session映射与后续评估的准确性。bridge_parent_gaps行为变更从原地修改到返回新 Spanv1.2.0 对追踪处理函数bridge_parent_gaps做了一个破坏性较小的行为变更breaking: false但属于语义调整change bridge_parent_gaps to return new spans instead of mutating in placePR 375变更前bridge_parent_gaps直接修改传入的 Span 对象mutating in place调用方无法保留原始 Span变更后函数返回新的 Span 对象原始数据保持不变调用方可以同时持有原始与桥接后的结果。从函数命名可以推断其用途当子 Span 的父 Span 缺失例如父 Span 因采样或传输被丢弃时bridge_parent_gaps会构造桥接 Span 来填补父子关系之间的断层使追踪树保持连通。改为返回新 Span 后该函数变得纯函数化便于组合与测试也避免了对原始追踪数据的副作用。升级到 v1.2.0 后如果你的代码调用了bridge_parent_gaps并依赖其原地修改行为需要改为接收返回值。技能级评估器衡量技能型 Agent 的选择质量定位评估选得对不对而非做得成不成v1.2.0 在 evaluators 领域引入的最大新特性是面向技能型 Agentskill-equipped agents的评估器PR 330即 SkillSelectionAccuracyEvaluator。技能Skill是 Harness 在运行时提供给 Agent 的指令文件Agent 自行决定加载哪些技能。SkillSelectionAccuracyEvaluator的作用是逐条判断 Agent 调用的每个技能是否是恰当的选择由 Judge 模型基于任务内容与可用技能清单给出二元判定。官方文档强调它的评分对象是选择而非结果即使 Harness 拒绝了技能加载例如技能名无法识别只要 Agent 提出该请求的决策是合理的选择仍可得分。这与SkillInstructionFollowingEvaluator评估是否遵循了技能的步骤形成互补——前者管选得对不对后者管执行得好不好。参数与评分参数类型默认值说明versionstrv0未提供system_prompt时使用的提示词模板版本modelModel \| str \| NoneNoneJudge 模型默认使用 Bedrock 默认 Judge 模型system_promptstr \| NoneNone自定义 Judge 引导提示词namestr \| NoneNone报告中的评估器标识回退到类名评分系统为二元制每个被调用的技能产生一条结果Yes1.0调用该技能是恰当的选择No0.0调用该技能不合理或存在更优的技能选择not_applicable一次运行未调用任何技能时产生单条不适用记录该记录会从平均分中剔除不会拉低分数。注意评估级别是SESSION_LEVEL 下的逐技能输出见 evaluators/index.mdx加载了 3 个技能就返回 3 条EvaluationOutput每条包含score、test_passscore 为 1.0 时为 True、reason技能名 Judge 逐步推理与label。实战完整评估示例官方文档skill_selection_accuracy_evaluator.mdx给出了可直接运行的最小示例import asyncio from strands import Agent, AgentSkills, Skill from strands_evals import Case, Experiment from strands_evals.evaluators import SkillSelectionAccuracyEvaluator from strands_evals.mappers import StrandsInMemorySessionMapper from strands_evals.telemetry import StrandsEvalsTelemetry telemetry StrandsEvalsTelemetry().setup_in_memory_exporter() memory_exporter telemetry.in_memory_exporter skills [ Skill( namepdf-processing, descriptionExtract text and tables from PDF files., instructionsOpen the PDF, extract each pages text, and return it., ), Skill( namespreadsheet-analysis, descriptionSummarize and analyze spreadsheet data., instructionsLoad the spreadsheet and compute the requested aggregates., ), ] def user_task_function(case: Case) - dict: agent Agent( plugins[AgentSkills(skillsskills)], trace_attributes{ gen_ai.conversation.id: case.session_id, session.id: case.session_id, }, callback_handlerNone, ) agent_response agent(case.input) finished_spans memory_exporter.get_finished_spans() mapper StrandsInMemorySessionMapper() session mapper.map_to_session(finished_spans, session_idcase.session_id) return {output: str(agent_response), trajectory: session} test_cases Case[str, str, ] evaluator SkillSelectionAccuracyEvaluator() experiment Experimentstr, str async def main(): report await experiment.run_evaluations_async(user_task_function) report.run_display() asyncio.run(main())使用该评估器时有三个必须注意的要点Session ID 追踪属性是硬性要求使用StrandsInMemorySessionMapper时必须在 Agent 配置中写入gen_ai.conversation.id与session.id追踪属性如上方trace_attributes否则不同用例的 Span 会在内存导出器中相互混叠导致结果串线技能信号识别范围官方文档说明技能信号可被识别的来源包括 StrandsAgentSkills插件、Claude Code、Codex、Gemini CLI、OpenHands、Google ADK以及从磁盘读取SKILL.md的 Agent先验证技能解析再信任分数如果 Harness 的技能调用与上述来源都不匹配评估结果会返回空集而非报错。因此官方建议先用strands_evals.extractors中的parse_available_skills(trajectory)验证技能能否被正确解析再依据分数做决策。评估器还提供配套的确定性检查SkillInvoked见 deterministic_evaluators.mdx与SkillInstructionFollowingEvaluator见 skill_instruction_following_evaluator.mdx可组合成选对 执行对的完整技能评估方案。集成测试稳定性与社区依赖维护v1.2.0 还包含两项值得关注的质量改进降低集成测试波动PR 374针对新的 session mappers即 v1.1.1 引入的GenericGenAISessionMapper与本次涉及的 OpenAI Agents 映射支持的集成测试此前存在偶发失败本次通过调整测试逻辑降低了 flakiness属于评估基础设施层面的可靠性提升社区依赖升级PR 368、PR 369mypy 依赖约束从2.0.0放宽到3.0.0opentelemetry-instrumentation-langchain约束更新为0.40.0,0.63.0均为社区dependabot驱动的常规维护不涉及 API 破坏。升级与验证建议升级到 v1.2.0 时建议按以下顺序验证检查bridge_parent_gaps调用点若代码依赖其原地修改行为改为接收新返回值并确认追踪树结构符合预期验证多智能体追踪确认多 Agent 场景下根 Span 按最早start_time正确选择Session映射无异常体验技能评估器按上文示例为技能型 Agent 配置SkillSelectionAccuracyEvaluator先用parse_available_skills验证技能解析再运行实验查看逐技能得分运行跨框架评估参考 claude-agents-evaluator.py 与 openai-agents-evaluator.py 两个示例验证 Claude Agents 与 OpenAI Agents SDK 的 OpenInference 追踪均能被detect_otel_mapper正确识别并纳入统一评估管线。相关资源trace_providers.mdx远程追踪评估与映射器完整配置skill_selection_accuracy_evaluator.mdx技能选择准确率评估器文档framework-agnostic-evaluation-strands-evals.mdx框架无关评估原理与跨框架实战claude-agents-evaluator.py / openai-agents-evaluator.py可运行的跨框架评估示例赞分享人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务【免费下载链接】harness-sdkBuild an agent harness and control it end-to-end. Open-source SDK for production AI agents in Python TypeScript - any model, any cloud.项目地址https://gitcode.com/GitHub_Trending/sdkpython13/harness-sdk点击查看免费下载相关推荐Strands Evals v0.1.15 深度解析双模式 CorrectnessEvaluator 与 OpenSearch 追踪评估能力Strands Evals v0.1.15 深度解析双模式 CorrectnessEvaluator 与 OpenSearch 追踪评估能力 本指南聚焦 St人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务Strands Evals v0.1.17 发布详解多模态评估器、根因分析 RCA 与安全评估器全面升级Strands Evals v0.1.17 发布详解多模态评估器、根因分析 RCA 与安全评估器全面升级 导读 本文围绕 Strands Evals str人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务Strands Evals v0.1.3 修复解读tools_use_extractor 多工具调用检测与轨迹评估实战Strands Evals v0.1.3 修复解读tools_use_extractor 多工具调用检测与轨迹评估实战 导读 本篇文章围绕 harness s人工智能大模型AI AgentAgent 框架多智能体工具调用MCP 服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门