FAQ

Frequently asked questions about Traccia.

Find answers to common questions about Traccia, the SDK, and the Platform.

Does Traccia capture my prompts or LLM responses?

Yes, by default Traccia captures prompts and completions (truncated to 1000 characters) for debugging purposes. This data is sent to your configured backend (local Jaeger/Tempo or Traccia Platform). If you handle sensitive data, you can: (1) use a local backend you control, (2) use skip_args/skip_result on the @observe() decorator, or (3) disable specific processors. The Traccia Platform stores this data securely and never trains models on it.

Can I use Traccia without creating an account?

Yes! The Traccia SDK is open-source and works completely standalone. You can export traces to any OpenTelemetry-compatible backend like Jaeger, Grafana Tempo, or Zipkin without needing a Traccia Platform account.

What's the difference between SDK-only and Platform usage?

SDK-only mode lets you use Traccia locally with your own observability stack (Jaeger, Tempo, etc.). The Traccia Platform adds a hosted dashboard, policy guardrails, cost attribution, team collaboration, and agent-first features built specifically for AI workloads.

Which LLM providers are supported with auto-instrumentation?

Traccia currently auto-instruments OpenAI (chat.completions, completions) and Anthropic (messages.create). Other providers can be traced using the @observe() decorator manually on your wrapper functions.

How does sampling work?

Traccia uses head-based sampling, making the sampling decision when a trace starts. If you set sample_rate=0.1, 10% of traces are randomly selected and exported. This applies to the entire trace and all its spans.

What happens when rate limiting drops spans?

When max_spans_per_second is exceeded, spans block for up to max_block_ms (default: 100ms). If still no capacity, the oldest spans in the queue are dropped. This prevents memory buildup but means you lose visibility into those operations.

Can I use Traccia in production without impacting performance?

Yes! Traccia is designed for production use with minimal overhead (~50-200 microseconds per span). Use sampling (e.g., 10%) and rate limiting for high-throughput systems to control resource usage.

What is OpenTelemetry?

OpenTelemetry (OTel) is an industry-standard, vendor-neutral observability framework. Traccia builds on the OTel Python SDK, ensuring full compatibility with OTLP-capable backends and avoiding vendor lock-in.

How do I trace multi-agent systems?

Use runtime_config.set_agent_id() to identify each agent, and runtime_config.set_session_id() to group related traces. Traccia automatically propagates trace context across function calls and HTTP boundaries (when auto-instrumentation is enabled).

Can I use Traccia with async/await code?

Yes! The @observe() decorator automatically detects and handles both sync and async functions. No special configuration needed.

How do I disable specific auto-instrumentations?

Currently, auto-instrumentation is all-or-nothing via enable_patching. Set it to False to disable all patching, then use @observe() manually where needed. Selective disabling of individual libraries may be added in future versions.

What's the difference between init() and start_tracing()?

init() is the simplified API with auto-trace management and config file support (recommended for most users). start_tracing() provides full control over all parameters and is for advanced use cases. Both work, and init() calls start_tracing() internally.

Where do human reviews happen?

In the Governance Hub (Reviews tab), not in the SDK. Queue a review using a trace ID from Traces, then approve or reject with optional comments. The SDK does not create review queue rows.

What does disclosure() do in the SDK?

It records Art. 50 transparency evidence on the active span (governance.transparency.disclosed) when your product already informed the user they are interacting with AI. It does not show UI banners — you must implement those in your app.

How does PII redaction work?

Set init(redact_pii=True) or TRACCIA_REDACT_PII=1 to mask email, US phone, and SSN-like patterns on sensitive span attribute keys before export. You can also call redact_string() manually. This is regex-based, not ML detection.

What's the difference between Policies and Governance Hub?

Policies are automated rules evaluated at ingest (cost limits, tool counts, etc.) and create violations. Governance Hub is for human workflows: AI system registry, trace-linked reviews, incidents, and compliance evidence exports.

Still have questions?

Reach out to us at support@traccia.ai or check our GitHub repository.

Next Steps

© 2026 Traccia.