Agent ArenaClickHouse Workshops

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 --operational

Preflight 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_count dan current_count sama-sama muncul dan nilainya berbeda;
  • ketiga klasifikasi berstatus policy-v1;
  • baris terakhir menyatakan bahwa insiden ini dapat direproduksi;
  • evaluator sql-execution-success ada; dan
  • rule agent-arena-sql-execution-online aktif.

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_ID di 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-success hanya 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 tunggu feedback 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-v1 yang 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, buka chat_turn Chat terbaru yang cocok, dan tunjukkan sql-execution-success=true berdampingan dengan user-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 hanya sql-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:

FieldNilai yang diharapkan
nama trace/observationchat_turn
tagsconfig_id terpilih, model, prompt, policy-v1, serving
metadata policyversionpolicy-v1
outputSQL yang dihasilkan, columns/rows, outcome_hint
skor operasionalsql-execution-success=true
skor feedbackBoolean 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=false

Kegagalan 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-success tidak pernah muncul. Konfirmasikan bahwa evaluator execution service/dispatcher Langfuse sehat dan rule agent-arena-sql-execution-online aktif; provisioning sebuah rule tidak akan memproses skor apa pun jika evaluation worker tidak tersedia.
  • Dependensi OpenTelemetry hilang — tidak ada trace yang muncul meskipun /ask mengembalikan 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-v2 padahal perintah shell menyebut policy-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, atur VITE_SERVING_BASE ke alamat yang sama, atau gunakan curl mentah 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_scores melakukan 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 8100

scripts/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.

Di halaman ini

ID