𝟳 𝗞𝗲𝘀𝗶𝗹𝗮𝗽𝗮𝗻 𝗞𝗿𝗶𝘁𝗶𝗸𝗮𝗹 𝗬𝗮𝗻𝗴 𝗠𝗲𝗿𝗼𝘀𝗮𝗸𝗮𝗻 𝗘𝗷𝗲𝗻 𝗔𝗜
Ejen AI anda berfungsi semasa ujian. Ia pantas dan tepat. Kemudian anda melancarkannya ke produksi. Tiba-tiba, pengguna melaporkan masalah masa tamat (timeout) dan ralat.
Membina ejen AI yang berdaya tahan memerlukan lebih daripada sekadar kod yang baik. Anda mesti bersedia untuk realiti produksi yang mencabar.
Berikut adalah 7 kesilapan yang merosakkan ejen AI dan cara untuk memperbaikinya.
- Mengabaikan Kegagalan API Luaran Pembangun sering menganggap panggilan API akan sentiasa berjaya. Hakikatnya tidak. Permintaan rangkaian boleh gagal disebabkan oleh masa tamat atau had kadar (rate limits).
- Bungkus semua panggilan dalam blok
try-catch. - Tetapkan nilai masa tamat yang khusus untuk setiap permintaan.
- Tambah logik cubaan semula (retry logic) dengan exponential backoff.
- Gunakan circuit breakers untuk perkhidmatan yang gagal.
- Menganggap Kegagalan Sebagai Binari Ramai pembangun berfikir bahawa sistem sama ada berfungsi atau ia gagal. Realitinya, sebahagian daripada sistem mungkin gagal manakala bahagian lain kekal dalam talian.
- Reka strategi sandaran (fallback) pelbagai peringkat.
- Tentukan rupa bentuk fungsi yang dikurangkan.
- Teruskan melayani permintaan menggunakan komponen yang tersedia.
- Log dan Kebolehlihatan yang Lemah Jika anda mempunyai log yang minimum, anda akan menjadi buta semasa gangguan berlaku. Anda tidak boleh membaiki apa yang anda tidak nampak.
- Log pada tahap berbeza seperti INFO dan ERROR.
- Gunakan ID permintaan untuk menjejaki laluan pengguna.
- Jejaki persentil masa tindak balas (p50, p95, p99).
- Tetapkan amaran untuk lonjakan kadar ralat.
- Hanya Menguji Laluan Indah (Happy Paths) Jika anda hanya menguji pelaksanaan yang berjaya, ejen anda tidak akan dapat pulih daripada tekanan.
- Gunakan chaos engineering untuk menguji pergantungan.
- Simulasikan kependaman (latency) rangkaian dan masa tamat.
- Uji dengan format data yang tidak sah (malformed).
- Jalankan ujian beban melampaui kapasiti yang dijangkakan.
- Kehilangan Keadaan (State) Ejen Jika ejen terhenti (crash) tanpa menyimpan kemajuannya, ia akan kehilangan semua konteks.
- Buat titik semak (checkpoint) keadaan pada pencapaian utama.
- Gunakan operasi idempotent untuk mengelakkan tindakan pendua.
- Simpan konteks yang mencukupi untuk menyambung semula aliran kerja.
- Hardcoding Konfigurasi Meletakkan masa tamat dan titik akhir (endpoint) API secara terus dalam kod anda akan melambatkan proses kemas kini.
- Pindahkan konfigurasi ke pemboleh ubah persekitaran (environment variables).
- Gunakan bendera ciri (feature flags) untuk tingkah laku baharu.
- Jadikan ambang (threshold) boleh laras tanpa perlu melancarkan semula kod.
- Pengendalian Ralat yang Umum Menggunakan penyelesaian yang sama untuk setiap ralat adalah satu kesilapan. Ralat pengesahan memerlukan tindak balas yang berbeza daripada masa tamat rangkaian.
- Asingkan ralat yang boleh dicuba semula daripada ralat kekal.
- Cuba semula isu sementara seperti had kadar.
- Jangan cuba semula isu kekal seperti kegagalan pengesahan.
Ketahanan adalah tentang menulis kod yang menjangkakan realiti. Mulakan dengan mengaudit ejen sedia ada anda terhadap tujuh perangkap ini.