爱意满满的作品展示区。
HXHL

NiceEval: 为你的 Agent 构建评估

  •  2
     
  •   HXHL · 9h 26m ago · 392 views

    评估的意义

    在过去程序的开发中,大家用测试来保障程序质量与程序员今晚不会被 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/

    4 replies    2026-07-06 20:50:46 +08:00
    kandaakihito
        1
    kandaakihito  
       8h 53m ago
    对 agent 框架有要求不🤔
    HXHL
        2
    HXHL  
    OP
       8h 45m ago
    @kandaakihito 评估是框架无关的。是需要写一些代码对于你 Agent 前端发消息那个接口进行适配的。然后如果是比较标准的 Open Responses ,有预定义对应的适配器。

    然后不同流行的框架比如 AI SDK 、Codex SDK 、Claude Agent SDK 有给对应的 OTel 协议的转换适配。这样在评测报告里面可以看到瀑布图。像 Langfuse 一样。
    shaolian
        3
    shaolian  
       8h 6m ago
    不错的设计,可惜我的团队处于等开源框架迭代更新的情况,想用上评估套件的路还挺远
    Bssn
        4
    Bssn  
       5h 19m ago
    大佬您好,agent 开发方面的知识刚学完,对测试部分不甚了解,想要学习 Agent 测试 方面的知识,向您请教一些建议和教程,感谢!
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1098 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 18:10 · PVG 02:10 · LAX 11:10 · JFK 14:10
    ♥ Do have faith in what you're doing.