大数跨境

换个 Agent 框架评测就重写?AWS 开源的 UAEF 用一个 evaluate() 管住所有框架

换个 Agent 框架评测就重写?AWS 开源的 UAEF 用一个 evaluate() 管住所有框架 AI软件测评说
2026-11-13
1
导读:AWS 11-11 开源的 Agent 评测框架 UAEF:适配器把 6 大框架轨迹统一成 AgentTrace,36 指标 7 维度归一化 0-1,一个 evaluate() 出分,persist
开源一周
AW SLABS / UAEF · 2026-11-12
以下为正文
在 LangGraph、LangChain、Bedrock 里跑 AI Agent 的朋友,多半烦过同一件事:评测脚本跟框架的 trace 格式绑死,换个框架、或者几个框架并存,指标、打分、存结果的代码全部重写。2026-11-11,AWS 开源了 awslabs/uaef(Universal Agent Evaluation Framework,Apache-2.0),专门治这个:一个统一评测层,管住所有 Agent 框架。
它干的事一句话讲完:适配器把各家执行轨迹统一成标准格式 AgentTrace,再用 36 个内置指标、7 个维度打分,一个 evaluate() 调用出分;结果可以存进 AWS,跟历史版本比,自动抓回归。
先看痛点 评测代码跟着框架走 LangGraph 的 agent trace 一套格式 LangChain 的 agent trace 又一套 Bedrock 的 agent 再来一套 换个框架 / 多框架并存 指标全重写,没法互比 每家一套口径,改了 prompt 说不清变好没 LangGraph · LangChain · Bedrock · Strands AgentCore · Langfuse · 自定义(GenericJSON) 适配器 各家 trace → AgentTrace 统一格式 → 36 指标 7 个维度 一个 evaluate() 出分 · 0–1 归一化 persist=True → DynamoDB/S3,跟历史基线比,回归自动抓 换框架不用重写评测
这篇文章讲清三件事:它是什么、怎么装怎么用、哪些边界要先知道。
一、它是什么:一个统一评测层
一句话:UAEF 给 LangGraph、LangChain、AWS Bedrock、Strands、AgentCore、Langfuse 每个框架配了一个适配器,把各家五花八门的执行轨迹——消息、工具调用、agent 之间的交接——统一转换成一种标准格式 AgentTrace。之后所有评测步骤,不管你用哪个框架,走的都是同一条路。自家私有框架走 GenericJSON 适配器,按自定义映射转进来。
agent 跑完 → 适配器转 AgentTrace → 评测引擎打分 确定性指标直接算;LLM 裁判走 Bedrock 入库前自动筛 PII(邮箱/电话/卡号) DynamoDB 每实验一行 + S3 完整 JSON 新版本 vs 基线 → 哪个指标退化一目了然 终态:一条流水线,全框架通用 UAEF 插在哪 点一下,五步全亮 agent 跑完 → 适配器转 AgentTrace → 评测引擎打分 确定性指标直接算;LLM 裁判走 Bedrock 入库前自动筛 PII(邮箱/电话/卡号) DynamoDB 每实验一行 + S3 完整 JSON 新版本 vs 基线 → 哪个指标退化一目了然 点一下,五步全亮 →
打分这块,它内置 36 个指标,分 7 个维度:工具调用(该调的工具调了没、参数对不对)、回答质量、负责任 AI(安全、偏见、毒性、抗提示注入)、性能成本(延迟、token 用量、吞吐)、多轮对话(上下文还记不记得、目标完没完成)、多智能体协作(任务分派合不合理)、推理(链条逻辑自洽不自洽)。
36 个内置指标 分 7 个维度,全部归一化 0–1 工具调用 Tool calling 该调的工具调了没、顺序对不对、参数齐不齐 回答质量 Response quality 答得对不对、全不全、有没有胡编 负责任 AI Responsible AI 安全、偏见、毒性、抗提示注入 性能成本 Performance 延迟、token 用量、吞吐——每一分钱花在哪 多轮对话 Multi-turn 上下文记不记得住、目标完没完成 多智能体 Multi-agent 任务分派合不合理、协作有没有漏球 推理 Reasoning 思维链条自洽不自洽、有没有逻辑漏洞 每个指标 0–1 分 · 确定性指标直接算 · LLM 裁判走 Bedrock 终态:7 个维度全亮(确定性 + LLM 裁判两族指标) 同一分数口径 → 跨框架、跨版本可直接互比 36 个内置指标 点一下,7 个维度全亮 工具调用 Tool calling 该调的工具调了没、顺序对不对、参数齐不齐 维度 2 点一下揭晓 维度 3 点一下揭晓 维度 4 点一下揭晓 维度 5 点一下揭晓 维度 6 点一下揭晓 维度 7 点一下揭晓 1 / 7 个维度 点一下,7 个维度全亮 →
翻译成人话:以前你只有一个 accuracy 分,好歹不知道坏在哪;现在是 36 项体检报告,哪一项退化了,一眼看到。
指标分两族:确定性指标直接算(快、便宜);LLM 裁判类指标用 Amazon Bedrock 里的模型当评委(深、要花调用的钱)。官方博客自己也说,全维度都打分是浪费时间和 Bedrock 调用,按场景挑几项就够——仓库附了一份按场景选指标的 playbook。
再往上一层是实验跟踪:persist=True 时,每次评测结果写进 DynamoDB(每个实验一行)和 S3(完整 JSON 报告)。于是「改了一版 prompt、换了个模型,agent 到底变好没变坏」这种问题,不用再靠感觉——跟历史基线一比,回归自动就能抓出来。数据入库前还会自动筛查 PII(邮箱、电话、信用卡号这类)。
AWS 的说法是,电信、医疗、金融行业的 12 家组织已经在用这套系统评各自的 agent。
二、怎么装怎么用:三种姿势
姿势一:当 Python 库用(最轻)。要求 Python 3.10+,用 uv:
git clone https://github.com/awslabs/uaef cd uaef uv sync
核心就一个调用,先用两条消息的假 trace 跑通:
from uaef.api import evaluate from uaef.models import AgentTrace, Message, MessageRole, GroundTruth from datetime import datetime  trace = AgentTrace(     trace_id='trace_001',     messages=[         Message(role=MessageRole.USER, content='法国的首都是哪?', timestamp=datetime.utcnow()),         Message(role=MessageRole.ASSISTANT, content='法国的首都是巴黎。', timestamp=datetime.utcnow()),     ],     tool_calls=[],     session_id='session_123', ) gt = GroundTruth(expected_output='巴黎', expected_tool_calls=[])  result = evaluate(trace=trace, ground_truth=gt) print(f'Score: {result.overall_score:.2f}')  # 每个指标都是 0–1 分
评测工具调用准不准,就把 expected_tool_calls 填上:该调哪个工具、什么顺序、什么参数。想存历史,加三个参数:
result = evaluate(trace=trace, ground_truth=gt,                   persist=True,                   experiment_name='客服 Agent v2',                   experiment_objective='测 prompt 改完的效果')
姿势二:部署成服务(团队用)。仓库里 uaef-service/ 可以部署到 AWS,给你一个 web 界面:上传数据集、勾选指标、跑评测、看报告——不会写代码的同事也能用。
姿势三:demo 本地跑。demo/README.md 有一个现成的示例应用,先看效果再决定要不要接。
RAGAS、DeepEval 这些评测库在 UAEF 里是作为指标后端集成的,uv sync 一并装好,不用单独配。
三、泼几瓢冷水
第一瓢,它很新。仓库 2026-11-11 才公开宣传,star 只有 9 个(11-12 快照),issues 里还没有真实用户讨论,全是依赖升级的机器人 PR。拿去生产用,做好自己踩坑的准备。
第二瓢,深度绑定 AWS。LLM 裁判走 Bedrock、结果存储走 DynamoDB 和 S3——不用 AWS 的话,这两块都得自己接。Apache-2.0 协议允许改,但工作量是你的。
第三瓢,ground truth 有成本。评测工具调用和多轮任务,得准备带标准答案(含期望工具调用)的数据集,这不是白捡的。官方文档给了准备数据集的 playbook,先读再动手。
第四瓢,别只看总分。36 个指标全打一遍又贵又慢,官方建议按场景挑;总分高不代表没问题——某一维度塌了,平均值能把它盖住。
四、想上手的,三步
一,GitHub 搜 awslabs/uaef,clone 下来 uv sync;二,先用官方 quick start 里那个两条消息的 AgentTrace 跑通 evaluate(),看懂分数结构;三,接你自己的框架,配上数据集和实验名,开 persist=True 跑第一轮基线。
仓库地址:https://github.com/awslabs/uaef
数据与事实来源:AWS Machine Learning Blog《UAEF: A framework-agnostic system for closed-loop evaluation of AI agents》(2026-11-11);awslabs/uaef 仓库 README 与 Issues(2026-11-12 抓取)。
本文未实际部署运行 UAEF,功能与用法描述来自官方博客与仓库文档;LLM 裁判与持久化需要 AWS 凭据。

【声明】内容源于网络
0
0
AI软件测评说
专注分享Vibe Coding、独立开发Ai 工具和创业灵感
内容 399
粉丝 0
AI软件测评说 专注分享Vibe Coding、独立开发Ai 工具和创业灵感
总阅读11.0k
粉丝0
内容399