LangChain 通过内置的日志记录工具、可配置的设置以及与外部工具的集成来管理日志和调试信息。开发者可以控制日志的详细程度,并跟踪链、代理和组件的执行过程,以诊断问题。该框架提供结构化的日志输出,并支持 LangSmith 等工具,以便更深入地检查工作流程。
日志设置和配置 LangChain 使用 Python 的标准 logging
模块进行基本日志记录,允许开发者通过环境变量或代码配置日志级别(例如,DEBUG
、INFO
)。例如,设置 LANGCHAIN_VERBOSE=True
会启用所有操作的详细日志,例如 API 调用、中间步骤或错误。开发者也可以使用 langchain_core.globals.set_debug(True)
以编程方式启用调试模式,该模式会记录链或代理等组件的输入、输出和执行路径。日志包含时间戳、组件名称和元数据,从而更容易跟踪问题。例如,检索器的搜索查询或 LLM 生成的响应会出现在调试日志中,有助于识别瓶颈或意外行为。
使用 LangSmith 进行调试 LangChain 集成了专门的可观察性平台 LangSmith,用于可视化和调试复杂的工作流程。LangSmith 捕获链执行的详细跟踪信息,包括输入、输出、错误和中间步骤。例如,当代理使用工具时,LangSmith 会记录工具的输入、输出和执行时间,并在时间线视图中显示。开发者可以通过 Web 界面检查跟踪信息,按组件类型(例如,“LLM”或“检索器”)进行筛选,并分析性能指标,如延迟。这对于多步工作流程特别有用,例如 RAG 管道,其中调试需要跟踪检索器、LLM 和后处理步骤之间的交互。LangSmith 还支持向跟踪信息添加自定义元数据或标签,以便于分类。
最佳实践和自定义 LangChain 允许开发者通过编写自定义处理程序或集成 Grafana 或 Datadog 等第三方工具来扩展日志记录。例如,可以将日志路由到集中式系统以监控大规模部署。为避免噪音,建议仅在故障排除期间启用详细日志记录。对于结构化调试,LangSmith 的跟踪导出(例如,JSON 格式)支持程序化分析。一种常见的工作流程是使用 LANGCHAIN_TRACING_V2=true
在本地重现问题以捕获跟踪信息,然后使用 LangSmith 的 UI 精确定位故障。开发者还可以选择性地记录特定组件——例如,为 LLM 启用调试日志,同时将其他组件保持在 INFO
级别。这种平衡确保了清晰度而不会产生过多细节。