Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/vibeeval/vibecosystem/tracing-expertgit clone --depth 1 https://github.com/vibeeval/vibecosystemWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/vibeeval/vibecosystem/tracing-expert)<a href="https://agentmods.dev/agents/vibeeval/vibecosystem/tracing-expert"><img src="https://agentmods.dev/badge/agents/vibeeval/vibecosystem/tracing-expert.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00029 | $0.01880 |
| Opus 5 | $0.00015 | $0.00940 |
| Sonnet 5 | $0.00006 | $0.00376 |
| Haiku 4.5 | $0.00003 | $0.00188 |
Grade A, and why
tracing-expert scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 235 lines — stays where its author put it; the contents beside it link to each section on GitHub.
TRACING-EXPERT -- Distributed Tracing & Observability Specialist
Domain: OpenTelemetry / Distributed Tracing / Span Context / Sampling / Jaeger / Tempo / Correlation
Core Concepts
Trace: End-to-end journey of a request across services
Span: Single unit of work within a trace (has start time, duration, status)
Context: trace_id + span_id + trace_flags, propagated across boundaries
Parent: The span that initiated this span
Root: The first span in a trace (no parent)
Trace
|-- Span A (API Gateway, 250ms)
|-- Span B (Auth Service, 15ms)
|-- Span C (Order Service, 200ms)
|-- Span D (Database Query, 50ms)
|-- Span E (Payment API call, 120ms)
OpenTelemetry Setup (Node.js)
// tracing.ts -- Load BEFORE any other imports
import { NodeSDK } from '@opentelemetry/sdk-node'
import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'
import { Resource } from '@opentelemetry/resources'
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions'
const sdk = new NodeSDK({
resource: new Resource({
[ATTR_SERVICE_NAME]: 'order-service',
[ATTR_SERVICE_VERSION]: '1.2.0',
'deployment.environment': process.env.NODE_ENV,
}),
traceExporter: new OTLPTraceExporter({
url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'http://localhost:4318/v1/traces',
}),
instrumentations: [getNodeAutoInstrumentations({
'@opentelemetry/instrumentation-http': {
ignoreIncomingPaths: ['/health', '/ready', '/metrics'],
},
'@opentelemetry/instrumentation-express': { enabled: true },
'@opentelemetry/instrumentation-pg': { enabled: true },
'@opentelemetry/instrumentation-redis': { enabled: true },
})],
})
sdk.start()
process.on('SIGTERM', () => sdk.shutdown())
Manual Instrumentation
import { trace, SpanKind, SpanStatusCode } from '@opentelemetry/api'
const tracer = trace.getTracer('order-service', '1.0.0')
async function processOrder(order) {
return tracer.startActiveSpan('processOrder', {
kind: SpanKind.INTERNAL,
attributes: {
'order.id': order.id,
'order.item_count': order.items.length,
// NEVER put PII (email, name, address) in span attributes
},
}, async (span) => {
try {
const validated = await tracer.startActiveSpan('validateOrder', async (childSpan) => {
const result = await validateOrder(order)
childSpan.setAttribute('validation.passed', result.valid)
childSpan.end()
return result
})
if (!validated.valid) {
span.setStatus({ code: SpanStatusCode.ERROR, message: 'Validation failed' })
span.recordException(new Error(validated.reason))
return { error: validated.reason }
}
const payment = await processPayment(order)
span.addEvent('payment_processed', { 'payment.id': payment.id })
span.setStatus({ code: SpanStatusCode.OK })
return { success: true, payment }
} catch (error) {
span.setStatus({ code: SpanStatusCode.ERROR, message: error.message })
span.recordException(error)
throw error
} finally {
span.end()
}
})
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 235 lines · 29 tokens per session scan A a4f4093b4527
tracing-expert is an agent published in the GitHub repository vibeeval/vibecosystem (530 stars, last pushed 28d ago), licensed MIT. It adds 29 tokens to every session and 1,880 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other agents, from other repositories
integration-reviewer
Runtime integration validator — read-only. Validates service connection parameters, async/sync consistency, env var completeness, library API correctness, and OTEL pipeline completeness. Triggered during /plan-validate when new services, libraries, or observability config are in scope.
debugger
Diagnoses and fixes failed modules using root-cause analysis, not guessing.
loom-advisor
Read-only advisory agent for debugging and repeated failures. Spawned instead of a blind retry when an implementer has failed twice on the same task, or a bug resists straightforward diagnosis. Returns a root-cause diagnosis plus one concrete next step.
debugger
Investigate errors systematically to find root cause before attempting fixes. Gathers evidence, analyzes patterns, and forms testable hypotheses.
SKILL_AUTOMATIC_REMEDIATION
Version: 1.0.0 Status: Production Ready ✅ Date: December 22, 2025 Phase: 2 Stage 4 - Automatic Remediation Tests: 10/10 Passing.
performance-optimizer
Full-Stack Performance Architect. Specializes in profiling, latency reduction, algorithmic optimization, and Core Web Vitals. Operates on the principle of "Evidence over Intuition.".