npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

niceeval

v0.6.1

Published

Agent-native eval tool — eval agents, services, functions, and coding-agent fixtures

Downloads

2,894

Readme

NiceEval

渐进式、Agent Native、DX优秀的 AI agent evals 工具

typescript license docs

English | Deutsch | Español | français | 日本語 | 한국어 | Português | Русский

NiceEval 是一个 Agent 评估工具,帮助团队衡量、评估并改进生产环境中的 AI。借助 NiceEval,团队可以比较模型、迭代 Agent、发现回归问题,并利用真实用户数据持续改进 AI 应用。

NiceEval 以本地优先为核心:你的评估在你自己的环境中运行。当你的团队需要分享评估、回归跟踪时,可以通过 Report 上报到 BrainTrust 等平台,或者自定义的报告导出。

为什么有了 DeepEval、LangFuse、BrainTrust 还需要 NiceEval

NiceEval 是一个 Agent-Native 的评估工具。Dataset / golden 那一套「构建 Input 与 Expected Output」的模式,并不适合真实的 Agent 评估。 现在 Agent 需要在多轮对话、多 agent 协作、工具调用、Skill 加载等细粒度场景下进行评估,NiceEval 能做得更好。

同时,NiceEval 也能与 LangFuse、BrainTrust 共存:可以用它们做 tracing,或者把评估结果上传到两者。

架构

NiceEval 支持两种接入方式,取决于被测 agent 是否需要隔离的沙箱文件系统。

模式一:Sandbox(Docker、E2B)—— 跑 Codex、Claude Code 等需要 sandbox 的 coding agent

   evals/*.eval.ts
        │
        ▼
   ┌─────────────────────┐
   │     NiceEval        │
   └─────────────────────┘
        │
        │ Agent 适配器(官方)
        ▼
   ┌──────────────────────────────┐
   │        Docker Sandbox        │
   │   ┌────────────────────────┐ │
   │   │ Codex / Claude Code    │ │
   │   │ 需要隔离文件系统的应用     │ │
   │   └────────────────────────┘ │
   └──────────────────────────────┘

模式二:直连 —— 直接连接你自己的 AI Agent

   evals/*.eval.ts
        │
        ▼
   ┌─────────────────────┐
   │     NiceEval        │
   └─────────────────────┘
        │
        │ Agent 适配器(官方,或者自己实现)
        ▼
   ┌──────────────────────────────┐
   │       你自己的 AI Agent        │
   │   (AI SDK·LangGraph·Pi )     │ 
   └──────────────────────────────┘
  • NiceEval 核心 负责发现 eval、调度运行、打分、生成报告与 artifacts。
  • Agent 适配器 是开放的边界:你来决定如何调用被测系统。
  • 需要文件系统隔离的 coding agent 走 Docker Sandbox;自有的 AI Agent 可以直连,无需 Docker。

核心概念一览

| 概念 | 一句话 | |---|---| | Eval | 一个测试用例:写在 evals/*.eval.ts 里,描述测什么。 | | Experiment | 可签入的运行配置:决定连哪个 Adapter、什么 model、什么 flags。 | | Adapter | 连接被测系统的适配层:实现一个 send,把返回翻译成标准事件流。 | | Sandbox | 需要隔离工作区的 coding agent 才用得到;直连 Web Agent 不需要。 | | Tier | 接入 Adapter 的三档投入:Tier 1 只接 send,Tier 2 加 OTel 换调用瀑布图,Tier 3 侵入改造做 feature A/B。 |

完整术语表见架构概览

示例

// evals/eval-tool-call.eval.ts
import { defineEval } from "niceeval";

export default defineEval({
  description: "测试 agent 在实时天气问题中正确调用工具并基于结果作答的能力",

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

    await t.group("调用 get_weather 且城市正确", () => {
      t.calledTool("get_weather", { input: { city: "北京" } });
      t.messageIncludes(/°C|气温|天气|晴|多云|雨/);
    });

    const second = await t.send("上海明天天气怎么样?");
    second.messageIncludes("上海");

    t.judge.autoevals
      .closedQA("助手是否基于工具返回的天气数据作答,而不是凭空编造温度?")
      .atLeast(0.7);
  },
});
// experiments/local.ts
import { defineExperiment } from "niceeval";
import { webAgent } from "./adapter"; // 你自己写的 agent adapter,接被测 web agent

export default defineExperiment({
  agent: webAgent({ baseUrl: "http://127.0.0.1:5188" }),
  model: "gpt-5.5"
});
pnpm exec niceeval exp local eval-tool-call  // 用 local experiment 只跑 eval-tool-call
pnpm exec niceeval view // 查看评估结果

快速开始

READ https://niceeval.com/INIT.md and install niceeval for this repo.

从你的场景开始:

Roadmap

官方适配器

  • [ ] Agent 软件

    • [x] Claude Code
    • [x] Codex
    • [x] Bub
    • [ ] OpenClaw
    • [ ] Hermess Agent
    • [ ] Alma
    • [ ] ...
  • [ ] Agent 框架

    • [x] AI SDK
    • [x] Claude SDK
    • [x] Codex SDK
    • [x] Pi Agent SDK
    • [ ] LangGraph
    • [ ] vm0
    • [ ] Cursor Agent SDK

文档

感谢

该项目受下面项目所启发或者是由AI从下面项目中学习代码所写

感谢下列社区

  • WIP