Judgeval

面向Agent的持续改进栈,通过生产数据检测失败、定位根因并上线修复。

Star 数
★ 1.1k
最近更新
17 天前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
代码库 / SDK命令行工具MCP 服务器
可在哪里用
通用 · 跨平台OpenAI API
费用
软件免费,模型调用费用自付
上手难度
低 · 几分钟可跑通
开始前需要
Python 3pipShell / 命令行网络访问
典型场景
AI工程师在开发Agent时,需要检测生产环境中的失败案例,可以使用Judgeval的追踪功能捕获详细信息并定位根因。
不适合
  • 希望无需 OpenTelemetry 概念即可上手的小型项目
  • 对生产流量数据外发到第三方云有合规顾虑的组织

这个 Agent 能做什么,适合哪些场景?

Judgeval是Judgment Labs推出的开源Python SDK,为LLM驱动的应用提供追踪与Agent裁判评估能力。它基于OpenTelemetry实现追踪,用@Tracer.observe()装饰器即可捕获函数输入、输出和token用量。内置的Agent裁判可以基于提示词定义评分器,对Agent行为进行结构化评估,生成带标签的评分结果,并累积成可搜索的行为记录。它还支持在线监控,服务端自动对生产流量进行评分,并通过Slack告警暴露回归问题。Judgeval支持OpenAI、Anthropic、Google GenAI、Together AI等模型提供商,以及LangGraph、OpenLit、Claude Agent SDK等框架。该项目由Judgment Labs维护,采用Apache-2.0许可证。

Judgeval提供一个Python包,可通过pip install judgeval安装,并需要配置JUDGMENT_API_KEY和JUDGMENT_ORG_ID环境变量。核心组件包括:Tracer类用于初始化项目(Tracer.init(project_name=...))、@Tracer.observe()装饰器用于自动捕获函数调用、wrap()函数用于自动检测OpenAI等客户端。用户定义基于提示词的评分器(agent judges)来评估Agent行为,并生成结构化的评分结果。JQL(Judgeval Query Language)接口可通过Judgeval客户端执行查询,例如client.query(traces().where(eq("session", "session-123")).ids())。此外,它还提供CLI工具和MCP服务器,用于管理traces、judges、behaviors和evals。整体流程为:接入追踪→定义评分器→在线或离线运行评估→收集行为信号→触发告警或验证修复。

  1. AI工程师在开发Agent时,需要检测生产环境中的失败案例,可以使用Judgeval的追踪功能捕获详细信息并定位根因。
  2. 平台团队希望在大规模部署LLM应用前,用历史traces回放新版本,验证修复是否有效,避免回归。
  3. 运维人员需要实时监控生产流量的Agent行为,当检测到异常时通过Slack接收告警,及时响应。
  4. 数据科学家需要分析Agent的行为模式,利用JQL查询历史traces,筛选特定会话或条件,进行深入分析。
  5. 基于LangGraph或LangChain的开发者,可以利用自动检测集成,无需修改业务代码即可获得可观测性。
  6. 希望将Agent评估集成到已有可观测性栈的团队,因为Judgeval构建在OpenTelemetry之上,可以兼容现有工具。

如何安装或部署这个 Agent?

使用pip安装:

pip install judgeval

设置环境变量:

export JUDGMENT_API_KEY=...
export JUDGMENT_ORG_ID=...

如何使用这个 Agent?

初始化追踪器并封装OpenAI客户端:

from judgeval import Tracer, wrap
from openai import OpenAI

Tracer.init(project_name="my-project")
client = wrap(OpenAI())

用@Tracer.observe标记需要追踪的函数:

@Tracer.observe(span_type="tool")
def search(query: str) -> str:
    # ...
    return results

@Tracer.observe(span_type="agent")
def run_agent(question: str) -> str:
    # ...
    response = client.chat.completions.create(...)
    return response.choices[0].message.content

运行Agent后,traces会被自动捕获。使用JQL查询:

from judgeval import Judgeval
from judgeval.jql import eq, traces

client = Judgeval(project_name="my-project")
result = client.query(traces().where(eq("session", "session-123")).ids())

更多用法参见官方文档。

这个 Agent 有哪些优点和局限?

优点
  • 基于OpenTelemetry构建,可以无缝集成到现有可观测性体系。
  • 自动捕获LLM的token使用和输入输出,无需手动埋点。
  • 提供JQL查询语言,可以灵活查询历史traces和行为。
  • 支持在线监控和Slack告警,及时发现生产问题。
  • 支持主流模型提供商和框架,如OpenAI、Anthropic、LangGraph等。
局限
  • 需要注册Judgment Labs服务并配置API密钥,存在云服务依赖。
  • 文档主要指向official docs,可能缺少离线或社区支持。
  • 作为较新项目,生态和社区支持可能不如成熟工具。
  • 使用OpenTelemetry,需要团队具备相关技术栈知识。
  • 自动追踪可能增加性能开销,需要评估影响。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
Judgeval 当前 40 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 1.1k 17 天前 Python OpenAI API
NVIDIA NeMo Agent Toolkit 65 · 存在缺口 命令行工具免费 + 模型费 ★ 2.7k 今天 Python —
OpenTelemetry 代理技能包 54 · 缺口较多 Agent 插件 / 技能免费 ★ 112 2 天前 Go Codex · Claude Code
Claude Code 多代理可观测性系统 35 · 缺口较多 自托管服务免费 + 模型费 ★ 1.5k 8 个月前 Python Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
40/ 100 五分制 2.0 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 2 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 7/29
可靠稳定 6/14
适用触发 9/18
规范维护 8/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全7 / 29 · 1.2/5

证据显示:README 提到需要 API 密钥和 org ID,但未说明权限范围;有后台队列和自动追踪,但未明确用户确认机制;数据流描述为 OpenTelemetry 追踪,但未详细说明数据流向和存储;敏感数据处理未提及;依赖列表有版本范围,但未提供安全审计;外部效果包括发送数据到远程服务,但未说明副作用;无回滚机制;作者和维护者信息在 pyproject 中明确。扣分:缺少用户确认、数据流透明性不足、敏感数据处理未说明、依赖安全未审计、外部效果未明确、无回滚。

可靠稳定6 / 14 · 2.1/5

证据显示:README 和 pyproject 描述一致,CI 配置了多版本测试,但未提供失败消息的详细说明;依赖有版本范围,但未锁定具体版本,可能影响可用性;失败消息未在文档中说明。扣分:依赖可用性未锁定,失败消息未说明。

适用触发9 / 18 · 2.5/5

证据显示:README 明确目标用户为 LLM 应用开发者,场景包括监控和评估;能力边界未明确说明,但提到集成列表;触发精度未详细说明,但 JQL 查询有示例;环境适配包括 Python 版本和操作系统,但未说明具体限制。扣分:能力边界和触发精度未详细说明。

规范维护8 / 18 · 2.2/5

证据显示:README 结构清晰,有安装说明和示例;命名稳定,但版本号为 0.0.0,可能不稳定;有示例但无 FAQ;无已知限制说明;Apache-2.0 许可证完整;无版本变更日志;维护责任由 Judgment Labs 承担,但未验证。扣分:无已知限制、无变更日志、版本号不稳定。

有效结果7 / 13 · 2.7/5

证据显示:输出为结构化行为,可用于监控;边际价值在于提供追踪和评估功能,但未与其他工具对比;成本效益未说明,但开源免费。扣分:成本效益未说明。

证据核验3 / 8 · 1.9/5

证据显示:README 中的声明未提供具体证据,如测试结果;CI 配置了测试,但未提供结果;事实和推断未明确区分。扣分:声明缺乏可追溯性,交叉验证不足。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 该仓库未提供用户确认机制,自动追踪可能收集敏感数据,需谨慎使用。
  • 依赖未锁定具体版本,可能引入不兼容或安全风险。
  • 版本号为 0.0.0,表明项目处于早期阶段,API 可能不稳定。
  • 无已知限制和变更日志,用户需自行评估风险。
证据充分度:低 评估于 2026年8月9日 审查版本 0e6fac2bb433 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. v1.3.3
    发布说明摘录
    You can find this package release on PyPI: https://pypi.org/project/judgeval/1.3.3/ What's Changed * feat: expose public SQL and schema discovery by @JJwilkin in https://github.com/JudgmentLabs/judgeval/pull/787 Full Changelog: https://github.com/JudgmentLabs/judgeval/compare/v1.3.2...v1.3.3
    在 GitHub 查看 ↗
  2. v1.3.2
    发布说明摘录
    You can find this package release on PyPI: https://pypi.org/project/judgeval/1.3.2/ What's Changed * feat(jql): add query scoping and offline sources by @JJwilkin in https://github.com/JudgmentLabs/judgeval/pull/776 * fix: spec use deployment.enviornment.name by @abhishekg999 in https://github.com/JudgmentLabs/judgeval/pull/770 * chore: update vulnerable dependencies by @abhishekg999 in https://github.com/JudgmentLabs/judgeval/pull/783 Full Changelog: https://github.com/JudgmentLabs/judgeval/compare/v1.3.1...v1.3.2
    在 GitHub 查看 ↗
  3. v1.3.1
    发布说明摘录
    You can find this package release on PyPI: https://pypi.org/project/judgeval/1.3.1/ What's Changed * fix(id_generator): use os.urandom() to prevent fork-safety ID collisions (JUD-9223) by @luna-jl in https://github.com/JudgmentLabs/judgeval/pull/773 Full Changelog: https://github.com/JudgmentLabs/judgeval/compare/v1.3.0...v1.3.1
    在 GitHub 查看 ↗

常见问题

Judgeval的免费层和定价如何?
仓库描述未提及定价信息,需要访问Judgment Labs官网或联系销售获取。
是否可以在不使用Judgment Labs云服务的情况下自托管?
仓库未提供自托管部署选项,主要依赖云端API,可能不支持完全离线使用。
支持哪些模型提供商?
文档明确列出支持OpenAI、Anthropic、Google GenAI、Together AI,以及框架LangGraph、OpenLit和Claude Agent SDK。
如何定义自定义评分器?
通过定义基于提示词的scorer,可对Agent行为进行评分,详细指南见官方文档。
是否与OpenTelemetry完全兼容?
是的,追踪基于OpenTelemetry构建,可以与其他OTel工具集成,但需要验证具体兼容性。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents