debug-instrumentation
GitHub使用 LangWatch CLI 检查生产环境追踪数据,识别缺失输入输出、断连 Span 及元数据问题,提供修复指南并验证优化效果。
Trigger Scenarios
Install
npx skills add langwatch/langwatch --skill debug-instrumentation -g -y
SKILL.md
Frontmatter
{
"name": "debug-instrumentation",
"license": "MIT",
"metadata": {
"category": "recipe"
},
"description": "Debug and improve your LangWatch traces. Inspects production traces for missing input\/output, disconnected spans, unlabeled traces, and missing metadata. Use when traces look broken or incomplete.",
"compatibility": "Requires the `langwatch` CLI with a valid `LANGWATCH_API_KEY`. Works with any coding agent."
}
Debug Your LangWatch Instrumentation
This recipe uses the langwatch CLI to inspect your production traces and identify instrumentation issues.
Prerequisites
Step 1: Fetch Recent Traces
langwatch trace search --limit 25 --start-date "$(( ($(date +%s) - 7*24*3600) * 1000 ))" --format json
(Widen or narrow the window as needed. --start-date accepts an ISO string or
epoch milliseconds, and defaults to the last 24 hours. The epoch form above is
used because date -d '7 days ago' is GNU-only and fails on macOS.)
For each trace, ask:
- How many traces are there?
- Do they have inputs and outputs populated, or are they
<empty>? - Are there labels and metadata (user_id, thread_id)?
langwatch status is a fast sanity check that the CLI is talking to the right project.
Step 2: Inspect Individual Traces
langwatch trace get <traceId> # Human-readable digest
langwatch trace get <traceId> -f json # Full span hierarchy as JSON
For traces that look problematic, check for:
- Empty input/output: The most common issue. Check if
autotrack_openai_calls(client)(Python) orexperimental_telemetry(TypeScript/Vercel AI) is configured. - Disconnected spans: Spans that don't connect to a parent trace. Usually means
@langwatch.trace()decorator is missing on the entry function. - Missing labels: No way to filter traces by feature/version. Add labels via
langwatch.get_current_trace().update(metadata={"labels": ["feature_name"]}). - Missing user_id/thread_id: Can't correlate traces to users or conversations. Add via trace metadata.
- Slow spans: Unusually long completion times may indicate API timeouts or inefficient prompts.
Step 3: Read the Integration Docs
Use the CLI to read the integration guide for the project's framework. Compare the recommended setup with what's in the code.
langwatch docs # Browse the docs index
langwatch docs integration/python/guide # Python (or your framework)
langwatch docs integration/typescript/guide # TypeScript (or your framework)
Step 4: Apply Fixes
For each issue found:
- Identify the root cause in the code
- Apply the fix following the framework-specific docs
- Run the application to generate new traces
- Re-inspect with
langwatch trace searchandlangwatch trace getto verify the fix
Step 5: Verify Improvement
After fixes, compare before/after:
- Are inputs/outputs now populated?
- Are spans properly nested?
- Are labels and metadata present?
You can also export a sample for diff:
langwatch trace export --format jsonl --limit 50 -o traces.jsonl
Common Issues and Fixes
| Issue | Cause | Fix |
|---|---|---|
All traces show <empty> input/output |
Missing autotrack or telemetry config | Add autotrack_openai_calls(client) or experimental_telemetry: { isEnabled: true } |
| Spans not connected to traces | Missing @langwatch.trace() on entry function |
Add trace decorator to the main function |
| No labels on traces | Labels not set in trace metadata | Add metadata={"labels": ["feature"]} to trace update |
| Missing user_id | User ID not passed to trace | Add user_id to trace metadata |
| Traces from different calls merged | Missing langwatch.setup() or trace context not propagated |
Ensure langwatch.setup() called at startup |
Version History
-
6f9d4a4
Current 2026-08-28 21:09
移除旧版文档浏览和报告命令说明,新增基于 CLI 的追踪搜索、详情获取及集成文档查阅步骤,强化追踪诊断与修复流程。
- 12615f1 2026-08-20 10:01


