尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

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

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),仅供参考
返回列表