OthmanAdi

langsmith-fetch

17
3
# Install this skill:
npx skills add OthmanAdi/langsmith-fetch-skill

Or install specific skill: npx add-skill https://github.com/OthmanAdi/langsmith-fetch-skill

# Description

Debug LangChain and LangGraph agents by fetching execution traces from LangSmith Studio. Use when debugging agent behavior, investigating errors, analyzing tool calls, checking memory operations, or examining agent performance. Automatically fetches recent traces and analyzes execution patterns. Requires langsmith-fetch CLI installed.

# SKILL.md


name: langsmith-fetch
description: Debug LangChain and LangGraph agents by fetching execution traces from LangSmith Studio. Use when debugging agent behavior, investigating errors, analyzing tool calls, checking memory operations, or examining agent performance. Automatically fetches recent traces and analyzes execution patterns. Requires langsmith-fetch CLI installed.


LangSmith Fetch - Agent Debugging Skill

Debug LangChain and LangGraph agents by fetching execution traces directly from LangSmith Studio in your terminal.

When to Use This Skill

Automatically activate when user mentions:
- 🐛 "Debug my agent" or "What went wrong?"
- 🔍 "Show me recent traces" or "What happened?"
- ❌ "Check for errors" or "Why did it fail?"
- 💾 "Analyze memory operations" or "Check LTM"
- 📊 "Review agent performance" or "Check token usage"
- 🔧 "What tools were called?" or "Show execution flow"

Prerequisites

1. Install langsmith-fetch

pip install langsmith-fetch

2. Set Environment Variables

export LANGSMITH_API_KEY="your_langsmith_api_key"
export LANGSMITH_PROJECT="your_project_name"

Verify setup:

echo $LANGSMITH_API_KEY
echo $LANGSMITH_PROJECT

Core Workflows

Workflow 1: Quick Debug Recent Activity

When user asks: "What just happened?" or "Debug my agent"

Execute:

langsmith-fetch traces --last-n-minutes 5 --limit 5 --format pretty

Analyze and report:
1. ✅ Number of traces found
2. ⚠️ Any errors or failures
3. 🛠️ Tools that were called
4. ⏱️ Execution times
5. 💰 Token usage

Example response format:

Found 3 traces in the last 5 minutes:

Trace 1: ✅ Success
- Agent: memento
- Tools: recall_memories, create_entities
- Duration: 2.3s
- Tokens: 1,245

Trace 2: ❌ Error
- Agent: cypher
- Error: "Neo4j connection timeout"
- Duration: 15.1s
- Failed at: search_nodes tool

Trace 3: ✅ Success
- Agent: memento
- Tools: store_memory
- Duration: 1.8s
- Tokens: 892

💡 Issue found: Trace 2 failed due to Neo4j timeout. Recommend checking database connection.

Workflow 2: Deep Dive Specific Trace

When user provides: Trace ID or says "investigate that error"

Execute:

langsmith-fetch trace <trace-id> --format json

Analyze JSON and report:
1. 🎯 What the agent was trying to do
2. 🛠️ Which tools were called (in order)
3. ✅ Tool results (success/failure)
4. ❌ Error messages (if any)
5. 💡 Root cause analysis
6. 🔧 Suggested fix

Example response format:

Deep Dive Analysis - Trace abc123

Goal: User asked "Find all projects in Neo4j"

Execution Flow:
1. ✅ search_nodes(query: "projects")
   → Found 24 nodes

2. ❌ get_node_details(node_id: "proj_123")
   → Error: "Node not found"
   → This is the failure point

3. ⏹️ Execution stopped

Root Cause:
The search_nodes tool returned node IDs that no longer exist in the database,
possibly due to recent deletions.

Suggested Fix:
1. Add error handling in get_node_details tool
2. Filter deleted nodes in search results
3. Update cache invalidation strategy

Token Usage: 1,842 tokens ($0.0276)
Execution Time: 8.7 seconds

Workflow 3: Export Debug Session

When user says: "Save this session" or "Export traces"

Execute:

# Create session folder with timestamp
SESSION_DIR="langsmith-debug/session-$(date +%Y%m%d-%H%M%S)"
mkdir -p "$SESSION_DIR"

# Export traces
langsmith-fetch traces "$SESSION_DIR/traces" --last-n-minutes 30 --limit 50 --include-metadata

# Export threads (conversations)
langsmith-fetch threads "$SESSION_DIR/threads" --limit 20

Report:

✅ Session exported successfully!

Location: langsmith-debug/session-20251224-143022/
- Traces: 42 files
- Threads: 8 files

You can now:
1. Review individual trace files
2. Share folder with team
3. Analyze with external tools
4. Archive for future reference

Session size: 2.3 MB

Workflow 4: Error Detection

When user asks: "Show me errors" or "What's failing?"

Execute:

# Fetch recent traces
langsmith-fetch traces --last-n-minutes 30 --limit 50 --format json > recent-traces.json

# Search for errors
grep -i "error\|failed\|exception" recent-traces.json

Analyze and report:
1. 📊 Total errors found
2. ❌ Error types and frequency
3. 🕐 When errors occurred
4. 🎯 Which agents/tools failed
5. 💡 Common patterns

Example response format:

Error Analysis - Last 30 Minutes

Total Traces: 50
Failed Traces: 7 (14% failure rate)

Error Breakdown:
1. Neo4j Connection Timeout (4 occurrences)
   - Agent: cypher
   - Tool: search_nodes
   - First occurred: 14:32
   - Last occurred: 14:45
   - Pattern: Happens during peak load

2. Memory Store Failed (2 occurrences)
   - Agent: memento
   - Tool: store_memory
   - Error: "Pinecone rate limit exceeded"
   - Occurred: 14:38, 14:41

3. Tool Not Found (1 occurrence)
   - Agent: sqlcrm
   - Attempted tool: "export_report" (doesn't exist)
   - Occurred: 14:35

💡 Recommendations:
1. Add retry logic for Neo4j timeouts
2. Implement rate limiting for Pinecone
3. Fix sqlcrm tool configuration

Common Use Cases

Use Case 1: "Agent Not Responding"

User says: "My agent isn't doing anything"

Steps:
1. Check if traces exist:
bash langsmith-fetch traces --last-n-minutes 5 --limit 5

  1. If NO traces found:
  2. Tracing might be disabled
  3. Check: LANGCHAIN_TRACING_V2=true in environment
  4. Check: LANGCHAIN_API_KEY is set
  5. Verify agent actually ran

  6. If traces found:

  7. Review for errors
  8. Check execution time (hanging?)
  9. Verify tool calls completed

Use Case 2: "Wrong Tool Called"

User says: "Why did it use the wrong tool?"

Steps:
1. Get the specific trace
2. Review available tools at execution time
3. Check agent's reasoning for tool selection
4. Examine tool descriptions/instructions
5. Suggest prompt or tool config improvements


Use Case 3: "Memory Not Working"

User says: "Agent doesn't remember things"

Steps:
1. Search for memory operations:
bash langsmith-fetch traces --last-n-minutes 10 --limit 20 --format raw | grep -i "memory\|recall\|store"

  1. Check:
  2. Were memory tools called?
  3. Did recall return results?
  4. Were memories actually stored?
  5. Are retrieved memories being used?

Use Case 4: "Performance Issues"

User says: "Agent is too slow"

Steps:
1. Export with metadata:
bash langsmith-fetch traces ./perf-analysis --last-n-minutes 30 --limit 50 --include-metadata

  1. Analyze:
  2. Execution time per trace
  3. Tool call latencies
  4. Token usage (context size)
  5. Number of iterations
  6. Slowest operations

  7. Identify bottlenecks and suggest optimizations


Output Format Guide

Pretty Format (Default)

langsmith-fetch traces --limit 5 --format pretty

Use for: Quick visual inspection, showing to users

JSON Format

langsmith-fetch traces --limit 5 --format json

Use for: Detailed analysis, syntax-highlighted review

Raw Format

langsmith-fetch traces --limit 5 --format raw

Use for: Piping to other commands, automation


Advanced Features

Time-Based Filtering

# After specific timestamp
langsmith-fetch traces --after "2025-12-24T13:00:00Z" --limit 20

# Last N minutes (most common)
langsmith-fetch traces --last-n-minutes 60 --limit 100

Include Metadata

# Get extra context
langsmith-fetch traces --limit 10 --include-metadata

# Metadata includes: agent type, model, tags, environment

Concurrent Fetching (Faster)

# Speed up large exports
langsmith-fetch traces ./output --limit 100 --concurrent 10

Troubleshooting

"No traces found matching criteria"

Possible causes:
1. No agent activity in the timeframe
2. Tracing is disabled
3. Wrong project name
4. API key issues

Solutions:

# 1. Try longer timeframe
langsmith-fetch traces --last-n-minutes 1440 --limit 50

# 2. Check environment
echo $LANGSMITH_API_KEY
echo $LANGSMITH_PROJECT

# 3. Try fetching threads instead
langsmith-fetch threads --limit 10

# 4. Verify tracing is enabled in your code
# Check for: LANGCHAIN_TRACING_V2=true

"Project not found"

Solution:

# View current config
langsmith-fetch config show

# Set correct project
export LANGSMITH_PROJECT="correct-project-name"

# Or configure permanently
langsmith-fetch config set project "your-project-name"

Environment variables not persisting

Solution:

# Add to shell config file (~/.bashrc or ~/.zshrc)
echo 'export LANGSMITH_API_KEY="your_key"' >> ~/.bashrc
echo 'export LANGSMITH_PROJECT="your_project"' >> ~/.bashrc

# Reload shell config
source ~/.bashrc

Best Practices

1. Regular Health Checks

# Quick check after making changes
langsmith-fetch traces --last-n-minutes 5 --limit 5

2. Organized Storage

langsmith-debug/
├── sessions/
│   ├── 2025-12-24/
│   └── 2025-12-25/
├── error-cases/
└── performance-tests/

3. Document Findings

When you find bugs:
1. Export the problematic trace
2. Save to error-cases/ folder
3. Note what went wrong in a README
4. Share trace ID with team

4. Integration with Development

# Before committing code
langsmith-fetch traces --last-n-minutes 10 --limit 5

# If errors found
langsmith-fetch trace <error-id> --format json > pre-commit-error.json

Quick Reference

# Most common commands

# Quick debug
langsmith-fetch traces --last-n-minutes 5 --limit 5 --format pretty

# Specific trace
langsmith-fetch trace <trace-id> --format pretty

# Export session
langsmith-fetch traces ./debug-session --last-n-minutes 30 --limit 50

# Find errors
langsmith-fetch traces --last-n-minutes 30 --limit 50 --format raw | grep -i error

# With metadata
langsmith-fetch traces --limit 10 --include-metadata

Resources

  • LangSmith Fetch CLI: https://github.com/langchain-ai/langsmith-fetch
  • LangSmith Studio: https://smith.langchain.com/
  • LangChain Docs: https://docs.langchain.com/
  • This Skill Repo: https://github.com/OthmanAdi/langsmith-fetch-skill

Notes for Claude

  • Always check if langsmith-fetch is installed before running commands
  • Verify environment variables are set
  • Use --format pretty for human-readable output
  • Use --format json when you need to parse and analyze data
  • When exporting sessions, create organized folder structures
  • Always provide clear analysis and actionable insights
  • If commands fail, help troubleshoot configuration issues

Version: 0.1.0
Author: Ahmad Othman Ammar Adi
License: MIT
Repository: https://github.com/OthmanAdi/langsmith-fetch-skill

# README.md

🔍 LangSmith Fetch Skill for Claude Code

AI observability & debugging skill for Claude!

Debug LangChain and LangGraph agents by fetching execution traces from LangSmith Studio directly in your terminal using Claude Code.

License: MIT
Claude Code
LangSmith


🎯 What It Does

This Claude Code skill teaches Claude how to debug your LangChain and LangGraph agents by automatically fetching and analyzing execution traces from LangSmith Studio.

Just ask Claude:
- "Debug my agent"
- "What went wrong?"
- "Show me recent traces"
- "Why is my agent slow?"

Claude will automatically fetch traces, analyze execution patterns, identify errors, and provide actionable insights!


✨ Features

  • 🐛 Automatic Debugging - Claude fetches and analyzes traces autonomously
  • 🔍 Error Detection - Identifies failures and root causes
  • 📊 Performance Analysis - Tracks execution time and token usage
  • 💾 Memory Operations - Checks LTM recall/store operations
  • 🛠️ Tool Call Analysis - Reviews which tools were called and why
  • 📁 Session Export - Saves debugging sessions for later review
  • 🤝 Multi-Agent Support - Debugs orchestration decisions

🚀 Quick Start

1. Install Prerequisites

# Install langsmith-fetch CLI
pip install langsmith-fetch

2. Configure Environment

# Set your LangSmith credentials
export LANGSMITH_API_KEY="your_langsmith_api_key"
export LANGSMITH_PROJECT="your_project_name"

Get your API key from: https://smith.langchain.com/

3. Install the Skill

Option A: Personal Skill (Just for you)

mkdir -p ~/.claude/skills/langsmith-fetch
curl -o ~/.claude/skills/langsmith-fetch/SKILL.md https://raw.githubusercontent.com/OthmanAdi/langsmith-fetch-skill/main/SKILL.md

Option B: Project Skill (Share with team)

mkdir -p .claude/skills/langsmith-fetch
curl -o .claude/skills/langsmith-fetch/SKILL.md https://raw.githubusercontent.com/OthmanAdi/langsmith-fetch-skill/main/SKILL.md
git add .claude/skills/
git commit -m "Add LangSmith Fetch skill"
git push

4. Use with Claude

Open Claude Code and ask:

Debug my agent - what happened in the last 5 minutes?

Claude will automatically use this skill! 🎉


💡 Usage Examples

Example 1: Quick Debug

You: "Debug my agent"

Claude:
Found 3 traces in the last 5 minutes:

Trace 1: ✅ Success
- Agent: memento
- Tools: recall_memories, create_entities
- Duration: 2.3s
- Tokens: 1,245

Trace 2: ❌ Error
- Agent: cypher
- Error: "Neo4j connection timeout"
- Duration: 15.1s
- Failed at: search_nodes tool

💡 Issue: Neo4j timeout. Check database connection and add retry logic.

Example 2: Error Investigation

You: "Why did trace abc123 fail?"

Claude:
Deep Dive Analysis - Trace abc123

Goal: User asked "Find all projects"

Execution Flow:
1. ✅ search_nodes → Found 24 nodes
2. ❌ get_node_details → Error: "Node not found"

Root Cause: Search returned deleted node IDs

Suggested Fix:
1. Add error handling in get_node_details
2. Filter deleted nodes in search results

Example 3: Performance Analysis

You: "Why is my agent slow?"

Claude:
Performance Analysis - Last 30 minutes

Average execution time: 8.7s
Slowest operation: search_nodes (6.2s avg)
Token usage: 2,145 tokens/trace

Bottlenecks:
1. Neo4j queries taking 71% of time
2. Large context window (15K tokens)

Recommendations:
1. Add database indexes
2. Implement context trimming
3. Cache frequently accessed nodes

🎓 How It Works

  1. Claude listens for debugging-related questions
  2. Automatically activates this skill when appropriate
  3. Runs langsmith-fetch commands to get trace data
  4. Analyzes execution patterns, errors, and performance
  5. Presents insights in human-readable format

📚 Capabilities

✅ What Claude Can Do

  • Fetch recent traces (last N minutes)
  • Analyze specific trace by ID
  • Export debugging sessions to files
  • Detect and categorize errors
  • Review tool calls and results
  • Check memory operations (LTM)
  • Track token usage and costs
  • Compare agent performance
  • Identify bottlenecks
  • Suggest optimizations

🔧 Supported Commands

The skill uses these langsmith-fetch commands:

langsmith-fetch traces         # Get recent traces
langsmith-fetch trace <id>     # Get specific trace
langsmith-fetch threads        # Get conversations
langsmith-fetch config         # Manage configuration

🛠️ Configuration

Environment Variables

Required:

LANGSMITH_API_KEY    # Your LangSmith API key
LANGSMITH_PROJECT    # Your project name

Optional:

LANGCHAIN_ENDPOINT   # Custom endpoint (default: https://api.smith.langchain.com)

Making Variables Persistent

Add to ~/.bashrc or ~/.zshrc:

echo 'export LANGSMITH_API_KEY="your_key"' >> ~/.bashrc
echo 'export LANGSMITH_PROJECT="your_project"' >> ~/.bashrc
source ~/.bashrc

🔍 Troubleshooting

"No traces found"

Cause: No recent agent activity or tracing disabled

Fix:

# Check environment
echo $LANGSMITH_API_KEY
echo $LANGSMITH_PROJECT

# Try longer timeframe
langsmith-fetch traces --last-n-minutes 1440 --limit 50

# Verify tracing is enabled
# In your code: LANGCHAIN_TRACING_V2=true

Skill not activating

Fix:
1. Ensure SKILL.md is in ~/.claude/skills/langsmith-fetch/
2. Restart Claude Code
3. Use specific trigger phrases: "debug my agent", "show traces"

Command not found

Fix:

# Verify langsmith-fetch is installed
pip list | grep langsmith-fetch

# Reinstall if needed
pip install --upgrade langsmith-fetch

🤝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

Ideas for contributions:
- Additional analysis workflows
- More debugging patterns
- Performance optimization tips
- Better error categorization
- Integration examples


📖 Resources

  • LangSmith Fetch CLI: https://github.com/langchain-ai/langsmith-fetch
  • LangSmith Studio: https://smith.langchain.com/
  • LangChain Docs: https://docs.langchain.com/
  • Claude Code Skills: https://code.claude.com/docs/en/skills
  • Awesome Claude Skills: https://github.com/ComposioHQ/awesome-claude-skills

📝 License

MIT © Ahmad Othman Ammar Adi


👨‍💻 Author

Ahmad Othman Ammar Adi
- 🏢 AI Agents Orchestrator at migRaven
- 🌐 Website: othmanadi.com
- 💼 LinkedIn: codingwithadi
- 🐙 GitHub: @OthmanAdi


🌟 Show Your Support

If this skill helps you debug your agents, please:
- ⭐ Star this repository
- 🐛 Report issues you find
- 💡 Suggest improvements
- 🤝 Contribute enhancements
- 📢 Share with the community


  • PromptFusion - Semantic weighted prompt composition for AI agents

📊 Stats

  • Version: 0.1.0
  • Status: Active Development
  • First Released: December 2025
  • Category: AI Observability & Debugging

🎄 Season's Greetings

Wishing you a Merry Christmas and a Happy New Year 2026! 🎉
May your agents run smoothly and your debugging be swift in the year ahead!

(This message will be updated in future releases)


Built with ❤️ by Ahmad Othman Ammar Adi for the AI debugging community

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.