For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /nl/docs/web/agents.md (or send Accept: text/markdown).
Bouwen met een codeeragent
Geef taken aan een codeeragent: de bestanden die hij leest, de plakklare promptbibliotheek, onbeheerde installatie en de review waarmee u de controle houdt.
Walkthrough voor beginners
Vereisten: lees de twee beginnershandleidingen hieronder, voltooi de lokale webinstallatie en open deze repository op rootniveau in uw editor. Een codeeragent is een AI-tool — Cursor, Claude Code, Devin of een vergelijkbare assistent — die uw project leest, bestanden bewerkt en opdrachten uitvoert. Alles op deze pagina geldt voor welke u ook gebruikt.
Snelle begrippen: een prompt is de instructietekst die u in de agent plakt. Een diff is de lijst met bestandswijzigingen die hij voorstelt. De root van de repository is de bovenste map met package.json — de agent moet daar altijd beginnen.
1. Open de map prompts/ in de root van de repository en kopieer de prompt die het dichtst bij uw taak ligt. new-landing-page.md is een goede eerste poging.
2. Plak hem in uw agent en vul de <placeholders> in: de route die u wilt, wat de pagina of het scherm moet doen, wie het mag gebruiken en hoe succes eruitziet. Voeg daarna één regel toe: lees llms.txt, daarna AGENTS.md, daarna .ai/PROJECT_CONTEXT.md voordat u code aanraakt.
3. Laat de agent de bestanden opsommen die hij gaat wijzigen en de controles die hij gaat uitvoeren voordat hij bewerkt. Bekijk de diff wanneer hij klaar is — u keurt echte wijzigingen aan uw product goed.
4. Publiceren, deployen en betaalde providercalls horen nooit deel uit te maken van een taakprompt. Houd ze als aparte stappen die u expliciet goedkeurt.
De bestanden die uw agent leest
De repository levert een kleine stapel bestanden die voor agenten zijn geschreven, niet alleen voor mensen. U plakt deze context nooit met de hand — wijs de agent naar llms.txt en hij leest de rest zelf.
De leesvolgorde doet ertoe: llms.txt is de kaart, AGENTS.md bepaalt de grenzen en .ai/PROJECT_CONTEXT.md draagt mee wat eerdere sessies hebben geleerd. Een agent die de grenzen overslaat, produceert code die u niet kunt shippen.
| Bestand | Wat het de agent oplevert |
|---|---|
| `llms.txt` | De ingangskaart van de repository — elke doc die het lezen waard is plus de beveiligingsprotocollen, in leesvolgorde |
| `AGENTS.md` | De niet-onderhandelbare grenzen: alleen lokaal werk totdat u meer goedkeurt, workspaceId-afbakening, geheimen alleen op de server |
| `.ai/PROJECT_CONTEXT.md` | Geheugen tussen sessies — wat er onlangs is veranderd en waarom; lezen vóór codewijzigingen |
| `.ai/`-mirrordocs | Een bijpassende `.ai/<path>.md`-notitie naast belangrijke bestanden, met beslissingen en open punten per bestand |
| `docs/agent-setup.md` | Het onbeheerde runbook — installatie-, migratie- en uitrolfasen met na elke fase een verificatiepunt |
| `prompts/` | Plakklare taakprompts voor de klussen waar eigenaren het vaakst om vragen |
| `docs/agent-security.md` | De acceptatiechecklist — authenticatie-, werkruimte- en RLS-controles, gemaskeerde logs, bewijs van de uitrol |
| `.env.example` | De volledige omgevingsinventaris — de agent verzint nooit een variabelenaam die niet in dit bestand staat |
De promptbibliotheek
prompts/README.md is de index. Elk bestand is een complete briefing: plak het, vul de <placeholders> in en de regels van de kit — design tokens boven hardcoded kleuren, kitblokken boven verzonnen patronen — reizen mee.
Voor het pad van nul naar draaiend plakt u in plaats daarvan prompts/agent-setup.md — dat stuurt de hierna beschreven onbeheerde installatie aan.
agent-setup.md— zet de kit overeind en rol hem uit met een agentpick-a-style.md— pas een ontwerpstijl toe op het hele productnew-landing-page.md— bouw een marketingpagina uit kitblokkennew-app-screen.md— voeg een scherm toe binnen de workspace-app-shellrestyle-product.md— herstijl een bestaande pagina naar kit-tokensui-audit.md— voer de visuele en toegankelijkheidsaudit uit op een route
De agent laten installeren en deployen
De kit kan zichzelf grotendeels inrichten. Het plakken van prompts/agent-setup.md laat de agent docs/agent-setup.md — het meegeleverde runbook — fase voor fase uitvoeren: preflight-controles, omgevingsbestanden, installatie, databasestart, migraties, app-start en optioneel een VPS-deploy. Na elke fase voert hij het verificatiepunt van die fase uit en rapporteert echte uitvoer, geen bewering.
Twee helpers houden dat veilig. scripts/setup-env.mjs bootstrapt de env-bestanden vanuit .env.example: het maakt alleen ontbrekende bestanden aan, genereert alleen ontbrekende of placeholder-geheimen en de --check-modus valideert zonder te schrijven. docker-compose.dev.yml is een volledig gecontaineriseerde ontwikkelomgeving — Postgres plus een Node 22-devcontainer — dus de agent heeft geen Node.js op uw computer nodig.
Welke repository u heeft ontvangen, doet hier ertoe. De webrepository en de All Platforms-monorepo leveren het runbook, de compose-bestanden, scripts/setup-env.mjs en prompts/ mee. De op zichzelf staande mobiele en desktoprepositories leveren een toegespitste llms.txt, AGENTS.md, de .ai/-mirrordocs en een uitgekiende set docs waaronder docs/agent-security.md — maar niet het installatierunbook of de compose-bestanden, omdat de backend waar die apps mee praten in de webrepository leeft.
Hoe de agent tussen sessies onthoudt
Agenten hebben geen geheugen tussen sessies — de .ai/-map ís het geheugen. .ai/PROJECT_CONTEXT.md legt vast wat er onlangs is veranderd en waarom. Daarnaast legt een mirrordoc zoals .ai/apps/web/src/reports.md de beslissingen achter apps/web/src/reports.ts uit die uit de code alleen niet blijken.
Het contract is eenvoudig: lees de mirror van een bestand voordat u het bewerkt en werk de mirror bij wanneer de wijziging landt. Open Threads-vermeldingen houden onafgemaakt werk vast, zodat de volgende sessie verdergaat in plaats van opnieuw te beginnen. Een verouderde mirror is erger dan geen — controleer bij het beoordelen van de diff van de agent of de mirrors van gewijzigde bestanden zijn meeveranderd.
Het eigen agentoppervlak van de draaiende app
Uw uitgerolde product beantwoordt ook agenten — deze endpoints bestaan op de draaiende app, niet alleen in de repository.
GET /llms.txt— de app serveert zijn eigen llmstxt.org-index: de gidsen, openbare pagina's en openbare endpoints, met absolute URL's.POST /api/mcp— een stateless MCP-endpoint dat de tools van de app blootstelt. Het accepteertsk_-API-sleutels alleen als bearer-tokens — browsersessies met cookies gelden nooit. Maak sleutels aan onder Settings → Developers.GET /api/v1/openapi— de OpenAPI-specificatie van de openbare REST API, voor clientgeneratoren en agenttools.GET /api/health— de liveness- en dependency-probe die loadbalancers en uptimechecks aanroepen; hij rapporteert providerconfiguratietypen, nooit geheimen./status— een voor mensen leesbare pagina die de gezondheid van elk subsysteem rapporteert.
Beoordeel het werk van de agent eerlijk
Een afgeronde taak is bewijs, geen samenvatting. Voordat u het werk van de agent houdt, controleert u het zoals docs/agent-security.md een deployment controleert:
Als er iets mis is, stuur de diff dan terug — de agent repareert zijn eigen werk het snelst wanneer u de falende controle benoemt. Voor alles wat hij nooit alleen had mogen proberen, zegt u dat eenmalig expliciet; die grens geldt voor de rest van de sessie.
- Hij heeft de tests gedraaid die hij claimt — vraag om het commando en de uitvoer ervan, geen conclusie.
- Geheimen bleven alleen op de server — niets nieuws draagt een
NEXT_PUBLIC_- ofEXPO_PUBLIC_-voorvoegsel en er werd geen sleutel in een rapport of commit afgedrukt. - Elke lees- en schrijfbewerking van gebruikerseigen data bleef afgebakend op
workspaceId— geen query vertrouwt een id die door de browser is gestuurd. - De
.ai/-mirror van elk gewijzigd bestand is met de code meeveranderd. - Publiceren, deployen en betaalde providercalls bleven aparte stappen die u goedkeurde — de agent heeft nooit zelf gemerged, gepusht of gedeployed.
- Als een stap twee keer faalde, stopte hij en rapporteerde het falende commando in plaats van eromheen te improviseren.