资讯详情

如何用nao test给AI智能体做单元测试:用YAML评估框架保障分析准确性

📅 2026/10/11 10:12:23 | 华诺云谱 👁 阅读
如何用nao test给AI智能体做单元测试:用YAML评估框架保障分析准确性
【免费下载链接】nao nao is an open source analytics agent. (1) Create context with nao-core cli, (2) deploy nao chat interface for everyone项目地址https://gitcode.com/gh_mirrors/nao4/nao点击查看免费下载nao test是开源分析智能体 nao 内置的测试命令把「自然语言问题 期望 SQL」写成一个个 YAML 测试用例一键验证 AI 数据分析智能体的回答是否准确并用通过率、Token 成本等指标建立可复现的评估基线。对于刚接触 nao 的新手来说它是保障智能体「分析准确性」最实用的工具。nao test 是什么给数据分析智能体做「单元测试」传统软件的单元测试验证函数返回值而nao test验证的是 AI 智能体的分析结果。它的工作流程可以概括为三步提问把 YAML 里的自然语言 prompt 发给 nao 智能体比如「所有订单的总收入是多少」执行智能体生成自己的 SQL 并查询数据库同时框架用你写好的「期望 SQL」查询出标准答案比对逐行、逐列 diff 两份结果数据一致才算通过支持浮点容差避免精度噪音。所有测试用例统一放在项目根目录的tests/文件夹中一个文件一个用例。项目自带了一个最小示例示例用例total_revenue.yml它的完整内容只有 5 行name: total_revenue prompt: What is the total revenue from all orders? sql: | SELECT SUM(amount) as total_revenue FROM ordersname是测试名称prompt是发给智能体的问题sql是标准答案。就这么简单——这就是AI 智能体单元测试的全部骨架。测试用例怎么写两条核心编写规则nao 官方在 create-context-tests/SKILL.md 中沉淀了一套编写测试的规范核心是两条规则规则一prompt 要像真实用户在聊天问题要短、要口语化不要泄露表名、列名或计算方法。测试的目的是验证智能体能从模糊的真实问题中得出正确答案而不是「按提示抄作业」❌ 不推荐✅ 推荐What was the churn rate fromfct_subscriptionsin Q1?Hows churn looking this quarter?Compute MRR as SUM(mrr_amount) where statusactiveWhats our MRR?规则二SQL 输出列名编码「格式/单位」而非来源列名应该告诉读数据的人如何解释这个值而不是暴露它是从哪张表算出来的❌ 不推荐✅ 推荐churn_rate_from_fct_subscriptionschurn_rate_float_0_1mrr_amount_fct_stripe_mrrmrr_usd_dollars完整的用例模板含可选字段说明见 templates/test.yaml。模板中几个值得留意的可选字段database配置了多个数据库时指定本用例查询哪个库category/difficulty给用例打标签方便分类统计notes记录这个用例为什么要存在、它捕捉哪类失败模式。进阶用 assertions 断言智能体的「中间行为」只看最终数据还不够——有时你关心的是智能体过程是否符合预期。比如用户问「收入是多少」但没说哪个时间段你期望智能体先追问而不是直接给一个数字。这时可以用assertions字段断言智能体是否调用了特定工具name: ambiguous_revenue_period prompt: What was the revenue? assertions: - type: tool_call tool: clarification这条断言要求智能体在运行过程中调用过clarification工具即发起澄清追问。它还可以通过args校验工具调用的参数子集省略args则匹配任意调用通过min_count要求工具至少被调用 N 次与 SQL 数据比对组合使用——所有检查全部通过用例才算通过。断言逻辑实现在 assertions.py一个坏掉的 assertions 配置会直接让整个测试运行失败而不是被静默跳过保证评估结果可信。多模型对比与 passk量化评估准确率nao test不只是跑一遍就完事它内置了两个对 AI 评估特别有用的维度一次运行对比多个模型通过-m参数可以同时测试多个模型格式为provider:model_idnao test -m openai:gpt-4.1 -m anthropic:claude-sonnet-4-5运行结束后会输出「测试 × 模型」通过率矩阵一眼看出哪个模型在你的业务问题上更靠谱。用 passk 衡量稳定性LLM 输出有随机性同一个问题跑 10 次可能 7 次对、3 次错。--k 5让每个用例重复跑 5 次框架据此计算 summary.py 中定义的三个指标指标含义pass1各次尝试的平均通过率passkk 次里只要有 1 次通过就算通过能力上限pass^kk 次必须全部通过稳定性下限默认值可以在nao_config.yaml的test配置块中设置命令行参数会覆盖配置。配置结构定义见 config/test/init.py。test: models: - openai:gpt-4.1 - anthropic:claude-sonnet-4-5 threads: 4 # 并行线程数 k: 5 # 每个用例跑 5 次 comparison: # 数据比对容差 rtol: 0.00001 atol: 0.00000001 decimals: 2其他常用参数完整说明见 cli/README.md-s/--select只跑指定用例支持按名称、文件名或子文件夹筛选如nao test -s contracts-t/--threads并行执行线程数加速大规模评估-u/--password非交互环境下的登录凭据也可用NAO_USERNAME/NAO_PASSWORD环境变量。结果怎么读输出报告与可视化查看器每次运行结束后nao test会输出三张表每个用例的明细状态、Token 数、成本、耗时、工具调用次数、按模型汇总的通过率表以及测试 × 模型矩阵。所有原始结果以 JSON 形式保存到tests/outputs/目录方便追溯和 diff。如果失败用例较多终端表格看不清楚可以启动内置的结果查看器nao test server它会在浏览器中打开一个本地 Web 服务默认 8765 端口展示通过/失败状态、Token 用量、成本以及失败用例的实际数据 vs 期望数据的逐行 diff——排查「智能体到底哪里算错了」时非常直观。查看器实现在 test/server.py。最佳实践把测试纳入智能体的持续迭代根据官方技能文档 create-context-tests/SKILL.md 的建议推荐的迭代节奏是建立基线为RULES.md中每个核心指标至少写一个测试再补充时间范围「最近 30 天」、多步查询、空值/边界情况、歧义表述等场景跑基线nao test -t 10记录通过率、Token 成本与耗时作为基线小步修复每次只改一条上下文规则RULES.md重新跑测试让每次改动的效果可归因失败诊断从tests/outputs/中读取失败用例的详细 diff定位规则缺口再修复。官方强调的一点测试套件是回答「上下文工程到底有没有用」的唯一诚实答案——每修改一次RULES.md都应让这套YAML 评估框架重新验收一次。常见问题FAQ问跑测试前需要做什么准备答在包含nao_config.yaml的项目目录下确保 LLM 已配置好并先后台启动nao chat 测试运行器会复用聊天服务。首次运行会提示登录凭据。问只想要文本答案、没有标准 SQL 的用例怎么测答只写promptassertions即可不写sql。此时框架通过断言中间行为如是否调用了execute_sql工具来判定通过与否。问浮点数比对总因为精度差 0.01 失败答调整test.comparison容差配置decimals控制比对前四舍五入的小数位数rtol/atol控制相对/绝对误差详见 runner.py 中的check_dataframe比对逻辑。小结nao test用最少的 YAML 配置为数据分析智能体提供了接近工程化的单元测试能力标准答案比对、中间行为断言、多模型横评、passk 稳定性指标、成本统计与可视化 diff。把它接入你的工作流后每次改动上下文、换模型、升级版本都能用同一个AI 智能体评估框架客观回答一个问题智能体的分析准确性到底变好了还是变差了赞分享【免费下载链接】nao nao is an open source analytics agent. (1) Create context with nao-core cli, (2) deploy nao chat interface for everyone项目地址https://gitcode.com/gh_mirrors/nao4/nao点击查看免费下载相关推荐yuzu单元测试框架Google Test如何保障核心功能稳定yuzu单元测试框架Google Test如何保障核心功能稳定 单元测试是保障软件质量的关键环节尤其对于yuzu这样的高性能Switch模拟器而言核心功能图形学游戏开发DeepMind Lab终极性能基准测试如何准确评估AI智能体真实能力DeepMind Lab终极性能基准测试如何准确评估AI智能体真实能力 DeepMind Lab是一个高度可定制的3D平台专为基于智能体的AI研究设计。它提人工智能强化学习机器学习终极指南testssl.sh单元测试框架如何确保TLS检测准确性终极指南testssl.sh单元测试框架如何确保TLS检测准确性 testssl.sh是一款强大的命令行工具专门用于在任何端口上测试TLS/SSL加密配置。网络安全应用安全CLI漏洞扫描创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑