Verktygsanrop: designen som avgör om agenten fungerar
När en agent beter sig illa är det första teamet gör att skriva om prompten. Vår erfarenhet är att prompten sällan är den bindande begränsningen. Verktygsytan är det.
En modell som får ett tvetydigt verktyg med lösa argument kommer att missbruka det. Ett smalt verktyg med ett strikt schema och ett ärligt felmeddelande är svårt att använda fel.
Sex regler för verktygsdesign#
- Ett verktyg, en avsikt. `boka_mote` slår `kalender_atgard(typ, ...)`.
- Strikta scheman: uppräkningar i stället för fritext, obligatoriska fält faktiskt obligatoriska.
- Beskrivningen är en prompt: säg när verktyget ska användas och när det inte ska.
- Fel ska instruera: `kunden hittades inte; be om e-postadress` slår `500`.
- Returnera lite: de fält agenten behöver, inte hela objektet.
- Sidoeffekter tar en idempotensnyckel.
Vad kostnaden ser ut som#
| Design | Typiskt utfall |
|---|---|
| Ett brett verktyg med tolv valfria fält | Modellen gissar; hög felfrekvens |
| Fem smala verktyg med uppräkningar | Stabila argument; läsbara spår |
| Fel som stackspårning | Loopen försöker igen blint |
| Fel som instruktion | Loopen frågar användaren eller byter väg |
| Hela objektet returneras | Kontexten svämmar över, kostnad stiger |
Validera på serversidan, alltid#
Schemat vägleder modellen, det tvingar inte. Varje verktyg måste validera sina argument och kontrollera rättigheter för den verkliga slutanvändaren innan något händer.
Anta att argumenten kan komma från en angripare via ett dokument agenten läste.
Hur ni mäter förbättringen#
Räkna andelen giltiga verktygsanrop, andelen körningar som når mål utan mänsklig hjälp och medelantalet varv. En verktygssammanslagning som halverar antalet varv är oftast större vinst än ett modellbyte.
Vanliga frågor
Hur många verktyg klarar en agent?
I praktiken fem till åtta tydliga verktyg per agent.
Ska verktygsfel gå till modellen?
Ja, i kort och instruerande form — men logga det fulla felet på serversidan.
Hjälper strikta uppräkningar verkligen?
Mer än nästan allt annat. De tar bort hela klasser av ogiltiga argument.
verktygsanropfunktionsanrop llmverktygsdesign agentjson-schema verktygagentens träffsäkerhet