04 Investigasi bersama manusia
Catatan instruktur untuk investigasi manusia yang mengutamakan bukti dan penyerahan asal-usul produksi.
Pendamping fasilitator untuk 04 Investigasi bersama manusia.
Waktu
Total ~20 menit.
- 3 menit — memfilter feedback negatif dan memverifikasi root Chat yang otoritatif.
- 4 menit — membuat tiga score config, lalu queue dengan attachment yang tetap.
- 4 menit — open-coding perilaku yang teramati sebelum mendiskusikan diagnosis.
- 5 menit — memeriksa bukti trace dan menjalankan SQL
policy-v1/policy-v2secara berdampingan. - 4 menit — memasukkan koreksi, menyetujui, menyelesaikan, dan mencatat asal-usulnya.
Persiapan awal instruktur
Sebelum peserta tiba, pastikan Modul 03 telah menghasilkan satu chat_turn
otoritatif dengan Boolean user-thumbs=false dan
sql-execution-success=true. Jaga kerahasiaan trace ID-nya dan konfirmasikan
bahwa output root berisi pertanyaan, SQL yang dihasilkan, baris yang
dikembalikan, dan hasilnya.
Buat tiga score config di proyek uji coba yang dapat dibuang jika Anda perlu berlatih, tetapi jangan buat lebih dulu queue final milik peserta. Set ID score config yang terlampir pada sebuah queue bersifat tetap sejak queue dibuat, sehingga ruangan harus membuat konfigurasi terlebih dahulu lalu melampirkan ketiganya:
| Name | Type | Values |
|---|---|---|
observed-issue | TEXT | free-form evidence |
failure-category | CATEGORICAL | stale-business-policy, incorrect-sql, ambiguous-request, not-actionable |
approved-for-golden | BOOLEAN | true / false |
Latihan anotasi ini hanya dilakukan lewat UI. Skrip runtime dapat memverifikasi score pada trace dan kemudian mempromosikan hasil ekspor yang sudah ditinjau, tetapi skrip tersebut tidak membuat queue, menuliskan penilaian manusia, maupun menyelesaikan task anotasi.
Alur bicara
-
Filter Tracing untuk
user-thumbs = falsedan cocokkan dengan trace ID dari worksheet Modul 03. Katakan: "feedback menentukan apa yang kita investigasi selanjutnya, bukan apa yang kita simpulkan." -
Gunakan Settings → Scores → Create untuk setiap score config. Lalu gunakan Annotations → Queues → Create, beri nama queue
production-investigation-<session>dengan suffix sesi yang unik, dan lampirkan ketiga config tersebut. -
Pilih observation root
chat_turn, buka dropdown Annotate-nya, dan pilih queue yang baru dibuat. Tunjukkan juga childllm_call, tetapi jelaskan mengapa itu target yang salah: observation tersebut tidak memiliki hasil eksekusi terstruktur end-to-end dan bukan insiden feedback yang secara logis relevan. -
Ingatkan peserta bahwa Modul 03 telah membuka setup yang di-seed, lalu minta mereka mengesampingkan pengetahuan itu dan berlatih open-coding yang murni berdasarkan hal yang teramati. Catatan pertama yang baik adalah:
The SQL executed and returned a count. The observed count differs from the second reference count. The query uses a 90-day customer signup window, and the trace metadata reports policy-v1. -
Baru setelah ruangan mencatat catatan itu, ungkapkan bukti lengkapnya: metadata yang diemit
policyversion=policy-v1, SQL/hasil berbasis signup, dan kedua score tersebut. Field sumbernya adalahpolicy_version; adapter OpenTelemetry mengemitnya sebagai key Langfuse yang sudah disanitasi,policyversion. -
Jalankan kedua definisi policy ini secara berdampingan. Referensi
policy-v1adalah:SELECT count() FROM v_customers WHERE signup_date >= today() - INTERVAL 90 DAYReferensi policy
policy-v2yang berlaku saat ini adalah:SELECT uniqExact(customer_id) FROM v_orders WHERE order_ts >= now() - INTERVAL 30 DAY AND status NOT IN ('cancelled', 'returned') -
Baru setelah perbandingan itu, terapkan diagnosisnya: catat
failure-category=stale-business-policy, alihkan Corrected Output ke plain-text mode, dan tempelkan query terkini apa adanya. Langfuse tidak menjalankan SQL, jadi verifikasi teks tersebut secara persis lewat read-only client dari Langkah 6 sebelum menetapkanapproved-for-golden=truedan menyelesaikan task. -
Simpan
source_trace_id,failure_category,source_policy_version, koreksinya, dan ID task anotasi (opsional) untuk Modul 05.
Tiga diagnosis yang menggoda tapi salah
- "Model mengabaikan prompt." SQL pada trace mengikuti konteks
policy-v1yang eksplisit. Kegagalannya adalah policy yang sudah usang di produksi, bukan ketidakpatuhan terhadap instruksi yang diberikan. - "
sql-execution-successrusak." SQL-nya berhasil dieksekusi, sehingga evaluator operasional itu memang benar mengembalikantrue. Desainnya memang tidak menguji makna bisnis yang diatur secara kebijakan. - "Thumbs-down membuktikan SQL-nya salah." Feedback hanya menandai trace mana yang perlu ditinjau. Itu tidak mengungkap maksud pengguna secara pasti maupun menyediakan query pengganti yang terverifikasi; pengecekan policy berdampingan dan review manusia lah yang melakukan itu.
Jaga agar alternatif-alternatif ini tetap terlihat sampai peserta selesai open-coding trace-nya. Jawaban yang sudah di-seed memang diketahui instruktur, tetapi investigasinya harus tetap memodelkan review yang benar-benar mengutamakan bukti.
Penargetan root observation
Ada dua observation yang relevan dalam trace ini:
| Observasi | Isi | Digunakan untuk anotasi? |
|---|---|---|
root chat_turn | pertanyaan serta SQL/hasil/output terstruktur | Ya |
child llm_call | transkrip model, SQL yang dihasilkan, penggunaan token | Tidak |
Jika seorang peserta salah menambahkan child-nya, jangan selesaikan itu
sebagai investigasi produksi. Tambahkan root chat_turn ke queue yang benar
dan biarkan/hapus task yang salah tersebut sesuai kebijakan retensi proyek.
Simpan trace ID, bukan ID child observation-nya, sebagai source_trace_id.
Attachment queue yang tetap dan penamaan yang aman untuk reset
Langfuse mengunci set ID score config yang terlampir pada sebuah queue sejak queue itu dibuat. Sebuah queue tidak bisa melampirkan config yang terlewat belakangan, sehingga membuat semua config lebih dulu adalah praktik yang paling aman. Score config sendiri bersifat mutable: perubahan yang didukung pada name, schema, atau nilai categorical memerlukan audited score-config update, dan update tersebut tidak menulis ulang score yang sudah ada.
Gunakan suffix yang aman untuk reset, misalnya:
production-investigation-<session>-retry-1Jika queue-nya terlewat melampirkan satu config atau melampirkan ID config yang salah, buat queue baru dengan suffix berbeda yang melampirkan ketiga ID yang benar, tambahkan lagi root yang otoritatif, dan tandai dengan jelas bahwa queue lama sudah superseded (atau hapus hanya jika kebijakan proyek mengizinkannya). Untuk perubahan yang didukung pada config yang sudah terlampir, gunakan audited score-config update, bukan membuat ulang queue. Jangan pernah menggunakan kembali nama queue yang sudah selesai dengan cara yang mengaburkan task mana yang menghasilkan keputusan tersebut.
Keandalan corrected output
Koreksi ini akan menjadi ground truth golden di masa depan, sehingga sintaks maupun kesesuaian policy-nya sama-sama penting. Alihkan Corrected Output ke plain-text mode sebelum menempelkan SQL mentah. Langfuse menyimpan teksnya tetapi tidak mengeksekusinya; sebelum disetujui, eksekusi teks tersebut secara persis lewat read-only ClickHouse client dari Langkah 6. Query yang terlihat benar tapi malformed, mereferensikan raw table, berisi banyak statement, atau gagal di ClickHouse harus tetap tidak disetujui.
Untuk SQL yang malformed:
- tetapkan atau biarkan
approved-for-golden=false; - jangan selesaikan task tersebut sebagai approved;
- perbaiki koreksinya terhadap view
v_*yang diizinkan; - jalankan ulang dan periksa hasilnya; dan
- setujui dan selesaikan hanya setelah verifikasi.
Jika seseorang sudah menyelesaikan task dengan koreksi yang malformed, buat queue/task baru dengan suffix baru dan ulangi review-nya, jangan diam-diam mengedit dan menghapus jejak audit-nya. Command promotion Modul 05 juga memvalidasi SQL read-only dan mengeksekusinya, tetapi guard itu bukan pengganti review manusia.
Kegagalan umum
- Tidak ada trace setelah filtering — konfirmasikan bahwa tipe score-nya
Boolean dan filternya
user-thumbs=false; jangan mencari nama score lama. Cocokkan dengan trace ID dari worksheet, bukan memilih diagnostik curl yang belum diberi rating. - Target salah — task hanya menampilkan transcript/SQL karena
llm_callyang ditambahkan. Kembali ke trace-nya dan tambahkan rootchat_turn. - Dimensi queue hilang — queue dibuat tanpa melampirkan salah satu config ID yang wajib. Buat queue baru dengan suffix lain; jangan lanjutkan dengan form review yang tidak lengkap. Gunakan audited config update, bukan membuat ulang queue, untuk perubahan yang didukung pada config yang sudah terlampir.
- Metadata policy terlihat hilang — cari
policyversionyang diemit, bukanpolicy_versionsumbernya, lalu konfirmasikan tagpolicy-v1pada root-nya. - Count-nya cocok secara tak terduga — hentikan diagnosisnya. Jalankan ulang scenario preflight Modul 03 dan jangan merekayasa bukti dari snapshot data tanpa pembanding.
- Koreksinya berupa hasil format, bukan SQL mentah — alihkan Corrected Output ke plain-text mode dan tempelkan hanya query-nya saja.
- Koreksinya tidak bisa dieksekusi — Langfuse tidak akan menangkap ini. Biarkan approval-nya tetap false, perbaiki, dan jalankan ulang teks yang sama persis lewat client Langkah 6 sebelum menyelesaikan task.
Penyelesaian dan penyerahan
Sebelum berpindah ke Modul 05, verifikasi bahwa task yang sudah selesai
memang untuk chat_turn yang otoritatif, observasinya dicatat sebelum
diagnosis, koreksinya adalah SQL current-policy yang tepat, dan task-nya
sudah approved. Worksheet peserta harus memuat:
source=production-feedback
source_trace_id=<authoritative Chat trace ID>
failure_category=stale-business-policy
source_policy_version=policy-v1
annotation_id=<task ID when available>Score pengguna yang negatif tetap berada pada trace produksi sebagai sinyal triase. Anotasi manusia menyediakan ground truth yang sudah ditinjau. Modul 05 akan mempertahankan kedua asal-usul ini saat mempromosikan koreksinya dan membangun evaluator preventif.
03 Rilis dan deteksi
Catatan instruktur untuk merilis kebijakan usang yang sudah disiapkan dan menunjukkan kegagalan evaluasi online yang nyata.
05 Tutup siklusnya
Catatan instruktur untuk mempromosikan bukti yang telah ditinjau, mengkalibrasi evaluator kebijakan umum, dan menjalankan siklus perbaikan berkelanjutan dengan aman.