Ejen AI yang saya lancarkan lulus 23 ujian unit, tetapi dalam tempoh sejam selepas dilancarkan, ia mencipta ciri produk sendiri dan memberikan sebut harga tiga kali ganda lebih rendah daripada realiti. Apabila pengguna menegurnya, bot tersebut terus berkeras, perbualan berakhir, dan saya kehilangan pelanggan. Kesilapan tersebut membuktikan bahawa set ujian unit deterministik tidak dapat menjamin kebolehpercayaan sesuatu ejen.
Mengapa ujian unit tidak mencukupi untuk ejen AI
Ujian unit berkesan untuk kod tradisional kerana input yang sama sentiasa menghasilkan output yang sama. “2 + 2 = 4” adalah jaminan yang boleh anda sahkan dengan semakan kesamaan yang mudah. Walau bagaimanapun, ejen dipacu LLM mengubah outputnya berdasarkan prom, konteks sekeliling, dan keadaan sebarang alatan luaran yang dipanggilnya. Ujian yang menyemak kesamaan rentetan (string) yang tepat akan terlepas pandang halusinasi, perubahan nada, atau pelanggaran pagar keselamatan (guardrail). Kegagalan senyap yang menyebabkan kehilangan pelanggan menunjukkan bahawa anda mesti menilai keseluruhan interaksi, bukan sekadar fungsi yang terasing.
Membina rangka kerja penilaian sebelum sebarang kod ciri
Saya mengubah urutan pembangunan: reka rangka kerja penilaian empat lapisan terlebih dahulu, kemudian barulah tulis ejen tersebut. Rangka kerja ini menjalankan 131 ujian dalam satu pusingan, menelan kos kira-kira tiga sen setiap pusingan, dan selesai dalam masa kira-kira sebelas minit. Saya menetapkan setiap ujian kepada model terkecil yang mampu mengendalikannya, dan hanya menggunakan model yang lebih besar serta lebih mahal pada saat ia benar-benar memberi nilai tambah.
Lapisan 1 – Fungsi alatan
Barisan pertahanan pertama menyemak sama ada ejen boleh memanggil alatan dengan betul. Ujian merangkumi carian yang berjaya, pertanyaan yang sengaja dibuat salah, dan kegagalan API yang disimulasikan. Oleh kerana penggunaan alatan sebahagian besarnya adalah deterministik—sama ada permintaan dibentuk dengan betul atau API mengembalikan ralat—pengesahan Python yang mudah sudah mencukupi. Mengesan permintaan yang salah di sini dapat mengelakkan kekeliruan pada peringkat seterusnya.
Lapisan 2 – Pematuhan arahan
Seterusnya, rangka kerja mengesahkan bahawa ejen mematuhi pagar keselamatan. LLM yang lebih kecil bertindak sebagai penilai, mengimbas respons ejen untuk pematuhan: kekal dalam watak, mengelakkan topik yang dilarang, dan mengeluarkan skema JSON yang diperlukan. Lapisan ini mengesan hanyutan semantik (semantic drift) yang terlepas daripada ujian unit, seperti beralih ke persona yang tidak diingini atau membocorkan prom dalaman.
Lapisan 3 – Tingkah laku berorientasikan matlamat
Lapisan ketiga adalah yang paling kritikal. Ia mempersoalkan sama ada ejen benar-benar mencapai tujuannya. Bagi bot penjanaan prospek (lead-generation), ini bermakna mengesahkan ia bertanya soalan kelayakan yang betul dan menyerahkan kepada manusia apabila perlu. Saya menggunakan model berorientasikan penaakulan di sini kerana ia boleh menilai aliran keseluruhan tanpa meningkatkan kos secara mendadak. Jika bot gagal mencapai matlamatnya—walaupun lulus dua lapisan pertama—ia akan ditandakan untuk reka bentuk semula.
Lapisan 4 – Prestasi
Akhir sekali, rangka kerja merekodkan kependaman (latency) dan kelajuan penjanaan token. Respons yang lambat menjejaskan pengalaman pengguna, terutamanya dalam sembang masa nyata. Dengan menjejaki metrik ini bersama ketepatan fungsi, saya memastikan ejen tersebut tepat dan responsif.
Pilihan penjimatan kos
Angka $0.03 setiap pusingan bukanlah gimik pemasaran; ia terhasil daripada penyelarasan kerumitan ujian dengan saiz model. Semakan alatan deterministik dijalankan pada masa larian (runtime) termurah, pematuhan arahan menggunakan model ringan, dan hanya penilaian berorientasikan matlamat yang menggunakan model yang lebih berupaya, walaupun lebih mahal. Pendekatan bertingkat ini memastikan jumlah perbelanjaan cukup rendah untuk menjalankan keseluruhan set ujian pada setiap perubahan kod.
Pertukaran: kelajuan berbanding keselamatan
Memperkenalkan rangka kerja ini menambah geseran di peringkat awal. Kitaran pembangunan menjadi lebih panjang, dan garis masa pelancaran tertangguh.
Apa yang perlu diperhatikan seterusnya
- Penilai dipacu model: Apabila LLM bertambah baik, penilai dalam Lapisan 2 boleh menjadi lebih nuansa, mengurangkan positif palsu sambil tetap mengesan pelanggaran polisi yang halus.
Rumusan
Jika anda membina ejen AI untuk pengeluaran (production), rangka kerja penilaian berlapis bukanlah pilihan; ia adalah asas. Dengan mengutamakan kos ujian yang komprehensif—$0.03 setiap pusingan, sebelas minit bagi setiap set—anda melindungi diri daripada kegagalan senyap yang tidak dapat dikesan oleh ujian unit.
