ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

DeepSeek Harness 上手实录:Everything is a Plugin 是新范式还是新命名?

DeepSeek Harness 上手实录:Everything is a Plugin 是新范式还是新命名? DeepSeek Harness 上手实录Everything is a Plugin 是新范式还是新命名早上查看 GitHub 情报的时候我注意力被停留在一个消息上一个8月13日才建仓的项目deepseek-ai/deepseek-harness星数 206,587fork 23,994。19 天20 万星。我的第一反应是刷的吧。因为我把昨天和今天的 GitHub Trending 日榜、周榜都翻了一遍——日榜 16 个、周榜 20 个仓库里面压根没有它。一个 20 万星的项目不上趋势榜这事本身就不对劲。后来我把时间线对了一下才想明白。先补一句背景GitHub Trending 是官方的趋势榜分日榜、周榜、月榜排序看的是这一周期内新涨的星数不是仓库总星数——所以一个 20 万星但本周没怎么涨的仓库会输给总星数几千、但一周翻倍的新仓库。DSH 的爆发期在 8 月中下旬、建仓后的头两周本周增速已经回落自然就掉出榜了——热度峰值已经过去了现在进场的人吃的是第二波。但数据是真的。我用 api.github.com 逐项核验过星数、fork 数、提交记录、发版记录都是实抓的不是营销号互相抄的那种“据外媒报道”。这是 DeepSeek 官方的开源项目不是蹭名字的山寨货。所以今天这篇文章记录我把它完整装一遍、跑起来、拆开看了一遍的全过程。先说结论**东西是真东西但“Everything is a Plugin”这句口号一半是新范式一半是新命名。**往下看就知道我为什么这么拆。一、它到底是什么DeepSeek Harness命令行叫dsh是 DeepSeek 官方开源的 agent harness定位对标 Claude Code、Codex CLI 这一挂起一个本地服务接上模型让 agent 读文件、跑命令、改代码。官方 README 说它“构建于一切皆插件的架构之上由 Cordis 驱动”。Cordis 是个 TypeScript 插件框架背后有篇论文《A Programming Paradigm for Spatiotemporal Composability》arXiv:2608.25512感兴趣的同学可以自己去翻。几个我核实过的基本盘协议 MIT商用无障碍8月10日在 npm 发第一个版本21 天发了 14 个版本最新 latest 是0.1.1-rc.2alpha 通道已经到0.1.2-alpha.38月31日发的开发者预览阶段官方 README 用加粗原话警告未来将出现破坏兼容性的变更中文是一等公民官方中英双 README、整套中英双语文档还建了企微群和微信公众号README 里直接贴二维码最后这条对国内开发者挺重要的。DeepSeek 的 API 在 platform.deepseek.com国内直连、人民币充值不像某些工具从注册第一步就开始折腾你。二、安装实录我被 npm 坑了大半个小时先说坑这是本文可能对你最有用的部分。README 给的安装方式极简单npx deepseek-ai/dsh web一行命令默认起 Web UI 在http://127.0.0.1:3080。看起来很美。我实际执行的记录是这样的直连 npm卡死。等了五分钟啥也没装出来。换 npmmirror 镜像还是卡死五分钟超时。挂代理重试元数据请求全部 200、速度也正常但还是装不完。翻 npm debug 日志找到真相不是网络问题是依赖树太大。deepseek-ai/dsh这个包在依赖组装placeDep阶段爬了二十多分钟没爬完。为什么依赖树这么大后面拆包那节会讲这里先剧透完整装下来是 447 个包其中 197 个是deepseek-ai/官方 scope 下的插件包。至于 npm 为什么爬不动这棵树、pnpm 为什么快4.1 会展开。我最后用 Node 自带的 corepack 拉起 pnpmcorepackpnpmadddeepseek-ai/dshlatest一两分钟就装完了504 个包解析、447 个下载——差额 57 个是 pnpm 全局 store 里已有的现成副本直接软链过来没走网络。同一台机器、同一个网络npm 和 pnpm 的差距是“装不完”和“一两分钟”。装完还差一步pnpm 11 的构建白名单启动前还有个坑pnpm 11 默认禁止依赖跑安装脚本node-pty、koffi这些原生模块没编译。而且这个报错不只是警告——dsh启动时自己会做一次依赖自检自检失败直接拒绝启动。我在pnpm-workspace.yaml里加了这么一段才通dangerouslyAllowAllBuilds:true更稳妥的做法是用onlyBuiltDependencies列白名单我只装个预览版偷了懒。但有个坑是确定的package.json 里那个pnpm字段在 pnpm 11 已经不被读取了——官方警告里明说我第一次就踩在这上面。中文资料里还没见人写过。三、跑起来corepackpnpmexecdsh web --no-open控制台输出一行dsh web: http://127.0.0.1:3080浏览器打开标题栏就是 DeepSeek Harness。按官方文档的使用流设置 → 模型填入 DeepSeek API 密钥保存模型路由立即可用不用重启选择工作区把启动dsh时所在的项目目录加进来选中发任务。Agent 能读写工作区文件、跑命令、维护计划按权限策略敏感操作会先弹审批这里有个细节值得单独说PowerShell 是一等公民。它的工具插件里dsh-tool-pwsh、dsh-pwsh-local、dsh-pwsh-sandbox是独立列出来的。用 Windows 写代码的都懂某些流行 agent 工具在 Windows 上非要你配 bash 环境那体验一言难尽。DSH 把 PowerShell 和 bash 平行做成了可插拔工具至少在态度上是照顾 Windows 的。四、拆包“一切皆插件”的成色这是本文的核心。口号谁都会喊我拆开 npm 包看了看到底是什么货色。4.1 本体只有 120KBdeepseek-ai/dsh解压后119,971 字节、20 个文件。一个对标 Claude Code 的东西本体只有一个引导器。它的依赖里bash 工具是dsh-tool-bashPowerShell 工具是dsh-tool-pwshMCP 客户端是dsh-mcp-client技能系统是dsh-skill上下文压缩是dsh-compaction-*token 计量是dsh-token-meter计划模式是dsh-plan-mode子代理是dsh-tool-subagent连 Web 界面都是dsh-web-app——每一个能力都是一个独立的 npm 包。现在可以回收第二节的伏笔了。为什么依赖树这么大因为每一个能力都是一个独立 npm 包这是架构选择的代价。为什么 npm 爬不动、pnpm 一两分钟装完npm 要把所有依赖扁平化塞进同一层node_modules遇到版本冲突就回溯重排就是日志里卡死的那个placeDep阶段树越宽回溯越多pnpm 则是每个版本只往全局 store 里落一份再用符号链接拼进项目根本不需要协商。差距是结构性的不是网络问题。拆依赖树时还有个意外发现里面躺着anthropic-ai/sdk、Google GenAI 和 AWS Bedrock 的 SDK。也就是说“模型适配器也是插件”不是架构图上的空话Claude、Gemini、Bedrock 的路由已经埋进发行包里了——配一个 DeepSeek key 开箱即用想切别家也留着门。CLI 自带四个官方预设配置文件里的原文预设官方描述极简模式仅提供持久 bash 与 str_replace_editor 的双工具编码 AgentPTC 模式标准模式全能力通过 Code Mode SDK 让模型用一个 TypeScript 程序组合多步操作标准模式功能完整支持文件编辑、Shell、检索、Skills、计划、目标、子代理和工作流cordis官方名“创造模式”用于创建自定义 Agent preset具备标准模式的全部能力并提供运行时检查、插件实验和 preset 创作指导四个预设里最有意思的是最后一个。cordis 预设的配置注释写得很直白它存在的意义就是让一个人能够请 agent 写出另一个 agent——标准模式的工具原样保留再加一套自我指涉的 Cordis 工具集。官方也不回避风险注释里专门有一段安全提醒这个预设下的cordis_mount会在活着的运行时里执行模型写的 JavaScript“把这个预设下的会话当作 shell 访问来对待”。敢把“agent 造 agent”做成官方预设还把信任边界写得这么明白这点我给好评。4.2 真正有意思的整棵树可以导出和替换跑一下dsh--profileweb --dump-config它会把当前组装的完整插件树打印出来节选几行大家感受下# deepseek-ai/dsh-base-id:llmname:deepseek-ai/dsh-llm-id:sessionname:deepseek-ai/dsh-session# deepseek-ai/dsh-base, patched by deepseek-ai/dsh-web-app-id:hmrname:deepseek-ai/cordis-plugin-hmrdisabled:true注意那些注释行每个条目都标了它来自哪个组合包、被谁 patch 过。运行中的 dsh 是一棵插件树按“profile → 组合包 → 你的 patch”顺序叠加。装插件的命令是dsh plugin--profilewebaddpackage它内部转发给 pnpm 装到你自己的 profile 目录里。架构文档里有一句话我觉得值回票价**“不存在需要打补丁的特权内核。”**连 agent loop 本身、模型适配器、会话日志都是插件理论上任何一个都能被你的配置整个换掉。这是和“在内核边上留个扩展点”完全不同的设计哲学。4.3 生态已经自己长出来了再一个佐证建仓两周内第三方生态自己冒出来了——awesome-dsh-plugin精选列表 13,907 星anywhere-labs/dsh-desktop桌面端 22,474 星还有 Web 聚合端、路由套件各自几千星。我抽查了其中一个仓库的源码README、CI、隐私声明俱全不是空壳。刷星可以刷出 20 万数字刷不出 20 个带 CI 的下游仓库。这就是我最终判断它不是刷榜的依据。顺带一提Hacker News 上它反而很冷清最相关的帖子最高也就个位数的赞。热度集中在 GitHub 和中文圈英文社区还没跟进——对写技术内容的人来说这是个时间差机会。五、所以新范式还是新命名我的答案分两半。**“新命名”的那一半**插件化架构不是它发明的。Cordis 框架早就存在VSCode、Eclipse 这类“微内核插件”的设计在软件工程里是教科书内容。把一个 TS 插件框架用在 agent harness 上工程上漂亮但理念上没有石破天惊。“新范式”的那一半把“LLM agent 的每一项能力”做成独立分发、可整树替换、有官方背书的 npm 包这个组合确实没人做过。对比一下就清楚了Claude Code 的插件和 Skills 本质上是目录规范——你往约定位置放文件宿主程序加载。扩展的是内容不是宿主本身。DSH 的插件是进程内 Cordis 插件——bash 工具、模型路由、上下文压缩策略全都可以被拔下来换掉。扩展的是宿主本身的每一个器官。打个比方一个是给房子添家具一个是房子本身由标准化模块拼的你嫌哪个房间不顺眼可以整个拆了重拼。后者的工程天花板明显更高——代价是门槛也高写个 DSH 插件你得先懂 Cordis。再加一个变量DeepSeek 官方在做这件事MIT 协议。有背书的开放权重模型有背书的开放 harness这个打法对生态的杀伤力参考 ollama 那几年就知道了。六、风险和购买建议免费的建议现在就该装的想研究 agent 架构、想给 agent 写插件的——这是目前最好的活教材--dump-config一导整棵树摊开给你看想省 token 钱的——DeepSeek API 定价摆在那自己算账建议再等等的想拿来当日常主力工具的——它在开发者预览期官方明说会有破坏性变更今天写的配置下周可能作废网络不好且不想折腾 pnpm 的——npm 直装的实际体验我在第二节写得很清楚了最后泼一盆冷水20 万星里有多少会转化为长期贡献者要看半年后。agent harness 这个赛道DeepSeek 之外Claude 插件生态、孵化器里的 Apache Maka本地优先 agent 运行时、Cursor 开放插件规范全都压上来了2026 年下半年会有一场淘汰赛。DSH 手里的牌是架构激进官方背书中文生态短板是 alpha 稳定性和英文社区声量。装一遍拆一遍你自己会有判断。本文数据星数、fork、发版时间线、包体积均为 2026-09-01 当日从 api.github.com 与 npm registry 实抓安装与启动过程为本机实录。如果对你有帮助点个赞或者收藏后续我会跟一篇 DSH 插件开发实录。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进