Manus er faktisk smart, og de har delt verktøyet inn i 3 lag: Lag 1: Funksjon som kaller Dette er det mest grunnleggende laget, som bare beholder et lite antall faste, forstøvede funksjoner, som å lese og skrive filer, utføre skallkommandoer, søke etter filer, etc. I LLM-systemmeldingen er det bare dette laget med verktøydefinisjoner, som er relativt få, innen 15, og inngangs- og utdataformatene er veldig klare og ikke enkle å gjøre feil, men det er to spesialverktøy i den, det ene er Shell og det andre er File. Nivå 2: Sandkasseverktøy Hver Manus-økt kjører i en full sandkasse for virtuelle maskiner. Som nevnt i den originale tweeten, kommer den virtuelle maskinen forhåndsinstallert med mange kommandolinjeverktøy, for eksempel formatomformere, talegjenkjenningsverktøy og til og med en MCP-kommandolinjeklient. Disse verktøyene kalles deretter gjennom skallet definert i lag 1, som er kommandolinjeverktøyet, kommandolinjekallet. Men hvordan vet så mange verktøymodeller? Manus forteller LLM direkte i systemmeldingen at det er mange forhåndsinstallerte kommandolinjeverktøy i en bestemt mappe. For de mest brukte verktøyene, oppgi dem direkte etter navn. For de som ikke er ofte brukt, kan LLM-er direkte liste opp alle kommandolinjeverktøy gjennom kommandoene nevnt i den opprinnelige pushen, og bruke --help-parameteren for å se bruken av noen av dem, fordi alle er utviklet av seg selv og har et enhetlig format. Lag 3: Pakker og APIer Dette laget er faktisk LLM som skriver Python-kode i sanntid, og mer komplekse funksjoner implementeres gjennom koden. For eksempel, hvis en bruker ønsker å spørre etter dataene til en API, kan de skrive en funksjon direkte i Python for å hente API-ens data og analysere dem til det nødvendige formatet. Faktisk, i Codex, har bruk av Python-kode som verktøy blitt brukt mye. Siden komplekse operasjoner utføres ved hjelp av kode, opptar ikke resultatene av kunnskapsberegningene som returneres til hovedagenten, konteksten til hovedagenten. Fordelen med denne trelagsdesignen er at fra et modellperspektiv er verktøyene den trenger å kalle festet til et dusin eller så av det første laget, og ved hjelp av kommandolinjen og koden kan den utlede utallige verktøykombinasjoner. Et annet poeng er underagenten jeg nevnte i min forrige tweet, Manus bruker også mye "agent som verktøy"-modell. Bruk en underagent som et verktøy, for eksempel er underagenten som er ansvarlig for gjenfinning en underagent, men denne underagenten er et verktøy i hovedagentens øyne. Samtidig kan det også spille en god rolle i å redusere konteksten.