𝗕𝗲𝗽𝗲𝗿𝗸𝘁𝗲 𝗥𝗲𝘁𝗿𝗶𝗲𝘀 𝘃𝗼𝗼𝗿 𝗔𝗴𝗲𝗻𝘁 𝗧𝗼𝗼𝗹 𝗖𝗮𝗹𝗹𝘀
Het ergste incident dat onze agent veroorzaakte, was geen foutief antwoord. Het was een loop.
Een tool call mislukte. De agent probeerde het opnieuw. De retry mislukte opnieuw. De agent ging door. Het verbruikte tokens en raakte onze API honderden keren in één minuut.
De agent deed wat we hem hadden verteld. We zeiden dat hij opnieuw moest proberen als een tool faalt. We vergaten te zeggen wanneer hij moest stoppen.
Retries zijn goed voor tijdelijke fouten. Het probleem is dat agents het verschil niet zien tussen een tijdelijke en een permanente fout. Zonder limieten blijft een agent een mislukte call proberen totdat er iets ingrijpt.
Traditionele code gebruikt retry-limieten. Bij agent tool calls is deze beslissing verplaatst naar de redenering van het model. Hierdoor werd de loop onzichtbaar en onbegrensd.
We hebben dit opgelost door twee budgetten buiten het model toe te voegen:
• Per-call cap: Een specifieke tool krijgt een vast aantal pogingen. Als deze mislukt, moet de agent een ander pad proberen. • Per-session budget: De gehele taak heeft een limiet op het totaal aantal tool calls. Als de agent deze limiet bereikt, stopt hij en vraagt om hulp.
De limiet zelf is niet de oplossing. Wat er na het bereiken van de limiet gebeurt, is wat ertoe doet.
Als je gewoon stopt, loopt de agent vast. In plaats daarvan geven we de agent een duidelijke boodschap. We vertellen hem dat de call is mislukt en dat hij niet opnieuw mag proberen. Dit verandert een loop in een beslissing. Meestal kiest de agent dan een nieuwe aanpak.
Sinds we dit hebben toegevoegd, zijn loops door foutief toolgebruik bijna verdwenen. Wanneer ze toch voorkomen, escaleren ze op een nette manier in plaats van enorme API-rekeningen te veroorzaken.
Het vinden van de juiste limiet is lastig. Een te strikte limiet stopt langdurige taken. Een te ruime limiet staat dure loops toe. We stellen onze limieten in op basis van de 95e percentiel van de taaklengtes.
Heb jij een betere manier om deze budgetten in te stellen? Laat het me weten in de reacties.
Optionele leercommunity: https://t.me/GyaanSetuAi