需从dify导出jsonl格式会话日志,通过响应耗时≥1000ms、assistant token>1200、trace_id高频重复三种方式定位低质量会话,并据此优化prompt结构或工具调用逻辑。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要从Dify平台中提取真实用户与Agent交互的原始会话日志,从中识别响应延迟高、意图误判频次多、上下文丢失明显的会话片段,并据此调整Prompt结构或工具调用逻辑。
导出结构化会话日志文件
进入Dify控制台 → 应用管理 → 选择目标Agent应用 → 点击「监控」页签 → 在「会话日志」区域点击右上角「导出JSONL」按钮。该操作将生成一个包含完整时间戳、trace_id、message_id、role(user/assistant)、content、tokens_used和duration_ms字段的日志文件。
导出前请确认已开启debug模式:在Agent配置中设置log_level: "debug"且enable_session_logging: true,否则日志中将缺失关键性能字段。
定位低质量会话的3种筛选方法
方法一:按响应耗时排序
用VS Code打开导出的session_logs.jsonl,安装「JSON Lines」插件后,执行正则搜索"duration_ms":(\d{4,}),将匹配到所有耗时≥1000ms的记录。这类会话大概率存在LLM推理卡顿、RAG检索超时或工具链路阻塞问题。
方法二:按token异常突增检测
运行以下Python脚本统计每条assistant消息的token波动:
import json<br>with open("session_logs.jsonl") as f:<br> for line in f:<br> record = json.loads(line)<br> if record.get("role") == "assistant":<br> tokens = record.get("tokens_used", 0)<br> if tokens > 1200:<br> print(f"{record['message_id']} → {tokens} tokens")
输出结果中token数持续>1200的会话,说明Prompt膨胀严重或上下文注入失控,需检查历史轮次截断策略是否失效。
方法三:按trace_id聚合同一会话流
使用命令行快速聚合:awk -F'"' '/"trace_id":"[^"]+"/ {print $4}' session_logs.jsonl | sort | uniq -c | sort -nr | head -10
该命令提取出现频次最高的前10个trace_id,对应用户反复重试或Agent陷入循环的典型会话。
从日志中提取可执行优化点
第一步:标记失败会话中的工具调用节点
在JSONL日志中搜索"status":"failed",找到对应tool_name字段值,例如"weather_api"。检查其input_params是否含非法字符(如中文逗号代替英文逗号)、location字段是否为空字符串——【空参数触发工具默认返回错误而非优雅降级】。
第二步:比对同一trace_id下连续3轮user消息的语义连贯性
提取某trace_id全部记录后,观察user消息是否出现“上一条说的不是这个”、“刚才问的是X,你答了Y”类表述。若存在,说明Agent未正确继承session_state.current_intent,需在Prompt中强化意图锚点句式,例如强制插入当前用户明确意图:{{session_state.current_intent}}。
第三步:统计assistant回复中“我不太明白”、“请再说一遍”等模糊应答出现频次
用grep统计:grep -i '"content":"[^"]*不太明白\|请再说一遍[^"]*"' session_logs.jsonl | wc -l
若结果>总会话数的8%,表明上下文摘要压缩过度,应将短期记忆轮次从默认5轮提升至7轮,并关闭早期对话的自动摘要功能。











