TruLens 智能体评测与追踪
用可移植追踪与可解释评测定位智能体质量和成本问题。
这个 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 有哪些优点和局限?
- 以 OpenTelemetry span 记录函数、生成、检索和工具调用,可导出至 Jaeger、Grafana Tempo、Datadog 及其他 OTLP 后端。
- 同时覆盖内联评测和基于 Run API 的离线批评测,适合实时监控与历史数据重算两种流程。
- 提供七种针对智能体行为的评测器,明确覆盖计划、工具选择、工具调用、工具可靠性与执行效率。
- 支持多家模型提供商,并为 LangChain/LangGraph 和 LlamaIndex 提供独立集成包。
- 材料未给出 Python 版本、凭据注入、环境变量或持久化后端配置,首次部署仍需补充这些信息。
- 完整可运行示例依赖未展示的 tru_app、tru_recorder、provider 和指标对象初始化。
- 不同模型服务商需要额外安装对应的 trulens-providers-* 包,功能路径和配置会随提供商而变化。
- 若要在现有应用中获得细粒度追踪,需要为函数补充 @instrument 和 span 属性映射。
如何安装或部署这个 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 与同类方案有什么区别?
在所列 AIMultiple RAG 评测比较中,TruLens 的 context relevance NDCG@5 被描述为在四项排序指标中的三项领先于 WandB Weave、RAGAS、DeepEval 和 UpTrain;这是一项特定基准结果,并不等同于所有工作负载中的总体优劣。