Demo Ejen Anda Berjaya. Itulah Perangkapnya.
Saya membina ejen AI untuk syarikat. Saya sering melihat corak yang sama. Model tersebut berfungsi dalam demo. Anda melancarkan produk. Kemudian ia gagal satu daripada setiap tiga kali dalam produksi. Tiada siapa tahu mengapa.
Jurang antara demo dan produksi adalah matematik. Sebaik sahaja anda memahami matematik tersebut, anda akan membina dengan cara yang berbeza.
Jika setiap langkah dalam ejen anda mempunyai kebolehpercayaan 95%, ia kedengaran bagus. Tetapi ejen menggunakan rantaian langkah. Jika anda merantaikan sepuluh langkah bersama, kadar kejayaan anda jatuh kepada 60%. Jika anda menggunakan dua puluh langkah, kadar kejayaan anda jatuh kepada 36%.
Dalam kerja sebenar, langkah-langkah sering mempunyai kadar ralat antara 10% hingga 20%. Jika sebuah ejen mempunyai lapan langkah dengan kebolehpercayaan 85%, ia akan gagal sebanyak 75% daripada masa.
Model bukanlah masalahnya. Kebarangkalian kompaun (compounding probability) adalah masalahnya.
Demo menunjukkan satu laluan lancar (happy path) sahaja. Ia menggunakan input yang bersih dan rantaian yang pendek. Produksi menggunakan data yang berselerak daripada ratusan pengguna. Ia menggunakan rantaian panjang yang merangkumi langkah-langkah tersembunyi.
Kegagalan dalam ejen tidak kelihatan seperti kerosakan sistem (crash). Ia kelihatan seperti ralat yang senyap.
Langkah 3 tersalah baca satu medan. Outputnya masih kelihatan seperti JSON yang sah. Langkah 4 menggunakan data buruk tersebut untuk membuat penaakulan. Langkah 5 hingga 8 membina berdasarkan kesilapan itu. Jawapan akhirnya salah tetapi kelihatan munasabah. Tiada log ralat untuk menunjukkan di mana ia tersilap.
Berhenti mengatakan model itu berhalusinasi. Model itu hanya menyampaikan data buruk yang diterimanya. Sistem anda kekurangan titik semakan (checkpoint) untuk menangkap ralat pada langkah 3.
Berhenti melayan ejen sebagai satu prompt. Mula melayannya sebagai satu sistem.
Ikuti peraturan ini untuk membina ejen yang boleh dipercayai:
Simpan keadaan (state) di luar ejen. Simpan keadaan dalam pangkalan data, bukan dalam perbualan. Jika satu proses gagal pada langkah 6, anda boleh menyambung semula pada langkah 6. Anda tidak perlu memulakan semula keseluruhan rantaian.
Sahkan pada sempadan (boundaries). Semak setiap input dan output terhadap skema. Tangkap ralat pada langkah di mana ia berlaku. Ini mengubah misteri menjadi ralat yang boleh dipulihkan.
Jadikan kesan sampingan (side effects) bersifat idempotent. Anda mesti mencuba semula langkah-langkah apabila ia gagal. Jika satu langkah menghantar e-mel atau mengecas kad, gunakan kunci idempotensi (idempotency key). Ini menghalang tindakan pendua semasa percubaan semula.
Gunakan evals dalam CI anda. Tingkah laku ejen berubah dengan setiap pengubahsuaian. Perubahan prompt mungkin membaiki satu kes tetapi merosakkan lima kes yang lain. Gunakan set ujian untuk menangkap regresi ini secara automatik.
Beralih daripada demo kepada produk sebenar adalah tentang kejuruteraan. Ia adalah tentang pengendalian ralat, pengurusan keadaan, dan kebolehperhatian (observability). Ia bukan tentang prompt yang lebih baik.
Jika ejen anda gagal dalam produksi, jangan cari model yang lebih besar. Cari langkah di mana rantaian itu terpesong. Tanya mengapa sistem anda tidak menangkap ralat di sana.
Sumber: https://dev.to/sagar_jain4010/your-agent-demo-works-thats-the-trap-4joc
Komuniti pembelajaran pilihan: https://t.me/GyaanSetuAi
