Ga naar hoofdinhoud

Wat is DeepSeek Harness? De agent-runtime waarin alles een plugin is

DeepSeek Harness uitgelegd: hoe de op Cordis gebaseerde plug-inarchitectuur werkt, waar de modi Standard, PTC, Minimal en Creator voor zijn, en hoe het zich verhoudt tot Claude Code, Codex en OpenCode.
Bijgewerkt 8 sep 2026  · 13 min lezen

Verkennen met AI

ChatGPTClaudePerplexity

DeepSeek Harness is gebouwd om een taak uit te voeren, niet alleen om een vraag te beantwoorden. Het is een open-source agent-runtime die een model verbindt met je repository, terminal, tools en sessiegeschiedenis. Vraag het om een bug te fixen en het kan bestanden inspecteren, code bewerken, tests draaien en reageren wanneer een commando faalt. Eén enkele modelaanroep kan dat niet zelfstandig.

Het meer ongewone deel zit onder die workflow. DeepSeek Harness stelt de modeladapter, tools, sessies, sandbox en zelfs de agentloop bloot als plugins die door Cordis worden gecoördineerd. Het model is één onderdeel van de agent, niet het product zelf.

Het is geen af software. Harness zit nog in developer preview; de API's kunnen tussen releases breken en de eigen veiligheidsmelding geeft aan dat er geen security-audit is uitgevoerd. Ik bespreek die beperkingen naast de architectuur en waar het verschilt van Claude Code, Codex en OpenCode.

Kort samengevat

  • Wat het is: DeepSeek Harness is een open-source agent-runtime, geen model. Het geeft een model tools, sessies, sandboxing en een agentloop.
  • Kernontwerp: Cordis stelt de modeladapter, tools, session store, sandbox en agentloop bloot als verwisselbare plugins.
  • Sessies: Een append-only gebeurtenislogboek ondersteunt hervatten, forken, zoeken, replay en de Trajectory-weergave.
  • Modi: Standard, PTC, Minimal en Creator bepalen welke tools de agent kan gebruiken en hoe die bereikt worden.
  • Grootste verschil: Met DeepSeek Harness kunnen ontwikkelaars laag-niveau runtimecomponenten vervangen die Claude Code, Codex en OpenCode vast laten staan.
  • Grootste beperking: Het blijft een developer preview zonder security-audit, en de API's kunnen tussen releases veranderen.

Wat is DeepSeek Harness?

DeepSeek Harness, afgekort tot dsh, is een open-source agent harness van DeepSeek AI onder de MIT-licentie. Het zit tussen een taalmodel en de buitenwereld in, en levert tools, sessies, sandboxing en de loop die een taak laat doorlopen.

DeepSeek vat het zelf samen als "Agent = Model + Harness." Het model verzorgt redeneren en genereren. De harness is alles wat die redenering laat ingrijpen op een echt bestandssysteem en doorgaan zonder dat jij bij elke stap de taak opnieuw hoeft uit te leggen.

Het draait op Cordis, een pluginframework dat ouder is dan DeepSeek Harness. Cordis laat instellingen deze onderdelen los van elkaar vervangen. Ik kom later terug op de prijs van die keuze.

Met dat kader op zijn plaats zijn dit de twee veelvoorkomende misvattingen.

DeepSeek Harness is geen AI-model

Zoals eerder genoemd, zijn het model en de runtime gescheiden lagen. Die splitsing laat je van provider wisselen zonder de tools of sessie-inrichting te veranderen. Dezelfde runtime kan DeepSeek, Anthropic, OpenAI of een OpenAI-compatibel endpoint gebruiken.

DeepSeek Harness is meer dan een code-assistent

Standard-modus wekt de indruk van een code-assistent, maar het is slechts één setup. Zoals ik later behandel, veranderen Minimal- en Creator-modi wat de agent kan gebruiken. Een nieuwe setup bouwen vergt nog steeds engineeringwerk; ontwikkelaars hebben toegang tot de onderdelen.

Hoe Cordis DeepSeek Harness-plugins organiseert

Zoals eerder genoemd is Cordis het pluginframework onder DeepSeek Harness. Het laat elk onderdeel een service opvragen zonder het te koppelen aan de code van één provider.

Cordis komt uit het Koishi-chatbot-ecosysteem en is gebouwd door een ontwikkelaar die bekendstaat als Shigma; DeepSeek levert en breidt het uit. De auteurs beschrijven het ontwerp in hun paper A Programming Paradigm for Spatiotemporal Composability.

Die basis leidt tot de hoofdleus van het project en twee Cordis-termen. De namen klinken academisch, maar het gedrag is vrij simpel.

"Alles is een plugin"

DeepSeek's architectuurdocumentatie zegt dat je dsh uitbreidt door een plugin naast de andere te monteren. Modeladapters, tools, sessies, sandboxes, opslag, scheduling, de agentloop en de UI zijn allemaal plugins.

Letterlijk opgevat gaat de leus te ver. Cordis zit nog steeds onder de plugins. Het laadt en verwijdert ze, controleert wat ze nodig hebben en draait de events waarmee ze met elkaar praten. Cordis is vereist, niet nog één optioneel onderdeel.

Ruimtelijke composability beheert pluginafhankelijkheden

Een plugin declareert de services die hij nodig heeft zonder een handgeschreven opstartsequentie te eisen. Hij activeert wanneer die services bestaan en deactiveert als een vereiste service verdwijnt. De afhankelijkheden bepalen wanneer hij kan draaien.

DeepSeek noemt dit spatial composability. Afhankelijkheden vertellen Cordis waar een component past, zodat ontwikkelaars de opstartvolgorde niet met de hand hoeven te regelen.

Tijdelijke composability draait plugineffecten terug

Cordis houdt ook registraties bij zoals eventlisteners, promptsecties en toolschema's. Een plugin verwijderen haalt die effecten weg in plaats van wees-listeners achter te laten. Dit maakt een externe actie zoals een shellcommando niet ongedaan; omkeerbaarheid geldt alleen voor effecten die Cordis bijhoudt.

DeepSeek Harness-architectuur: hoe de runtime in elkaar grijpt

Een draaiend exemplaar is een plugintree opgebouwd uit instellingen die in een vaste volgorde worden geladen. Die instellingen bepalen welke onderdelen actief zijn.

Diagram van de DeepSeek Harness-architectuur waarin de gebruiker of applicatie verbinding maakt met een samengestelde runtime, met het model, de agentloop, tools, sessies, opslag en sandbox gekoppeld via Cordis

Cordis verbindt elke verwisselbare runtimeplugin. Afbeelding door de auteur.

Cordis-services laten plugins elkaar vinden

Cordis biedt een gedeelde directory met services. Plugins gebruiken stabiele sleutels zoals ctx.tools, ctx.llm, en ctx.sessions in plaats van de code van één provider te importeren. Een tool die ctx.llm aanroept, hoeft niet te weten welke modeladapter erachter zit.

Agentpresets en runtimeprofielen sturen verschillende lagen aan

Als alles vervangbaar is, moet nog steeds iets beslissen wat er voor een bepaalde run wordt gemount, en DeepSeek Harness beantwoordt dat op twee lagen die makkelijk te verwarren zijn.

Kort gezegd: een profiel bepaalt hoe het programma start, terwijl een preset bepaalt wat de agent kan doen. Als je alleen de webapp gebruikt, kun je de volgende twee subsecties overslaan.

Runtimeprofielen

Een runtimeprofiel (web, headless, sdk, sdk-minimal, en acp worden als templates meegeleverd) bepaalt hoe de applicatie start en welke bundels Cordis-plugins bij boot worden gestapeld. De meeste lezers raken deze laag alleen aan door dsh web of een soortgelijk commando te draaien.

Agentpresets

Een agentpreset (Standard, PTC, Minimal of Creator) bepaalt wat een actieve sessie kan gebruiken. Een patchbestand kan de preset wijzigen zonder aan de broncode van Harness te zitten.

De agentloop coördineert beurten, stappen en toolaanroepen

DeepSeek onderscheidt een stap van een beurt. Een stap is één modelverzoek plus de bijbehorende toolaanroepen. Een beurt is nul of meer stappen: hij opent voordat de eerste input wordt geclaimd en sluit zodra er niets meer openstaat. De meeste beurten draaien meerdere stappen voordat de agent kan antwoorden, maar een geweigerde input sluit een beurt die geen stappen heeft verbruikt.

stroomschema van de agentloop met een gebruikersbeurt die één of meer modelstappen bevat, elk gevolgd door bewaakte toolexecutie

Eén beurt kan meerdere stappen bevatten. Afbeelding door de auteur.

Sessies gebruiken een append-only gebeurtenislog

Dit vind ik het belangrijkste onderdeel. Een sessie is een append-only log van getypeerde gebeurtenissen, geen array van chatberichten. Harness bouwt de geschiedenis van het model uit dat log, en de sessiedocumentatie vereist dat alles wat naar het model wordt gestuurd, daaruit terug te halen is.

Hervatten, forken, zoeken, replay en de Trajectory-weergave zijn allemaal op die eventstream gebouwd.

Geschiedenis opnieuw afleiden is geen deterministische her-run. Modeloutput en externe staat kunnen verschillen, maar het log biedt nog steeds een inspecteerbaar verslag van wat er is gebeurd.

tijdlijn van sessiegebeurtenissen met gebruikersberichten, assistentuitvoer, toolaanroepen en toolresultaten die samenkomen in één append-only log

Sessiegeschiedenis is een append-only log. Afbeelding door de auteur.

Hoe DeepSeek Harness tools en sandboxes aanstuurt

Een model kan een tool op naam aanvragen, maar mag hem niet direct uitvoeren. Twee afzonderlijke controles staan tussen het verzoek en een wijziging op het bestandssysteem.

De toolexecutiepipeline

De aanroep gaat langs een beleidstoets, uitvoering en resultafhandeling. Het model kiest de tool; de runtime beslist of en hoe hij draait.

diagram van bewaakte toolexecutie waarin een toolverzoek van een model door pre-executiebeleid, uitvoering en nabewerking gaat voordat het resultaat terugkeert naar het model

De runtime beslist hoe tools draaien. Afbeelding door de auteur.

Sandboxing versus goedkeuringen

  • Goedkeuring vraagt of de gebruiker een actie moet bevestigen. 
  • Sandboxing beperkt waar en hoe die wordt uitgevoerd. 

DeepSeek houdt ze gescheiden, al bundelen toestemmingspresets beide controles, net zoals een container-runtime procesrechten scheidt van uitvoergrenzen.

Nu al noemenswaardig, omdat ik erop terugkom bij de beperkingen: een model in een systemprompt vertellen om "alleen bestanden te lezen" is een suggestie die het kan opvolgen, geen afgedwongen grens zoals een sandboxbeperking op OS-niveau.

DeepSeek Harness-modi: Standard, PTC, Minimal en Creator

DeepSeek Harness biedt vier verschillende modi. Geen van deze vier staat boven de andere. Het zijn vier antwoorden op de vraag: "hoeveel van de runtime moet deze sessie te zien krijgen," en de juiste keuze hangt af van de taak. Zoals de architectuursectie liet zien, verandert elke modus de set tools die de agent beschikbaar heeft.

vergelijkingsschema van de vier DeepSeek Harness-modi met de tooloppervlakte en het doel van Standard-, PTC-, Minimal- en Creator-modus naast elkaar

Vier modi delen één runtimebasis. Afbeelding door de auteur.

Standard-modus

De algemene basis: 

  • Bestanden bewerken
  • Shelltoegang
  • Bestands- en webzoekopdrachten
  • Skills
  • Plannen
  • Doelen
  • Subagents
  • Workflows

Voor gewoon werk in een repository zou ik hier beginnen.

PTC-modus

PTC-modus behoudt bijna alle tools van Standard, maar verandert hoe het model erbij komt. (Sinds versie 0.1.2 stelt Web PTC-modus de generieke workflow-tool niet meer standaard bloot.) 

In plaats van over meerdere modelstappen individuele tools aan te vragen, schrijft het model een programma tegen een gegenereerde SDK. Dat programma kan meerdere tools aanroepen via run_code. Elke aanroep gaat nog steeds door dezelfde beleidstoets, dus PTC verandert hoe het model het plan formuleert, niet wat het mag doen.

De productpagina gebruikt nog het label "Code mode", maar een nieuwere officiële release doopte het om tot PTC-modus, terwijl oude gesprekslogs leesbaar bleven. Ik gebruik overal PTC-modus; de FAQ gaat in op waar die initialen voor kunnen staan.

Minimal-modus

Minimal-modus stript de omgeving tot twee tools: een persistente shell en een string-replace-bestandseditor. DeepSeek gebruikt het voor modelbenchmarks omdat testresultaten deels afhangen van de harness van het model, niet alleen van de gewichten.

Creator-modus

Creator-modus laat ontwikkelaars de runtime inspecteren en Cordis-plugins in geheugen testen. Het is bedoeld om presets te bouwen; ik zou het niet in een diepere zin zelfverbeterend noemen.

Wat maakt DeepSeek Harness anders dan andere agentframeworks?

DeepSeek Harness verschilt van veel agentframeworks door de onderste delen van de runtime vervangbaar te maken. Ik had dit bijna in de architectuursectie ondergebracht, maar het onderscheid is makkelijk te missen. Cordis handelt die wijzigingen af via één pluginsysteem.

Je kunt veranderen hoe de agent opereert, niet alleen welke tools hij kan aanroepen. Het gebeurtenislog maakt ook een run die ontwikkelaars kunnen inspecteren, in plaats van hem alleen als chattranscript te lezen. Minimal- en Creator-modi laten hen de runtime vervolgens vanuit tegenovergestelde richtingen testen.

DeepSeek Harness vs. Claude Code, Codex en OpenCode

Een featurechecklist mist de kern. Elke concurrent ondersteunt extensies; de nuttige vraag is welke onderdelen ontwikkelaars kunnen wijzigen. Het onderscheid klinkt klein, maar dat is het niet. Onze toegepaste vergelijking tussen Harness en Claude Code gebruikt in beide hetzelfde model en behandelt setup, logs en kosten.

DeepSeek Harness vs. Claude Code

Claude Code ondersteunt projectinstructies, skills, hooks, MCP, subagents en een Agent SDK, en houdt zijn ingebouwde loop vast. DeepSeek Harness laat ontwikkelaars de loop, modeladapter en opslagschil vervangen via instellingen.

DeepSeek Harness vs. Codex

Codex vraagt een zorgvuldiger vergelijking omdat de CLI en App Server ook open source zijn. Het levert een agent-harness die ontwikkelaars via gedocumenteerde entry points uitbreiden. DeepSeek Harness is gebouwd rond het wijzigen van de runtime zelf. Ze bieden verschillende niveaus van controle.

DeepSeek Harness vs. OpenCode

OpenCode is al open source, werkt met meerdere modelproviders en gebruikt een client-server-architectuur. Je kunt de tools, permissies, sessions en providers configureren. De plugins breiden een vaste serverkern uit, terwijl DeepSeek ook de loop en de session store vervangbaar maakt.

Wanneer gebruik je DeepSeek Harness

Runtimeonderdelen vervangen is op zichzelf niet nuttig. De extra controle telt alleen wanneer die een probleem oplost dat je al hebt.

  • Wanneer de runtime zelf deel uitmaakt van het project. Als je modeladapters, de agentloop, opslag of sessiegedrag aanpast, en niet alleen boven op een agent bouwt, past dit directer.
  • Wanneer je modellen vergelijkt in een gecontroleerde omgeving. Met dezelfde runtime blijft meer van de test gelijk bij het wisselen van model, al kunnen modellen nog verschillen in toolgebruik en redeneerstijl.
  • Wanneer debuggen van een complexe run belangrijk is. Het sessiegebeurtenislog en de Trajectory-weergave maken het makkelijker te reconstrueren wat een model zag en welke tools draaiden.
  • Wanneer je agentinterna test. Creator-modus en Cordis zijn voor ontwikkelaars die bestuderen hoe agents in elkaar zitten, meer dan voor mensen die alleen applicatiecode nodig hebben.

Het kan overbodig zijn voor simpele modelaanroepen of voor teams die een kant-en-klare codeagent willen zonder aan de binnenkant te komen. Meer onderdelen vervangen is alleen de extra moeite waard als die controle een echt probleem oplost.

Beperkingen van DeepSeek Harness: developer preview en securityrisico's

Geen van bovenstaande architectuur doet er veel toe zonder een helder beeld van waar dit vandaag tekortschiet.

Het is nog steeds een developer preview

DeepSeek's repository stelt duidelijk dat er breaking changes zullen zijn. Dat is al gebeurd: de naamsverandering van Code naar PTC kwam met wijzigingen aan de sessie-API's en het verwijderen van een optionele SQLite-opslagoptie. Pin je versies. Die stap overslaan en hopen dat de setup stabiel blijft is geen plan.

Meer controle betekent ook meer complexiteit

Meer van de runtime vervangbaar maken geeft ontwikkelaars ook meer te leren: pluginafhankelijkheden, instellingen, providerverschillen en versiecompatibiliteit. Dit is de gebruikelijke afruil tussen gemak en controle.

Is DeepSeek Harness lokaal?

DeepSeek Harness slaat sessie-inhoud, toolrecords en instellingen standaard lokaal op, according to its data processing statement. Je kunt de anonieme rapporten over instellingen en projectlijsten uitschakelen. 

Maar een externe modelprovider, webtool, MCP-server of plugin kan nog steeds data buiten je machine sturen onder zijn eigen beleid. "Local-first" dekt niet elke service waarmee je verbindt.

Agents draaien brengt securityrisico's met zich mee

Een runtime die bestanden kan bewerken, commando's kan draaien en plugins van derden kan laden, kan echte schade aanrichten. DeepSeek's veiligheidsmelding zegt dat het project geen security-audit heeft gehad. Sandboxing, goedkeuringen en permissiecontroles verlagen het risico maar garanderen geen isolatie.

De software op je eigen machine draaien haalt dat risico niet weg. Gebruik beperkte rechten en een wegwerpomgeving voor onbetrouwbaar werk, en wees voorzichtig met content die verborgen instructies kan bevatten.

Waarom agentgedrag van meer afhangt dan alleen het model

Agentgedrag hangt af van de runtime én van het model. Dit keert terug naar "Agent = Model + Harness," en dezelfde splitsing geldt voor LLM-agents beyond DeepSeek.

Wat een model kan produceren hangt af van de gewichten. Wat een agent doet hangt ook af van welke context het model bereikt, welke acties zijn toegestaan en hoe strak uitvoering is begrensd. Niets daarvan zit in de gewichten.

DeepSeek Harness laat die omliggende laag zien door die op te splitsen in benoemde onderdelen die ontwikkelaars kunnen vervangen. Minimal-modus laat zien waarom dit buiten DeepSeek om telt: een benchmarkscore weerspiegelt deels de harness die voor de test is gebruikt, niet alleen het model. De harness maakt een model niet slimmer. Het verandert de omgeving waarin het model werkt.

Conclusie

De zin uit de opening is de moeite waard om te onthouden: het model redeneert, maar de runtime beslist wat die redenering kan bereiken en doen. DeepSeek Harness maakt die runtime bewerkbaar, van de modeladapter en tools tot de session store en agentloop.

Die controle heeft een prijs. Meer van de runtime vervangen betekent dat je meer van de setup, versiechanges en securitygrenzen bezit. Een developer preview met shelltoegang is niet iets om te installeren en te vergeten.

Mijn kijk is simpel: gebruik DeepSeek Harness wanneer de runtime zelf deel is van het werk. Als je alleen repository-edits nodig hebt, vraagt een kant-en-klare codeagent minder van je.

Onze DeepSeek Harness-tutorial behandelt de setup. De gids met alternatieven voor Claude Code vergelijkt meer codeagents, terwijl Introduction to AI Agents de basis behandelt waar dit artikel van uitgaat.

DeepSeek Harness FAQ's

Is DeepSeek Harness hetzelfde als een DeepSeek-model?

Nee, het model en de runtime zijn gescheiden. Harness bevat geen modelgewichten en draait geen inferentie zelf; het stuurt verzoeken naar DeepSeek, Anthropic, OpenAI of een lokaal model.

Is DeepSeek Harness gratis te gebruiken?

De software zelf is MIT-gelicentieerd en gratis. Wat niet gratis is, is welke modelprovider je ook aansluit, omdat inferentie apart wordt gefactureerd door degene die dat model draait, plus eventuele infrastructuurkosten van sandboxes of externe services die je erbovenop zet.

Waar staat PTC-modus eigenlijk voor?

DeepSeek's eigen releasenotes gebruiken "PTC-modus" zonder een vaste afkorting voluit te spellen, al komt het gedrag overeen met "programmatic tool calling". Ik zou dat als werkdefinitie hanteren, niet als bevestigd acroniem, totdat DeepSeek er zelf één uitspreekt.

Kan ik DeepSeek Harness toevertrouwen aan een repository die ik belangrijk vind?

Sommige beperkingen blijven gelden. Werk voor een repository die je belangrijk vindt op een kopie of aparte branch, houd productiesleutels uit de omgeving en review elke plugin voordat je hem laadt.

Betekent "alles is een plugin" dat ik er elk soort agent van kan maken die ik wil?

Niet zonder echt engineeringwerk. De modeladapter of agentloop vervangen vereist nog steeds een plugin die aan het juiste servicecontract voldoet. Het pluginsysteem geeft je toegang tot meer onderdelen; het laat het werk niet verdwijnen.

Onderwerpen
AI Agents
Kunstmatige intelligentie

Leer Agentic AI met DataCamp!

Leerpad

Basisprincipes van AI-agenten

6 Hr
Ontdek hoe AI-agenten je manier van werken kunnen veranderen en waarde kunnen toevoegen aan je organisatie!
Bekijk detailsRight Arrow
Begin Met De Cursus
Meer zienRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer ZienMeer Zien