接入
通过 Adapter 与 OpenTelemetry,接入你的 Agent、Claude Code 或 Codex
通过 Adapter 与 OpenTelemetry,接入你的 Agent、Claude Code 或 Codex
像写单元测试一样写评估与实验
并行运行评估,在终端或浏览器里查看结果
Eval 示例
每张卡都是一个可直接运行的 defineEval 文件。点击高亮行,展开助手回复和断言说明。
1import { defineEval, defineJudge } from "niceeval";2import { pattern } from "niceeval/expect";34const imageContext = defineJudge({ name: "image-context", rubric: "最后一轮回复是否基于先前图片?" });56export default defineEval({7 description: "评估 agent 在多轮对话中多模态的能力",89 async test(t) {const first = await t.sendFile("evals/sample.png", "这张图片里有什么?");await first.succeeded().orStop();first.usedNoTools();const second = await t.send("图片里的背景是什么颜色?");t.check(second.message, pattern(/蓝|blue|白|方块|square/i));const third = await t.send("中间那个形状是什么颜色的?");1617 await t.group("后续追问能联系图片上下文", () => {t.check(third.message, pattern(/白|white/i));19 });20t.judge({ earlierImageFacts: ["蓝色背景", "白色方块"], question: third.input, answer: third.message }, imageContext).gate(0.7);≥ 0.722 },23});
Agent 也是用户
NiceEval 的 CLI 把 coding agent 也当成用户。构建评估、运行评估、读失败、改进 Agent,每一步都能在 bash 里完成,每个失败都带着 agent 能继续追查的 locator。
niceeval exp local$ niceeval exp local FAILED 38s 14 passed · 1 failed · 0 errored (0 reused) FAILURES 1 failed attempt ✗ @1K1P0VJAPVJ12 weather/brooklyn [local] gate: get_weather was never called details: niceeval show @1K1P0VJAPVJ12 NEXT show: niceeval show --run 8f3d6f62-1d34-4cf3-99c7-84ba3c483706 view: niceeval view --run 8f3d6f62-1d34-4cf3-99c7-84ba3c483706