Install
$ agentstack add skill-lubu-labs-langchain-agent-skills-langsmith-trace-analyzer ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
LangSmith Trace Analyzer
Use this skill to move from raw LangSmith traces to actionable debugging/evaluation insights.
Quick Start
# Install dependencies
uv pip install langsmith langsmith-fetch
# Auth
export LANGSMITH_API_KEY=
Fast workflow
- Download traces with
scripts/download_traces.py(orscripts/download_traces.ts). - Analyze downloaded JSON with
scripts/analyze_traces.py. - Load targeted references only when needed:
references/filtering-querying.mdfor query/filter syntaxreferences/analysis-patterns.mdfor deeper diagnosticsreferences/benchmark-analysis.mdfor benchmark-specific workflows
Decision Guide
- Known trace IDs
Use langsmith-fetch trace directly, or --trace-ids in downloader scripts.
- Need to discover traces first
Use LangSmith SDK list_runs/listRuns with filters, then download selected trace IDs.
- Need aggregate insights
Run analyze_traces.py for summary stats, patterns, and passed-vs-failed comparisons.
Core Workflows
1) Download and organize traces
Python:
uv run skills/langsmith-trace-analyzer/scripts/download_traces.py \
--project "my-project" \
--filter "job_id=abc123" \
--last-hours 24 \
--limit 100 \
--output ./traces \
--organize
TypeScript:
ts-node skills/langsmith-trace-analyzer/scripts/download_traces.ts \
--project "my-project" \
--filter "job_id=abc123" \
--last-hours 24 \
--limit 100 \
--output ./traces
Output layout:
traces/
├── manifest.json
└── by-outcome/
├── passed/
├── failed/
└── error/
├── GraphRecursionError/
├── TimeoutError/
└── DaytonaError/
Notes:
- Python script supports
--organize/--no-organize. - Both scripts use SDK filtering plus
langsmith-fetchfor full trace payload export.
2) Analyze downloaded traces
# Markdown report
uv run skills/langsmith-trace-analyzer/scripts/analyze_traces.py ./traces --output report.md
# JSON output
uv run skills/langsmith-trace-analyzer/scripts/analyze_traces.py ./traces --json
# Compare passed vs failed (expects by-outcome folders)
uv run skills/langsmith-trace-analyzer/scripts/analyze_traces.py ./traces --compare --output comparison.md
The analyzer reports:
- message/tool-call/token/duration summaries
- top tool usage
- anomaly patterns (high message count, repeated tools, quick failures)
- passed-vs-failed metric deltas when comparison is enabled
3) Query traces correctly (SDK)
Use official LangSmith run filter syntax via filter and/or start_time:
from datetime import datetime, timedelta, timezone
from langsmith import Client
client = Client()
start = datetime.now(timezone.utc) - timedelta(hours=24)
filter_query = 'and(eq(metadata_key, "job_id"), eq(metadata_value, "abc123"))'
runs = client.list_runs(
project_name="my-project",
is_root=True,
start_time=start,
filter=filter_query,
)
For TypeScript:
import { Client } from "langsmith";
const client = new Client();
for await (const run of client.listRuns({
projectName: "my-project",
isRoot: true,
filter: 'and(eq(metadata_key, "job_id"), eq(metadata_value, "abc123"))',
})) {
console.log(run.id, run.status);
}
Accuracy and Schema Notes
- LangSmith run fields are commonly top-level (
status,error,total_tokens,start_time,end_time). - Some exported traces also include nested metadata (
metadataorextra.metadata) and/ormessages. analyze_traces.pyis resilient to multiple payload shapes, including raw array payloads.- For full conversation content, prefer downloaded trace payloads over bare
list_runsresults.
Troubleshooting
| Issue | Likely Cause | Action | |---|---|---| | LANGSMITH_API_KEY missing | Auth not configured | export LANGSMITH_API_KEY= | | No runs returned | Wrong project/filter/time range | Verify project name and filter syntax | | Empty/partial message arrays | Run schema differs or incomplete data | Use downloaded trace JSON and inspect status/error fields | | JSON parse error on downloaded files | Bad/incomplete export | Re-download trace; use --format raw paths in scripts | | Re-downloading same traces repeatedly | Existing files in nested folders | Use current scripts (they check existing files across output tree) |
Safety for Open Source
- Do not commit downloaded trace artifacts (
manifest.json, trace JSON dumps) unless sanitized. - Trace payloads can contain user prompts, outputs, metadata, and other sensitive runtime data.
- Keep this skill repository focused on scripts/templates, not production trace exports.
Resources
scripts/
scripts/download_traces.py: Python downloader + organizerscripts/download_traces.ts: TypeScript downloader + organizerscripts/analyze_traces.py: Offline analysis and reporting
references/
references/filtering-querying.md: LangSmith query/filter examplesreferences/analysis-patterns.md: Diagnostic patterns and heuristicsreferences/benchmark-analysis.md: Benchmark-oriented analysis
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Lubu-Labs
- Source: Lubu-Labs/langchain-agent-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.