← ClaudeAtlas

observability-tracerlisted

Use this when you need to see what an agent did — to emit a tree of typed spans (llm_call, tool_call, retrieval, agent, chain) with gen_ai.* attributes and export them as JSONL, with message content captured only when you opt in. Triggers on "tracing", "observability", "spans", "what did the agent do", "token usage", "debug the agent run".
Luis247911/universal-ai-workspace-foundation · ★ 0 · AI & Automation · score 78
Install: claude install-skill Luis247911/universal-ai-workspace-foundation
# observability-tracer Emits a **tree of typed spans** for an agent run. Each span carries OpenTelemetry GenAI attribute names (`gen_ai.*`); trace-level attributes (user/session id) propagate to every child. Message content is captured **only when you opt in** — the privacy default is off. ## When to use - Debugging "what did the agent actually do, in what order, and how long did each step take?" - Recording token usage and model per call for cost analysis. - Producing portable JSONL traces you can diff in CI or load into a viewer. ## Run it ``` python -m harness.observability trace # content dropped (default) python -m harness.observability trace --capture-content # opt in to message content python .claude/skills/observability-tracer/scripts/run.py trace --out trace.jsonl ``` ## The privacy choke point Content attributes (`gen_ai.input.messages`, `gen_ai.output.messages`) are dropped at a single choke point — `Span.set_attribute` — so they cannot leak whether passed at span-open or added later. Turning capture on is a deliberate `capture_content=True`. This is the one invariant the skill defends: **traces are safe to ship by default.** ## Span kinds and attributes - **kinds**: `agent`, `chain`, `llm_call`, `tool_call`, `retrieval`. - **non-content attrs** (always kept): `gen_ai.request.model`, `gen_ai.operation.name`, `gen_ai.usage.input_tokens`, `gen_ai.usage.output_tokens`. - **content attrs** (opt-in only): `gen_ai.input.messages`, `gen_