NiceEval: 为你的 Agent 构建评估

HXHL 2026-07-06 16:43 1

评估的意义


在过去程序的开发中,大家用测试来保障程序质量与程序员今晚不会被 oncall 可以安全下班的自信。而现在评估对于 Agent 也是一样意义。


除了保障功能本质,迭代功能本身也需要评估。换模型、调提示词,同一套用例跑一遍看分数在哪些用例是差一点,在哪些指标上更好了。


Langfuse 与 BrainTrust 有什么问题


尽管现在市面上已经有了 DeepEval 、LangFuse 、BrainTrust 。但是它们是 Prompt Enginering 时代的产物,现在 Agent 评估套进 Dataset 还有 Golden 的模型会非常别扭。


随着开发范式收敛,Agent 胜出,所以我做了 NiceEval ,是一个开源、专为 Agent 设计的估计工具。 在 Agent 需要评估多轮对话、工具调用还有 Skill 加载的场景,都能被很好的解决了。


import { defineEval } from "niceeval";

export default defineEval({
description: "实时天气必须走 get_weather 工具,不许编造",

async test(t) {
const turn = await t.send("北京今天天气怎么样?");
t.succeeded();

t.calledTool("get_weather", { input: { city: "北京" } });
t.notCalledTool("web_search");
t.eventOrder(["action.called", "action.result", "message"]);
t.messageIncludes(/°C|晴|多云|雨/);

await t.group("预算内完成", () => {
t.maxToolCalls(2);
t.maxCost(0.05);
});

t.judge.autoevals
.closedQA("助手是否给出了具体的天气数据,而不是含糊其辞?")
.atLeast(0.7);
},
});

用 NiceEval 快速接入你的应用


在 NiceEval 里,写一个 Adapter就能把自己的 Agent 系统接进来。可以非侵入式的快速开始。来实现测试不同模型在相同评估用例下面的表现。


如果你还想更进一步,测试在不同 Prompt 、不同记忆算法下的表现。在 NiceEval 也是非常好实现的。 在 Exp 中定义 flag ,然后在 Adapter 把 Flag 传给你的 Agent ,然后使用不同的逻辑就可以了。


// experiments/prompt-v1.ts
export default defineExperiment({
agent: webAgent({ baseUrl: "https://staging.example.com" }),
model: "gpt-5.4",
flags: { promptVersion: "v1" },
});

// experiments/prompt-v2.ts
export default defineExperiment({
agent: webAgent({ baseUrl: "https://staging.example.com" }),
model: "gpt-5.4",
flags: { promptVersion: "v2" },
});

评估与看结果


pnpm exec niceeval exp 实验名
pnpm exec niceeval view

实验结果


结束


给我一个 ⭐ 吧: https://github.com/CorrectRoadH/NiceEval


官网: https://niceeval.com/

最新回复 (6)
  • kandaakihito 07-06 17:16
    1
    对 agent 框架有要求不🤔
  • HXHL 楼主 07-06 17:24
    2
    @kandaakihito 评估是框架无关的。是需要写一些代码对于你 Agent 前端发消息那个接口进行适配的。然后如果是比较标准的 Open Responses ,有预定义对应的适配器。

    然后不同流行的框架比如 AI SDK 、Codex SDK 、Claude Agent SDK 有给对应的 OTel 协议的转换适配。这样在评测报告里面可以看到瀑布图。像 Langfuse 一样。
  • shaolian 07-06 18:03
    3
    不错的设计,可惜我的团队处于等开源框架迭代更新的情况,想用上评估套件的路还挺远
  • Bssn 07-06 20:50
    4
    大佬您好,agent 开发方面的知识刚学完,对测试部分不甚了解,想要学习 Agent 测试 方面的知识,向您请教一些建议和教程,感谢!
  • HXHL 楼主 07-07 11:07
    5
    @Bssn Agent 如果只是功能测试的话就是传统的 E2E 测试就行了。然后 NiceEval 更像一个考试,而不是测试。测试你的 Agent 应用在真正的各种例子中表现怎么样,应该如何优化。

    评估的话就直接以相关关键词搜索就行
    https://vercel.com/kb/guide/an-introduction-to-evals
    或者读 NiceEval 的文档,正在优化补充内容中 https://niceeval.com/docs/zh/introduction
  • Bssn 07-07 12:23
    6
    @HXHL #5 了解了,谢谢您!
* 帖子来源V2EX
返回