𝗣𝗲𝗿𝗰𝘂𝗯𝗮𝗮𝗻 𝗦𝗲𝗺𝘂𝗹𝗮 𝗧𝗲𝗿𝗵𝗮𝗱 𝘂𝗻𝘁𝘂𝗸 𝗣𝗮𝗻𝗴𝗴𝗶𝗹𝗮𝗻 𝗔𝗹𝗮𝘁 𝗘𝗷𝗲𝗻

Insiden terburuk yang disebabkan oleh ejen kami bukanlah jawapan yang salah. Ia adalah satu gelung.

Satu panggilan alat gagal. Ejen mencuba semula. Percubaan semula itu gagal lagi. Ejen terus melakukannya. Ia membakar token dan memanggil API kami beratus-ratus kali dalam masa satu minit.

Ejen melakukan apa yang kami arahkan. Kami menyuruhnya mencuba semula jika alat gagal. Kami terlupa untuk memberitahunya bila perlu berhenti.

Percubaan semula adalah baik untuk ralat sementara. Masalahnya ialah ejen tidak dapat membezakan antara ralat sementara dengan ralat kekal. Tanpa had, ejen akan terus mencuba semula panggilan yang rosak sehingga sesuatu menghentikannya.

Kod tradisional menggunakan had percubaan semula. Panggilan alat ejen memindahkan keputusan ini ke dalam penaakulan model. Ini menjadikan gelung tersebut tidak kelihatan dan tidak terhad.

Kami membetulkan perkara ini dengan menambah dua bajet di luar model:

• Had setiap panggilan: Alat tertentu mendapat jumlah percubaan yang ditetapkan. Jika ia gagal, ejen mesti mencuba laluan yang berbeza. • Bajet setiap sesi: Keseluruhan tugasan mempunyai had jumlah panggilan alat. Jika ejen mencapai had ini, ia akan berhenti dan meminta bantuan.

Had itu sendiri bukanlah penyelesaiannya. Apa yang berlaku selepas had tersebut dicapai adalah perkara yang penting.

Jika anda hanya berhenti, ejen akan tersangkut. Sebaliknya, kami memberikan mesej yang jelas kepada ejen. Kami memberitahunya bahawa panggilan tersebut gagal dan ia tidak boleh mencuba semula. Ini mengubah gelung menjadi satu keputusan. Biasanya, ejen kemudian akan memilih pendekatan baharu.

Sejak kami menambah ini, gelung salah guna alat hampir hilang sepenuhnya. Apabila ia berlaku, ia akan meningkat secara teratur dan bukannya menghasilkan bil API yang besar.

Mencari had yang betul adalah sukar. Had yang ketat akan menghentikan tugasan yang panjang. Had yang longgar membolehkan gelung yang mahal berlaku. Kami menetapkan had kami berdasarkan persentil ke-95 panjang tugasan.

Adakah anda mempunyai cara yang lebih baik untuk menetapkan bajet ini? Beritahu saya di ruangan komen.

Source: https://dev.to/james_oconnor_dev/bounded-retries-for-agent-tool-calls-the-budget-that-stopped-our-infinite-loop-incidents-4354

Optional learning community: https://t.me/GyaanSetuAi