KDnuggets ★ 111 6 min

What I’ve Learned About DeepSeek Harness

🔗 https://www.kdnuggets.com/what-ive-learned-about-deepseek-harness

📌 【DeepSeek開源】連Agent迴圈都能換的插件式Runtime dsh

TL;DR:DeepSeek開源agent runtime dsh,把模型、工具、迴圈全做成可替換插件。

一個標榜「developer preview」、README裡還寫著「將會有破壞相容性的變更」的專案,十天內拿下超過18萬顆星、2萬次fork,這樣的速度連AI工具圈都少見。它靠的不是「更好用的coding agent」這麼簡單的理由。

🤔 DeepSeek又一次選擇開放基礎設施

2026年8月13日,DeepSeek悄悄開源了一個agent runtime,稱為DeepSeek Harness,CLI名稱是dsh。上線後反應一點都不安靜:第一個12小時衝到約5萬星,28小時來到約9.2萬星,十天內突破18.6萬星、超過2萬次fork。

這不是DeepSeek第一次選擇開放基礎設施而非築起圍牆花園。2025年1月,DeepSeek-R1成為第一個來自美國以外實驗室、採MIT授權的開放前沿推理模型,訓練成本遠低於同等級的西方模型,重設了外界對「誰有能力開放釋出前沿AI」的預期。Harness讀起來像是同樣的精神往堆疊上層延伸:這次開放的不只是權重,而是整套agent基礎設施,且與公告同時發布,而非提前預告。

🧩 核心架構:每一層都是插件,連推理迴圈也不例外

DeepSeek反覆強調的核心主張是:agent的每一層都是插件,模型adapter、工具註冊表(tool registry)、session log、沙箱(sandbox)、UI,甚至agent迴圈本身都不例外。它建構在Cordis這個插件框架之上,Cordis在被DeepSeek採用之前,已經在Koishi聊天機器人專案裡穩定運作四年,並非為這次發布臨時打造。這個設計還有一篇論文作學術背書:《A Programming Paradigm for Spatiotemporal Composability》。

幾個值得留意的技術細節:它是model-agnostic設計,跨越約40家供應商,甚至可以把sub-agent整個委派給競爭對手的agent,不被鎖定在DeepSeek自家模型上;沙箱是真正的作業系統層級隔離,而非軟性約定,Linux上用bwrap(Bubblewrap,Flatpak應用使用的同一種沙箱機制)搭配Landlock,macOS上用蘋果自家的Seatbelt沙箱框架,Windows上用受限的ACL token,預設為fail-closed而非fail-open;session log是append-only,並由runtime強制執行一條規則:只要模型看過的內容,就一定會被記錄,不存在「靜默上下文」。

README自己也很坦白地寫著「developer preview」與「將會有破壞相容性的變更」,對一個這麼受矚目的專案來說相當罕見。簡單說,這還不是一個能直接對著repository跑起來用的coding agent,而是組裝coding agent所需要的機件。

🧩 實測:152個可各自替換的插件

作者實際跑了一次。由於是以npm套件形式發佈,可以直接用npx --yes @deepseek-ai/dsh --version安裝,回傳版本號0.1.5-rc.2,與GitHub releases頁面的版本紀錄相符,確認這是真實可運作的安裝。

help輸出顯示指令包括web(啟動web profile,等同--profile web)與plugin(把剩餘參數轉發給該profile目錄下的pnpm,管理插件)。此外還有headless、tui、rescue等不同profile,各自只是一組不同的已掛載插件堆疊。dsh plugin add把安裝新能力當成一次普通的套件安裝,而非另外設計一套特殊機制。

最具體的發現來自--dump-default-config這個flag,它會在profile啟動前印出完整組成的插件樹。對預設web profile執行後,印出了152個各自獨立命名、可各自替換的插件,從側邊欄、聊天視窗,到approval提示、sub-agent面板、排程UI(內建但預設disabled: true),全都是各自獨立、有自己id的可安裝套件,多數工具會把這些都當成同一個巨石式前端來處理。

作者也試了在沒有設定model key的情況下跑一次性的headless模式:npx --yes @deepseek-ai/dsh --profile headless "say hello",結果立刻失敗,並回傳清楚具體的錯誤訊息:MISSING_CREDENTIAL: llm-deepseek: no API key for provider route "deepseek-official",直接告訴使用者該設定哪個環境變數,或web UI的Models頁面會把金鑰存在哪裡。

💡 連推理迴圈都能換,是真正的架構差異

作者認為最與眾不同的地方,不在插件數量,而在於「agent迴圈本身就是一個插件」。在Codex CLI這類工具裡,要改變核心推理迴圈的行為,得去改一個編譯好的Rust binary;在dsh裡,迴圈就活在一個普通的套件裡,可以像換UI面板一樣直接從設定檔換掉。這是真正的架構差異,而不只是「extensible」的另一種說法,也是為什麼專門在做agent基礎設施的開發者會特別關注它。不過這不代表它已經適合廣泛推薦:一份獨立的插件目錄在第一次快照時只收錄了94個插件、分四個類別,生態仍在起步。

⚠️ 限制

專案本身反覆聲明這是developer preview,且會有破壞相容性的變更;如果目標是明天早上就要拿來取代Claude Code或Codex當日常coding agent,它還沒準備好,而且專案自己也不假裝已經準備好了。

🎯 實務啟示

如果你是在做agent基礎設施,或是想在不fork任何東西的情況下換掉session store或沙箱後端,這個架構現在就值得認真研究,它是真的在跑,不是空氣專案。但如果只是想找一個明天就能取代現有coding agent的日常工具,現在還不是時候。

🔗 來源

#DeepSeek #AgentRuntime #OpenSource #PluginArchitecture #AIAgents #DeveloperTools #CLI #Cordis #AIInfrastructure #CodingAgent

原始資料 KDnuggets · 收集於 2026-09-25
來源原標題
What I’ve Learned About DeepSeek Harness
作者
Shittu Olumide
原始連結
https://www.kdnuggets.com/what-ive-learned-about-deepseek-harness

摘要原文

What I’ve Learned About DeepSeek Harness KDnuggets team member Shittu Olumide tested out DeepSeek Harness. Here's what he found. By Shittu Olumide , Technical Content Specialist on September 24, 2026 in Artificial Intelligence On August 13, 2026, DeepSeek quietly open-sourced an agent runtime called DeepSeek Harness , CLI name dsh , and the reaction wasn't quiet at all. The repository picked up roughly 50,000 stars in its first twelve hours, around 92,000 by hour twenty-eight, and had passed 186,000 stars with over 20,000 forks within ten days. That's an unusual velocity even by AI-tooling standards, and it's worth understanding what actually earned it, since the honest answer isn't " a better coding agent ." What's the Buzz About DeepSeek Harness? The central claim, repeated everywhere DeepSeek describes this project, is that literally every layer of an agent is a plugin : the model adapter, the tool registry, the session log, the sandbox, the UI, and even the agent loop itself. It's built on Cordis , a plugin framework with a real production track record — four years running inside the Koishi chatbot project before DeepSeek adopted it here, not a framework invented for this launch. The design itself is documented in a real paper, A Programming Paradigm for Spatiotemporal Composability , which is more academic grounding than most agent tooling launches bother to publish. A few specifics that matter: It's model-agnostic across roughly 40 providers, and a sub-agent can reportedly be delegated to a competitor's agent entirely — not locked to DeepSeek's own models. Sandboxing is real OS-level isolation rather than a soft convention: bwrap (Linux's Bubblewrap, the same sandboxing primitive Flatpak apps run in) and Landlock on Linux, Seatbelt (Apple's own sandbox framework) on macOS, restricted ACL tokens on Windows — fail-closed by default rather than fail-open. Session logs are append-only with a runtime-enforced rule: if the model saw it, it's logged — no silent context. And the project is loudly upfront about what it isn't yet. The README's own words are " developer preview " and " THERE WILL BE COMPATIBILITY-BREAKING CHANGES ," which is a rare amount of honesty for a project this hyped. Let's put this plainly: this isn't a coding agent you point at a repository and use today. It's the machinery a coding agent gets assembled from. This isn't DeepSeek's first time choosing open infrastructure over a walled garden either, and that history is worth a beat. DeepSeek-R1 landed in January 2025 as the first open, MIT-licensed frontier-class reasoning model from outside the usual US labs , trained for a fraction of what comparable Western models cost, and it reset a lot of assumptions about who gets to ship frontier AI in the open. Harness reads like the same instinct applied one layer up the stack: instead of open weights alone, open agent infrastructure, published at the same time as the announcement rather than teased ahead of it. What I Found When I Ran It Since it ships as a real npm package, you can install directly: npx --yes @deepseek-ai/dsh --version That returned 0.1.5-rc.2 , matching the version history on the project's actual GitHub releases page, confirming this was a genuine, current install. Here's what the real help output actually shows: Commands: web [options] [args...] boot the web profile (alias of --profile web) plugin [options] [args...] manage a profile's plugins by forwarding the remaining arguments to pnpm in the profile directory Examples: dsh --profile web boot the web profile (same as: dsh web) dsh --profile headless "run the tests" answer one task, print the result, and exit dsh --profile tui --patch ./extra.yml boot a custom profile with one extra overlay dsh plugin --profile tui add install a plugin into the tui profile --profile web boots the browser UI, --profile headless answers one task and exits, and there's also tui and rescue profiles — each one just a different stack of mounted plugins under the same launcher. dsh plugin add treats installing a new capability as an ordinary package install rather than a special, separate mechanism. The most concrete thing I found came from one flag: --dump-default-config , which prints the entire composed plugin tree for a profile before it boots. Running it against the default web profile printed 152 separately named, independently swappable plugins . A representative slice of the actual output: - id: ui-approval name: '@deepseek-ai/dsh-client-ui-approval' - id: ui-subagent name: '@deepseek-ai/dsh-client-ui-subagent' - id: ui-schedule name: '@deepseek-ai/dsh-client-ui-schedule' disabled: true - id: ui-plan name: '@deepseek-ai/dsh-client-ui-plan' - id: agent-presets name: '@deepseek-ai/dsh-agent-presets' config: default: standard Everything from the sidebar and chat window down to the approval prompt, the sub-agent panel, and the scheduling UI (shipped but disabled: true by default) is its own installable package with its own id . That's not a marketing claim anymore once you've watched it print — it's a genuinely fine-grained plugin architecture, down to individual UI panels most tools would treat as one monolithic frontend. I also tried the one-shot headless path with no model key configured: npx --yes @deepseek-ai/dsh --profile headless "say hello" It failed immediately with a clean, specific error: MISSING_CREDENTIAL: llm-deepseek: no API key for provider route "deepseek-official" , telling me exactly which environment variable to set or where the web UI's Models page would store it instead. It's the kind of error message that tells you someone thought about the failure case on purpose rather than letting a stack trace do the talking. My Take The genuinely distinctive bet here isn't the plugin count — it's that the agent loop is one of the plugins. In a tool like Codex CLI , changing how the core reasoning loop behaves means editing a compiled Rust binary. In dsh , the loop lives in an ordinary package you swap from config, the same way you'd swap a UI panel. That's a real architectural difference, not just a rebranding of "extensible," and it's the reason people building agent infrastructure specifically are paying attention. None of that makes it something to recommend broadly yet. It's explicitly, repeatedly a developer preview — the project says so louder than most — and an ecosystem still assembling itself. One independent plugin directory listed 94 plugins across four categories as of its first snapshot: useful, but young. Who Should Actually Care Right Now If you build agent infrastructure, or you're the kind of developer who wants to swap out a session store or a sandboxing backend without forking anything, this is worth a real look today — the architecture is sound, and it's genuinely running, not vaporware. If what you actually want is a daily-driver coding agent to replace Claude Code or Codex in your workflow tomorrow morning, this isn't it yet, and the project isn't pretending otherwise. Shittu Olumide is a software engineer and technical writer passionate about leveraging cutting-edge technologies to craft compelling narratives, with a keen eye for detail and a knack for simplifying complex concepts. You can also find Shittu on Twitter . <= Previous post Next post =>

由 claude-code/sonnet 自動生成