Een toolaanroep kan perfect valide gestructureerde gegevens zijn en toch de verkeerde operatie beschrijven. Een datum kan het juiste formaat hebben maar de verkeerde tijdzone. Een klantnaam kan overeenkomen met meerdere personen. Een lege zoekresultaat kan betekenen dat er geen overeenkomende records zijn, of het kan betekenen dat de zoekopdracht is mislukt.
Wanneer ik een agentgerichte tool ontwerp, beschouw ik die onderscheidingen als onderdeel van het contract. Het model moet weten wat de invoer betekent, welke bewijs het resultaat levert en welke onzekerheid na de oproep overblijft.
Gebruik identificatoren met een expliciete betekenis
Stel dat een assistent “controleer de bestelling voor Alex” ontvangt. Een tool die alleen een vrij tekstveld voor klanten accepteert, moedigt aan om ambiguïteit naar de backend te duwen. Een betere interactie lost eerst de kandidaat-accounts op en geeft vervolgens een stabiele identifier door voor de bestellingzoekopdracht.
Als er meerdere kandidaten overblijven, moet het resultaat die ambiguïteit blootleggen zonder stilzwijgend de eerste te selecteren. Een hulpmiddelbeschrijving kan de bedoelde volgorde uitleggen, maar de backend moet nog steeds een identificatie buiten de reikwijdte van het geauthenticeerde account afwijzen.
Die laatste controle is noodzakelijk, zelfs wanneer het model de gedocumenteerde volgorde heeft gevolgd. Instructies leggen het juiste gebruik uit; uitvoeringsregels bepalen wat de applicatie daadwerkelijk toestaat.
Document ontbrekend, lege en onbekende waarden
Een weggelaten filter, een leeg filter en een filter ingesteld op “onbekend” kunnen verschillende zakelijke betekenissen hebben. Bijvoorbeeld, het weglaten van een datumbereik kan een standaardvenster gebruiken, terwijl een leeg bereik ongeldig kan zijn. Het impliciet laten van het onderscheid dwingt het model om te raden.
Ik geef de voorkeur aan contracten die standaardinstellingen en limieten expliciet vermelden. Een zoekresultaat moet rapporteren of het compleet is, of er meer pagina’s bestaan en of er bronnen zijn aangevraagd die niet konden worden opgevraagd. “Geen resultaten” moet gereserveerd zijn voor een zoekopdracht die daadwerkelijk binnen de aangegeven reikwijdte is voltooid.
De klantenondersteuningscontext van Conviro, het platform dat ik bouw, maakt dit bijzonder concreet. Een assistent moet in staat zijn om onbeschikbare informatie te onderscheiden van bewijs dat een gebeurtenis nooit heeft plaatsgevonden. Dat zijn verschillende antwoorden voor een klant.
Retourneer fouten die de volgende beslissing ondersteunen
Een nuttige fout maakt onderscheid tussen een ongeldige aanvraag, een tijdelijk serviceprobleem, een toegang weigering en een ambigu resultaat. Elk zou moeten leiden tot een andere actie. Opnieuw proberen kan een toestemmingsfout niet verhelpen, en de klant vragen om het opnieuw te formuleren kan een onbeschikbare service niet herstellen.
Voor een lookup zou ik uitkomsten definiëren zoals found, not_found, ambiguous en unavailable, naast een resultaatversie. De namen zijn illustratief. Het belangrijkste punt is dat de aanroeper de volgende beslissing kan nemen zonder succes uit proza af te leiden.
Gedetailleerde diagnostiek kan beschikbaar blijven voor een operator zonder inloggegevens, interne queries of privégegevens aan het model bloot te stellen. Een uitvoerbare fout hoeft niet elke implementatiedetail te bevatten.
Beschrijf effecten afzonderlijk van voorstellen
Een tool genaamd “update order” verbergt meer onzekerheid dan “propose delivery-address change.” Als een tool van staat verandert, moet het contract de doelstelling, de voorwaarden en het resultaat vermelden dat de acceptatie bevestigt. Een gegenereerde preview mag nooit lijken op bewijs dat de update al heeft plaatsgevonden.
Ik bespreek die uitvoeringsgrens verder in het scheiden van de aanbeveling van een agent van de bijwerkingen. Nauwkeurige naamgeving is nuttig, maar het onderscheid moet de hele aanvraag en reactie overleven.
Versie het contract naarmate het systeem groeit
Het wijzigen van een standaard of de betekenis van een resultaatveld kan een agent breken, zelfs wanneer de invoer nog steeds geldig is. Ik zou representatieve oproepen en verwachte interpretaties behouden, inclusief ambiguïteiten en onvolledige zoekopdrachten, als contractvoorbeelden.
Toolbeschrijvingen, schema’s en runtime-validatie moeten dezelfde operatie beschrijven. Wanneer een tool een nieuw soort werk ondersteunt, herzie de workflow die beslist wanneer deze wordt aangeroepen. Goede contracten verminderen het giswerk aan beide zijden van de modelgrens en maken onjuiste aanroepen gemakkelijker te identificeren.
Bijgewerkt op 30 september 2026.