03 Rilis dan deteksi
Catatan instruktur untuk merilis kebijakan usang yang sudah disiapkan dan menunjukkan kegagalan evaluasi online yang nyata.
Pendamping fasilitator untuk 03 Rilis dan deteksi.
Waktu
~15 menit total.
- 3 menit — bandingkan kerangka evaluasi operasional dengan nilai bagi pengguna.
- 4 menit — tunjukkan preflight dan rilis konfigurasi pilihan ruangan pada
policy-v1. - 4 menit — ajukan pertanyaan yang diatur kebijakan di Chat dan kumpulkan 👎 pada jawaban tersebut.
- 4 menit — temukan trace Chat tersebut, verifikasi kedua skor, dan reproduksi dengan curl.
Preflight sehari sebelumnya
Jalankan ini dengan pemenang persis yang Anda perkirakan akan dipilih ruangan. Fallback yang sudah terverifikasi adalah
qwen3.7-flash__P2_fewshot:
cd ClickHouse_Demos/workshops/agent_arena
source .env
export WINNER_CONFIG_ID="${WINNER_CONFIG_ID:-qwen3.7-flash__P2_fewshot}"
.venv/bin/python -m schema.gen_schema_context
.venv/bin/python -m scripts.check_online_eval_scenario \
--config-id "$WINNER_CONFIG_ID"
.venv/bin/python -m scripts.provision_online_evaluators --operationalPreflight melakukan satu percobaan ulang terbatas hanya ketika hasil pertama suatu
parafrasa adalah ok/unknown, dan hanya mengulang parafrasa serta konfigurasi yang
sama. Semua kegagalan lain bersifat final, dan tidak ada parafrasa yang pernah diulang
lebih dari satu kali.
Jangan mengandalkan ingatan. Konfirmasikan semua hal berikut di lingkungan ruangan yang sebenarnya:
stale_countdancurrent_countsama-sama muncul dan nilainya berbeda;- ketiga klasifikasi berstatus
policy-v1; - baris terakhir menyatakan bahwa insiden ini dapat direproduksi;
- evaluator
sql-execution-successada; dan - rule
agent-arena-sql-execution-onlineaktif.
Untuk Qwen, di OpenRouter Settings → Privacy → Data Policies → Zero Data Retention → Non-frontier harus dinonaktifkan agar rute Alibaba memenuhi syarat. Lakukan perubahan ini hanya setelah meninjau persyaratan penanganan data untuk acara tersebut. Peserta harus menggunakan runtime key yang dibatasi, bukan provisioning key milik instruktur.
Alur presentasi
-
Mulai dengan pemenang Module 02 sesungguhnya dari ruangan dan tulis
WINNER_CONFIG_IDdi tempat yang terlihat semua orang. Inti agen dan konfigurasi terpilih tidak berubah; hanya konteks kebijakan bisnis yang dideploy yang sengaja dibuat tertinggal satu versi. -
Sebutkan batas kemampuan evaluator sebelum menampilkan hasil:
sql-execution-successhanya bisa membuktikan bahwa ClickHouse menerima SQL tersebut, bukan bahwa SQL itu mengimplementasikan makna terkini dari metrik yang diatur kebijakan. -
Ajukan pertanyaan di Chat, tunjukkan SQL yang dihasilkan, hasilnya, dan
policy_version=policy-v1, lalu klik 👎 dan tunggufeedback sent. Trace root Chat ini adalah satu-satunya insiden yang otoritatif. -
Tunjukkan kepada audiens definisi yang berlaku saat ini secara berdampingan:
SELECT uniqExact(customer_id) FROM v_orders WHERE order_ts >= now() - INTERVAL 30 DAY AND status NOT IN ('cancelled', 'returned') -
Nyatakan secara eksplisit bahwa SQL berbasis signup yang dihasilkan tetap valid menurut
policy-v1yang usang dan diberikan ke model. Ini adalah kegagalan rilis/proses dan titik buta evaluator, bukan klaim bahwa model mengabaikan instruksi yang jelas. -
Di Langfuse, filter
user-thumbs = false, bukachat_turnChat terbaru yang cocok, dan tunjukkansql-execution-success=trueberdampingan denganuser-thumbs=false. Sinyal ini memprioritaskan sebuah investigasi; sinyal ini tidak memberikan diagnosis maupun menjadi ground truth dengan sendirinya. -
Jalankan reproduksi curl wajib setelahnya sebagai diagnostik yang tidak diberi skor. Beri nama identifiernya
CURL_TRACE_ID, verifikasi hanyasql-execution-success=true, dan jangan pernah mengirim feedback untuknya atau menggunakannya sebagai handoff Module 04. -
Catat ID/URL trace root serta kedua hitungan untuk Module 04. Simpan identifier langsung di dalam project Langfuse dan worksheet workshop.
Bukti trace yang diharapkan
Buka observasi chat_turn pada root-nya, bukan hanya llm_call anaknya. Yang diharapkan:
| Field | Nilai yang diharapkan |
|---|---|
| nama trace/observation | chat_turn |
| tags | config_id terpilih, model, prompt, policy-v1, serving |
metadata policyversion | policy-v1 |
| output | SQL yang dihasilkan, columns/rows, outcome_hint |
| skor operasional | sql-execution-success=true |
| skor feedback | Boolean user-thumbs=false |
Sumber serving menamai field ini policy_version; adapter OpenTelemetry membersihkan
metadata key menjadi karakter alfanumerik saja, sehingga Langfuse menampilkan key yang
dipancarkan sebagai policyversion.
Evaluator operasional bersifat asinkron. Gunakan verifier daripada memperlakukan skor yang belum muncul sebagai kegagalan:
.venv/bin/python -m scripts.verify_online_scores "$CHAT_TRACE_ID" \
sql-execution-success=true user-thumbs=falseKegagalan umum
- Provider diblokir ZDR — Qwen gagal sebelum menghasilkan SQL saat persyaratan Zero Data Retention non-frontier OpenRouter aktif dan rute Alibaba yang memenuhi syarat tidak diizinkan. Nonaktifkan pembatasan ZDR tersebut untuk workshop ini, atau gunakan fallback yang telah diumumkan setelah meninjau persyaratan privasi.
- Dispatcher evaluator tidak berjalan — trace tiba, tetapi
sql-execution-successtidak pernah muncul. Konfirmasikan bahwa evaluator execution service/dispatcher Langfuse sehat dan ruleagent-arena-sql-execution-onlineaktif; provisioning sebuah rule tidak akan memproses skor apa pun jika evaluation worker tidak tersedia. - Dependensi OpenTelemetry hilang — tidak ada trace yang muncul meskipun
/askmengembalikan hasil. Instal ulang requirements lab yang sudah dipin dengan.venv/bin/python -m pip install -r requirements.txt; runtime menggunakan jalur OpenTelemetry Langfuse v4 dan memerlukan paket OTel yang kompatibel dengannya. - Proses server usang — respons melaporkan
policy-v2padahal perintah shell menyebutpolicy-v1. Ada proses lama yang masih menguasai port 8100; hentikan proses itu sepenuhnya sebelum memulai rilis yang sudah disiapkan. - Port salah — Chat UI secara default mengarah ke
http://localhost:8100. Jika serving memakai port lain, aturVITE_SERVING_BASEke alamat yang sama, atau gunakancurlmentah langsung ke port yang sebenarnya. - Feedback duplikat — feedback menggunakan score ID deterministik
user-thumbs-<trace_id>. Kirim satu rating per trace. Menggunakan kembali trace yang sama untuk rating yang saling bertentangan dapat menghasilkan error dari feedback service atau membuat demo menjadi ambigu; buat session/trace baru sebagai gantinya. - Skor masih pending — evaluasi berjalan asinkron. Biarkan
scripts.verify_online_scoresmelakukan polling untuk skor tersebut sebelum mengubah konfigurasi. - Hitungan referensi cocok — kontras yang sudah disiapkan tidak ada pada snapshot data ini. Jangan merekayasa sebuah kegagalan; lakukan reseed atau diagnosis data sebelum sesi.
Langkah reset
Hentikan server yang sedang berjalan, lalu mulai proses policy-v1 yang bersih:
scripts/arena.sh stop
scripts/arena.sh serve
source .env
.venv/bin/python -m schema.gen_schema_context
AGENT_ARENA_POLICY_VERSION=policy-v1 \
.venv/bin/uvicorn serving.api:app --port 8100scripts/arena.sh serve memulihkan dashboard dan web UI di background sebelum serving API
mengambil alih terminal. Refresh halaman Chat untuk membuat session baru. Jika Anda
menggunakan API mentah, sertakan session ID baru atau hilangkan saja agar /ask membuatnya
secara otomatis. Jalankan ulang preflight dan provisioner di terminal kedua; keduanya aman
untuk diulang.
Kebijakan fallback
Gunakan konfigurasi qwen3.7-flash__P2_fewshot milik instruktur yang sudah terbukti baik
hanya jika pemenang ruangan tidak lagi mengikuti kebijakan usang yang eksplisit pada tiga
pertanyaan preflight. Nyatakan penggantian ini secara terbuka: fallback menjaga insiden
pengajaran yang deterministik, sementara pemenang leaderboard tetap menjadi hasil terukur
ruangan. Jangan mengganti model secara diam-diam, dan jangan gunakan fallback untuk
menyembunyikan kegagalan hitungan yang sama, kredensial, provider routing, atau
infrastruktur evaluator.
Handoff ke Module 04
Sebelum melanjutkan, pastikan worksheet berisi ID/URL trace root Chat yang otoritatif, stale
count, current count, sql-execution-success=true, dan Boolean user-thumbs=false.
Module 04 dimulai dari ketidaksesuaian yang persis ini dan menambahkan penilaian manusia;
Module 04 tidak boleh dimulai dengan diagnosis yang sudah ditulis lebih dulu dan terlepas
dari trace produksi.