@basenative /测评
衡量模型是否实际生产 正确 基本转换 人工智能易读性声明从营销变成任何人都可以检查的数字。
bn-evals --models anthropic:claude-opus-5,openai:gpt-5,google:gemini-2.5-pro --out results.md
语料库是手工创作的
prompts/ 和 fixtures/ 是由回购所有者手写的。没有技能,没有
子代理,任何层的模型都不能生成它们。
如果模型写入提示,则引用实现, 和 断言, eval衡量的是模型的自洽性,仅此而已, 高,无意义的数字。因此,线束 拒绝对抗一个空的 语料库 而不是退回到生成的任何东西。
断言 类型 是基础设施和生活在 src/assertions.js。断言
值 -什么是正确的-是你的。
管道
prompts/ (hand-authored) → model runner → generated template
→ @basenative/validate does it parse?
→ @basenative/server does it render?
→ @basenative/runtime (stateful cases only) does it hydrate and react?
→ behavioural assertions does it do the thing?
→ score
水合物阶段只在声明的情况下运行 state 或水合物家族
断言 (hydrated_contains/hydrated_excludes/after_set ——看
prompts/README.md)-大多数病例仅由SSR输出完全评分。当它
运行时,它将生成的模板-指令完整-安装到同一个DOM中
垫片 @basenative/runtime的自己的测试使用,并运行真实的客户端 hydrate()
在真实信号的背景下,这是对信号进行评分的唯一方法,
计算,或效果,而不仅仅是模板的静态形状。
阶段短路: 不解析的模板不能有意义
呈现,所以 failedAt 告诉你 哪里 一个模型出了问题,而不仅仅是模型出了问题。
标题号码
该套件对每个模型运行两次——一次使用提供的BaseNative MCP工具,另一次 没有。增量是产品声明: 实际上给模型一个验证器 让它写正确的BaseNative?
这两个提示不同 只有 用一句话来命名工具。任何更多的 会混淆 “有工具” 与 “被告知更多关于语言”。
除了通过率,报告还追踪了 漂移率 -一个模型多久到达一次 对于另一个框架的语法,而不是仅仅得到错误的逻辑。那是 这是检验论文的数字,即使它使论文难堪,也要报道出来。
多提供者按设计
排行榜只是在测试克劳德,而不是证据。 resolveCredentials
列表 每一个 缺少密钥且拒绝启动的提供程序,而不是
安静地制作一张桌子,三个模特默默地缺席。
提供者: anthropic, openai, google, openaiCompatible (任何OpenAI-shaped
端点,对于开放权重模型), ollama (本地模型通过
奥拉玛,不需要API密钥)。
本地模型是排行榜非人类方面的预期路径。 云模型api单独收费,该项目在所有者的硬件上运行 已经拥有而不是购买钥匙。使用Ollama在本地运行开重模型:
ollama pull llama3.2
ollama pull qwen2.5-coder
bn-evals --models anthropic:claude-opus-5,ollama:llama3.2,ollama:qwen2.5-coder
ollama 模型默认为 http://localhost:11434; 重写为 --ollama-url 如果
奥拉玛跑到别处去了。在运行之前, bn-evals 支票 /api/tags 在那个端点上
并大声失败-打印确切的 ollama pull <model> 命令-用于任何请求
尚未拉出的模型,而不是在错字上燃烧运行。
resolveCredentials 从不将本地模型视为缺少的凭据: ollama 需要
根本没有钥匙,只有指向 openaiCompatible 在 localhost baseUrl (Ollama
OpenAI-compatible /v1 端点、LM工作室等) 也放弃了关键要求。云
提供商不受影响-缺少的云密钥仍然拒绝运行。
注意: 针对云提供商运行套件需要一个API密钥。一个 Claude Max/Pro订阅不包括API访问-这些是单独收费的。
许可证
apache - 2.0