Agno Evals Cookbook 实战指南:Accuracy、Agent-as-Judge、Performance 与 Reliability 四大评估模式

发布时间:2026/9/10 10:02:10

Agno Evals Cookbook 实战指南:Accuracy、Agent-as-Judge、Performance 与 Reliability 四大评估模式 Agno Evals Cookbook 实战指南Accuracy、Agent-as-Judge、Performance 与 Reliability 四大评估模式【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno本文以 Evals Cookbook 为主线系统讲解 Agno 评测体系中五类可运行的评估模式——准确性Accuracy、LLM 裁判Agent-as-Judge、性能Performance、工具调用可靠性Reliability与套件化批量运行Suite并结合libs/agno/agno/eval/下的源码实现说明每类评估类的字段、默认行为与典型用法。读完本文你可以直接复制 Cookbook 中的示例脚本对自建 Agent/Team 完成从单次打分到 CI 批量门禁的完整评估闭环。目录结构五类评估模式总览cookbook/09_evals/目录收纳了 Agno 全部可运行的评估示例。按其根 README 的官方目录说明各子目录职责如下目录职责accuracy/Agent 与 Team 的准确性Accuracy评估示例agent_as_judge/带打分与钩子的 LLM-as-Judge 评估示例performance/运行时与内存性能基准示例performance/comparison/非 Agno 框架的实例化基准对比reliability/工具调用可靠性评估示例reliability/single_tool_calls/单一期望工具调用的可靠性示例reliability/multiple_tool_calls/多工具工作流的可靠性示例reliability/team/Team 工具调用链路的可靠性示例suite/套件运行器示例多 Case 批量、标签筛选、JSON 报告、CI 退出码此外该 README 还登记了两个根级文档RESTRUCTURE_PLAN.md与RESTRUCTURE_PROMPT.md分别用于说明目录重组计划与文件处置、重组任务的实施提示词。这五类示例对应的底层实现全部位于 libs/agno/agno/eval/ 模块中共 7 个文件accuracy.py、agent_as_judge.py、performance.py、reliability.py、suite.py、base.py与utils.py。下文逐类展开。Accuracy对照标准答案的事实准确性评估Accuracy 模式回答的问题是Agent 给出的回答和期望的标准答案是否一致子目录 accuracy/ 下的文件清单见其 READMEaccuracy_basic.py—— 同步与异步两种计算器准确性评估accuracy_9_11_bigger_or_9_99.py—— 数值比较类准确性评估accuracy_team.py—— Team 语言路由准确性评估accuracy_with_given_answer.py—— 对已有输出字符串打分无需重新跑 Agentaccuracy_with_tools.py—— 带工具 Agent 的准确性评估db_logging.py—— 结果写入 PostgreSQL 的准确性评估evaluator_agent.py—— 使用自定义 evaluator agent 的准确性评估accuracy_eval_metrics.py—— 将评估模型指标按eval_modeldetail key 累加到 Agentrun_output。基本用法accuracy_basic.py 给出了最典型的同步/异步双例from agno.agent import Agent from agno.eval.accuracy import AccuracyEval, AccuracyResult from agno.models.openai import OpenAIChat from agno.tools.calculator import CalculatorTools evaluation AccuracyEval( nameCalculator Evaluation, modelOpenAIChat(ido4-mini), # 评估器模型 agentAgent( modelOpenAIChat(idgpt-5.6-luna), tools[CalculatorTools()], ), inputWhat is 10*5 then to the power of 2? do it step by step, expected_output2500, additional_guidelinesAgent output should include the steps and the final answer., num_iterations1, ) result: Optional[AccuracyResult] evaluation.run(print_resultsTrue) assert result is not None and result.avg_score 8异步版本只需改为await async_evaluation.arun(print_resultsTrue)并把num_iterations调大以观察多次运行的avg_score。源码层字段说明从源码结构看AccuracyEval 是一个dataclass核心字段如下input/expected_output均为Union[str, Callable]即输入和标准答案都支持函数动态生成agent/team二选一分别评估 Agent 或 Teamnum_iterations迭代次数默认 1多次运行的均值即avg_scoremodel评估器模型。从源码看若未指定默认回退到OpenAIChat(ido4-mini)并要求已安装openai包见 get_evaluator_agentevaluator_agent直接传入完整自定义评估 Agent优先于model/additional_guidelines等字段生效additional_guidelines字符串或字符串列表会被拼接为“## Additional Guidelines”段落注入评估器提示词print_summary/print_results是否打印汇总表与明细show_spinner控制进度 spinner嵌入运行器如 suite时会被关闭以避免控制台噪音file_path_to_save_results结果落盘路径支持{name}与{run_id}占位符db指定数据库后评估结果持久化debug_mode默认读取环境变量AGNO_DEBUG。运行结束后print_results会以表格形式渲染Accuracy Score x/10与Accuracy Reason两行见 accuracy.py 渲染逻辑result.score为 0-10 分制的单轮得分。Agent-as-Judge用模型给开放式输出打质量分当问题没有唯一标准答案时如“解释 API 是什么”Agent-as-Judge 模式用一个裁判模型按你给定的criteria对输出质量打分。子目录 agent_as_judge/ 的文件清单见其 README覆盖agent_as_judge_basic.py—— 同步/异步数值打分并持久化结果agent_as_judge_post_hook.py/agent_as_judge_team_post_hook.py—— Agent/Team 的 post-hook 评估agent_as_judge_batch.py—— 批量 Case 评估并输出汇总agent_as_judge_binary.py—— PASS/FAIL 二元判定agent_as_judge_custom_evaluator.py—— 自定义裁判 Agentagent_as_judge_team.py—— 评估 Team 生成的响应agent_as_judge_with_guidelines.py/agent_as_judge_with_tools.py—— 附加评分指南、评估带工具 Agentagent_as_judge_eval_metrics.py—— 通过 post-hook 将评估模型指标记录到eval_modeldetail key。基本用法带阈值回调与数据库持久化agent_as_judge_basic.py 展示了完整链路——先跑业务 Agent再对响应打分最后从数据库回查评估运行记录def on_evaluation_failure(evaluation: AgentAsJudgeEvaluation): 评估分低于阈值时触发的回调。 print(fEvaluation failed - Score: {evaluation.score}/10) print(fReason: {evaluation.reason[:100]}...) sync_db PostgresDb(db_urlpostgresqlpsycopg://ai:ailocalhost:5532/ai) sync_agent Agent( modelOpenAIChat(idgpt-5.6-luna), instructionsYou are a technical writer. Explain concepts clearly and concisely., dbsync_db, ) sync_evaluation AgentAsJudgeEval( nameExplanation Quality, criteriaExplanation should be clear, beginner-friendly, and use simple language, scoring_strategynumeric, threshold7, on_failon_evaluation_failure, dbsync_db, ) sync_response sync_agent.run(Explain what an API is) sync_evaluation.run( inputExplain what an API is, outputstr(sync_response.content), print_resultsTrue, print_summaryTrue, ) sync_eval_runs sync_db.get_eval_runs() # 回查已持久化的评估运行该示例的几个关键点scoring_strategynumeric表示 0-10 数值打分agent_as_judge_binary.py则演示 PASS/FAIL 二元策略threshold是失败阈值低于它即触发on_fail回调回调入参 AgentAsJudgeEvaluation 携带score与reason字段便于接入告警或 CI 门禁db同时挂给业务 Agent 和评估器时评估运行会落库可通过db.get_eval_runs()取回示例中异步版用AsyncSqliteDb(db_filetmp/agent_as_judge_async.db)演示了同一能力的 SQLite 异步实现异步流程为await agent.arun(...)后await evaluation.arun(input..., output..., print_resultsTrue, print_summaryTrue)。从源码结构看AgentAsJudgeEval 与AccuracyEval同属BaseEval体系见 base.py因此同样具备db、telemetry、结果打印等通用能力两者的分工是Accuracy 对照标准答案Agent-as-Judge 对照质量准则。Performance运行时与内存基准performance/ 目录的基准用例清单见其 README示例文件基准目标async_function.py异步函数性能db_logging.py带 PostgreSQL 日志的性能基准instantiate_agent.pyAgent 实例化开销instantiate_agent_with_tool.py带工具 Agent 实例化开销instantiate_team.pyTeam 实例化开销simple_response.py单次响应基线response_with_memory_updates.py含记忆更新的响应性能response_with_storage.py存储支撑历史记录的响应性能team_response_with_memory_simple.py单 Team 记忆影响基准team_response_with_memory_multi_user.py多用户并发 Team 记忆基准team_response_with_memory_and_reasoning.py含推理工具与富工具输出的 Team 记忆基准子目录 performance/comparison/ 则把基准对象换成其他框架的 Agent 实例化过程包含autogen_instantiation.py、crewai_instantiation.py、langgraph_instantiation.py、openai_agents_instantiation.py、pydantic_ai_instantiation.py、smolagents_instantiation.py六个示例用于横向比较不同框架的启动成本。对应的底层实现见 libs/agno/agno/eval/performance.py。Reliability验证期望的工具调用是否真的发生Reliability 模式不关心回答措辞只验证一件事Agent 是否按预期调用了正确的工具。子目录 reliability/ 的文件清单见其 READMEdb_logging.py—— 结果写入 PostgreSQL 的可靠性评估reliability_async.py—— 异步可靠性评估流程single_tool_calls/calculator.py—— 单一期望计算器工具调用的可靠性multiple_tool_calls/calculator.py—— 多工具计算器调用链的可靠性team/ai_news.py—— Team 委派与联网搜索工具调用链的可靠性。对应实现为 ReliabilityEval。这一模式的典型断言方式在 suite_basic.py 中也有体现Case支持expected_tool_calls(factorial,)字段即声明该用例必须调用factorial工具。Suite多 Case 批量运行、标签筛选与 CI 集成suite/ 是把单点评估升级为评估套件的一层把多个Case聚合成一次运行提供标签选择、按名筛选、JSON 报告与 CI 退出码。其 README 说明的两个示例为suite_basic.py—— 两个 Casejudge 打分 reliability 工具调用检查走内置cli()运行suite_team_scoring.py—— Team 场景leader 委派给 calculator 成员与 writer 成员reliability 能看到成员的工具调用每个回答再由 1-10 数值 judge 打分。CLI 用法可直接复制python cookbook/09_evals/suite/suite_basic.py # 运行全部 Case python cookbook/09_evals/suite/suite_basic.py --list # 只列出 Case不执行 python cookbook/09_evals/suite/suite_basic.py --tag smoke # 只跑打了 smoke 标签的子集 python cookbook/09_evals/suite/suite_basic.py --name factorial_uses_calculator python cookbook/09_evals/suite/suite_basic.py --json-output tmp/evals.json python cookbook/09_evals/suite/suite_basic.py -v # 每个 Case 打印完整运行面板最小可运行的 Suite 示例suite_basic.py 全文要点from agno.agent import Agent from agno.eval import Case, cli from agno.models.openai import OpenAIResponses from agno.tools.calculator import CalculatorTools agent Agent( idmath-tutor, modelOpenAIResponses(idgpt-5.5), tools[CalculatorTools()], instructionsUse the calculator tools for any arithmetic., ) CASES ( Case( namefactorial_uses_calculator, agentagent, inputWhat is 10! (ten factorial)?, tags(smoke,), # 供 --tag smoke 筛选 criteriaStates that 10! equals 3628800., # judge 打分准则 expected_tool_calls(factorial,), # reliability 检查 ), Case( nameexplains_compound_interest, agentagent, inputExplain compound interest in one short paragraph., criteriaExplains that interest is earned on both the principal and previously earned interest., ), ) if __name__ __main__: sys.exit(cli(CASES)) # 退出码即 CI 门禁信号Case把两类检查合并在一条声明里criteria触发 Agent-as-Judge 打分expected_tool_calls触发 Reliability 工具调用校验——这正是前文两个模式的组合使用。对于 CI 工作流或程序化嵌入场景README 明确建议不走控制台路径调用run_cases(CASES)或await arun_cases(CASES)然后读取SuiteResult.to_dict()生成报告该编程入口不做任何控制台 I/O适合嵌入流水线或测试框架。运行前提与工程建议默认评估器依赖Accuracy 与 Agent-as-Judge 在未显式指定评估模型时源码会回退到OpenAIChat(ido4-mini)并要求安装openai包见 accuracy.py数据库为可选项db字段在 Accuracy、Agent-as-Judge、Reliability 示例中均可选挂接PostgreSQL / SQLite 等挂接后评估运行可通过get_eval_runs()回查便于离线复盘与趋势跟踪调试开关各评估类的debug_mode默认读取AGNO_DEBUG环境变量无需改代码即可打开调试日志遥测telemetry默认为True记录最小遥测用于改进评估功能组合策略单点回归用 Accuracy有标准答案或 Agent-as-Judge开放式问题上线门禁用 Suite 聚合多种Case以退出码驱动 CI并以--json-output落盘报告。以上所有示例均可在cookbook/09_evals/对应子目录中直接找到并运行配套测试记录见各子目录的TEST_LOG.md与根级 TEST_LOG.md。【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/10 10:02:10

手写QPSK-OFDM系统:从参数设计到FPGA落板的完整实战指南

做了这么多年通信物理层,我越来越觉得QPSK-OFDM这套组合是“最值得手写一遍”的系统。很多人一提到OFDM就打开Simulink拖模块,或者直接拿现成库跑波形,真到了非标协议对接、FPGA落板、或者需要定位一个莫名奇妙的误码问题时,才意识…

2026/9/10 10:02:10

用 Rufus 给 Windows 11 做启动盘:跳过 TPM 2.0 的完整步骤

用 Rufus 给 Windows 11 做启动盘:跳过 TPM 2.0 的完整步骤 【免费下载链接】rufus The Reliable USB Formatting Utility 项目地址: https://gitcode.com/GitHub_Trending/ru/rufus U盘插上就进 setup,屏幕闪一行英文,直接退了。问题…

2026/9/10 10:02:10

三微网互联低碳经济调度建模与Matlab求解实战

多微网能量互联这个话题,我之前跟不少做园区综合能源的朋友聊过,大家的第一反应往往都是“多个微网一起调度,不就是把单微网的模型复制三份再拼接起来吗”。真上手做你就会发现,完全不是那么回事。微网之间的功率交互、碳排放配额…

2026/9/10 10:57:21

Python机器学习驱动的招聘欺诈检测平台设计与实现

简介:面向毕业设计与项目实践的在线招聘欺诈检测平台,基于Python机器学习与BERT预训练模型构建,适合计算机相关专业学生及求职安全方向开发者参考。资源共77个文件,压缩包约16.63MB,包含毕业论文文档、环境部署说明、完…

2026/9/10 10:57:21

WorkBuddy开放平台接入实战:从零构建自动化Agent应用

好久没写这么长的接入记录了。前阵子我一直在折腾自动化,最开始是写Python脚本处理日常任务,后来发现脚本越写越笨——输入格式稍微变一点就要改代码,更别说把多个工具串联起来。后来看到WorkBuddy开放平台上线,又看到社区里不少人…

2026/9/10 10:57:21

Python爬虫入门:用Requests和BeautifulSoup抓取天气数据

1. Python Web爬虫入门指南最近在帮朋友抓取一些公开的天气数据时,发现很多刚接触Python爬虫的同学都会卡在基础环节。今天我就用最直白的方式,带大家从零开始搭建一个能实际运行的网页爬虫。不需要复杂的环境配置,只要你会基本的Python语法&…

2026/9/10 10:57:21

Comsol多孔介质两相流模拟:水驱油过程建模与实战解析

水驱油,这几个字在我们做油气田开发模拟的人眼里,其实就是把地层里那些靠天然能量已经采不出来的原油,用注入水一点一点顶出来。整个过程听起来简单,真正落到数值模拟层面就麻烦不少:水进到孔隙里不是均匀推进的&#…

2026/9/10 10:52:20

MTProxy硬件加速:使用AES-NI提升加密性能

MTProxy硬件加速:使用AES-NI提升加密性能 MTProxy作为一款高效的代理工具,其核心优势在于通过加密技术保障数据传输安全。而AES-NI(Advanced Encryption Standard Instruction Set)硬件加速技术的应用,更是让MTProxy的…

2026/9/9 13:11:35

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/8 7:15:15

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/9 16:31:09

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/10 0:00:55

目录对比去重实战:用哈希算法精准清理重复文件

我电脑里现在还有一块换了三次机的“数据墓地”硬盘,里面存着2016年以前所有旧笔记本的完整备份。平时不觉得有什么,直到前阵子想把它整理归档,发现同一个安装包、同一批照片、同一份论文草稿,在几个不同的备份目录里反复出现。更…

2026/9/10 0:00:55

Leaflet离线地图完整Demo合集:内网部署与坐标纠偏实战

简介:这是一份面向Web GIS开发者的LeafLet离线地图示例合集,帮助开发者快速掌握离线地图从搭建到交互的完整流程。压缩包共723个文件,大小14.06MB,以319个js脚本、175个html页面和29个css样式文件为主体,配合png/svg图…

2026/9/10 0:00:55

MATLAB读取Rinex 3.02观测文件:多系统GNSS数据解析实战

简介:基于MATLAB开发的Rinex3.02版观测文件(o文件)读取代码包,面向卫星定位导航方向的学习者与研究人员,用于解决新版观测文件的数据解析、历元提取与时间转换问题。压缩包共4个文件,包含两个m脚本、一个19…

2026/9/7 16:23:03

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/7 22:46:00

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/9 10:21:54

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码