Hoppa till huvudinnehållet

Vad är DeepSeek Harness? Agent-körtiden där allt är ett plugin

DeepSeek Harness förklarad: hur dess Cordis-baserade pluginarkitektur fungerar, vad lägena Standard, PTC, Minimal och Creator är till för och hur den jämförs med Claude Code, Codex och OpenCode.
Uppdaterad 8 sep. 2026  · 13 min läsa

Utforska med AI

ChatGPTClaudePerplexity

DeepSeek Harness är byggt för att utföra en uppgift, inte bara svara på en fråga. Det är en körtid för agenter med öppen källkod som kopplar en modell till ditt kodförråd, din terminal, dina verktyg och din sessionshistorik. Be den åtgärda en bugg, så kan den inspektera filer, redigera kod, köra tester och svara när ett kommando misslyckas. Ett enskilt modellanrop kan inte göra det på egen hand.

Det mer ovanliga sitter under det arbetsflödet. DeepSeek Harness exponerar modelladaptern, verktygen, sessionerna, sandlådan och till och med agentloopen som plugins koordinerade av Cordis. Modellen är en del av agenten, inte själva produkten.

Detta är inte färdig programvara. Harness är fortfarande i utvecklarförhandsvisning; dess API:er kan brytas mellan versioner, och dess egen säkerhetsnotis anger att den inte har genomgått någon säkerhetsgranskning. Jag tar upp de begränsningarna tillsammans med arkitekturen och var den skiljer sig från Claude Code, Codex och OpenCode.

TL;DR

  • Vad det är: DeepSeek Harness är en körtid för agenter med öppen källkod, inte en modell. Den ger en modell verktyg, sessioner, sandlådor och en agentloop.
  • Kärndesign: Cordis exponerar modelladapter, verktyg, sessionslager, sandlåda och agentloop som utbytbara plugins.
  • Sessioner: En bilagd endast-lägg-till-händelselogg stödjer återupptagning, förgrening, sökning, uppspelning och vyn Trajectory.
  • Lägen: Standard, PTC, Minimal och Creator ändrar vilka verktyg agenten kan använda och hur den når dem.
  • Största skillnaden: DeepSeek Harness låter utvecklare byta ut körtidskomponenter på lägre nivå som Claude Code, Codex och OpenCode håller fasta.
  • Största begränsningen: Det är fortfarande en utvecklarförhandsvisning utan säkerhetsgranskning, och dess API:er kan ändras mellan versioner.

Vad är DeepSeek Harness?

DeepSeek Harness, förkortat till dsh, är en öppen källkode agent-harness från DeepSeek AI under MIT-licens. Det ligger mellan en språkmodell och omvärlden, och tillhandahåller verktyg, sessioner, sandlådor och loopen som håller en uppgift i rörelse.

DeepSeeks egen formulering är "Agent = Model + Harness." Modellen hanterar resonemang och generering. Harnessen är allt som låter det resonemanget verka på ett riktigt filsystem och fortsätta utan att du måste förklara om uppgiften vid varje steg.

Den körs på Cordis, ett pluginramverk som föregick DeepSeek Harness. Cordis låter inställningar ersätta dessa delar oberoende. Jag återkommer till kostnaden för det valet senare.

Med den ramen på plats kommer här två vanliga missuppfattningar.

DeepSeek Harness är inte en AI-modell

Som nämnts tidigare är modellen och körtiden separata lager. Den uppdelningen låter dig byta leverantör utan att ändra verktygen eller sessionsinställningen. Samma körtid kan använda DeepSeek, Anthropic, OpenAI eller en OpenAI-kompatibel endpoint.

DeepSeek Harness är mer än en kodassistent

Standardläget skapar intrycket av en kodassistent, men det är bara en uppsättning. Som jag tar upp senare ändrar Minimal- och Creator-lägena vad agenten kan använda. Att bygga en ny uppsättning kräver fortfarande ingenjörsarbete; utvecklare har tillgång till delarna.

Hur Cordis organiserar plugins i DeepSeek Harness

Som nämnts tidigare är Cordis pluginramverket under DeepSeek Harness. Det låter varje del begära en tjänst utan att binda den till en enda leverantörs kod.

Cordis kommer från Koishi-chatbotekosystemet och byggdes av en utvecklare känd som Shigma; DeepSeek paketerar och utökar det. Dess författare beskriver designen i sin artikel A Programming Paradigm for Spatiotemporal Composability.

De grunderna leder till projektets huvudslagord och två Cordis-termer. Namnen låter akademiska, men beteendet är ganska enkelt.

"Allt är ett plugin"

DeepSeeks arkitekturdokumentation säger att du utökar dsh genom att montera ett plugin bredvid de andra. Modelladaptrar, verktyg, sessioner, sandlådor, lagring, schemaläggning, agentloopen och UI:t är alla plugins.

Tolkat bokstavligt går slagordet för långt. Cordis sitter fortfarande under pluginsen. Det laddar och tar bort dem, kontrollerar vad de behöver och kör de händelser de använder för att prata med varandra. Cordis är nödvändigt, inte ännu en valfri del.

Spatial composability hanterar plugin-beroenden

Ett plugin deklarerar de tjänster det behöver utan att kräva en handskriven uppstartssekvens. Det aktiveras när dessa tjänster finns och avaktiveras om en nödvändig tjänst försvinner. Dess beroenden avgör när det kan köras.

DeepSeek kallar detta spatial composability. Beroenden talar om för Cordis var en komponent passar, så att utvecklare inte behöver ordna uppstartsordningen för hand.

Temporal composability rullar tillbaka plugineffekter

Cordis spårar också registreringar som händelselyssnare, promptsektioner och verktygsscheman. Att ta bort ett plugin tar bort dessa effekter i stället för att lämna föräldralösa lyssnare. Detta ångrar inte en extern åtgärd som ett shell-kommando; reversibilitet gäller endast för effekter Cordis spårar.

DeepSeek Harness arkitektur: hur körtiden hänger ihop

En körande instans är ett plugintree byggt från inställningar laddade i en bestämd ordning. Dessa inställningar avgör vilka delar som är aktiva.

Diagram över DeepSeek Harness-arkitekturen som visar användaren eller applikationen kopplad till en sammansatt körtid, med modellen, agentloopen, verktygen, sessionerna, lagringen och sandlådan länkade via Cordis

Cordis kopplar samman varje utbytbart körtidsplugin. Bild av författaren.

Cordis-tjänster låter plugins hitta varandra

Cordis tillhandahåller ett delat register över tjänster. Plugins använder stabila nycklar som ctx.tools, ctx.llm och ctx.sessions i stället för att importera en leverantörs kod. Ett verktyg som anropar ctx.llm behöver inte veta vilken modelladapter som ligger bakom.

Agent-presets och körtidsprofiler styr olika lager

Om allt är utbytbart måste något ändå avgöra vad som monteras för en given körning, och DeepSeek Harness besvarar det på två lager som är lätta att blanda ihop.

Den korta versionen: en profil styr hur programmet startar, medan en preset styr vad agenten kan göra. Om du bara använder webbappen kan du hoppa över nästa två underavsnitt.

Körtidsprofiler

En körtidsprofil (web, headless, sdk, sdk-minimal och acp levereras som mallar) avgör hur applikationen startar och vilka buntar av Cordis-plugins som staplas vid uppstart. De flesta läsare kommer bara att röra vid detta lager genom att köra dsh web eller ett liknande kommando.

Agent-presets

En agent-preset (Standard, PTC, Minimal eller Creator) avgör vad en aktiv session kan använda. En patchfil kan ändra preseten utan att röra Harnessens källkod.

Agentloopen koordinerar turer, steg och verktygsanrop

DeepSeek skiljer ett steg från en tur. Ett steg är en modellförfrågan plus dess verktygsanrop. En tur är noll eller fler steg: den öppnas innan dess första indata tas i anspråk och stängs när inget längre är förfallet. De flesta turer kör flera steg innan agenten kan svara, men en avvisad indata stänger en tur som inte förbrukade några steg.

flödesschema för agentloop som visar en användartur med en eller flera modellsteg, vardera följd av skyddad verktygskörning

En tur kan innehålla flera steg. Bild av författaren.

Sessioner använder en endast-lägg-till-händelselogg

Detta är den del jag tycker är viktigast. En session är en endast-lägg-till-logg av typade händelser, inte en array av chattmeddelanden. Harness bygger modellens historik från den loggen, och sessionsdokumentationen kräver att allt som skickas till modellen ska kunna återskapas från den.

Återuppta, förgrena, söka, spela upp och vyn Trajectory bygger alla på det händelseflödet.

Att återhärleda historik är inte en deterministisk omkörning. Modellens utdata och extern status kan skilja sig, men loggen ger fortfarande ett inspektionsbart protokoll över vad som hände.

tidslinje för sessionshändelser som visar användarmeddelanden, assistentutdata, verktygsanrop och verktygsresultat som ackumuleras i en enda endast-lägg-till-logg

Sessionshistorik är en endast-lägg-till-logg. Bild av författaren.

Hur DeepSeek Harness styr verktyg och sandlådor

En modell kan begära ett verktyg vid namn, men den får inte köra det direkt. Två separata kontroller står mellan begäran och en förändring i filsystemet.

Pipeline för verktygskörning

Anropet passerar genom en policykontroll, körning och resultathantering. Modellen väljer verktyget; körtiden avgör om och hur det körs.

diagram över pipeline för skyddad verktygskörning som visar hur en modells verktygsbegäran passerar genom för-körningspolicy, körning och efterbearbetning innan resultatet returneras till modellen

Körtiden avgör hur verktyg körs. Bild av författaren.

Sandlådor kontra godkännanden

  • Godkännande frågar om användaren ska bekräfta en åtgärd. 
  • Sandlåda begränsar var och hur den körs. 

DeepSeek håller dem åtskilda, även om behörighetspresets buntar båda kontrollerna, ungefär som en container-körtid skiljer processbehörigheter från körningsgränser.

Värt att flagga redan nu, eftersom jag återkommer till det i avsnittet om begränsningar: att tala om för en modell i en systemprompt att "bara läsa filer" är en uppmaning den kan följa, inte en framtvingad gräns på samma sätt som en OS-nivåns sandlådebegränsning är.

DeepSeek Harness-lägen: Standard, PTC, Minimal och Creator

DeepSeek Harness erbjuder fyra olika lägen. Inget av dessa fyra står över de andra. De är fyra svar på "hur mycket av körtiden ska exponeras för den här sessionen", och rätt val beror på uppgiften. Som arkitekturavsnittet visade ändrar varje läge uppsättningen verktyg som är tillgängliga för agenten.

jämförelsetabell över de fyra lägena i DeepSeek Harness som visar verktygsytan och syftet med Standard-, PTC-, Minimal- och Creator-läge sida vid sida

Fyra lägen delar en gemensam körtidsbas. Bild av författaren.

Standardläge

Den allmänna baslinjen: 

  • Filredigering
  • Shell-åtkomst
  • Fil- och webbsökning
  • Färdigheter
  • Planering
  • Mål
  • Underagenter
  • Arbetsflöden

För vanligt arbete i ett kodförråd är det här jag skulle börja.

PTC-läge

PTC-läget behåller nästan hela Standards verktygsuppsättning men ändrar hur modellen når den. (Sedan version 0.1.2 exponerar Web PTC-läget inte längre det allmänna verktyget workflow som standard.) 

I stället för att begära individuella verktyg över flera modellsteg skriver modellen ett program mot ett genererat SDK. Det programmet kan anropa flera verktyg via run_code. Varje anrop går fortfarande genom samma policykontroller, så PTC ändrar hur modellen uttrycker planen, inte vad den får göra.

Produktsidan använder fortfarande etiketten "Code mode", men en nyare officiell release döpte om det till PTC-läge samtidigt som gamla samtalsloggar förblev läsbara. Jag använder PTC-läge genomgående; FAQ:n återkommer till vad initialerna kan stå för.

Minimal-läge

Minimal-läget skalar ner miljön till två verktyg: ett beständigt shell och en strängersättande filredigerare. DeepSeek använder det för modellbenchmarking eftersom testresultat delvis beror på modellens harness, inte bara på dess vikter.

Creator-läge

Creator-läget låter utvecklare inspektera körtiden och testa Cordis-plugins i minnet. Det är till för att bygga presets, och jag skulle inte kalla det självförbättrande i någon djupare mening.

Vad gör DeepSeek Harness annorlunda än andra agentramverk?

DeepSeek Harness skiljer sig från många agentramverk genom att göra de lägre delarna av körtiden utbytbara. Jag var nära att vika in detta i arkitekturavsnittet, men skillnaden är lätt att missa. Cordis hanterar de ändringarna via ett enda pluginsystem.

Du kan ändra hur agenten arbetar, inte bara vilka verktyg den kan anropa. Händelseloggen gör också en körning som utvecklare kan inspektera, i stället för att bara läsa den som en chatttranskription. Minimal- och Creator-lägena låter sedan utvecklare testa körtiden från motsatta håll.

DeepSeek Harness vs. Claude Code, Codex och OpenCode

En funktionschecklista skulle missa poängen. Varje konkurrent stöder utbyggnader; den nyttiga frågan är vilka delar utvecklare kan ändra. Skillnaden låter liten, men det är den inte. Vår dedikerade jämförelse mellan Harness och Claude Code använder samma modell i båda och täcker setup, loggar och kostnad.

DeepSeek Harness vs. Claude Code

Claude Code stöder projektinstruktioner, färdigheter, hooks, MCP, subagenter och ett Agent SDK, och den håller sin inbyggda loop fast. DeepSeek Harness låter utvecklare byta ut loopen, modelladaptern och lagringslagret via inställningar.

DeepSeek Harness vs. Codex

Codex kräver en noggrannare jämförelse eftersom dess CLI och App Server också är öppen källkod. Den tillhandahåller en agent-harness som utvecklare utökar via dokumenterade instegspunkter. DeepSeek Harness är byggd kring att ändra själva körtiden. De erbjuder olika nivåer av kontroll.

DeepSeek Harness vs. OpenCode

OpenCode är redan öppen källkod, fungerar med flera modellleverantörer och använder en klient-server-arkitektur. Du kan konfigurera dess verktyg, behörigheter, sessioner och leverantörer. Dess plugins utökar en fast serverkärna, medan DeepSeek också gör loopen och sessionslagret utbytbara.

När ska du använda DeepSeek Harness

Att byta ut körtidsdelar är inte användbart i sig. Den extra kontrollen spelar roll först när den löser ett problem du redan har.

  • När själva körtiden är en del av projektet. Om du ändrar modelladaptrar, agentloop, lagring eller sessionsbeteende, inte bara bygger ovanpå en agent, är detta en mer direkt träff.
  • När du jämför modeller i en kontrollerad miljö. Att använda samma körtid håller mer av testet fast när du byter modell, även om modeller fortfarande kan skilja sig i verktygsanvändning och resonemangsstil.
  • När felsökning av en komplex körning spelar roll. Sessionshändelseloggen och vyn Trajectory gör det lättare att återskapa vad en modell såg och vilka verktyg som kördes.
  • När du testar agentens internals. Creator-läge och Cordis är för utvecklare som studerar hur agenter sätts ihop, mer än för dem som bara behöver applikationskod skriven.

Det kan vara onödigt för enkla modellanrop eller för team som vill ha en färdig kodagent utan att behöva röra dess internals. Att byta ut fler delar är bara värt extrajobbet när den kontrollen löser ett verkligt problem.

Begränsningar i DeepSeek Harness: utvecklarförhandsvisning och säkerhetsrisker

Ingen av ovanstående arkitektur betyder mycket utan en tydlig redogörelse för var detta brister idag.

Det är fortfarande en utvecklarförhandsvisning

DeepSeeks kodförråd säger uttryckligen att det kommer att ske förändringar som bryter bakåtkompatibilitet. Det har redan hänt: namnbytet från Code till PTC kom med ändringar i sessions-API:erna och borttagning av ett valfritt SQLite-lagringsalternativ. Frys dina versioner. Att hoppa över det steget och hoppas att setupen förblir stabil är ingen plan.

Mer kontroll innebär också mer komplexitet

Att göra mer av körtiden utbytbar ger också utvecklare mer att lära: pluginberoenden, inställningar, leverantörsskillnader och versionskompatibilitet. Detta är den vanliga avvägningen mellan bekvämlighet och kontroll.

Är DeepSeek Harness lokalt?

DeepSeek Harness lagrar sessionsinnehåll, verktygsloggar och inställningar lokalt som standard, enligt dess databehandlingspolicy. Du kan stänga av dess anonyma rapporter om inställningar och projektlistor. 

Men en extern modellleverantör, webbaserat verktyg, MCP-server eller plugin kan fortfarande skicka data utanför din maskin enligt sin egen policy. "Local-first" täcker inte varje tjänst du ansluter.

Att köra agenter innebär säkerhetsrisker

En körtid som kan redigera filer, köra kommandon och ladda tredjepartsplugins kan orsaka verklig skada. DeepSeeks säkerhetsnotis säger att projektet inte har haft någon säkerhetsgranskning. Sandlådor, godkännanden och behörighetskontroller minskar risken men garanterar inte isolering.

Att köra programvaran på din egen maskin tar inte bort den risken. Använd begränsade behörigheter och en engångsmiljö för otillförlitligt arbete, och var försiktig med innehåll som kan innehålla dolda instruktioner.

Varför agentbeteende beror på mer än modellen

Agentbeteende beror på körtiden såväl som modellen. Detta återkopplar till "Agent = Model + Harness", och samma uppdelning gäller för LLM-agenter bortaom DeepSeek.

Vad en modell kan producera beror på dess vikter. Vad en agent gör beror också på vilket sammanhang som når modellen, vilka åtgärder den får vidta och hur hårt körningen begränsas. Inget av det finns i vikterna.

DeepSeek Harness visar det omgivande lagret genom att dela upp det i namngivna delar som utvecklare kan byta ut. Minimal-läget visar varför detta spelar roll bortom DeepSeek: ett benchmarkresultat återspeglar delvis den harness som användes för testet, inte bara modellen. Harnessen gör inte en modell smartare. Den förändrar miljön som modellen arbetar i.

Slutsats

Formuleringen från inledningen är den att behålla: modellen resonerar, men körtiden avgör vad det resonemanget kan nå och göra. DeepSeek Harness gör den körtiden redigerbar, från modelladapter och verktyg till sessionslager och agentloop.

Den kontrollen skapar kostnaden. Att byta ut mer av körtiden innebär att äga mer av dess setup, versionsändringar och säkerhetsgränser. En utvecklarförhandsvisning med shell-åtkomst är inget man installerar och glömmer.

Min syn är enkel: använd DeepSeek Harness när körtiden i sig är en del av arbetet. Om du bara behöver ändringar i ett kodförråd kräver en färdig kodagent mindre av dig.

Vår guide till DeepSeek Harness täcker setupen. Guiden om alternativ till Claude Code jämför fler kodagenter, medan Introduction to AI Agents täcker grunderna som den här artikeln förutsätter.

DeepSeek Harness – vanliga frågor

Är DeepSeek Harness samma sak som en DeepSeek-modell?

Nej, modellen och körtiden är separata. Harnessen innehåller inte modellvikter och kör inte inferens själv; den skickar förfrågningar till DeepSeek, Anthropic, OpenAI eller en lokal modell.

Är DeepSeek Harness gratis att använda?

Själva programvaran är MIT-licensierad och gratis. Det som inte är gratis är vilken modellleverantör du än kopplar till, eftersom inferens debiteras separat av den som kör modellen, plus eventuella infrastrukturkostnader från sandlådor eller externa tjänster du lägger ovanpå.

Vad står PTC-läge egentligen för?

DeepSeeks egna versionsanteckningar använder "PTC-läge" utan att stava ut en fast betydelse, även om beteendet stämmer med "programmatic tool calling". Jag skulle se det som en arbetsdefinition, inte en bekräftad akronym, tills DeepSeek anger en direkt.

Kan jag lita på DeepSeek Harness med ett kodförråd jag bryr mig om?

Vissa begränsningar gäller fortfarande. För ett kodförråd du bryr dig om, arbeta på en kopia eller separat gren, håll produktionsuppgifter borta från miljön och granska varje plugin innan du laddar det.

Betyder "allt är ett plugin" att jag kan göra det till vilken typ av agent jag vill?

Inte utan riktigt ingenjörsarbete. Att byta ut modelladaptern eller agentloopen kräver fortfarande ett plugin som följer rätt tjänstekontrakt. Pluginsystemet ger dig tillgång till fler delar; det får inte arbetet att försvinna.

Ämnen
AI-agenter
Artificiell intelligens

Lär dig Agentic AI med DataCamp!

track

Grunderna i AI-agenter

6 timmar
Upptäck hur AI-agenter kan förändra hur du arbetar och levererar värde för din organisation!
Se detaljerRight Arrow
Starta Kursen
Se merRight Arrow