apps/opik-documentation/documentation/fern/docs/changelog/2026-05-19.mdx
client.get_prompt() and client.get_chat_prompt() now cache results in-process, so repeated calls inside a hot path skip the network round-trip entirely. Pinned commits are cached indefinitely; latest-version lookups use a 5-minute TTL that refreshes in the background so your code always gets a reasonably fresh value without blocking.
What's new:
OPIK_PROMPT_CACHE_TTL_SECONDS to adjust the freshness window (default: 300 s)no_cache=True / noCache: true to force a live fetch from the backend@track context, the prompt ID and commit are automatically recorded in the trace metadata so you know which version was used at inference time# Cached after the first call — no extra latency on subsequent invocations
prompt = client.get_prompt("my-system-prompt")
# Force a fresh fetch, bypassing the cache
prompt = client.get_prompt("my-system-prompt", no_cache=True)
opik connect CLI ImprovementsThe opik connect and opik endpoint CLI commands have been reorganized with a much better error experience:
~/.opik.config file exists, opik connect now offers to run opik configure automatically (skipped in non-interactive / headless environments)OpikADKOtelTracer was killing all active OpenTelemetry spans and re-patching the ADK exporter on every request; the patcher is now idempotent and preserves user-configured OTel pipelinesspan.end(), span.update(), trace.end(), or trace.update() no longer clears the environment field set at creation time/datasets/items/stream call; under high request volume this was pushing database CPU to 80–99%, it now uses a direct primary-key lookup insteadAnd much more! 👉 See full commit log on GitHub
Releases: 2.0.32, 2.0.33, 2.0.34, 2.0.35, 2.0.36, 2.0.37