大模型应用
调试 LangChain/LangGraph Agent…
当 LangChain/LangGraph agent 出现错误、工具调用异常、记忆操作异常或性能/Token 问题时,用 langsmith-fetch 从 LangSmith Studio 拉取并分析最近 trace。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
调试 LangChain/LangGra特定
解决思路
- 安装 langsmith-fetch:运行 `pip install langsmith-fetch`。
- 设置环境变量:运行 `export LANGSMITH_API_KEY="your_langsmith_api_key"` 和 `export LANGSMITH_PROJECT="your_project_name"`。
- 验证配置:运行 `echo $LANGSMITH_API_KEY` 和 `echo $LANGSMITH_PROJECT`。
- 快速调试最近活动:运行 `langsmith-fetch traces --last-n-minutes 5 --limit 5 --format pretty`。
- 快速调试分析并报告:找到的 trace 数量、任何错误或失败、被调用的工具、执行时间、token 用量。
- 快速调试按示例格式汇报:列出每个 trace 的成功/失败状态、agent、工具、持续时间、tokens;若失败则列出错误、持续时间和失败工具;最后给出问题发现和建议。
- 深挖特定 trace:运行 `langsmith-fetch trace <trace-id> --format json`。
- 深挖特定 trace 分析 JSON 并报告:agent 尝试做什么、按顺序调用了哪些工具、工具结果成功/失败、错误消息、根因分析、建议修复。
- 深挖特定 trace 按示例格式汇报:目标、执行流程(每个工具调用的成功/失败与输出/错误)、失败点、根因、建议修复、token 用量与费用、执行时间。
- 导出调试会话:创建带时间戳的会话目录:`SESSION_DIR="langsmith-debug/session-$(date +%Y%m%d-%H%M%S)"`,`mkdir -p "$SESSION_DIR"`。
- 导出 traces:运行 `langsmith-fetch traces "$SESSION_DIR/traces" --last-n-minutes 30 --limit 50 --include-metadata`。
- 导出 threads(对话):运行 `langsmith-fetch threads "$SESSION_DIR/threads" --limit 20`。
- 导出后报告:导出成功、位置、traces 文件数、threads 文件数、可查看单个 trace 文件、与团队共享文件夹、用外部工具分析、归档备用、会话大小。
- 错误检测:拉取最近 traces 到文件:`langsmith-fetch traces --last-n-minutes 30 --limit 50 --format json > recent-traces.json`。
- 错误检测:搜索错误:`grep -i "error\|failed\|exception" recent-traces.json`。
- 错误检测分析并报告:错误总数、错误类型与频率、错误发生时间、哪些 agents/tools 失败、常见模式。
- 错误检测按示例格式汇报:总 traces 数、失败 traces 数与失败率、按错误分组列出次数、agent、tool、首次/最后发生时间/模式;给出建议(如重试、限流、修复工具配置)。
- Agent 无响应:检查是否存在 traces:`langsmith-fetch traces --last-n-minutes 5 --limit 5`。
- Agent 无响应且没有 traces:检查 tracing 是否禁用;检查环境变量 `LANGCHAIN_TRACING_V2=true`;检查 `LANGCHAIN_API_KEY` 是否设置;确认 agent 确实运行过。
- Agent 无响应但有 traces:检查错误;检查执行时间是否挂起;确认工具调用是否完成。
- 调用错误工具:获取具体 trace;查看执行时可用工具;检查 agent 选择工具的推理;检查工具描述/指令;建议改进 prompt 或工具配置。
- 记忆不工作:搜索记忆操作:`langsmith-fetch traces --last-n-minutes 10 --limit 20 --format raw | grep -i "memory\|recall\|store"`。
- 记忆不工作:检查是否调用了记忆工具、recall 是否返回结果、记忆是否真的被存储、检索到的记忆是否被使用。
- 性能问题:带 metadata 导出:`langsmith-fetch traces ./perf-analysis --last-n-minutes 30 --limit 50 --include-metadata`。
- 性能问题:分析每个 trace 的执行时间、工具调用延迟、token 用量(上下文大小)、迭代次数、最慢操作。
- 性能问题:识别瓶颈并建议优化。
- 输出格式:快速目视检查/向用户展示时使用 pretty 格式:`langsmith-fetch traces --limit 5 --format pretty`。
- 输出格式:详细分析/语法高亮审阅时使用 JSON 格式:`langsmith-fetch traces --limit 5 --format json`。
- 输出格式:管道传给其他命令/自动化时使用 raw 格式:`langsmith-fetch traces --limit 5 --format raw`。
- 时间过滤:指定时间戳之后:`langsmith-fetch traces --after "2025-12-24T13:00:00Z" --limit 20`。
- 时间过滤:最近 N 分钟(最常用):`langsmith-fetch traces --last-n-minutes 60 --limit 100`。
- 包含 metadata:`langsmith-fetch traces --limit 10 --include-metadata`。
- 包含 metadata 的元数据包括:agent type、model、tags、environment。
- 并发拉取以加速:`langsmith-fetch traces ./output --limit 100 --concurrent 10`。
- 排查 “No traces found matching criteria”:可能原因是没有 agent 活动、tracing 被禁用、项目名错误、API key 问题。
- 排查无 traces:尝试更长时间范围:`langsmith-fetch traces --last-n-minutes 1440 --limit 50`。
- 排查无 traces:检查环境:`echo $LANGSMITH_API_KEY`、`echo $LANGSMITH_PROJECT`。
- 排查无 traces:改拉取 threads:`langsmith-fetch threads --limit 10`。
- 排查无 traces:验证代码中已启用 tracing:检查 `LANGCHAIN_TRACING_V2=true`。
- 排查 “Project not found”:查看当前配置:`langsmith-fetch config show`。
- 排查 “Project not found”:设置正确项目:`export LANGSMITH_PROJECT="correct-project-name"`。
- 排查 “Project not found”:永久配置:`langsmith-fetch config set project "your-project-name"`。
- 排查环境变量不持久:追加到 shell 配置文件(`~/.bashrc` 或 `~/.zshrc`):`echo 'export LANGSMITH_API_KEY="your_key"' >> ~/.bashrc`、`echo 'export LANGSMITH_PROJECT="your_project"' >> ~/.bashrc`。
- 排查环境变量不持久:重新加载 shell 配置:`source ~/.bashrc`。
- 最佳实践:定期健康检查,改动后快速检查:`langsmith-fetch traces --last-n-minutes 5 --limit 5`。
- 最佳实践:有组织地存储,使用 `langsmith-debug/` 下 `sessions/`(按日期如 `2025-12-24`、`2025-12-25`)、`error-cases/`、`performance-tests/` 的结构。
- 最佳实践:记录发现,发现 bug 时导出有问题的 trace;保存到 `error-cases/` 文件夹;在 README 中记录出错原因;把 trace ID 分享给团队。
- 最佳实践:集成到开发流程,提交代码前运行 `langsmith-fetch traces --last-n-minutes 10 --limit 5`。
- 最佳实践:集成到开发流程,若发现错误,运行 `langsmith-fetch trace <error-id> --format json > pre-commit-error.json`。
- 常用命令速查:快速调试:`langsmith-fetch traces --last-n-minutes 5 --limit 5 --format pretty`。
- 常用命令速查:特定 trace:`langsmith-fetch trace <trace-id> --format pretty`。
- 常用命令速查:导出会话:`langsmith-fetch traces ./debug-session --last-n-minutes 30 --limit 50`。
- 常用命令速查:查找错误:`langsmith-fetch traces --last-n-minutes 30 --limit 50 --format raw | grep -i error`。
- 常用命令速查:带 metadata:`langsmith-fetch traces --limit 10 --include-metadata`。
- Notes for Claude:运行命令前总是检查是否已安装 `langsmith-fetch`。
- Notes for Claude:验证环境变量已设置。
- Notes for Claude:需要人类可读输出时使用 `--format pretty`。
- Notes for Claude:需要解析和分析数据时使用 `--format json`。
- Notes for Claude:导出会话时创建有组织的文件夹结构。
- Notes for Claude:总是提供清晰的分析和可执行的洞察。
- Notes for Claude:如果命令失败,帮助排查配置问题。
适用边界 · 注意事项
- 未安装或无法运行 `langsmith-fetch` CLI,或没有 LangSmith API key/project 时。
- 代码未启用 LangSmith tracing(如 `LANGCHAIN_TRACING_V2=true`、`LANGCHAIN_API_KEY`)或没有可用的 LangSmith trace 时。
- 不是在调试 LangChain/LangGraph agent,或问题无法通过执行 trace/工具调用/记忆操作定位时。