讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在Dify中结合LangSmith对Agent的每一个推理步骤进行链路追踪

老敏姑娘_7734

老敏姑娘_7734

发布时间:2026-07-07 12:47:18

|

450人浏览过

|

来源于php中文网

原创

必须升级Dify至v1.4.0+并配置LangSmith追踪:检查dify-sdk版本、注入环境变量、替换TraceQueueManager为LangSmith Client、在LLM和Tool调用处添加log埋点,最后通过LangSmith控制台验证三层嵌套span完整性。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如何在dify中结合langsmith对agent的每一个推理步骤进行链路追踪

你需要在Dify中精准定位Agent某次会话里模型为何突然跳转到错误工具、提示词微调后RAG召回率下降了37%、或用户连续三次提问后记忆模块丢失上下文——这些都必须靠逐节点的链路追踪来归因,而不是翻日志猜。

确认Dify版本与LangSmith兼容性

确保你使用的是 Dify v1.4.0 或更高版本,低版本不支持外部追踪器注入点。v1.3.x 及以下版本在 CompletionAppGenerateEntity 初始化时未暴露 trace_manager 参数,强行注入会导致 TypeError: unexpected keyword argument 'trace_manager'。

打开 Dify 项目根目录下的 pyproject.toml 或 requirements.txt,检查 dify-sdk 版本是否 ≥ 1.4.0。

【必须升级】 若版本低于 1.4.0,请执行:pip install --upgrade dify-sdk 并重启 Dify 后端服务。

配置LangSmith环境变量并验证连接

LangSmith 不通过 Dify 控制台配置,必须在 Dify 服务启动环境中注入变量。

编辑 Dify 的部署启动脚本(如 docker-compose.yml 中的 environment 块,或 systemd service 文件的 Environment= 行),添加以下四行:

LANGCHAIN_TRACING_V2=true
LANGCHAIN_ENDPOINT=https://api.smith.langchain.com
LANGCHAIN_API_KEY=ls__your_actual_api_key_here
LANGCHAIN_PROJECT=dify-prod-tracing

注意:不要把 LANGCHAIN_API_KEY 写成占位符 ls__xxxxxx,必须是真实密钥;LANGCHAIN_PROJECT 名称不能含空格或特殊字符,否则 LangSmith 后端会拒绝接收 trace。

重启 Dify 服务后,在任意终端执行:curl -s "https://api.smith.langchain.com/projects?api_key=$LANGCHAIN_API_KEY" | jq '.data[0].name',返回 "dify-prod-tracing" 即表示连接成功。

修改Dify源码注入LangSmith客户端

Dify 默认使用内置 TraceQueueManager,需手动替换为 LangSmith 客户端实例。

定位文件:apps/completion/app_generator.py,找到 generate() 方法内创建 trace_manager 的位置(约第 87 行):

将原代码:

trace_manager = TraceQueueManager(app_id=app_model.id, user_id=user.id if isinstance(user, Account) else user.session_id)

Dify Workflow DSL Expert
Dify Workflow DSL Expert

用于创建、编辑、调试或验证自托管 Dify 的工作流 DSL。首先从目标实例导出的工作流入手,进行最小化编辑。

下载

替换为:

from langsmith import Client<br>
langsmith_client = Client()<br>
trace_manager = langsmith_client

⚠️ 这一步不可跳过:Dify 的 CompletionAppGenerateEntity 构造函数虽接受 trace_manager 参数,但其内部仅调用 trace_manager.log() 方法——而 LangSmith Client 对象恰好提供同名方法,且签名完全兼容(log(name, inputs, outputs, ...)),无需额外封装。

启用Dify运行时链路埋点

LangSmith 客户端已就位,但 Dify 默认不会主动上报 LLM 调用、Tool 执行、RAG 检索等事件,必须开启显式埋点。

打开 configs/settings.py,在 LLM_PROVIDER 配置块下方新增:

ENABLE_LANGSMITH_TRACING = True

然后进入 apps/completion/generation/llm_generator.py,在 invoke_llm() 方法开头插入:

if settings.ENABLE_LANGSMITH_TRACING:<br>
  trace_manager.log("llm_invoke", inputs={"prompt": prompt, "model": model_name}, outputs={"raw_response": response_text})

同理,在 apps/completion/generation/tool_executor.py 的 execute_tool() 方法中,于 result = tool.func(**tool_inputs) 后添加:

if settings.ENABLE_LANGSMITH_TRACING:<br>
  trace_manager.log("tool_call", inputs={"tool_name": tool.name, "inputs": tool_inputs}, outputs={"result": result})

这一步决定了你能看到多少层细节:不加这两处埋点,LangSmith 里只有一条空的 root trace,看不到任何子节点。

触发一次会话并验证Trace完整性

步骤一:在 Dify Web 界面新建一个 Workflow 应用,确保至少包含一个 LLM 节点和一个 Tool 节点(例如“查询天气”工具)。

步骤二:用测试账号发起一次完整会话,输入明确触发 Tool 的问题,例如:“北京今天气温多少度?”

步骤三:立即打开 LangSmith 控制台 → 进入 dify-prod-tracing 项目 → 点击 “Traces” 标签页 → 等待 5~10 秒,找到最新一条 trace。

点击该 trace,展开后应清晰看到至少三个嵌套 span:llm_invoke → tool_call → llm_invoke(Tool 返回后模型生成最终回复),每个 span 下均显示输入 prompt、输出文本、耗时、token 数及状态码。

若只看到顶层 span 无子节点,说明埋点未生效;若看到 span 但 inputs 为空,检查 log() 调用中是否漏传参数字典。

热门AI工具

更多
Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

Atoms
Atoms Hot

Atoms是一款AI智能体工具,第一支自动构建真实业务的 AI 团队。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

577

2026.06.05

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

225

2026.06.05

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

216

2026.06.05

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

80

2026.09.30

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

80

2026.09.30

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

80

2026.09.30

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

40

2026.09.30

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

60

2026.09.29

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

280

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Dify零基础教程
Dify零基础教程

共0课时 | 147人学习

学习Agent,从Dify开始
学习Agent,从Dify开始

共0课时 | 142人学习

Dify 部署与运维指南
Dify 部署与运维指南

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn