Inderdaad, Manus is erg slim, ze hebben de tools verdeeld in 3 lagen: Laag 1: Functieaanroep (Function Calling) Dit is de meest basale laag, die slechts een kleine groep vaste, atomische functies behoudt, zoals: bestanden lezen en schrijven, Shell-opdrachten uitvoeren, bestanden doorzoeken, enz. In de systeemprompt van de LLM is er alleen deze laag van tooldefinities, relatief weinig, minder dan 15, de invoer- en uitvoerformaten zijn heel duidelijk, moeilijk om fouten te maken, maar er zijn twee tools die heel speciaal zijn, één is Shell, de andere is File. Laag 2: Sandbox-tools (Sandbox Utilities) Elke Manus-sessie draait in een volledige virtuele machine-sandbox. Dit is wat in de oorspronkelijke tweet werd genoemd, de virtuele machine is vooraf geïnstalleerd met veel commandoregeltools, zoals formatteringsconverters, spraakherkenningstools, zelfs een mcp-commandoregelclient. Deze tools worden allemaal aangeroepen via de Shell die in Laag 1 is gedefinieerd, dat zijn de commandoregeltools, commandoregeloproepen. Maar hoe weet het model met zoveel tools dat? Manus vertelt het de LLM direct in de systeemprompt, dat er in een specifieke map veel vooraf geïnstalleerde commandoregeltools zijn. Voor de meest gebruikte tools worden hun namen direct opgesomd. Voor minder vaak gebruikte tools kan de LLM eenvoudig alle commandoregeltools opsommen met de in de oorspronkelijke tweet genoemde opdracht, en de --help-parameter gebruiken om de gebruiksaanwijzing van een bepaalde tool te bekijken, omdat al deze tools door hen zelf zijn ontwikkeld, met een uniforme indeling. Laag 3: Codepakketten en API's (Packages and APIs) Deze laag is eigenlijk dat de LLM in realtime Python-code schrijft om complexere functies te realiseren. Bijvoorbeeld, als een gebruiker gegevens van een bepaalde API wil opvragen, kan hij eenvoudig een functie in Python schrijven om de API-gegevens op te halen en deze om te zetten in het benodigde formaat. Eigenlijk wordt in Codex al veel gebruik gemaakt van Python-code als tool. Aangezien complexe berekeningen door code worden uitgevoerd, worden de resultaten van de kennisberekeningen teruggegeven aan de Hoofd Agent, waardoor de context van de Hoofd Agent niet wordt belast. Het voordeel van dit ontwerp met 3 lagen is dat, vanuit het perspectief van het model, de tools die het nodig heeft vast zijn, namelijk de tien of meer van Laag 1, terwijl het via de commandoregel en code talloze toolcombinaties kan afleiden. Een ander punt is dat ik in een eerdere tweet het had over sub-agenten, Manus maakt ook veel gebruik van het model "agent als tool". Sub-agenten worden als tools gebruikt, bijvoorbeeld een sub-agent die verantwoordelijk is voor het ophalen van informatie, maar deze sub-agent wordt door de Hoofd Agent als een tool gezien. Dit kan ook goed helpen om de context te verminderen.