如何使用LangSmith追踪和监控AI代理

如何使用LangSmith追踪和监控AI代理

💡 原文英文,约1900词,阅读约需7分钟。
📝

内容提要

本教程介绍如何使用LangSmith监控本地AI代理。通过LangChain v1、Ollama和Qwen构建代理,并启用LangSmith追踪,可在Web界面查看模型调用、工具使用和延迟。步骤包括安装Ollama、配置环境变量、构建带工具调用的代理,并展示追踪结果。LangSmith支持调试和监控,但为专有服务,开源替代方案为Langfuse。

🔎

延伸解读

可观测性与监控的区别

文章强调监控与可观测性的不同:监控告诉你系统出了问题(如延迟升高、错误增多),而可观测性帮助你理解为何出错。对于AI代理,仅看最终输出往往不够,因为一个用户请求可能涉及多次模型调用和工具调用。可观测性通过追踪、日志和指标,让你能定位问题出在模型、提示词、工具选择还是代理循环的中间环节。

LangSmith的自动追踪机制

使用LangChain的create_agent构建代理时,LangSmith追踪无需额外代码即可自动捕获每次调用的输入、模型交互、工具调用和最终输出。这得益于LangChain与LangSmith的深度集成。你只需设置环境变量(如LANGSMITH_TRACING=true)并配置API密钥,即可在Web界面查看每个请求的详细追踪信息,包括令牌消耗和延迟。

专有服务与开源替代

LangSmith是专有服务,使用它意味着追踪数据会发送到其托管服务,且随着使用量增长可能产生费用。对于本教程的低流量场景,它是免费的。若你更注重数据隐私或成本控制,可考虑开源替代方案Langfuse,它支持自托管,提供类似的追踪、会话、元数据、仪表盘和指标功能,并允许基于元数据过滤。

Q&A

如何使用LangSmith追踪和监控本地AI代理?

要使用LangSmith追踪和监控本地AI代理,你需要安装Ollama并拉取模型(如qwen3.5:4b),安装Python依赖(langchain, langchain-core, langchain-ollama, langsmith),在LangSmith创建项目并获取API密钥,设置环境变量(LANGSMITH_TRACING=true等),然后使用LangChain的create_agent构建代理。代理运行后,LangSmith会自动捕获每次调用的追踪信息,你可以在Web界面查看模型调用、工具使用和延迟。

LangSmith是什么?它有哪些核心概念?

LangSmith是LangChain的观测平台,用于追踪、调试、评估和监控LLM应用和代理。其核心概念包括:Project(项目,用于组织相关追踪)、Trace(追踪,一次请求的完整执行)、Run(运行,追踪中的单个步骤,如LLM调用或工具调用)、Thread(线程,会话或会话组)。

为什么AI代理需要可观测性?

AI代理需要可观测性,因为仅看最终输出无法了解内部决策过程。当代理行为异常时,需要知道问题出在模型、提示词、工具选择还是代理循环的中间步骤。可观测性通过追踪、日志和指标提供请求内部的详细视图,帮助调试和监控。

如何为LangSmith设置环境变量?

在LangSmith网站创建项目并生成API密钥后,在终端设置以下环境变量:export LANGSMITH_TRACING=true, export LANGSMITH_ENDPOINT=https://api.smith.langchain.com, export LANGSMITH_API_KEY=your_langsmith_api_key, export LANGSMITH_PROJECT="MyAgentApp"。

LangSmith追踪能显示哪些信息?

LangSmith追踪可以显示请求和响应、工具调用信息、令牌消耗、延迟以及其他关键指标。在Web界面中,你可以查看每个追踪的详细步骤,包括模型调用、工具执行和中间结果。

LangSmith是开源的吗?有哪些替代方案?

LangSmith是专有服务,使用它意味着追踪数据会发送到LangSmith的托管服务,并且随着使用量增长通常会产生费用。开源替代方案是Langfuse,它提供类似的LLM可观测性功能,包括追踪、会话、元数据、仪表板和指标,并且可以自托管。

如何为LangSmith追踪添加元数据和标签?

在调用agent.invoke时,可以通过config参数添加tags和metadata。例如:config={"tags": ["dev", "local-ollama-agent"], "metadata": {"environment": "dev", "agent_name": "local-ollama-agent", "model": "qwen3"}}。这有助于按环境、应用版本或用户层级过滤和分析追踪。

🏷️

标签

➡️

继续阅读