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 skills add comet-ml/opik-skills --skill opikgit clone --depth 1 https://github.com/comet-ml/opik-skillsWrote 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/skills/comet-ml/opik-skills/opik)<a href="https://agentmods.dev/skills/comet-ml/opik-skills/opik"><img src="https://agentmods.dev/badge/skills/comet-ml/opik-skills/opik/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/comet-ml/opik-skills/opik"><img src="https://agentmods.dev/badge/skills/comet-ml/opik-skills/opik.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
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.00080 | $0.02198 |
| Opus 5.5 | $0.00032 | $0.00879 |
| Sonnet 5.5 | $0.00016 | $0.00440 |
| Haiku 4.5 | $0.00008 | $0.00220 |
Grade A, and why
opik 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 1mo 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.
This is a copy
100% identical to opik — 21 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 222 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Opik SDK Reference
Opik is an open-source LLM observability platform. This skill is a reference
for the SDK. To instrument a codebase step by step (detect frameworks, add
config, emit and verify a trace), use the task-shaped opik-instrument skill.
Core concepts
A trace is one execution path (one request → one response). Spans are the operations inside it and form a hierarchy.
Span types — the ONLY valid values
| Type | Use for |
|---|---|
general |
orchestration, agent entry points |
llm |
model calls |
tool |
tools, retrieval, API / DB calls |
guardrail |
safety / validation checks |
Do NOT use retrieval or any other value.
Python — tracing
import opik
@opik.track(name="agent", type="general")
def agent(query: str) -> str:
return generate(retrieve(query))
@opik.track(type="tool")
def retrieve(query): ...
@opik.track(type="llm")
def generate(ctx): ...
opik.flush_tracker() # required in scripts
TypeScript — tracing
import { Opik } from "opik";
const client = new Opik({ projectName: "my-project" });
const trace = client.trace({ name: "agent", input: { query } });
const span = trace.span({ name: "llm-call", type: "llm" });
span.end({ output });
trace.end({ output });
await client.flush();
Framework integrations
Prefer an integration over manual @opik.track — integrations capture tokens,
model, and cost automatically. Patterns (full list in
references/integrations.md):
- wrap-the-client —
track_openai(OpenAI()),track_anthropic(...) - global-enable —
track_crewai(crew=crew) - callback —
dspy.configure(callbacks=[OpikCallback()]) - tracer —
OpikTracer()for LangChain / LangGraph / LlamaIndex - agent-specific —
track_adk_agent_recursive(agent, OpikTracer())
LiteLLM inside @opik.track (common trap)
If code uses litellm and you add @opik.track, pass current_span_data
via metadata on every completion call — otherwise OpikLogger emits orphaned
top-level traces instead of nesting under your span.
What ships with it
10 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/agent-patterns.md 17 KB
- references/best-practices.md 4.8 KB
- references/evaluation-datasets.md 17 KB
- references/evaluation-test-suites.md 17 KB
- references/integrations.md 15 KB
- references/observability.md 2.3 KB
- references/production.md 11 KB
- references/tracing-python.md 23 KB
- references/tracing-rest-api.md 9.3 KB
- references/tracing-typescript.md 11 KB
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.
- 1mo ago Changed · +36 lines ee94038ec263
- 1mo ago Changed · +40 lines 51ffd8463dd5
- 1mo ago First seen · 146 lines · 80 tokens per session scan A de52cd0d657e
opik is a skill published in the GitHub repository comet-ml/opik-skills (8 stars, last pushed yesterday), licensed Apache-2.0. It adds 80 tokens to every session and 2,198 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 100% identical to opik, differing in 21 lines, and is treated as a copy.
Other skills, from other repositories
opik-online-eval
Take a judge live on production traffic — create an Opik online evaluation rule (LLM-as-judge or Python metric) on a project with sampling, filters, variable mapping, and a cost cap, then confirm new traces are being scored. Works over the SDK's REST client; reads rules and score names via the MCP when connected.…
opik-test
Turn a failing Opik trace (or a described failure) into a repeatable regression check — a test-suite item with the trace's input and one or two binary assertions — so a fix can be verified by the compare skill. Works over the SDK; uses the MCP write tool when connected. Returns the suite, the item, and the assertion.…
opik-evaluate
Build an LLM evaluation and run it against the app, returning an Opik experiment with scores and its link. Picks a test suite with judge assertions or a dataset with metrics, sources cases from traces or synthetic data, scores heuristics-first then one-failure-mode judges, runs client-side via the SDK or server-side…
opik-instrument
Add Opik tracing to an existing app and verify a real trace lands. Installs the Opik package, detects the language and LLM framework, adds the minimum tracing, runs a safe representative path, confirms a trace in Opik, and returns the trace link. Use for "instrument my code", "add opik tracing", "add observability"…
opik-optimize
Improve a prompt with the Opik Agent Optimizer — resolve the prompt, a dataset, and a metric, pick the algorithm, run a bounded optimization, check the gain on held-out data, and save the winner as a new prompt version with the optimization run link. Runs via the opik-optimizer package; reads prompts and datasets via…
opik-diagnose
Surface the Opik traces worth a developer's attention, ranked by signal — Diagnostics issues first, then errors, failed tool calls, latency, regressions, and low online-eval scores. With the Opik MCP connected it lists the project's agentinsightsissue entities, offers to turn Diagnostics on when the project has it…