5a558eb09e
TypeScript SDK Compatibility V1.x E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / TypeScript SDK Compatibility V1.x E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
TypeScript SDK E2E Tests / TypeScript SDK E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
Python SDK E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK E2E Tests / Python SDK E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK E2E Tests / build-opik (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Python SDK Compatibility V1.x E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK E2E Tests / build-opik (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer E2E Tests Python ${{matrix.python_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer Integration Smoke Tests (push) Has been cancelled
🐙 Code Quality / detect (push) Has been cancelled
🐙 Code Quality / lint (${{ matrix.leg.name }}) (push) Has been cancelled
🐙 Code Quality / summary (push) Has been cancelled
TypeScript SDK Library Integration Tests / Check Secrets (push) Has been cancelled
TypeScript SDK Library Integration Tests / opik-vercel (Vercel AI SDK / eve) (push) Has been cancelled
SDK Library Integration Tests Runner / Check Secrets (push) Has been cancelled
SDK Library Integration Tests Runner / Missed OpenAI API Key Warning (push) Has been cancelled
SDK Library Integration Tests Runner / Build (push) Has been cancelled
SDK Library Integration Tests Runner / openai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_legacy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / llama_index_tests (push) Has been cancelled
SDK Library Integration Tests Runner / anthropic_tests (push) Has been cancelled
SDK Library Integration Tests Runner / mistral_tests (push) Has been cancelled
SDK Library Integration Tests Runner / groq_tests (push) Has been cancelled
SDK Library Integration Tests Runner / aisuite_tests (push) Has been cancelled
SDK Library Integration Tests Runner / haystack_tests (push) Has been cancelled
SDK Library Integration Tests Runner / dspy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v1_tests (push) Has been cancelled
SDK Library Integration Tests Runner / genai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_legacy_1_3_0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / evaluation_metrics_tests (push) Has been cancelled
SDK Library Integration Tests Runner / bedrock_tests (push) Has been cancelled
SDK Library Integration Tests Runner / litellm_tests (push) Has been cancelled
SDK Library Integration Tests Runner / harbor_tests (push) Has been cancelled
SDK Library Integration Tests Runner / Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / render-equality (push) Has been cancelled
Opik Optimizer - Unit Tests / Opik Optimizer Unit Tests Python ${{matrix.python_version}} (push) Has been cancelled
Python BE E2E Tests / Python BE E2E (push) Has been cancelled
Python Backend Tests / run-python-backend-tests (push) Has been cancelled
Python SDK Unit Tests / Python SDK Unit Tests ${{matrix.python_version}} (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
SDK E2E Libraries Integration Tests / Check Secrets (push) Has been cancelled
SDK E2E Libraries Integration Tests / Missed OpenAI API Key Warning (push) Has been cancelled
SDK E2E Libraries Integration Tests / build-opik (push) Has been cancelled
SDK E2E Libraries Integration Tests / E2E Lib Integration Python ${{matrix.python_version}} (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-gemini) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-langchain) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-openai) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-otel) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-vercel) (push) Has been cancelled
TypeScript SDK Build & Publish / build-and-publish (push) Has been cancelled
TypeScript SDK Unit Tests / Test on Node ${{ matrix.node-version }} (push) Has been cancelled
Backend Tests / discover-tests (push) Has been cancelled
Backend Tests / ${{ matrix.name }} (push) Has been cancelled
Build and Publish SDK / build-and-publish (push) Has been cancelled
Build Opik Docker Images / set-version (push) Has been cancelled
Build Opik Docker Images / build-backend (push) Has been cancelled
Build Opik Docker Images / build-sandbox-executor-python (push) Has been cancelled
Build Opik Docker Images / build-python-backend (push) Has been cancelled
Build Opik Docker Images / build-frontend (push) Has been cancelled
Build Opik Docker Images / create-git-tag (push) Has been cancelled
ClickHouse Migration Cluster Check / validate-clickhouse-migrations (push) Has been cancelled
Docs - Publish / run (push) Has been cancelled
E2E Tests - Post Merge (v2) / 🧪 E2E v2 Tests (${{ github.event.inputs.tier || 't1' }}) (push) Has been cancelled
E2E Tests - Post Merge (v2) / 📢 Slack Notification (push) Has been cancelled
Frontend Unit Tests / Test on Node 20 (push) Has been cancelled
Guardrails E2E Tests / Select Python version matrix (push) Has been cancelled
Guardrails E2E Tests / Guardrails E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Guardrails E2E Tests / 📢 Slack Notification (push) Has been cancelled
Guardrails Backend Unit Tests / Guardrails Backend Unit Tests (push) Has been cancelled
Guardrails Backend Unit Tests / 📢 Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v3.21.0) (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v4.2.0) (push) Has been cancelled
Lint Opik Helm Chart / unittest-helm-chart (push) Has been cancelled
112 lines
4.7 KiB
Plaintext
112 lines
4.7 KiB
Plaintext
---
|
||
description: Install the Agent Optimizer SDK, run your first optimization, and inspect
|
||
the results in under 10 minutes.
|
||
headline: Quickstart | Opik Documentation
|
||
og:description: Learn to enhance your workflows with Opik Agent Optimizer for automated
|
||
prompt and agent improvements in your optimization runs.
|
||
og:site_name: Opik Documentation
|
||
og:title: Optimize Prompts with Opik Agent Optimizer
|
||
title: Quickstart
|
||
---
|
||
|
||
**Opik Agent Optimizer Quickstart** gives you the fastest path from “hello world” to a successful optimization run. If you already walked through the main [Opik Quickstart](/quickstart) (tracing + evaluation), this is the next stop—it layers on the `opik-optimizer` SDK so you can automatically improve prompts and agents. Prefer a UI workflow? Use [Optimization Studio](/development/optimization-runs/optimization_studio) instead.
|
||
|
||
## Why Opik Agent Optimizer?
|
||
|
||
- **Production-grade workflows** – reuse the same datasets, metrics, and tracing you already have in Opik.
|
||
- **Multiple strategies** – swap between MetaPrompt, Hierarchical Reflective Prompt Optimizer (HRPO), Evolutionary, GEPA, and more with one API.
|
||
- **Deep analysis** – every trial is logged to Opik so you can inspect prompts, tool calls, and failure modes.
|
||
|
||
<Callout>
|
||
Estimated time: **≤10 minutes** if you already have Python and an Opik API key configured.
|
||
</Callout>
|
||
|
||
## Prerequisites
|
||
|
||
- Python 3.10+
|
||
- Opik account
|
||
- Access to an OpenAI-compatible LLM via LiteLLM (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, etc.)
|
||
|
||
## 1. Install and authenticate
|
||
|
||
```bash
|
||
pip install --upgrade opik opik-optimizer
|
||
opik configure # paste your API key
|
||
export OPIK_PROJECT_NAME="optimization-quickstart"
|
||
```
|
||
|
||
Setting `OPIK_PROJECT_NAME` ensures all traces, experiments, and optimization runs are logged to the same project without having to pass `project_name` to every SDK call.
|
||
|
||
## 2. Create a dataset and metric
|
||
|
||
```python
|
||
import opik
|
||
from opik.evaluation.metrics import LevenshteinRatio
|
||
|
||
client = opik.Opik()
|
||
dataset = client.get_or_create_dataset(name="agent-opt-quickstart")
|
||
dataset.insert([
|
||
{"question": "What is Opik?", "answer": "Opik is an LLM observability and optimization platform."},
|
||
{"question": "How do I reduce hallucinations?", "answer": "Use evaluations and prompt optimization to enforce grounding."},
|
||
])
|
||
|
||
def answer_quality(item, output):
|
||
metric = LevenshteinRatio()
|
||
return metric.score(reference=item["answer"], output=output)
|
||
```
|
||
|
||
## 3. Run the optimizer
|
||
|
||
```python
|
||
from opik_optimizer import MetaPromptOptimizer, ChatPrompt
|
||
|
||
prompt = ChatPrompt(
|
||
messages=[
|
||
{"role": "system", "content": "You are a precise assistant."},
|
||
{"role": "user", "content": "{question}"},
|
||
],
|
||
model="openai/gpt-5-nano" # The model your prompt runs on
|
||
)
|
||
|
||
optimizer = MetaPromptOptimizer(model="openai/gpt-5-nano") # The model that improves your prompt
|
||
result = optimizer.optimize_prompt(
|
||
prompt=prompt,
|
||
dataset=dataset,
|
||
metric=answer_quality,
|
||
max_trials=3,
|
||
n_samples=2,
|
||
)
|
||
|
||
result.display()
|
||
```
|
||
|
||
<Tip>
|
||
**Using a different LLM provider?** The optimizer supports OpenAI, Anthropic, Gemini, Azure, Ollama, and 100+ other providers via LiteLLM. See the [Configure LLM Providers](/development/optimization-runs/optimization/configure_models) guide for setup instructions.
|
||
</Tip>
|
||
|
||
## 4. Inspect results
|
||
|
||
- Run `opik dashboard` or open [https://www.comet.com/opik](https://www.comet.com/opik).
|
||
- In the left nav, go to **Evaluation → Optimization runs**, then select your latest run.
|
||
- Review the optimization-progress chart, trial table, and per-trial traces to decide whether to ship the new prompt.
|
||
|
||
## Common first issues
|
||
|
||
<AccordionGroup>
|
||
<Accordion title="Prompt must be a ChatPrompt object">
|
||
Import `ChatPrompt` from `opik_optimizer` and wrap your `messages` list before passing it to any optimizer.
|
||
</Accordion>
|
||
<Accordion title="Authentication failed">
|
||
Re-run `opik configure` and confirm the account has Agent Optimizer access. If you changed machines, copy the `~/.opik/config` file or re-enter the key.
|
||
</Accordion>
|
||
<Accordion title="liteLLM provider errors">
|
||
Ensure provider keys (e.g., `OPENAI_API_KEY`) are exported in the same shell running the script, and verify the model you selected is enabled for that key.
|
||
</Accordion>
|
||
</AccordionGroup>
|
||
|
||
## Next steps
|
||
|
||
- Prefer notebooks? Launch the [Quickstart notebook](/development/optimization-runs/cookbooks/optimizer_introduction_cookbook).
|
||
- Dive deeper into [Define datasets](/development/optimization-runs/optimization/define_datasets) and [Define metrics](/development/optimization-runs/optimization/define_metrics).
|
||
- Explore the [Optimization Algorithms overview](/development/optimization-runs/algorithms/overview) to pick the best strategy for your workload.
|