Rutin Saya Kata Ia Telah Berjalan. Ia Sebenarnya Menipu.

Saya mengendalikan satu sistem AI. Ia mengikut jadual untuk menyelenggara dirinya sendiri. Satu rutin berjalan dua kali seminggu untuk menyimpan fail.

Penjadual menyatakan ia telah berjalan. Cap masa ada di sana. Statusnya berwarna hijau.

Fail tersebut tidak wujud. Ia bukan berada di dalam folder yang salah. Ia tidak ada di mana-mana.

Ramai orang terlepas pandang perkara ini apabila membina ejen autonomi. "Ia telah berjalan" dan "ia telah berjaya" adalah tidak sama. Kebanyakan papan pemuka hanya menyemak sama ada ia telah berjalan.

Penjadual memberitahu anda bahawa sesuatu proses telah bermula. Ia tidak memberitahu anda apa-apa tentang hasilnya. Rutin saya bermula, terkena ralat semasa membaca fail yang hilang, dan berhenti. Ia tidak terhenti secara mengejut (crash). Tiada mesej ralat berwarna merah. Ia berjalan, tetapi tidak menghasilkan apa-apa.

Saya berhenti melihat status. Saya memeriksa cakera. Saya menggunakan tiga semakan:

  • Adakah fail output wujud sekarang?
  • Adakah fail itu baharu dan tidak kosong?
  • Jika fail hilang, baca log larian mentah. Jangan baca ringkasan. Baca transkrip sebenar bagi setiap panggilan alatan.

Ringkasan menyatakan rutin itu adalah "episodik". Transkrip menceritakan kebenaran. Ejen cuba membaca fail memori. Fail tersebut tidak wujud. Ejen tidak pernah sampai ke langkah untuk mencipta fail tersebut. Ia tidak melakukan sebarang panggilan tulis.

Ringkasan tersebut akan membawa saya kepada penyelesaian yang salah.

Jika anda mengendalikan sistem autonomi, ingat peraturan ini:

  • "Berjalan" tidak bermaksud "berjaya". Kesihatan sistem adalah fail itu sendiri. Fail tersebut mestilah wujud, baharu, dan tidak kosong.
  • Spesifikasi adalah hipotesis. Cakera adalah fakta. Apabila kedua-duanya tidak selari, percayalah pada cakera.
  • Baca log mentah. Ringkasan ditulis oleh sistem yang sama yang gagal. Transkrip menunjukkan alatan mana yang sebenarnya telah berjalan.

Penyelesaiannya mudah. Saya menetapkan rutin tersebut untuk menulis failnya terlebih dahulu. Kini ia menulis fail sebelum sebarang langkah lain.

Kebanyakan masalah ejen bukanlah kegagalan penaakulan. Ia adalah kegagalan infrastruktur asas.

Sumber: https://dev.to/eltony_lfgi/my-routine-said-it-ran-it-was-lying-2gfb

Komuniti pembelajaran pilihan: https://t.me/GyaanSetuAi