TruLens 智能体评测与追踪
用可移植追踪与可解释评测定位智能体质量和成本问题。
- Star 数
- ★ 3.6k
- 最近更新
- 7 天前
- License
- MIT
- 主语言
- Python
- FA 评分
- 51/100 · 缺口较多
30 秒速览
- 可在哪里用
- 通用 · 跨平台OpenAI APIClaude API(部分支持)
- 开始前需要
- 典型场景
- 构建 RAG 应用的团队,需要在每次检索和回答后检查上下文相关性与 groundedness,并追溯低质量回答的具体步骤。
- 主要局限
- 材料未给出 Python 版本、凭据注入、环境变量或持久化后端配置,首次部署仍需补充这些信息。
这个 Agent 能做什么,适合哪些场景?
TruLens 是用于 LLM 实验和 AI 智能体的 Python 评测与追踪工具,而非自主执行任务的智能体。它以 OpenTelemetry 为基础,把函数调用、LLM 生成、检索和工具调用记录为结构化 span,并可导出到兼容 OTLP 的后端。评测既可在应用运行时内联执行,也可通过 Run API 对既有数据集进行批量计算。项目提供 LogicalConsistency、ExecutionEfficiency、PlanAdherence、PlanQuality、ToolSelection、ToolCalling 和 ToolQuality 七类智能体评测器。它支持 OpenAI、LiteLLM、Gemini、AWS Bedrock、Snowflake Cortex、HuggingFace 和 LangChain 模型,并提供 LangChain/LangGraph 与 LlamaIndex 集成包。
开发者使用 trulens.core.otel.instrument.instrument 装饰函数,并以 SpanAttributes.SpanType.RETRIEVAL 或 SpanAttributes.SpanType.MCP 等类型标注调用。TruLens 捕获输入、输出、延迟、token、成本、检索上下文、工具参数和工具输出等追踪数据;MCP 调用可记录工具名、参数、输出和延迟。随后可用 Metric 配合 Selector.select_record_input() 和 Selector.select_context() 将评测实现绑定到指定 span 属性。在线模式中,应用在 with tru_recorder as recording: 块内运行;离线模式中,使用 RunConfig、tru_app.add_run()、run.start() 和 run.compute_metrics() 对数据集调用评测指标。结果面向按应用版本比较分数、延迟和成本,以及将追踪导出至 Jaeger、Grafana Tempo、Datadog 或其他 OTLP 兼容后端。
- 构建 RAG 应用的团队,需要在每次检索和回答后检查上下文相关性与 groundedness,并追溯低质量回答的具体步骤。
- 维护 LangChain、LangGraph 或 LlamaIndex 工作流的工程师,需要为已有应用添加追踪与评测,而不重写整个应用。
- 开发会规划和调用工具的智能体团队,需要检查计划遵循度、工具选择、参数调用和执行效率。
- 拥有历史评测数据集的 ML 团队,需要用 RunConfig 创建批处理任务,并通过 run.compute_metrics() 重算多项指标。
- 已部署 OTLP 可观测性后端的平台团队,需要把 LLM、检索和 MCP 工具调用纳入现有 Jaeger、Tempo 或 Datadog 追踪体系。
如何安装或部署这个 Agent?
安装基础包:pip install trulens。评测使用 OpenAI 或 Azure OpenAI 时:pip install trulens trulens-providers-openai;使用 Anthropic 等 LiteLLM 模型时:pip install trulens trulens-providers-litellm。也可安装 trulens-providers-google、trulens-providers-bedrock、trulens-providers-cortex、trulens-providers-huggingface 或 trulens-providers-langchain;应用框架集成包为 trulens-apps-langchain 和 trulens-apps-llamaindex。提供的材料未说明 Python 版本、各提供商凭据或环境变量的配置方式。
如何使用这个 Agent?
在要观察的函数上添加 @instrument,并设置 span_type 和 SpanAttributes 映射;例如检索函数可使用 SpanAttributes.SpanType.RETRIEVAL,将查询映射到 "query"、返回上下文映射到 "return"。构建 Metric 时,用 selectors 将输入和上下文定位到记录中的字段。在线评测在 with tru_recorder as recording: 中执行应用调用;批量评测则创建 RunConfig,调用 tru_app.add_run(run_config=...)、run.start(),再调用 run.compute_metrics([relevance, groundedness])。提供的材料没有给出可独立运行的 tru_app、tru_recorder、provider、relevance 或 groundedness 初始化代码,因此无法据此构造完整的首个可运行调用。
这个 Agent 有哪些优点和局限?
- 以 OpenTelemetry span 记录函数、生成、检索和工具调用,可导出至 Jaeger、Grafana Tempo、Datadog 及其他 OTLP 后端。
- 同时覆盖内联评测和基于 Run API 的离线批评测,适合实时监控与历史数据重算两种流程。
- 提供七种针对智能体行为的评测器,明确覆盖计划、工具选择、工具调用、工具可靠性与执行效率。
- 支持多家模型提供商,并为 LangChain/LangGraph 和 LlamaIndex 提供独立集成包。
- 材料未给出 Python 版本、凭据注入、环境变量或持久化后端配置,首次部署仍需补充这些信息。
- 完整可运行示例依赖未展示的 tru_app、tru_recorder、provider 和指标对象初始化。
- 不同模型服务商需要额外安装对应的 trulens-providers-* 包,功能路径和配置会随提供商而变化。
- 若要在现有应用中获得细粒度追踪,需要为函数补充 @instrument 和 span 属性映射。
这个 Agent 与同类方案有什么区别?
在所列 AIMultiple RAG 评测比较中,TruLens 的 context relevance NDCG@5 被描述为在四项排序指标中的三项领先于 WandB Weave、RAGAS、DeepEval 和 UpTrain;这是一项特定基准结果,并不等同于所有工作负载中的总体优劣。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|
| TruLens 智能体评测与追踪 当前 | 51 · 缺口较多 | ★ 3.6k | 7 天前 | Python | OpenAI API |
| OpenInference | 71 · 存在缺口 | ★ 1.2k | 2 天前 | Python | OpenAI API · Claude API |
| Langtrace | 42 · 缺口较多 | ★ 1.2k | 10 个月前 | TypeScript | OpenAI API · Claude API |
| Future AGI | 51 · 缺口较多 | ★ 2.1k | 1 天前 | Python | Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:项目使用OpenTelemetry进行追踪,数据流透明性较好(2分);但未发现权限最小化设计(1分),用户确认机制缺失(0分),敏感数据处理说明不足(1分),依赖安全审查不明确(1分),外部影响控制有限(1分),回滚机制未明确(1分),来源归属有版权声明但发布者未验证(2分)。扣分原因:缺少用户确认和权限最小化证据。
证据显示:项目结构一致,文档与代码示例匹配(2分);依赖声明完整,但未验证可用性(2分);失败消息未详细说明(1分)。扣分原因:失败处理文档不足。
证据显示:面向多种场景(RAG、Agent等),受众明确(2分);能力边界有说明(2分);触发精度一般(1分);环境适配良好(2分)。扣分原因:触发机制描述不精确。
证据显示:信息架构清晰(2分);安装说明详细(2分);命名稳定(2分);示例丰富(2分);已知限制提及较少(1分);许可证明确(3分);版本变更日志未提供(1分);维护责任有说明(2分)。扣分原因:缺少变更日志和已知限制。
证据显示:输出可用性高(2分);边际价值明显(2分);成本效益分析不足(1分)。扣分原因:成本效益数据缺失。
证据显示:声明有引用(2分);跨来源验证有限(1分);事实与推断分离不明确(1分)。扣分原因:缺乏独立验证和明确区分。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 发布者身份未验证,需谨慎对待。
- 未发现用户确认机制,可能自动执行操作。
- 敏感数据处理细节不足,需审查。
- 依赖安全未明确,需检查依赖漏洞。
- 缺少变更日志,版本更新需谨慎。