𝗣𝗲𝗿𝗰𝗼𝗯𝗮𝗮𝗻 𝗨𝗹𝗮𝗻𝗴 𝗧𝗲𝗿𝗯𝗮𝘁𝗮𝘀 𝘂𝗻𝘁𝘂𝗸 𝗣𝗲𝗺𝗮𝗻𝗴𝗴𝗶𝗹𝗮𝗻 𝗧𝗼𝗼𝗹 𝗔𝗴𝗲𝗻

Insiden terburuk yang disebabkan oleh agen kami bukanlah jawaban yang salah. Melainkan sebuah loop.

Sebuah pemanggilan tool gagal. Agen mencoba lagi. Percobaan ulang tersebut gagal lagi. Agen terus berlanjut. Hal ini menghabiskan token dan memanggil API kami ratusan kali dalam satu menit.

Agen melakukan apa yang kami perintahkan. Kami menyuruhnya untuk mencoba lagi jika sebuah tool gagal. Kami lupa memberitahunya kapan harus berhenti.

Percobaan ulang (retry) bagus untuk kesalahan sementara. Masalahnya adalah agen tidak dapat membedakan antara kesalahan sementara dan kesalahan permanen. Tanpa batasan, agen akan terus mencoba ulang pemanggilan yang rusak sampai sesuatu menghentikannya.

Kode tradisional menggunakan batas retry. Pemanggilan tool agen memindahkan keputusan ini ke dalam penalaran model. Hal ini membuat loop tersebut tidak terlihat dan tidak terbatas.

Kami memperbaiki ini dengan menambahkan dua anggaran di luar model:

• Batas per-pemanggilan: Sebuah tool tertentu mendapatkan jumlah upaya yang telah ditentukan. Jika gagal, agen harus mencoba jalur yang berbeda. • Anggaran per-sesi: Seluruh tugas memiliki batas total pemanggilan tool. Jika agen mencapai batas ini, ia akan berhenti dan meminta bantuan.

Batasan itu sendiri bukanlah solusinya. Apa yang terjadi setelah batas tercapai adalah hal yang penting.

Jika Anda hanya menghentikannya, agen akan terjebak. Sebaliknya, kami memberikan pesan yang jelas kepada agen. Kami memberitahunya bahwa pemanggilan tersebut gagal dan ia tidak boleh mencoba lagi. Ini mengubah loop menjadi sebuah keputusan. Biasanya, agen kemudian akan memilih pendekatan baru.

Sejak kami menambahkan ini, loop penyalahgunaan tool hampir hilang sepenuhnya. Ketika hal itu terjadi, mereka akan tereskalasi dengan rapi alih-alih menciptakan tagihan API yang membengkak.

Menemukan batasan yang tepat itu sulit. Batasan yang terlalu ketat akan mematikan tugas-tugas yang panjang. Batasan yang terlalu longgar akan membiarkan loop yang mahal terjadi. Kami menetapkan batasan kami berdasarkan persentil ke-95 dari panjang tugas.

Apakah Anda punya cara yang lebih baik untuk menetapkan anggaran ini? Beritahu saya di kolom komentar.

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

Komunitas pembelajaran opsional: https://t.me/GyaanSetuAi