Judgeval
面向Agent的持续改进栈,通过生产数据检测失败、定位根因并上线修复。
证据显示:README 提到需要 API 密钥和 org ID,但未说明权限范围;有后台队列和自动追踪,但未明确用户确认机制;数据流描述为 OpenTelemetry 追踪,但未详细说明数据流向和存储;敏感数据处理未提及;依赖列表有版本范围,但未提供安全审计;外部效果包括发送数据到远程服务,但未说明副作用;无回滚机制;作者和维护者信息在 pyproject 中明确。扣分:缺少用户确认、数据流透明性不足、敏感数据处理未说明、依赖安全未审计、外部效果未明确、无回滚。
证据显示:README 和 pyproject 描述一致,CI 配置了多版本测试,但未提供失败消息的详细说明;依赖有版本范围,但未锁定具体版本,可能影响可用性;失败消息未在文档中说明。扣分:依赖可用性未锁定,失败消息未说明。
证据显示:README 明确目标用户为 LLM 应用开发者,场景包括监控和评估;能力边界未明确说明,但提到集成列表;触发精度未详细说明,但 JQL 查询有示例;环境适配包括 Python 版本和操作系统,但未说明具体限制。扣分:能力边界和触发精度未详细说明。
证据显示:README 结构清晰,有安装说明和示例;命名稳定,但版本号为 0.0.0,可能不稳定;有示例但无 FAQ;无已知限制说明;Apache-2.0 许可证完整;无版本变更日志;维护责任由 Judgment Labs 承担,但未验证。扣分:无已知限制、无变更日志、版本号不稳定。
证据显示:输出为结构化行为,可用于监控;边际价值在于提供追踪和评估功能,但未与其他工具对比;成本效益未说明,但开源免费。扣分:成本效益未说明。
证据显示:README 中的声明未提供具体证据,如测试结果;CI 配置了测试,但未提供结果;事实和推断未明确区分。扣分:声明缺乏可追溯性,交叉验证不足。
- 该仓库未提供用户确认机制,自动追踪可能收集敏感数据,需谨慎使用。
- 依赖未锁定具体版本,可能引入不兼容或安全风险。
- 版本号为 0.0.0,表明项目处于早期阶段,API 可能不稳定。
- 无已知限制和变更日志,用户需自行评估风险。
这个 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。整体流程为:接入追踪→定义评分器→在线或离线运行评估→收集行为信号→触发告警或验证修复。
- AI工程师在开发Agent时,需要检测生产环境中的失败案例,可以使用Judgeval的追踪功能捕获详细信息并定位根因。
- 平台团队希望在大规模部署LLM应用前,用历史traces回放新版本,验证修复是否有效,避免回归。
- 运维人员需要实时监控生产流量的Agent行为,当检测到异常时通过Slack接收告警,及时响应。
- 数据科学家需要分析Agent的行为模式,利用JQL查询历史traces,筛选特定会话或条件,进行深入分析。
- 基于LangGraph或LangChain的开发者,可以利用自动检测集成,无需修改业务代码即可获得可观测性。
- 希望将Agent评估集成到已有可观测性栈的团队,因为Judgeval构建在OpenTelemetry之上,可以兼容现有工具。
这个 Agent 有哪些优点和局限?
- 基于OpenTelemetry构建,可以无缝集成到现有可观测性体系。
- 自动捕获LLM的token使用和输入输出,无需手动埋点。
- 提供JQL查询语言,可以灵活查询历史traces和行为。
- 支持在线监控和Slack告警,及时发现生产问题。
- 支持主流模型提供商和框架,如OpenAI、Anthropic、LangGraph等。
- 需要注册Judgment Labs服务并配置API密钥,存在云服务依赖。
- 文档主要指向official docs,可能缺少离线或社区支持。
- 作为较新项目,生态和社区支持可能不如成熟工具。
- 使用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())更多用法参见官方文档。