Observability Overview | Opik Documentation | Opik Documentation

Why use Opik for observability

Debugging LLM applications without observability means guessing. You see the final output but not why the model hallucinated, which retrieval step returned irrelevant context, or where latency spiked.

With Opik, you can:

What you can capture

[Traces & spans

Full execution trees with inputs, outputs, timing, and metadata for every step](/content/docs/opik/tracing/concepts/index.html) [Conversations

Multi-turn threads that group related traces into coherent sessions](/content/docs/opik/tracing/advanced/log_chat_conversations/index.html) [Cost tracking

Token usage and spending broken down by model, provider, and trace](/content/docs/opik/tracing/advanced/cost_tracking/index.html) [Media & attachments

Images, audio, video, and files logged alongside your traces](/content/docs/opik/tracing/advanced/log_multimodal_traces/index.html) [User feedback

Qualitative and quantitative scores attached to individual traces](/content/docs/opik/tracing/advanced/annotate_traces/index.html) [Agent graphs

Visual execution graphs showing how your agent’s steps connect](/content/docs/opik/tracing/advanced/log_agent_graphs/index.html)

How it works

Connect your project

Run opik connect from your agent’s directory to pair it with Opik:

opik connect --project <YOUR_PROJECT_NAME>

Instrument your code

The fastest way to add tracing is with opik-skills — install the skill and let your coding agent handle the rest:

npx skills add comet-ml/opik-skills

Then ask your coding agent:

Instrument my agent with Opik using the /instrument command.

This works with Claude Code, Cursor, Codex, OpenCode, and other coding agents. You can also instrument manually with the SDK:

PythonTypeScript

import opik

@opik.track
def my_agent(user_message):
    context = retrieve_context(user_message)
    response = call_llm(user_message, context)
    return response

View traces in the dashboard

Every request creates a trace with detailed span-level information. You can inspect the full execution tree, see inputs and outputs at each step, and filter by duration, cost, status, or tags.

Analyze and improve

Use traces to debug failures, identify slow steps, and track quality over time. Attach feedback scores, run evaluations against datasets, and use Ollie — Opik’s AI assistant — to help root-cause issues automatically.

Integrations

Opik has first-class support for 30+ frameworks in Python, TypeScript, and OpenTelemetry — so you can start capturing traces without changing how your application is built.

Next steps