Claude AI agent bouwen op een VPS
Leer hoe u de Messages API en tool use combineert met MCP om een zelfgehoste AI agent te bouwen die draait op uw eigen VPS voor maximale controle.
Wat het bouwen van een agent met Claude betekent
Een agent bouwen met Claude betekent dat u Claude gebruikt als de kern voor redeneren, terwijl de loop, de tools en de data op uw eigen server draaien. Claude bepaalt wat er moet gebeuren; uw VPS voert het uit. U stuurt Claude de taak en de huidige status; Claude antwoordt met ofwel een antwoord, ofwel een verzoek om een van uw tools te gebruiken. Uw code voert de tool uit en stuurt het resultaat terug, waarna de loop doorgaat tot de taak is voltooid. De intelligentie is een service die u via het internet aanroept. Alles eromheen is van u.
Deze scheiding is de kracht. U krijgt redeneren op frontier-niveau zonder een model te hoeven beheren, en u behoudt volledige controle over wat de agent kan aanraken, omdat de tools draaien op hardware die u bezit. Als u al een eerste Claude-programma heeft gebouwd, behandelt de first Claude app on a VPS guide de basis waarop deze gids is gebouwd.
Claude is de hersenen: de Messages API
Elke aanroep naar Claude gaat via één endpoint: de Messages API. U stuurt het tot nu toe gevoerde gesprek en de lijst met tools die de agent mag gebruiken; Claude stuurt zijn volgende bericht terug. Dat bericht is ofwel een definitief antwoord, ofwel een verzoek om een tool aan te roepen. Voor de methode waarbij u alles zelf bouwt, is er geen aparte "agent API": toolgebruik is een functie van dit enkele endpoint, en de loop eromheen moet u zelf beheren.
Claude is stateless tussen aanroepen, wat betekent dat het uit zichzelf niets onthoudt. Elke aanvraag bevat het volledige gesprek. Uw code houdt de geschiedenis bij en stuurt deze bij elke beurt door, wat waarom elke beurt in een lange sessie meer tokens kost dan de vorige. Dit is geen beperking, maar een ontwerpkeuze: omdat de status op uw server staat, bepaalt u precies wat Claude ziet, en wordt er niets over de taak opgeslagen op een plek die u niet controleert.
Toolgebruik is de agent loop
De agent loop met Claude is eenvoudig te beschrijven. U stuurt een verzoek dat uw tools bevat. Claude leest de taak en, als er actie vereist is, antwoordt met een tool-use verzoek waarin een tool wordt benoemd en de inputs worden ingevuld. Uw code voert die tool uit en stuurt het resultaat vervolgens in de volgende aanvraag terug naar Claude. Claude leest het resultaat en vraagt ofwel om een andere tool, ofwel schrijft het definitieve antwoord. Wanneer het ophoudt met het vragen naar tools, is de taak voltooid.
U kunt deze loop handmatig schrijven in enkele regels code, en veel mensen doen dit omdat het eenvoudig te begrijpen en te controleren is. De officiële SDK's bieden ook een tool runner die de loop voor u aanstuurt: u levert de tool-functies aan en de SDK regelt het heen en weer sturen van het aanroepen van Claude, het uitvoeren van uw tools en het terugvoeren van de resultaten tot Claude klaar is. In beide gevallen is de structuur hetzelfde. De runner bespaart u enkel het handmatig schrijven van de loop.
Drie manieren om te bouwen, en welke geschikt zijn voor een VPS
Er zijn drie manieren om een Claude agent te bouwen, en ze verschillen in de hoeveelheid systemen die u moet draaien.
De eerste is uw eigen code die de Claude API aanroept met uw eigen tools. U schrijft de loop, of gebruikt de tool runner van de SDK, en u host het geheel op uw VPS. Dit is de meest gebruikelijke keuze, omdat het u volledige controle geeft over de tools, de data en de beveiliging, en het draait als een gewoon programma op uw server. De meeste onderdelen van deze gids gaan uit van dit pad.
De tweede is de Claude Agent SDK. Dit is Claude Code, de coding agent, verpakt als een bibliotheek waarop u kunt bouwen. Het levert een volledige agent loop en ingebouwde tools voor het lezen en schrijven van bestanden, het uitvoeren van shell-commando's en het zoeken, zodat u deze niet vanaf nul hoeft te assembleren. Het draait ook op uw eigen server, wat het zeer geschikt maakt voor een VPS wanneer u een krachtige file-and-shell agent wilt zonder zelf de infrastructuur te bouwen. Een agent die bestanden leest en shell-commando's uitvoert, heeft containment nodig voordat deze onbeheerd kan werken; running Claude Code safely on a server behandelt het permissiesysteem, de sandbox en de isolatie-opties.
De derde is Managed Agents, waarbij Anthropic de loop beheert en een sandbox host waarin de tools van de agent worden uitgevoerd. Dit is de hands-off optie: u heeft veel minder werk, maar de werkruimte van de agent staat op de infrastructuur van Anthropic in plaats van op uw VPS. Gebruik dit wanneer u de minste operationele werkzaamheden wilt en de tools niet op uw eigen machine hoeven te draaien. Voor de andere twee is uw server de thuisbasis van de agent, wat het onderwerp is van de rest van deze gids.
Tools verbinden met MCP
Welk pad u ook kiest, u zult de agent willen verbinden met echte systemen, en het Model Context Protocol is de nette manier om dit te doen. MCP is een open standaard voor het exposen van tools en data aan een agent. In plaats van voor elke service een integratie handmatig te schrijven, wijst u Claude naar een MCP-server die deze mogelijkheden al als tools presenteert. U kunt MCP-servers draaien als kleine services op dezelfde VPS, elk met alleen de benodigde toegang; ik behandel dit in running MCP servers on a VPS.
Een model kiezen
Claude is beschikbaar in verschillende modellen, en het kiezen van een model is een afweging tussen capaciteit, snelheid en kosten. Op het moment van schrijven zijn de gangbare keuzes Claude Opus 4.8 (claude-opus-4-8), de krachtige standaard voor complexe redenering en lange agent-runs; Claude Sonnet 5 (claude-sonnet-5), een gebalanceerde optie die goedkoper en sneller is terwijl het op veel taken dicht bij Opus blijft; en Claude Haiku 4.5 (claude-haiku-4-5), de snelste en goedkoopste, voor eenvoudige taken met een hoog volume. Daarboven staat Claude Fable 5 (claude-fable-5), het meest capabele model voor het meest veeleisende werk. Gebruik de exacte model-identifier in uw code, zonder een datum toe te voegen.
Een praktisch patroon is om ze te mixen. Laat een goedkoper model routineuze tool-aanroepen afhandelen en een sterker model de moeilijke beslissingen nemen. Omdat het model slechts een string is in uw aanvraag, is wisselen een wijziging van één regel; begin daarom met een capabel standaardmodel en schaal af naar beneden waar snelheid of kosten belangrijker zijn dan de laatste beetje kwaliteit.
Draai het als een hardened service op uw VPS
Een agent is alleen nuttig als deze blijft draaien, en alleen veilig als deze geisoleerd is. Op een VPS komt dit beide voort uit het draaien van de agent als een hardened system service in plaats van een programma dat u handmatig in een terminal bent gestart. Als service start het bij het opstarten van het systeem, start het opnieuw als het crasht en logt het naar de journal. Gehard (hardened) draait het als een onbevoegde gebruiker met alleen de benodigde toegang, zodat een bug of een foutieve instructie beperkt blijft.
De allerbelangrijkste regel is om uw Claude API-key server-side te houden. De sleutel betaalt voor en autoriseert elke aanroep, dus deze hoort in een bestand dat alleen leesbaar is voor de gebruiker van de agent, geladen te worden in de service als een environment variable, en mag nooit in code, in een repository of ergens staan waar een browser bij kan. Genereer hier een volledige, hardened service unit voor uw agent:
Maak vervolgens de server zelf af. Gebruik voor SSH alleen keys en beperk het account waarmee u beheert, zoals in SSH hardening on a VPS. Als u de agent liever vanuit een interactieve sessie bestuurt terwijl u deze bouwt, dan is running Claude Code on a VPS with tmux een goede aanvulling. En als u de concepten achter dit alles wilt begrijpen, zonder ze aan één model te koppelen, legt de begeleidende gids over building your own AI agent on a VPS de fundamenten uit.
Als u een terminal coding assistant wilt, behandelt running a coding AI agent on a VPS Aider en Goose.
FAQ
Welk Claude model moet ik gebruiken om een agent te bouwen?
Begin met Claude Opus 4.8 (claude-opus-4-8), de krachtige standaard, en pas vanaf daar aan. Claude Sonnet 5 (claude-sonnet-5) is goedkoper en sneller voor de meeste taken, Claude Haiku 4.5 (claude-haiku-4-5) is het best voor eenvoudige taken met een hoog volume, en Claude Fable 5 (claude-fable-5) is het meest capabel voor de moeilijkste taken. Een veelgebruikt patroon is om een goedkoper model te gebruiken voor routineuze stappen en een sterker model voor de moeilijke beslissingen, aangezien wisselen een wijziging van één regel is.
Draai ik de hele agent op mijn VPS, of doet Anthropic dat?
Dat hangt af van de aanpak. Als u uw eigen loop schrijft tegen de Claude API, of de Claude Agent SDK gebruikt, draait de agent volledig op uw VPS en gaan alleen de model-aanroepen naar Anthropic. Als u Managed Agents gebruikt, beheert Anthropic de loop en host zij de sandbox waar de tools worden uitgevoerd, waardoor er minder op uw server draait. Voor een agent die op uw eigen machine draait, gebruikt u een van de eerste twee opties.
Wat is het verschil tussen de Claude API en de Claude Agent SDK?
De Claude API is het ruwe Messages endpoint: u stuurt een gesprek en tools, en u schrijft de agent loop eromheen, of u gebruikt de tool runner van de SDK om deze aan te sturen. De Claude Agent SDK is een bibliotheek op een hoger niveau, Claude Code verpakt voor ontwikkeling, die een volledige loop en ingebouwde file, shell en search tools levert. Gebruik de API wanneer u alles zelf wilt definiëren, en de Agent SDK wanneer u een capabele agent wilt zonder zelf de infrastructuur te assembleren.
Hoe houd ik mijn Claude API-key veilig op een server?
Houd deze server-side en buiten uw code. Sla deze op in een bestand dat alleen leesbaar is voor het account waaronder de agent draait, laad deze in de service als een environment variable, en commit deze nooit naar een repository of expose deze aan een browser. Omdat elke aanvraag naar Claude vanaf uw server komt, hoeft de sleutel nooit een apparaat van een gebruiker te bereiken, wat een op een server draaiende agent eenvoudiger te beveiligen maakt dan een agent die in een client-app is ingebed.
Moet ik een model zelf hosten om een agent met Claude te bouwen?
Nee. Bij Claude is het model een gehoste service die u via de API aanroept, dus er hoeft niets op een GPU te draaien. Uw VPS draait de agent loop, de tools en de data, en het redeneren vindt plaats aan de zijde van Anthropic. Dat is wat een bescheiden server in staat stelt een capabele agent te draaien. Als u in plaats daarvan een volledig lokaal model wilt, is dat het self-hosted pad dat wordt behandeld in de begeleidende gids over het bouwen van uw eigen AI agent.