Loop yang aman: max steps, kondisi berhenti, guard budget
A1 — Loop & Tool Calling
Loop tanpa batas adalah cara termurah menaikkan biaya token. Buat loop yang selalu berhenti.
Struktur loop
while steps < MAX_STEPS:
resp = model(riwayat + tool_results)
if resp.jawaban_final: return resp.teks
eksekusi tool, simpan hasil ke riwayat, steps += 1
raise LoopExceededError
Tiga kondisi berhenti
- Jawaban final — model memutuskan selesai (biasanya sinyal
toolCallskosong). - Max steps — batas keras; jangan diam-diam perpanjang, kembalikan pesan
Loop mencapai batas — coba ulangi dengan tugas lebih kecil. Ini UX yang jujur, bukan error. - Budget — jika analisis biaya tersedia (A4), hitung estimasi token per langkah dan program ambang batas biaya per sesi.
Guardrail tambahan
- Timeout per tool call (tool menggantung = loop menggantung).
- Deteksi pola berulang: tool yang sama dipanggil berturut-turut dengan argumen sama berarti loop macet — hentikan.
Tugas: di repo A0, ubah REPL menjadi loop dengan MAX_STEPS=5 dan pesan batas yang ramah. Coba paksa loop melewati batas dan dokumentasikan perilakunya.
A1