{"id":3443013,"date":"2026-09-01T10:26:28","date_gmt":"2026-09-01T08:26:28","guid":{"rendered":"https:\/\/datanorth.ai\/?p=3443013"},"modified":"2026-09-01T10:28:03","modified_gmt":"2026-09-01T08:28:03","slug":"wat-is-harness-engineering","status":"publish","type":"post","link":"https:\/\/datanorth.ai\/nl\/blog\/wat-is-harness-engineering","title":{"rendered":"Harness engineering: De complete gids voor AI agent scaffolding"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Harness engineering<\/strong> is de discipline die de software rond een taalmodel ontwerpt en het daarmee omzet in een werkende agent. Die laag dekt vier gebieden af: <strong>context delivery<\/strong>, <strong>tool interfaces<\/strong>, <strong>geheugen<\/strong> en <strong>sandboxes<\/strong>. Het model levert het redeneren. De harness bepaalt wat het model ziet, wat het mag doen, wat het onthoudt en waar het draait.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Waarom de harness even belangrijk is als het model<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Jarenlang draaide de discussie in de AI-sector vooral om de vraag welk model het slimst is. Maar op de leaderboards van begin 2026 bleek de harness, de softwarelaag rondom het model, minstens zoveel invloed op de score te hebben als het model zelf.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De eerste vergelijking houdt het model gelijk en varieert de harness. Op het <a href=\"https:\/\/www.tbench.ai\/leaderboard\/terminal-bench\/2.0\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Terminal-Bench 2.0-leaderboard<\/a> behaalde Claude Opus 4.6 scores tussen 58,0% en 74,7% met zeven verschillende harnesses. Alle inzendingen dateren van 5 tot en met 23 februari 2026. De hoogste score, 74,7%, werd behaald met Terminus-KIRA van KRAFTON AI. De betrouwbaarheidsintervallen liggen rond plus of min 2,5 tot 2,9 procentpunt. Een verschil van 16,7 procentpunt is dus niet simpelweg ruis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De tweede vergelijking draait het om: de harness blijft gelijk en het model varieert. Op het bash-only leaderboard van <a href=\"https:\/\/www.swebench.com\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">SWE-bench Verified<\/a> draaiden negen frontiermodellen op exact dezelfde mini-swe-agent-scaffold, met een vergelijkbare hoeveelheid redeneerinspanning. Alle resultaten werden op 17 februari 2026 ingediend. De scores liepen uiteen van 66,6% tot 76,8%, een verschil van slechts 10,2 procentpunt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Daar horen wel twee belangrijke kanttekeningen bij. Op het nieuwere Terminal-Bench 2.1-leaderboard krimpt het verschil tussen harnesses tot 0,2 \u00e0 8,1 procentpunt wanneer redeneerinspanning en indieningsdata gelijk worden gehouden. Het lijkt er dus op dat de verschillen kleiner worden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Daarnaast ontstaat er een risico wanneer een harness specifiek op \u00e9\u00e9n model wordt afgestemd. Dan kun je ongemerkt gaan optimaliseren voor de benchmark zelf, oftewel hill-climbing op de evaluatie. Dat is een re\u00ebel probleem wanneer een leaderboard wordt gezien als hard bewijs voor de kwaliteit van een model.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">De anatomie van een agent harness<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Een agent harness is<\/strong> de softwarelaag rondom een model die ervoor zorgt dat het als agent kan functioneren. <a href=\"https:\/\/claude.com\/blog\/harnessing-claudes-intelligence\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Anthropic omschrijft het<\/a> als &#8220;de loop, tools, het contextbeheer en de guardrails die ruwe intelligentie omzetten in een werkende agent&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">METR noemde dit in <a href=\"https:\/\/metr.org\/blog\/2023-08-01-new-report\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">2023<\/a> al <strong>scaffolding<\/strong>: scaffolding plus een model vormt samen een agent. Vier onderdelen doen daarbij het grootste deel van het werk.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full has-custom-border\"><img decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/08\/de-structuur-van-een-ai-agent-harness.png\" alt=\"De structuur van een AI Agent Harness\" class=\"wp-image-3443006\" style=\"border-top-left-radius:10px;border-top-right-radius:10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px\" srcset=\"https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/08\/de-structuur-van-een-ai-agent-harness.png 1024w, https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/08\/de-structuur-van-een-ai-agent-harness-300x142.png 300w, https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/08\/de-structuur-van-een-ai-agent-harness-768x365.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em><em>Een agent harness legt tool dispatch, geheugen, een sandbox en guardrails om het model heen en draait ze in een loop.<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Tool dispatch en MCP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Tool dispatch<\/strong> is het mechanisme dat een verzoek van een model omzet in een echte actie. Het model geeft aan welke tool het wil gebruiken, de harness voert die tool uit en stuurt het resultaat terug. Die cyclus herhaalt zich totdat het model geen nieuwe toolaanroepen meer doet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het <strong><a href=\"https:\/\/datanorth.ai\/nl\/blog\/model-context-protocol-mcp-wat-is-het-en-waarom-is-het-belangrijk\" data-type=\"link\" data-id=\"https:\/\/datanorth.ai\/nl\/blog\/model-context-protocol-mcp-wat-is-het-en-waarom-is-het-belangrijk\" target=\"_blank\" rel=\"noopener\">Model Context Protocol<\/a><\/strong> standaardiseert hoe een agent toegang krijgt tot zulke tools. MCP omschrijft zichzelf als &#8220;een open-sourcestandaard voor het verbinden van AI-applicaties met externe systemen&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anthropic ontwikkelde MCP en droeg het in december 2025 over aan de Agentic AI Foundation. In de MCP-specificatie staat bovendien expliciet dat tools &#8220;willekeurige code kunnen uitvoeren&#8221;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Geheugen en state persistence<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>State persistence<\/strong> zorgt ervoor dat een agent informatie kan behouden buiten de grenzen van zijn eigen contextvenster. De gebruikelijke oplossing is <strong>context compaction<\/strong>: zodra het contextvenster vol begint te raken, worden eerdere berichten samengevat. De Claude Agent SDK werkt bijvoorbeeld op die manier.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compaction gaat altijd gepaard met informatieverlies. Anthropic zegt daar zelf over: <a href=\"https:\/\/www.anthropic.com\/engineering\/harness-design-long-running-apps\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">&#8220;Hoewel compaction de continu\u00efteit bewaart, krijgt de agent daarmee geen volledig schone lei.&#8221;<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Informatie die echt bewaard moet blijven, hoort daarom buiten de gesprekshistorie te staan. Claude Code voegt projectgeheugenbestanden na compaction opnieuw toe aan de context. LangGraph maakt daarnaast onderscheid tussen kortetermijngeheugen via checkpointers en langetermijngeheugen via stores.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ge\u00efsoleerde sandboxes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Een sandbox is de grens tussen een fout en een incident.<\/strong> De ingebouwde sandbox van Claude Code gebruikt op macOS Seatbelt en op Linux en WSL2 een combinatie van bubblewrap en socat. Standaard mag een commando alleen schrijven naar de werkmap en de tijdelijke map van de sessie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/developers.openai.com\/codex\/agent-approvals-security\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">OpenAI Codex<\/a> biedt drie toegangsmodi: read-only, workspace-write en danger-full-access. Netwerktoegang staat standaard uit. Daarbij geldt \u00e9\u00e9n basisregel: &#8220;deny heeft altijd voorrang op allow&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voor zwaardere isolatie kun je nog een stap verder gaan, bijvoorbeeld met microVM&#8217;s zoals Firecracker. E2B stelt dat zijn sandboxes binnen dezelfde regio &#8220;in minder dan 200 ms opstarten&#8221;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Guardrails en permissies<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Guardrails bepalen wat een agent mag proberen, terwijl isolatie bepaalt waar die actie vervolgens bij kan.<\/strong> <a href=\"https:\/\/code.claude.com\/docs\/en\/permission-modes\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Anthropic maakt dat onderscheid helder<\/a>: &#8220;Permission modes bepalen of een toolaanroep wordt uitgevoerd en of je daarvoor eerst toestemming moet geven. Isolation beperkt waar een commando toegang toe heeft zodra het draait.&#8221;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Claude Code ordent zijn permission modes van Manual tot bypassPermissions, met acceptEdits, plan, auto en dontAsk daartussen. Deny-regels blijven in al deze modi van kracht.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De OpenAI Agents SDK voegt daar guardrails voor input, output en tools aan toe. Elk van die guardrails kan een tripwire activeren en de uitvoering direct stoppen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voor Nederlandse en Europese organisaties wordt governance hier concreet. De EU AI Act vereist menselijk toezicht bij hoog-risico AI-systemen, en die eis krijgt pas betekenis als een permissiemodus om goedkeuring vraagt. Scoped credentials en sandboxes bepalen welke persoonsgegevens een agent kan bereiken, waarmee de AVG een technische instelling wordt in plaats van een beleidsparagraaf.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Harness engineering vs prompt engineering<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Het belangrijkste verschil zit in de reikwijdte. <strong>Prompt engineering<\/strong> stuurt \u00e9\u00e9n interactie met een model. <strong>Harness engineering<\/strong> bepaalt hoe het systeem rondom dat model zich gedurende een volledige taak gedraagt.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Aspect<\/th><th>Prompt Engineering<\/th><th>Harness Engineering<\/th><\/tr><\/thead><tbody><tr><td>Focus<\/td><td>Hoe je met het model praat<\/td><td>Het systeem rond het model<\/td><\/tr><tr><td>Belangrijkste output<\/td><td>Tekstgeneratie<\/td><td>Meerstapsacties en state management<\/td><\/tr><tr><td>Scope<\/td><td>E\u00e9n cyclus van input en output<\/td><td>Langlopende uitvoering van taken<\/td><\/tr><tr><td>Vaardigheden<\/td><td>Taalgevoel en contextformulering<\/td><td>Software engineering en systeemarchitectuur<\/td><\/tr><tr><td>Faalwijze<\/td><td>Een slecht antwoord<\/td><td>Een run die afdwaalt, stil faalt of schade aanricht<\/td><\/tr><tr><td>Eenheid van iteratie<\/td><td>Een herschreven prompt<\/td><td>Een aangepaste tool, check of grens<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><a href=\"https:\/\/datanorth.ai\/nl\/blog\/context-engineering-wat-is-het-en-waarom-is-het-belangrijk\" data-type=\"link\" data-id=\"https:\/\/datanorth.ai\/nl\/blog\/context-engineering-wat-is-het-en-waarom-is-het-belangrijk\" target=\"_blank\" rel=\"noopener\">Context engineering<\/a><\/strong> zit tussen prompt engineering en harness engineering in. Anthropic definieert het als &#8220;de verzameling strategie\u00ebn voor het selecteren en onderhouden van de optimale set tokens (informatie) tijdens LLM-inference&#8221;. Dat is \u00e9\u00e9n van de taken van de harness. En omdat iedere token kosten met zich meebrengt, is context engineering ook een budgetkeuze.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De drie disciplines vervangen elkaar niet. Een harness bevat prompts, en een slechte systeemprompt kan een goede agent alsnog laten falen. Maar wanneer een agent vastloopt op echt werk, ligt de oorzaak vaak in de structuur eromheen: een onbruikbare foutmelding van een tool, een contextvenster vol ruis of een ontbrekende controle.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een vergelijking uit de klassieke cybernetica maakt dit onderscheid duidelijk. De harness werkt als een <strong>regelaar<\/strong>: het mechanisme dat een krachtige motor binnen veilige en bruikbare grenzen houdt.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Waarom scaffolding uitmaakt voor coding agents<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Coding agents zijn het terrein waarop <strong>harness engineering<\/strong> geen optie meer bleek, maar een noodzaak. <a href=\"https:\/\/openai.com\/index\/harness-engineering\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">OpenAI beschrijft de invoering van Codex<\/a> daar vrij duidelijk over: &#8220;In het begin ging de vooruitgang langzamer dan we hadden verwacht. Niet omdat Codex het niet aankon, maar omdat de omgeving onvoldoende was gespecificeerd.&#8221;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Hoe harness engineering een codebase reguleert<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Een coding agent heeft meer nodig dan alleen een taak. De agent moet ook begrijpen hoe de repository in elkaar zit. Planning artifacts spelen daarin een belangrijke rol. OpenAI droeg AGENTS.md bij aan de Agentic AI Foundation en Claude Code leest CLAUDE.md, waarbij Anthropic adviseert om dat bestand onder de 200 regels te houden. Anthropic documenteert daarnaast gestructureerde artifacts waarmee context tussen sessies kan worden overgedragen, zodat een nieuw contextvenster kan beginnen vanuit een vastgelegd plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Het is belangrijk om te weten waar de grens van zulke artifacts ligt. Anthropic merkt op dat regels in settings daadwerkelijk door de client worden afgedwongen, terwijl CLAUDE.md vooral het gedrag stuurt zonder harde handhaving. Onze <a href=\"https:\/\/datanorth.ai\/nl\/blog\/claude-code-de-complete-gids-voor-ai-geassisteerde-softwareontwikkeling\" data-type=\"link\" data-id=\"https:\/\/datanorth.ai\/nl\/blog\/claude-code-de-complete-gids-voor-ai-geassisteerde-softwareontwikkeling\" target=\"_blank\" rel=\"noopener\">Claude Code-guide<\/a> laat zien hoe je dit in de praktijk opzet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Feedbackloops en herstelpaden<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ieder onderdeel van een harness werkt grofweg als een <strong>guide<\/strong> of een <strong>sensor<\/strong>. Guides sturen de agent voordat die een actie uitvoert. Sensors &#8220;observeren wat er gebeurt nadat de agent heeft gehandeld en helpen hem zichzelf te corrigeren&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De door Anthropic <a href=\"https:\/\/code.claude.com\/docs\/en\/costs\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">gedocumenteerde PreToolUse-hook<\/a> is daar een voorbeeld van. Die kan testoutput filteren zodat alleen fouten overblijven, waardoor &#8220;tienduizenden tokens worden teruggebracht tot honderden&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Herstelpaden zijn belangrijk omdat fouten zich kunnen opstapelen. <a href=\"https:\/\/arxiv.org\/abs\/2509.09677\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Onderzoek gepresenteerd op ICLR 2026<\/a> liet zien dat de nauwkeurigheid per stap afneemt naarmate een taak uit meer stappen bestaat. Hetzelfde onderzoek beschrijft <strong>self-conditioning<\/strong>: modellen &#8220;maken vaker fouten wanneer de context fouten uit eerdere beurten bevat&#8221;. Een groter model lost dat probleem niet automatisch op.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De <a href=\"https:\/\/metr.org\/time-horizons\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">time horizons van METR<\/a> laten zien wat hogere betrouwbaarheid kost. Claude Opus 4.6 haalt bij een slagingskans van 50% een task horizon van 718,8 minuten, maar bij 80% succes blijft daar slechts 69,9 minuten van over. Ontwerpen voor die 80%-situatie is precies waar harness engineering om draait. Daarom is ook <a href=\"https:\/\/datanorth.ai\/nl\/blog\/llms-evalueren-op-meer-dan-de-benchmarks\" target=\"_blank\" rel=\"noopener\">evaluatie buiten benchmarks<\/a> zo belangrijk.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1024\" height=\"486\" src=\"https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/08\/de-feedbackloop-van-de-harness.png\" alt=\"De feedbackloop van de Harness\" class=\"wp-image-3443000\" srcset=\"https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/08\/de-feedbackloop-van-de-harness.png 1024w, https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/08\/de-feedbackloop-van-de-harness-300x142.png 300w, https:\/\/datanorth.ai\/wp-content\/uploads\/2026\/08\/de-feedbackloop-van-de-harness-768x365.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em><em>Guides sturen de agent voordat die handelt, sensors observeren daarna, en het herstelpad brengt fouten terug in de loop.<\/em><\/em><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Toonaangevende harness-frameworks en aanpakken<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Vrijwel ieder groot AI-lab levert inmiddels naast zijn model ook een eigen harness of agentframework.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anthropic biedt met de <a href=\"https:\/\/code.claude.com\/docs\/en\/agent-sdk\/overview\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Claude Agent SDK<\/a> in Python en TypeScript &#8220;dezelfde tools, agent loop en hetzelfde contextbeheer als waarop Claude Code draait&#8221;. Claude Managed Agents gaat nog een stap verder: dit is een vooraf gebouwde agent harness in beheerde infrastructuur, bedoeld voor langdurige en asynchrone taken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">OpenAI werkt met drie lagen die naast elkaar bestaan. De <strong>Responses API<\/strong> geeft ontwikkelaars directe controle. De <strong>Agents SDK<\/strong> voegt bouwstenen toe voor agents, handoffs, guardrails, sessies, state en tracing. <a href=\"https:\/\/openai.com\/index\/introducing-agentkit\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">AgentKit<\/a>, aangekondigd op 6 oktober 2025, breidt dat verder uit met onder meer Agent Builder, een Connector Registry, ChatKit en uitgebreidere evaluatiemogelijkheden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Binnen de Agents SDK zijn er daarnaast <strong>Sandbox Agents<\/strong> voor taken waarbij code daadwerkelijk moet worden uitgevoerd. Die execution harness neemt zaken als bestandsbeheer, filesystem-tools, shelltoegang, de levenscyclus van sandboxes en snapshots uit handen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.langchain.com\/blog\/march-2026-langchain-newsletter\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">LangChain vat het principe treffend samen<\/a>: &#8220;Een model op zichzelf is geen agent. Dat wordt het pas wanneer je er een harness omheen bouwt.&#8221; Het eigen antwoord daarop is <strong>Deep Agents<\/strong>, dat onder meer een ingebouwd bestandssysteem, contextbeheer, delegatie naar subagents, skills en langetermijngeheugen combineert. LangGraph verzorgt daaronder de duurzame uitvoering en state.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ook Microsoft en Google bouwen hun agentstack verder uit. Het <a href=\"https:\/\/learn.microsoft.com\/en-us\/agent-framework\/overview\/agent-framework-overview\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Microsoft Agent Framework<\/a> is de directe opvolger van AutoGen en Semantic Kernel en ondersteunt .NET, Python en Go. Het bevat ook een Harness Agent-component voor langdurige taken met meerdere stappen. <strong>Google ADK 2.0<\/strong> ondersteunt een nog breder scala aan programmeertalen, waaronder Python, TypeScript, Go, Java en Kotlin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De adoptie is inmiddels duidelijk voorbij de experimentele fase. Uit LangChains <a href=\"https:\/\/www.langchain.com\/state-of-agent-engineering\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">State of Agent Engineering<\/a> blijkt dat 57% van meer dan 1.300 ondervraagde professionals agents al in productie gebruikte. Bij organisaties met meer dan 10.000 medewerkers liep dat op tot 67%.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Zo bouw je je eerste agent harness<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Begin met de kleinst mogelijke harness waarin fouten duidelijk zichtbaar worden. Laat die fouten vervolgens bepalen wat je moet toevoegen.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Begin met een eenvoudige ReAct-loop.<\/strong> ReAct is de klassieke minimale agentloop: redeneren, handelen, observeren en herhalen. Het concept komt uit een <a href=\"https:\/\/arxiv.org\/abs\/2210.03629\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">paper uit 2022 van Shunyu Yao en collega&#8217;s<\/a>. <a href=\"https:\/\/github.com\/SWE-agent\/mini-swe-agent\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">mini-swe-agent<\/a> laat zien hoe compact zo&#8217;n aanpak kan zijn: de agentklasse bestaat uit ongeveer 100 regels Python en behaalt meer dan 74% op SWE-bench Verified. Met hetzelfde model blijft zo&#8217;n minimale scaffold echter nog ongeveer 5 tot 12 procentpunt achter op een specifiek geoptimaliseerde harness.<\/li>\n\n\n\n<li><strong>Voeg tools spaarzaam toe en durf ze daarna weer te schrappen.<\/strong> <a href=\"https:\/\/vercel.com\/blog\/we-removed-80-percent-of-our-agents-tools\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Vercel liet zien<\/a> dat bij hetzelfde model het vervangen van 15 gespecialiseerde tools door bash het tokengebruik terugbracht van ongeveer 102.000 naar 61.000 tokens. De uitvoeringstijd daalde tegelijkertijd van 274,8 naar 77,4 seconden. Meer tools betekent dus niet automatisch een betere agent.<\/li>\n\n\n\n<li><strong>Maak de omgeving expliciet in plaats van de prompt steeds slimmer te maken.<\/strong> Het <a href=\"https:\/\/openai.com\/index\/harness-engineering\/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">OpenAI-team concludeerde<\/a> dat &#8220;software bouwen nog steeds discipline vereist, maar dat die discipline zich steeds meer in de scaffolding bevindt in plaats van in de code&#8221;. Leg daarom buildcommando&#8217;s, testcommando&#8217;s, architectuurkeuzes en conventies duidelijk vast. Hoe meer de agent moet raden, hoe groter de kans op fouten en onnodige kosten.<\/li>\n\n\n\n<li><strong>Voeg eerst sensors toe en daarna pas meer guides.<\/strong> Een guide probeert vooraf te voorspellen waar een agent de fout in kan gaan. Een sensor controleert achteraf of dat daadwerkelijk is gebeurd. Tests, linters, typechecks en hooks zijn allemaal voorbeelden van zulke sensors. Voor stappen waarbij menselijk oordeel nodig is, kan een framework als LangGraph bovendien de state bewaren, de uitvoering onderbreken en wachten op menselijke input.<\/li>\n\n\n\n<li><strong>Ga ervan uit dat een deel van je scaffolding uiteindelijk door het model wordt overgenomen.<\/strong> Logan Kilpatrick van Google DeepMind <a href=\"https:\/\/sequoiacap.com\/podcast\/google-deepminds-logan-kilpatrick-why-the-model-eats-the-harness\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">stelde in juni 2026<\/a> dat modellen steeds meer functionaliteit uit de harness zelf zullen opnemen. Dat betekent niet dat harness engineering verdwijnt. Naarmate modellen beter worden, verschuift vooral welke onderdelen buiten het model nog nodig zijn. Een goede harness moet daarom kunnen meegroeien met het model waarop hij draait.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Harness engineering verschuift de vraag van <strong>&#8220;welk model is het slimst?&#8221;<\/strong> naar <strong>&#8220;welk systeem maakt de intelligentie van een model betrouwbaar bruikbaar?&#8221;<\/strong> Voor AI-agents is dat uiteindelijk de belangrijkere technische vraag.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Een model kan redeneren, maar zonder goed contextbeheer, tools, state persistence, sandboxing en feedbackloops heeft het weinig grip op echte bedrijfsprocessen. Hoe meer autonomie je een agent geeft, hoe belangrijker de harness rondom het model wordt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voor organisaties betekent dit dat agentarchitectuur niet alleen draait om de keuze van het model. Juist de runtime, integraties, toegangsrechten, controles en herstelmechanismen bepalen of een agent veilig en betrouwbaar in productie kan functioneren.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wil je een agent bouwen die veilig kan werken met bedrijfssystemen en processen, dan kan DataNorth met <a href=\"https:\/\/datanorth.ai\/nl\/dienst\/ai-agents\" data-type=\"link\" data-id=\"https:\/\/datanorth.ai\/nl\/dienst\/ai-agents\" target=\"_blank\" rel=\"noopener\">AI Agents Development<\/a> helpen bij het ontwerpen en implementeren van de runtime, integraties en controlemechanismen rondom het model.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Veelgestelde vragen (FAQ)<\/h2>\n\n\n\n<div class=\"wp-block-wpseopress-faq-block-v2 is-layout-flow wp-block-wpseopress-faq-block-v2-is-layout-flow\">\n<details id=\"wat-is-het-verschil-tussen-een-ai-agent-en-een-llm\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Wat is het verschil tussen een AI agent en een LLM?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Een LLM is een model dat tekst genereert op basis van een prompt. Een AI agent is dat model plus een harness: een loop, tools, geheugen en guardrails waarmee het over meerdere stappen kan handelen. METR legde de formule in 2023 vast: scaffolding plus model is een agent.<\/p>\n<\/details>\n\n\n\n<details id=\"wat-is-agent-scaffolding\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Wat is agent scaffolding?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Agent scaffolding is de software rond een model die er een agent van maakt. METR gebruikte de term in 2023 en noemde zulke programma&#8217;s scaffolding, en de combinatie van scaffolding en model een agent. Harness is het nieuwere woord voor hetzelfde idee, door LangChain vastgelegd als Agent = Model + Harness.<\/p>\n<\/details>\n\n\n\n<details id=\"wie-heeft-de-term-harness-engineering-bedacht\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Wie heeft de term harness engineering bedacht?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Niemand kan de term exclusief claimen. Mitchell Hashimoto publiceerde de formulering op 5 februari 2026 en schreef erbij dat er nog geen geaccepteerde term bestond. OpenAI maakte de term dagen later groot, en de meest geciteerde definitie kwam van Vivek Trivedy en LangChain. Sommige auteurs schrijven de term aan Trivedy toe, al claimt hij dat zelf niet.<\/p>\n<\/details>\n\n\n\n<details id=\"is-harness-engineering-hetzelfde-als-context-engineering\" class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\"><summary><strong>Is harness engineering hetzelfde als context engineering?<\/strong><\/summary>\n<p class=\"wp-block-paragraph\">Nee. Context engineering is \u00e9\u00e9n onderdeel van harness engineering. Anthropic definieert het als het geheel aan strategie\u00ebn om de optimale set tokens te selecteren en te onderhouden tijdens inferentie. Een harness dekt daarnaast de agent loop, tool dispatch, sandboxing en permissies af, en dat zijn systeemvraagstukken, geen contextvraagstukken.<\/p>\n<\/details>\n<script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/wat-is-harness-engineering\",\"@id\":\"https:\/\/datanorth.ai\/nl\/blog\/wat-is-harness-engineering\",\"mainEntity\":[{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/wat-is-harness-engineering#wat-is-het-verschil-tussen-een-ai-agent-en-een-llm\",\"name\":\"Wat is het verschil tussen een AI agent en een LLM?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Een LLM is een model dat tekst genereert op basis van een prompt. Een AI agent is dat model plus een harness: een loop, tools, geheugen en guardrails waarmee het over meerdere stappen kan handelen. METR legde de formule in 2023 vast: scaffolding plus model is een agent.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/wat-is-harness-engineering#wat-is-agent-scaffolding\",\"name\":\"Wat is agent scaffolding?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Agent scaffolding is de software rond een model die er een agent van maakt. METR gebruikte de term in 2023 en noemde zulke programma's scaffolding, en de combinatie van scaffolding en model een agent. Harness is het nieuwere woord voor hetzelfde idee, door LangChain vastgelegd als Agent = Model + Harness.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/wat-is-harness-engineering#wie-heeft-de-term-harness-engineering-bedacht\",\"name\":\"Wie heeft de term harness engineering bedacht?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Niemand kan de term exclusief claimen. Mitchell Hashimoto publiceerde de formulering op 5 februari 2026 en schreef erbij dat er nog geen geaccepteerde term bestond. OpenAI maakte de term dagen later groot, en de meest geciteerde definitie kwam van Vivek Trivedy en LangChain. Sommige auteurs schrijven de term aan Trivedy toe, al claimt hij dat zelf niet.&lt;\/p>\"}},{\"@type\":\"Question\",\"url\":\"https:\/\/datanorth.ai\/nl\/blog\/wat-is-harness-engineering#is-harness-engineering-hetzelfde-als-context-engineering\",\"name\":\"Is harness engineering hetzelfde als context engineering?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"&lt;p>Nee. Context engineering is \u00e9\u00e9n onderdeel van harness engineering. Anthropic definieert het als het geheel aan strategie\u00ebn om de optimale set tokens te selecteren en te onderhouden tijdens inferentie. Een harness dekt daarnaast de agent loop, tool dispatch, sandboxing en permissies af, en dat zijn systeemvraagstukken, geen contextvraagstukken.&lt;\/p>\"}}]}<\/script><\/div>\n\n\n<div class=\"brxe-container newsletter-sign-up-blog\"><div class=\"brxe-div newsletter-sign-up-blog__headings-div\"><div class=\"brxe-div newsletter-sign-up-blog__heading-icon-div\"><i id=\"brxe-xdnylt\" class=\"fa fa-envelope brxe-icon newsletter-sign-up-blog__icon\"><\/i><div class=\"brxe-heading newsletter-sign-up-blog__heading\">Schrijf je in voor onze Nieuwsbrief<\/div><\/div><div id=\"brxe-yrmmzb\" class=\"brxe-heading newsletter-sign-up-blog__subheading\">Blijf op de hoogte van onze nieuwste AI blogs, onderzoeken, diensten en nog veel meer!<\/div><\/div><div class=\"brxe-shortcode newsletter-sign-up-blog__shortcode form--light\"><div class='fluentform ff-default fluentform_wrapper_15 ffs_default_wrap'><form data-form_id=\"15\" id=\"fluentform_15\" class=\"frm-fluent-form fluent_form_15 ff-el-form-top ff_form_instance_15_1 ff-form-loading ffs_default\" data-form_instance=\"ff_form_instance_15_1\" method=\"POST\" ><fieldset  style=\"border: none!important;margin: 0!important;padding: 0!important;background-color: transparent!important;box-shadow: none!important;outline: none!important; min-inline-size: 100%;\">\n                    <legend class=\"ff_screen_reader_title\" style=\"display: block; margin: 0!important;padding: 0!important;height: 0!important;text-indent: -999999px;width: 0!important;overflow:hidden;\">Newsletter Sign Up Form (Blog) (NL)<\/legend><input type='hidden' name='__fluent_form_embded_post_id' value='3443013' \/><input type=\"hidden\" id=\"_fluentform_15_fluentformnonce\" name=\"_fluentform_15_fluentformnonce\" value=\"046428fba1\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/nl\/wp-json\/wp\/v2\/posts\/3443013\" \/><div class='ff-el-group ff-el-form-hide_label'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label for='ff_15_email' id='label_ff_15_email' aria-label=\"Email\">Email<\/label><\/div><div class='ff-el-input--content'><input type=\"email\" name=\"email\" id=\"ff_15_email\" class=\"ff-el-form-control\" placeholder=\"E-mailadres\" data-name=\"email\"  aria-invalid=\"false\" aria-required=true><\/div><\/div><div class='ff-el-group ff-el-form-hide_label'><div class=\"ff-el-input--label ff-el-is-required asterisk-right\"><label   aria-label=\"Radio Field\">Radio Field<\/label><\/div><div class='ff-el-input--content'><div class='ff-el-form-check ff-el-form-check-'><label class='ff-el-form-check-label' for='input_radio_3a499257d9f938d34bc22c205d5993ad'><input  type=\"radio\" name=\"input_radio\" data-name=\"input_radio\" class=\"ff-el-form-check-input ff-el-form-check-radio\" value=\"Ik wil graag marketing gerelateerde e-mails ontvangen van DataNorth\"  id='input_radio_3a499257d9f938d34bc22c205d5993ad' aria-label='Ik wil graag marketing gerelateerde e-mails ontvangen van DataNorth' aria-invalid='false' aria-required=true> <span>Ik wil graag marketing gerelateerde e-mails ontvangen van DataNorth<\/span><\/label><\/div><\/div><\/div><div class='ff-el-group ff-text-left ff_submit_btn_wrapper'><button type=\"submit\" class=\"ff-btn ff-btn-submit ff-btn-md ff_btn_style\"  aria-label=\"Aanmelden!\">Aanmelden!<\/button><\/div><\/fieldset><\/form><div id='fluentform_15_errors' class='ff-errors-in-stack ff_form_instance_15_1 ff-form-loading_errors ff_form_instance_15_1_errors'><\/div><\/div>            <script type=\"text\/javascript\">\n                window.fluent_form_ff_form_instance_15_1 = {\"id\":\"15\",\"ajaxUrl\":\"https:\\\/\\\/datanorth.ai\\\/wp-admin\\\/admin-ajax.php\",\"settings\":{\"layout\":{\"labelPlacement\":\"top\",\"helpMessagePlacement\":\"with_label\",\"errorMessagePlacement\":\"inline\",\"cssClassName\":\"\",\"asteriskPlacement\":\"asterisk-right\"},\"restrictions\":{\"denyEmptySubmission\":{\"enabled\":false}}},\"form_instance\":\"ff_form_instance_15_1\",\"form_id_selector\":\"fluentform_15\",\"rules\":{\"email\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true},\"email\":{\"value\":true,\"message\":\"This field must contain a valid email\",\"global_message\":\"This field must contain a valid email\",\"global\":true}},\"input_radio\":{\"required\":{\"value\":true,\"message\":\"This field is required\",\"global_message\":\"This field is required\",\"global\":true}}},\"debounce_time\":300,\"file_upload_settings\":[]};\n                            <\/script>\n            <\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Harness engineering is de discipline die de software rond een taalmodel ontwerpt: de loop, tool interfaces, geheugen en sandboxes die er een werkende agent van maken. Deze gids behandelt wat een agent harness is, hoe die verschilt van prompt engineering, welke frameworks er een leveren en hoe je je eerste harness bouwt.<\/p>\n","protected":false},"author":12,"featured_media":3443062,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_titles_title":"Wat is Harness Engineering? Gids voor AI agent scaffolding","_seopress_titles_desc":"Harness engineering is het ontwerpen van de loop, tools, geheugen en sandboxes rond een AI-model. Zo werkt een Agent Harness, en zo bouw je er een.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[71,70,73],"tags":[],"class_list":["post-3443013","post","type-post","status-publish","format-standard","has-post-thumbnail","category-ai-in-de-praktijk","category-ai-tools-frameworks-nl","category-verantwoordelijke-ai-en-ethiek"],"meta_box":{"faq_item":[]},"_links":{"self":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts\/3443013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/users\/12"}],"replies":[{"embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/comments?post=3443013"}],"version-history":[{"count":3,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts\/3443013\/revisions"}],"predecessor-version":[{"id":3443089,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/posts\/3443013\/revisions\/3443089"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/media\/3443062"}],"wp:attachment":[{"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/media?parent=3443013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/categories?post=3443013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/datanorth.ai\/nl\/wp-json\/wp\/v2\/tags?post=3443013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}