第0章 这场发布意味着什么
这一章回答「它为什么值得你花五个小时」——先看清发布的时间线、标志、争议,再决定要不要往下读。
学完这一章你应该能做到
- 说出 Harness 与 DeepSeek 模型产品的本质区别
- 列出 8 月 12 日到 13 日 DeepSeek 连续做的三件事
- 解释「毛坯房」争议到底在争什么
0.1 48 小时里发生了什么
先把时间线摆出来。2026 年 8 月 12 日,DeepSeek 把 V4-Pro 从预览版转为正式版,这是模型的动作。8 月 13 日晚,DeepSeek Harness(后面统一叫它 DSH)开发者预览版 v0.1 开启全球公测,同时以 MIT 协议开源到 GitHub(仓库地址:deepseek-ai/deepseek-harness)。这还没完——据腾讯云开发者社区梳理,48 小时内还有第三件事:API 涨价,8 月 16 日生效。模型转正、Agent 框架开源、API 调价,三件事挤在一起,节奏很密。
为什么说这个时间点有意思?因为 DeepSeek 一向以「低调、只发模型」著称。Harness 是它第一次把「工具链」本身拿出来开源,而不是只开源模型权重。开源一个 Agent 框架,意味着它想把「怎么用模型」这件事,也变成开放协作的对象。
为什么需要这一章
后面的每一章都在拆 DSH 的机制。但如果你先不搞清「它发布在什么语境里、大家对它什么反应」,就会把一篇工程文档读成新闻稿。先立坐标,再进细节。
开发者预览版(Developer Preview):正式版之前的公开测试版,功能可用但可能不稳定、接口可能变。DSH 当前是 v0.1,官方措辞是「预览」而不是「正式」,这个定位很重要——它意味着文档可能滞后、插件生态还没起来、很多边界情况没人踩过。
有个细节值得注意:DSH 用的标志是一条黑色鲸鱼,而 DeepSeek 模型产品用的是蓝色鲸鱼。黑色鲸鱼配独立公众号「DeepSeek Harness 团队」——官方特意把「模型品牌」和「Harness 品牌」分开经营。这说明团队把它当独立产品线做,不是模型的一个附件。
0.2 「毛坯房」:第一印象为什么是负面评价
发布当天,社区最常见的反应是「毛坯房」:基础界面只有一个对话框加历史记录,没有侧边栏文件树、没有一键部署、没有现成插件市场。对比 Claude Code 开箱即用的精致体验,DSH 确实显得寒酸。
为什么它故意做成毛坯房
这大概率不是偷懒,而是哲学选择。「一切皆插件」意味着所有你想要的组件——界面、工具、技能——都要由插件提供,而不是内置。内置一个精美 UI 就等于「预装插件」,违背了「空根」原则。毛坯房不是缺陷,是设计意图的外化。但代价也很真实:普通工程师上手门槛高,YAML 配置、插件依赖、效果组件、服务配置,一样都不能少。
这也解释了另一个现象:上手门槛的争议。有经验的开发者夸它「乐高积木」「Minecraft 模组」,普通用户则抱怨「文档太少、配置太杂」。这两种评价其实说的是同一件事——DSH 把复杂性从「产品内部」搬到了「用户面前」。你要么自己搭,要么等生态把积木拼好。
0.3 为什么这份精读值得做
市面上写 DSH 的文章,多数停留在「它开源了、一切皆插件、有四种模式」的复述层。这个页面要做的是把「一切皆插件」这五个字拆开:插件系统长什么样(Cordis)、配置怎么合并(层叠)、模型如何被降级成普通插件(Cortex 循环)、日志为什么只能追加(append-only)、四种模式到底差在哪。这些机制层面的东西,才是你判断「DSH 值不值得用」的素材。
另外一个现实原因:DSH 目前是 v0.1,资料稀缺。官方文档不完整,社区经验分散在论坛和社交媒体上。这个页面相当于帮你做了一次「机制考古」——从官方源码(你本地就能 npm 装到的包)、官方公告、多家媒体报道里,把散落的事实拼成一幅可理解的地图。
先打个预防针
页面里的很多判断(比如「毛坯房是哲学选择」「可能成为 Linux」)是我的解读,不是 DeepSeek 官方的原话。凡是我个人的推断,都会明确标注「这是我的理解」。官方说什么、社区说什么、我猜什么,三条线分开写,你自己判断信哪条。
用你自己的话说,8 月 12 日到 13 日 DeepSeek 连续发布的「三件事」分别是什么?为什么说三件事放在一起看更有意思?
DSH 的黑色鲸鱼标志与 DeepSeek 模型产品的蓝色鲸鱼标志被刻意区分开。从产品战略角度分析:这种「品牌分离」传递了什么信号?如果反过来统一用蓝色鲸鱼,会有什么坏处?
社区给 DSH 的第一印象贴了「毛坯房」的标签。请构造一个反例:在什么条件下,「毛坯房」不是哲学选择而是纯粹的缺陷?也就是说出一个场景,让「默认不加内置 UI」变成明显错误的决定。
答辩:如果我是审稿人
你说「毛坯房是哲学选择不是缺陷」。那请你解释:一个开源框架,用户第一体验就是劝退,就算哲学上自洽,实用上有什么补偿?
参考防守(先自己组织语言再看)
防守要点:第一,DSH 的目标用户是开发者,不是终端用户——开发者要的是「我可以改」而不是「开箱即用」;第二,MIT 开源 + Cordis 生态(已有积累的插件体系)提供了可组合的补偿,用户短期多花的时间换来的是长期不锁死的自由;第三,v0.1 阶段「少而纯」比「多而杂」更利于快速迭代——先证明机制成立,再让社区长内容。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
DSH 是 DeepSeek 于 2026 年 8 月 13 日发布的 Agent 框架开源预览版,v0.1,MIT 协议。它与模型产品并列但独立品牌(黑鲸鱼 vs 蓝鲸鱼),第一印象「毛坯房」争议,反映了「默认由插件组成」的哲学与开箱即用的产品期望之间的张力。看这个框架,不能只看表面体验,要看它的组合机制——这正是后面几章要拆的。
第1章 插件哲学
「一切皆插件」不是宣传语,而是一条具体的架构决策:模型也只是众多插件之一。这一章把这句话拆成可操作的判断标准。
学完这一章你应该能做到
- 列出 DSH 中「插件化」覆盖的至少六类组件
- 解释「模型是插件」与传统 Agent 框架的本质区别
- 判断一个设计决策是否符合「一切皆插件」原则
1.1 「插件」这个词被用滥了,但这里不是比喻
很多产品说自己「支持插件」,实际是「我们做了个主程序,再留几个扩展点」。DSH 不是这种。它把「模型」「工具」「技能」「会话」「沙箱」「存储」「循环」「调度」「UI」全部定义为插件——没有一个是内置的「主程序」,全部可以替换、重排、删除。
这带来一个反直觉的推论:连「Agent 循环」本身(模型思考→调用工具→看结果→再思考)都是插件。官方文档里「循环」出现在插件清单里,意味着你甚至可以把「思考→行动」这个循环替换成别的结构。比如 PTC 模式,就是把「多次工具调用」压缩成「一次程序化调用」——这就是换了一个「循环插件」。
插件(Plugin):在 DSH 语境里,指任何可以被独立加载、配置、替换、移除的模块化组件。插件由依赖(deps)、配置(config)、服务(service)三要素定义,运行在 Corda 容器内。
为什么「模型是插件」这么重要
传统 Agent 框架(比如早期的 LangChain、或内置了模型的平台)把模型当作「引擎」,其余工具都是给引擎加油的附件。DSH 反过来了:模型只是「大脑插件」之一。这意味着你可以把 DeepSeek-V4 换成 Claude、GPT、本地 Llama,或者干脆同时挂多个模型做路由,而整个框架结构不用改。
1.2 三要素:依赖、配置、服务
在 Cordis 的世界里,一个插件不是一坨「实现功能的代码」,而是由三部分定义的结构:
依赖(deps):这个插件需要哪些其他插件先就位。比如「文件工具」插件依赖「沙箱」插件,因为文件读写发生在沙箱里。依赖声明让 Cordis 能自动解析加载顺序。
配置(config):这个插件的可调参数。每个插件声明自己的配置 schema,默认值、类型、校验规则都在这里。多个配置通过「层叠」合并(第 3 章细讲)。
服务(service):插件对外提供的接口。比如「shell 工具」插件提供 `exec()` 方法,「会话」插件提供 `push()`、`fork()` 方法。别的插件通过服务调用它,而不是直接 import 代码——这是「依赖倒置」的核心:上层不依赖下层实现,只依赖接口。
| 要素 | 作用 | 例子 |
|---|---|---|
| deps | 声明需要哪些前置插件 | web UI 依赖 session 插件 |
| config | 可调参数与默认值 | model 插件配置 apiKey、model 名 |
| service | 对外提供的接口能力 | exec()、push()、fork() |
这三要素的组合逻辑,让「插件」天然具备可替换性——你只需要找一个实现了同样服务接口的插件,就能无缝替换。
1.3 「一切皆插件」的边界在哪
真的「一切」吗?按官方公告和源码,核心的 Cordis 运行时本身不是插件(它是容器)。「一切皆插件」描述的是 Agent 能力层:模型、工具、技能、会话、沙箱、存储、循环、调度、UI。这九类之外的「框架本身」,比如 Cordis 内核、DSH 的 CLI 入口,是固定的地基。
所以准确的说法是:DSH 里「凡是能换的,都用插件实现;框架只保留最小的胶水」。这与 Unix 哲学「做一件事并做好」一脉相承——但比 Unix 更激进:连「你」这个 Agent 的主循环都可以换。
打个比方:厨房不是餐厅
把 Agent 想象成一家餐厅。传统框架是「中央厨房」:菜单固定、后厨固定、你只能点套餐。DSH 是「厨师开放集市」——摊位(插件)随便租,菜谱(循环)随便改,连「什么是菜」都由你定。这个比方哪里不灵:集市里的「摊位」通常独立经营,而 DSH 的插件之间需要紧密配合(依赖、服务调用),不能像两个独立摊位那样完全不交流。
按官方「一切皆插件」的说法,DSH 中哪些组件被定义为插件?至少列出五个类别。
「模型是插件」给用户带来一个以前没有的灵活性。请举例:换模型时,系统提示词、工具列表、会话格式都不需要改,这是为什么?
给你一个假设的设计:DSH 在核心里硬编码了「支持 /help 命令」的功能,不走插件。请用「一切皆插件」原则判断这个设计合不合理,并给出理由。如果合理,说明什么条件下合理;如果不合理,说明怎么改。
答辩:如果我是审稿人
你强调「插件三要素」给了可替换性。但「一切皆插件」会不会导致性能损失?每个插件都要走 Cordis 的事件循环和服务调用,这和直接函数调用比,开销在哪?
参考防守
防守要点:第一,DSH 的「性能」瓶颈在模型推理,不在插件调度——一次 LLM 调用可能是几百毫秒到几秒,插件调度是微秒级,可以忽略;第二,Cordis 有「运行时集成」机制,同一进程内的插件通过运行时对象直接调用,不序列化;第三,如果要极致性能,可以砍掉不必要的插件组合,只保留最小集——这正是「极简模式」存在的意义。但也要承认:如果插件数量爆炸(几百个),启动时的依赖解析和事件广播确实有可感知开销,这是「组合性」的代价。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
DSH 的「一切皆插件」不是口号而是架构决策:模型、工具、技能、会话、沙箱、存储、循环、调度、UI 全部插件化,只有 Cordis 容器和 CLI 胶水是固定底座。插件由依赖、配置、服务三要素定义,通过服务接口而非直接代码调用实现可替换性。理解这一点,才能理解后面所有机制(配置层叠、模式、日志)为什么这么设计。
第2章 Cordis 元框架
Cordis 是 DSH 的插件容器,也是「一切皆插件」能成立的根本原因。它 2019 年在 Koishi 里萌芽,2022 年独立开源。这一章讲它为什么能承载 Agent。
学完这一章你应该能做到
- 说出 Cordis 与 Koishi 的关系和时间线
- 解释「元框架」的含义
- 列举 Cordis 的五个关键特性
2.1 Cordis 从哪里来
Cordis 不是为 DSH 现写的,它有一段「祖传」历史:2019 年,Shigma 在开发聊天机器人框架 Koishi 时,把插件管理逻辑抽成了独立层;2022 年,这个独立层以 Cordis 的名字开源(MIT 协议),Koishi 本体则缩小到了约 350KB。换句话说,Cordis 是一个在聊天机器人生态里被验证了多年的「插件元框架」,DSH 是把它拿来当 Agent 容器的又一次复用。
这条时间线很重要,因为它解释了 DSH 为什么敢在 v0.1 就开源:Cordis 本身已经有四年的生产经验,插件体系成熟,DSH 只需要在上面「挂 Agent 能力」,不需要从零发明插件系统。这也回应了「毛坯房」批评——地基其实是稳的,只是「Agent 家具」还没摆齐。
元框架(Meta Framework):不直接提供业务功能,而是提供「如何组织功能」的框架。Cordis 不帮你写对话、不帮你调模型,它只负责:谁先加载、谁依赖谁、配置怎么合并、事件怎么广播。
为什么「元框架」适合 Agent
Agent 的本质是「编排」:把模型、工具、记忆、沙箱按特定顺序组合。传统应用框架为「页面」服务,Cordis 为「组件组合」服务。Agent 需要的恰恰是后者——你不是在写一个固定 UI,你是在搭一个可以不断加零件的系统。元框架把「搭零件」本身工程化了。
2.2 五个关键特性
热插拔(Hot Reload):插件可以运行时增删,不用重启整个进程。这对 Agent 调试很关键——你改一个工具的行为,立刻生效,不用把会话重开。
依赖倒置(Dependency Inversion):插件之间通过服务接口(service)交互,而不是直接 import。上层插件只依赖「接口」,不依赖「实现」,所以换实现不需要动调用方。
单体仓库(Monorepo):Cordis 生态用 monorepo 管理所有包,版本一起发,接口同步演进。DSH 的 90 多个 @deepseek-ai 子包也沿用了这个模式,所以你 npm 装 dsh 时能看到几十个依赖包。
复刻/分叉(Fork):Cordis 生态里「分叉」是核心操作——把已有的 Agent 配置复制一份,改参数,变成新的 Agent。这个思想直接渗透进 DSH 的会话设计(第 7 章)。
配置层叠(Config Cascade):多个来源的配置按优先级合并,后写覆盖先写。这是 DSH 配置系统的理论基石(第 3 章)。
这五个特性单独看都不稀奇,但组合在一起,就构成了「你可以信任这个容器来跑 Agent」的理由:热插拔让你迭代快,依赖倒置让你换得动,monorepo 让你装得全,分叉让你繁殖快,层叠让你配得省。
2.3 DSH 与 Cordis 的版本关系
打开 DSH 本地安装包(`npm` 全局装 `@deepseek-ai/dsh`)的 package.json,依赖里明确写着 cordis 4.0.1。而 Cordis 4 是 2023 年后大版本,带更完善的 schema 校验、类型系统和异步生命周期。DSH 直接把 Cordis 4 作为运行时依赖,等于站在了成熟版本上。
这意味着两件事:第一,DSH 的插件格式就是 Cordis 插件格式,意味着你理论上可以复用 Cordis 生态里已有的插件(如果接口兼容);第二,DSH 的「技能」概念(skill)很可能就是 Cordis 插件的一种包装——官方说「技能」是插件,具体技能定义文件(如 SKILL.md)如何被 Cordis 加载执行,是后续值得深入源码的存疑点。
存疑点
「技能是否直接复用 Cordis 插件格式」目前没有官方明确说明。我的理解:DSH 的技能更可能是「配置化的插件」,即一个技能=一份 YAML/JSON 描述 + 关联的插件实现,而不是纯 Corda 插件。这个推断待官方文档确认。(这是我的理解)
2.4 为什么复用比自研聪明
DeepSeek 完全可以给 Harness 自己写一个插件系统。但复用 Cordis 有四个实打实的好处:
- 成熟度:四年的聊天机器人生态验证,边界情况踩过无数。
- 开发者惯性:Koishi 生态的开发者迁移成本低,DSH 能快速拿到第一批插件贡献者。
- 聚焦:团队可以把精力放在「Agent 语义」(循环、工具、轨迹)而非「插件机制」。
- 政治:开源协议 MIT 且历史悠久,不会被质疑「自造轮子」。
打个比方:内燃机 vs 专用电机
自造插件系统像专为电动车设计的电机——极致适配但生态孤岛。复用 Cordis 像通用内燃机——成熟、适配一切、有海量零件商(社区插件)。这个比方哪里不灵:内燃机会被电机淘汰,但 Cordis 的「组合思想」短期内看不到被淘汰的迹象,因为组合性在 Agent 时代反而更吃香。
Cordis 的诞生时间线:它最初从哪里来?哪一年独立开源?DSH 用的是哪个大版本?
用大白话解释「依赖倒置」:为什么插件之间通过服务接口交互,比直接 import 对方的实现更好?举一个 DSH 里的例子。
复用 Cordis 给了 DSH 四个好处(社区、惯性、聚焦、事实)。请构造一个反例:在什么场景下,复用 Cordis 反而是错误决策?给出理由。
答辩:如果我是审稿人
你反复说 Cordis 是「成熟」的。但它成熟于聊天机器人领域,Agent 编排和聊天机器人编排真的是同一件事吗?会不会有「领域错配」?
参考防守
防守要点:第一,聊天机器人本身就是一种 Agent——对话、工具调用、记忆、上下文管理这些需求,Koishi 生态都实现过;第二,Cordis 抽象的是「插件组合」这一层,与业务无关;第三,DSH 并没有直接把 Koishi 的聊天能力搬进来,而是用 Cordis 的插件机制新写了 Agent 层,相当于「借用兵工厂,不打同一场仗」。但确实要承认:Agent 的「循环调度」对确定性要求比聊天机器人高,Cordis 的事件模型是否适合「严格依赖顺序的执行流」,是需要实践验证的问题。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
Cordis 是 DSH 的插件运行时,2019 年从 Koishi 萌芽、2022 年独立开源、现在 4.x。五大特性(热插拔、依赖倒置、Monorepo、分叉、配置层叠)构成「可组合 Agent」的工程基础。复用 Cordis 而不是自造,让 DeepSeek 能把精力放在 Agent 语义层,但也把「插件生态成熟度」的命运交到了 Cordis 社区手里。
第3章 配置层叠与 Profile
DSH 的「配置」不是一个大 JSON,而是五层叠起来的。这一章讲清楚每一层是谁、优先级怎么定,以及 `--dump-config` 到底在查什么。
学完这一章你应该能做到
- 按优先级顺序说出配置层叠的五个来源
- 解释 profile 是什么、`--profile web/headless/tui` 怎么用
- 理解 `--dump-config` 的作用和输出形态
3.1 五层配置:后写的赢了
官方文档里 DSH 的配置层叠结构是这样的(从底层到顶层):
- 空根(Empty Root):什么都没有,纯粹是起跑线。
- dsh.profile.bundles 各插件包的 patch:每个插件包自带一份「补丁」(patch),声明它往配置里加什么。这是插件声明式配置的一部分。
- profile 自身的 cordis.patch.yml:当前选中的 profile(如 web/headless/tui)自带的配置文件。
- $DSH_HOME/cordis.patch.yml:你放在 home 目录下的用户级配置。
- 命令行 --patch 覆盖层:临时传参,优先级最高,只对本次运行生效。
合并规则一句话:后写的覆盖先写的。插件包说「模型默认是 deepseek-chat」,你的 $DSH_HOME 说「不,用 my-ollama」,最后生效的是你的。
Profile(Profile):一组配置的命名集合。DSH 内置了 web、headless、tui 三个 profile,分别对应网页版、无界面后台、终端界面三种运行形态。profile 相当于「预设的插件组合方案」。
为什么要五层而不是一层
一层配置意味着每次改都动全局,容易互相踩踏。分层把「谁负责哪部分」分开:插件包管自己的默认值,profile 管运行形态,用户管个人偏好,命令行管临时实验。每一层都有明确的「负责人」,改的时候不用翻全局 JSON。
3.2 Profile 到底是什么
你可以把 profile 理解为「一个已配好的插件组合的快捷方式」。`dsh --profile web` 表示:以 web 形态启动——加载 web 界面插件、会话插件、模型插件、工具插件,组合成一个「跑在网页里的 Agent」。`--profile headless` 表示:只要核心逻辑,不要界面——适合服务端调用、批处理、测试。
内置三个 profile 的区别,主要在「UI 插件的取舍」上,底层的模型、工具、会话都一样(除非 profile 明确改)。这就是为什么官方说「profile 可以自由定义」——你把 web profile 的文件复制一份,改几个插件组合,就成了自己的 profile。
另外注意:`dsh web` 是 `dsh --profile web` 的别名,官方 CLI 里专门做了这个快捷方式。这说明 web 形态是官方最想推的第一个体验入口。
3.3 --dump-config 与 --patch:查配置、改配置的钥匙
--dump-config:把「当前 profile 合并出来的最终配置树」打印出来。注意是「合并后」的,不是某一层。它帮你回答「我现在这套配置到底生效了什么」——排查插件冲突、默认值覆盖、语法错误都靠它。
--patch <文件>:把一份 YAML/JSON 作为最高优先级的覆盖层临时合并。适合「今天跑一个实验,不想动 home 配置」的场景。
这两个命令配合 `dsh plugin --profile <name> <pnpm args>`(在 profile 环境里装插件)基本就能完成日常的「查配置、改配置、装插件」闭环。
一个常见坑
`--dump-config` 输出的「合并树」是按优先级逐层覆盖后的结果,但你看到的某个值不一定是「最终生效值」——因为插件在运行时还可以再改自己的配置(运行时动态配置)。如果你改完配置发现没生效,先看是不是被运行时改了,别光盯文件。(这是我的理解,官方未明确说清楚这一点。)
3.4 实验室:五层叠一座塔
每一层都可以「有没有值」两种情况。拖开关观察「模型名」和「温度」最终被哪一层决定。
按优先级从低到高写出 DSH 配置的五个来源。
`dsh web` 和 `dsh --profile web` 是什么关系?这个别名设计暗示了什么产品倾向?
现在有:插件包设置 temperature=0.3,profile 没设,$DSH_HOME 设置 temperature=0.8,命令行 --patch 设置 temperature=0.5。请问最终生效值是多少?如果插件包「硬编码」了 temperature 且不允许覆盖,情况会变成什么样?
答辩:如果我是审稿人
五层配置结构清晰,但代价是心智负担。普通用户记不住哪层优先。你凭什么认为「分层」比「一个文件」更好?
参考防守
防守要点:第一,普通用户根本不用主动接触所有层——默认只用 $DSH_HOME 或 --patch 即可,其它层由工具链维护;第二,分层让「谁改了什么」可追溯,配置文件可以被版本管理;第三,Cordis 的层叠机制与插件声明式配置天然契合,插件自带配置才能做到「装了就配好」。但承认:文档引导不够时,用户确实容易「改错层」,这是 v0.1 的代价,需要在社区文档中补齐。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
DSH 配置是五层叠加:空根 → 插件包 patch → profile 自身 → $DSH_HOME → --patch 命令。后写覆盖先写。Profile 是「已配好的插件组合方案」,内置 web/headless/tui 三个。`--dump-config` 查看合并树,`--patch` 做临时覆盖。这五层机制是「一切皆插件」在配置维度的落地——每个插件声明自己的配置,用户用优先级控制最终效果。
第4章 四种运行模式
同一个 dsh,四种模式就是四种性格。这一章讲清楚每种模式是什么、解决什么问题、适合谁。
学完这一章你应该能做到
- 列出四种模式并各用一句话说明用途
- 解释 PTC 模式「程序化工具调用」到底改了循环的哪一步
- 判断一个任务应该用哪种模式
4.1 一张表看懂四种模式
| 模式 | 核心思想 | 适合场景 |
|---|---|---|
| 标准模式 | 完整工具组合,Agent 自己决定用什么 | 日常对话式 Agent、多步任务 |
| PTC 模式 | 模型生成「一段程序」,一次调用完成多轮工具 | 需要顺序执行多步操作的批处理 |
| 极简模式 | 只给 shell + 一个文件编辑工具 | 基准测试、性能对比、最小可用 |
| 创造模式 | 可检查运行时、在内存里试验 Cordis 插件、组合新模式 | 插件开发、Agent 调试、原型验证 |
这四种模式不是四个「产品版本」,而是四个「插件组合方案」——对应第 3 章说的 profile 概念。每种模式本质上是「换了一套工具插件 + 循环插件」。
4.2 标准模式:最像普通 Agent 的形态
标准模式把完整工具集都交给模型:shell、文件读写、网络、代码执行、信息检索……模型在一个循环里反复「思考→选工具→执行→看结果」。这是目前主流 Agent(Claude Code、Codex 等)的形态。
优点:灵活,能处理不可预知的任务。缺点:每一轮都要等模型推理,多步任务延迟高、token 消耗大、还可能跑偏。
4.3 PTC 模式:把「想一步做一步」换成「写一段程序」
PTC(Programmatic Tool Calls,程序化工具调用)是 DSH 的一个亮点。普通循环里,模型每一步「说一句话、调一个工具、等结果」;PTC 模式让模型「生成一段代码」,这段代码可以连续调用多个工具、处理中间结果、做条件分支——相当于把「对话式调度」变成「程序化调度」。
打个比方:标准模式像你一步步指挥同事(每个步骤都要等回复);PTC 模式像你把整个任务的执行步骤写成一张清单交给同事(中间不用一直请示)。
为什么 PTC 能省时间和 token
因为「工具调用之间的决策」不再需要模型推理。比如「读文件→解析→写摘要→存盘」四步,标准模式要四次推理(每步之间模型要决定下一步做什么),PTC 模式只推理一次(生成那四步的代码),后面三步是程序执行,不走模型。省的就是这三次推理的延迟和 token。
但 PTC 的代价是:模型生成的「程序」如果写错了(比如工具参数拼错),没有中间的人工校验机会,可能一条路错到底。所以 PTC 适合「任务步骤明确、可预测」的场景;对「探索性、需要中途看结果调整」的任务,标准模式更稳。
4.4 极简模式:给基准测试准备的「裸奔」
极简模式只给两个工具:一个 shell、一个文件编辑。为什么官方要提供这种「少到可怜」的模式?答案:基准测试的公平性。
Agent 评测里,「工具越多 = 能力越强」往往是噪音——一个 Agent 用 30 个工具完成任务,另一个只用 2 个,比的是工具库不是推理能力。极简模式把工具压到最小,逼模型用推理+基础工具完成复杂任务,才能量出「模型本身的 Agent 能力」。
这就是官方说的「用于基准测试」。如果有一天你看到论文用 DSH 做 Agent 评测,大概率跑的是极简模式。
4.5 创造模式:给插件开发者准备的「手术室」
创造模式(Creative Mode)面向插件开发者:你可以直接检查正在运行的 Cordis 运行时,在内存里试验插件、动态组合新的模式,甚至把新组合固化成新的 profile。它本质是一个「活的调试器 + 插件实验室」。
这意味着「创造模式」是四种模式里唯一一个「改自己」的模式——它用 Agent 的能力来改 Agent 的构成。这在传统框架里几乎不可想象:IDE 不能改自己的运行时,但 Agent 可以(在沙箱里)。
存疑点
「在内存中试验插件」的具体机制(是否全热更新、是否支持持久化到 profile)官方描述得比较含糊。这是我的理解:创造模式提供对 Cordis 运行时的编程接口,让模型或开发者可以像「REPL」一样操作插件图,但能否自动保存改动为正式 profile,尚未证实。
4.6 实验室:PTC vs 标准模式的成本对比
模拟一个 5 步任务。标准模式每步 1 次推理,PTC 模式 1 次推理 + 程序执行(省 4 次)。拖「步数」看总延迟差异。
四种模式各解决什么问题?各自适合什么场景?
PTC 模式和标准模式在「循环」层面有什么本质区别?为什么 PTC 能省延迟和 token,代价是什么?
极简模式只有 shell + 文件编辑。请论证:这个模式测出来的成绩,为什么比「工具全开的成绩」更能反映模型本身的 Agent 能力?或者,构造一个反例:什么情况下「工具少」反而让测试结果失真?
答辩:如果我是审稿人
PTC 听起来很美,但它要求模型「一次生成整段正确程序」。如果模型生成的程序有 bug,是不是比标准模式的「逐步纠错」更差?官方有没有给 PTC 的失败率数据?
参考防守
防守要点:第一,PTC 模式通常配合「程序执行 → 报错 → 反馈给模型 → 模型修改程序」的闭环,不是「生成完就丢」;第二,对于确定性任务,PTC 一次成功率随模型能力提升而提高,错误成本是可接受的(重跑程序比重新推理便宜);第三,官方确实没有公开 PTC 失败率的对比数据,这是存疑点。承认这个验证缺失,是理性的。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
四种模式本质是四种插件组合:标准(自主循环)、PTC(程序化批量调用,省推理)、极简(基准测试用)、创造(运行时插件实验室)。理解「模式=配置组合」后,你就不会再被「模式」这个词迷惑——它只是 profile 换了一套工具和循环。
第5章 Agent 循环:Cordis 如何驱动模型
Agent 的核心是「循环」:模型思考 → 调工具 → 看结果 → 再思考。这一章把它拆开,看 Cordis 是怎么驱动这个循环的。
学完这一章你应该能做到
- 画出 Agent 循环的四个阶段
- 解释系统提示词、工具列表、上下文如何进入模型
- 理解「循环也是插件」的实际含义
5.1 循环的四个阶段
任何一个 Agent 都在跑同一个基本循环,区别只在「谁控制它、怎么控制」:
- 组装上下文:把系统提示词、历史消息、工具定义、记忆注入到给模型的请求里。
- 模型推理:模型生成文本或工具调用请求。
- 执行工具:如果模型要求调用工具,执行并把结果写回。
- 循环判断:结果是「完成」还是「继续」?继续就回到第 1 步。
为什么这个循环值得单开一章
因为 DSH 的野心不只是「做一个能跑循环的工具」,而是「把循环本身暴露给你改」。你改第 3 步(工具执行)就是换工具插件;改第 4 步(循环判断)就是换「循环插件」——PTC 模式就是换了第 4 步,把「看结果再决定」换成「按程序继续跑」。
5.2 上下文组装:模型「看到」了什么
每次请求,模型看到的不是「你的问题」,而是系统组装好的一整套上下文。DSH 里这套东西的构成大致是:
- 系统提示词:由「技能」「人格设定」等插件提供,定义 Agent 的行为边界。
- 历史消息:之前的对话和工具结果,可能被压缩(compaction 插件)或裁剪。
- 工具列表:当前 profile 加载了哪些工具,它们的 JSON schema 描述。
- 记忆:长期记忆检索出来的相关片段。
- 事件流:子 Agent 的调度记录、最近的操作事件。
这里的「记忆」和「上下文注入」都出现在官方日志设计里(第 7 章会展开),说明 DSH 把「模型看到什么」当成一件可审计、可复现的事,而不是黑箱。
5.3 「循环插件」长什么样
从 DSH 的 package.json 可以看到 dsh-loop、dsh-goal* 这样的子包——它们就是循环相关的实现。一个「循环插件」的职责是:决定「下一步做什么」。标准模式的循环插件实现「模型→工具→模型」;PTC 的循环插件实现「模型→生成程序→执行程序→(可能)再修正」;创造模式的循环插件甚至允许「改循环自己」。
这也解释了为什么「模式」是 profile 级的配置:换模式=换循环插件+换工具集合。
存疑点
「dsh-loop」「dsh-goal*」这些包名是我从本地包目录推断的,具体每个包的职责官方文档没有逐个说明。这里的内容是「基于包名和整体设计的合理推断」,不等于官方文档的准确描述。(这是我的理解)
5.4 图解:Agent 循环交互图
Agent 循环有四个阶段,按顺序写出来,并说明每阶段「模型看到/产生」什么。
「循环也是插件」是什么意思?用 PTC 模式举例说明「换循环插件」如何改变 Agent 行为。
上下文注入是 Agent 循环的第一步。请综合分析:如果给模型注入的「工具列表」里有一个带毒的工具描述(描述说它能删除文件但实际是虚假的),会发生什么?结合「一切皆插件」讨论:这暴露了插件体系的什么风险?怎么缓解?
答辩:如果我是审稿人
你说「循环也是插件」,那如果某个循环插件有 bug,是不是整个 Agent 就坏了?插件化的循环是不是比硬编码循环更不可靠?
参考防守
防守要点:第一,任何软件都会有 bug,插件化不会让 bug 变多,只是把 bug 的位置从「框架」挪到「插件」,而插件可以单独替换、回滚、隔离;第二,Cordis 有生命周期管理和依赖解析,一个插件的崩溃可以被捕获,不会必然拖垮整个运行时;第三,作为对比,硬编码循环出 bug 只能等框架升级,插件化循环出 bug 可以立刻换插件。但必须承认:插件生态的质量参差不齐,官方需要「官方维护的核心插件集」来兜底。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
Agent 循环四阶段——组装上下文、模型推理、执行工具、循环判断——在 DSH 里都是插件化的。模型看到的上下文(系统提示词、历史、工具、记忆、事件)被显式组装,循环协议可以被替换(标准/PTC 就是换了循环插件)。理解循环的可替换性,是理解 DSH 与其它 Agent 框架本质区别的关键一步。
第6章 工具即插件
工具是 Agent 的「手」。DSH 把每个工具都做成了插件,且用「沙箱」约束工具的越权风险。这一章看工具插件如何组织、如何与模型交互。
学完这一章你应该能做到
- 列出 DSH 工具插件的主要类别
- 解释工具描述(schema)如何被模型「看到」
- 理解沙箱在工具体系中的安全作用
6.1 工具插件的全景
打开 DSH 的 package.json,你能看到一长串 `@deepseek-ai/dsh-tool-*` 的子包:dsh-tool-shell、dsh-tool-file(文件)、dsh-tool-web(网页)、dsh-tool-code(代码执行)……目前已经 20 多个。每个工具一个 npm 包,每个包都是一个 Cordis 插件。这就是「工具即插件」在包结构上的体现。
工具插件的职责:定义工具的 schema(参数怎么传)、实现工具的 execute(真正干活)、声明需要的依赖(比如 file 工具依赖沙箱)。模型不直接调用工具实现,而是「看到 schema → 生成 JSON 调用 → Cordis 路由到对应工具插件 → 执行 → 结果写回」。这一整条链路上,模型和实现是完全解耦的。
工具 Schema(Tool Schema):描述工具「怎么调用」的结构化定义——工具名、参数名、参数类型、必填性、描述。模型靠它知道「这个工具能干嘛、参数怎么填」。schema 写得越清楚,模型越会用对。
为什么每个工具单独一个包
两个原因。第一,按需加载:用户不用装所有工具,只用自己 profile 里声明的;第二,独立版本:某个工具升级不影响其它工具。代价是依赖树变长——你 npm 装 dsh 时会看到几十个依赖包,这正是「微包 + monorepo」的生态风格。
6.2 沙箱:工具的安全边界
「沙箱」也是 DSH 的插件(官方清单里有)。它控制工具能在什么环境里执行:文件读写限定在某个目录、网络访问受限、命令执行被白名单过滤。这非常重要,因为 Agent 的本质是「模型拿到你电脑的执行权」——没有沙箱,一个 prompt injection(提示词注入)就可能让模型把文件删了。
沙箱插件与工具插件的关系是「依赖」:工具插件声明依赖沙箱服务,Cordis 保证沙箱先启动,工具才能在沙箱里执行。这就是第 2 章「依赖倒置」的实际应用——工具不直接操作文件系统,而是调用沙箱服务接口。
存疑点
官方对沙箱的「隔离强度」描述不多——它到底是操作系统级隔离(容器/VM)还是进程内模拟(chroot 式)?这决定了安全上限。我的推断:v0.1 阶段很可能是「进程级限制 + 目录白名单」为主的轻量隔离,真正的系统级隔离依赖后续插件。这属于安全敏感点,建议关注官方后续说明。(这是我的理解)
6.3 图解:工具调用链路
为什么 DSH 把每个工具做成独立的 npm 包/插件?两个主要理由是什么?
工具 Schema 为什么能决定模型调用的成功率?如果 schema 描述写得含糊(比如参数说明缺了单位),会发生什么?
构造一个场景:沙箱配置正确(文件只读目录 A),但 Agent 仍然可以拿到 A 之外的数据。请指出可能泄漏的路径(至少两条),并说明插件体系如何堵。
答辩:如果我是审稿人
工具独立成包,依赖树大了,安装慢。而且工具间如果有共享逻辑(比如都要做 JSON 解析),是不是重复代码?你怎么解释 monorepo 的价值?
参考防守
防守要点:第一,安装慢是可控的——npm 有缓存、有 tree-shaking(虽然有限),真正运行只加载 profile 引用的包;第二,共享逻辑放公共包(如 dsh-core)复用,不是每个工具复制;第三,monorepo 的价值在于「接口一起演进」——工具 A 升级 Schema,依赖它的工具 B 在同一仓库同步更新,不会出现版本漂移。用户侧真正痛的是「首次 npm 装 dsh 要下 530 个包」,这可以接受,因为装一次管很久。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
工具在 DSH 里是独立插件,通过 Schema 暴露给模型,在沙箱内执行。工具与模型解耦、工具与实现解耦(通过服务接口)、工具与执行环境隔离(通过沙箱),这三层解耦就是「工具即插件」的安全与灵活来源。
第7章 会话与轨迹日志
DSH 把「模型看到的一切」都写进一份只能追加的日志。为什么是追加?这份日志能干嘛?这一章拆解这条「不会说谎的轨迹」。
学完这一章你应该能做到
- 解释 append-only 日志的真实含义
- 列出会话日志记录的内容类别
- 说明 Trajectory 视图、恢复、分叉、检索、回放为什么共享同一事件流
7.1 append-only:一条不会说谎的轨迹
传统 Agent 平台保存的是「对话历史」——一般就是一串 user/assistant 消息。DSH 的会话日志(session log)不只记录对话,它记录「模型在整个会话期间看到的一切」:系统提示词、思维链、工具调用与结果、子 Agent 的调度、上下文注入的事件。更重要的是,它是 append-only(仅追加)——只能往里写,不能改、不能删。
为什么是 append-only?因为可审计性。一旦允许改,就没有人能信任日志。一个 LLM 在「改完一段历史后」说「我刚才没说过 X」,你信还是不信?append-only 直接消除了这种争议空间——日志就是事实,谁也别想改。
Append-only(Append-only):日志的写入模式。只能追加新条目,不能改老条目、不能删条目。区块链的核心结构、git 的不可变 commit 历史、会计的账本,都是 append-only 思想的实例。
为什么 append-only 在 Agent 场景特别重要
因为 Agent 有「幻觉」。模型可能会「声称」它刚才做过 A,而你记忆里它其实做过 B。如果没有 append-only,平台可以、模型也可能间接修改日志,最后没人能澄清。append-only 的意思就是「你说过的、做过的、看到过的,我都记着,改不了」——这是 LLM 时代的基础信任机制。
7.2 这份日志里有什么
按官方公告描述,会话日志记录以下内容(第 5 章讲过这些是「上下文」的来源,这里更细):
- 系统提示词(按时间变化的部分)
- 模型的思维链(CoT,包括未展示给用户的推理步骤)
- 工具调用:工具名、参数、执行结果、执行时长
- 子 Agent 调度:谁创建了谁、传了什么、回收了什么
- 上下文注入:哪条记忆被注入了哪一段、被检索出来的依据
- 压缩(compaction)动作:哪一段被裁了、裁之前是什么
这些都被打上时间戳,按时间顺序追加。所以叫轨迹(trajectory)——你能看到 Agent 从开始到现在的每一步动态。
7.3 Trajectory 视图:按来源看日志
Trajectory(轨迹)视图是官方在 DSH 里提供的一个工具:把日志按「来源」(source)分类展示。你想看「模型说了什么」就过滤模型来源;想看「工具执行了什么」就过滤工具来源;想看「子 Agent 干了什么」就过滤调度来源。同一个事件流,换过滤视角就有不同解读。
这正是日志多维化的体现:它不是单一叙事,而是「同一时间线的多视角投影」。
打个比方:航班黑匣子
会话日志像飞机黑匣子——所有传感器数据按时间追加,事后可以按「引擎」「飞控」「通讯」过滤分析。这个比方哪里不灵:黑匣子保存是为了事后追责,DSH 日志的更主要用途是「事中分叉」——你能从某个时间点分出一个新会话,让它走不同分支。
7.4 恢复、分叉、检索、回放:四个动作,一个事件流
官方说「恢复(resume)、分叉(fork)、检索(search)、回放(replay)共享同一事件流」。这句话信息量很大,拆解一下:
- 恢复:会话崩了重启,从日志重放到中断点。
- 分叉:从日志的某个时间点,复制一份继续往下,分出新的分支会话。
- 检索:从历史日志里按关键词或语义找到某个事件。
- 回放:把日志按时间重新执行一遍,看 Agent 是怎么走过来的。
这四个操作不需要四种数据结构——它们都是对 append-only 日志的不同「读法」。这就是「共享同一事件流」的含义。这是对第 2 章 Cordis「分叉(fork)」特性在 DSH 层面的延展。
7.5 实验室:append-only 分叉模拟
主会话有 6 个事件。在事件 3 处分叉,看两条线如何各自发展。
什么是 append-only 日志?为什么 DSH 选这种模式来存会话?至少给出两个理由。
分叉(fork)和恢复(resume)都用同一事件流,但它们做的事不一样。说明两者的本质区别。
LLM 有幻觉。假设一个用户投诉:Agent 声称它「5 分钟前做过 X」,但用户印象里 Agent 做的是 Y。结合 append-only 日志的四个动作(恢复/分叉/检索/回放),设计一套排查流程,帮助客服判断真相。说明:日志里的什么内容能证实/否定 Agent 的说法。
答辩:如果我是审稿人
append-only 听起来好,但日志会无限增长。一个用了一年的 Agent,日志可能几十 GB。这不就是把「内存炸」的问题换成「磁盘炸」?
参考防守
防守要点:第一,append-only 不等于「不能归档」——旧日志可以压缩或转冷存储,只要保证「记录内的追加部分」逻辑完整;第二,compaction 插件就是干这个的,它可以处理「哪些可以安全归档、哪些必须热留」;第三,检索可以走索引,全量遍历只在回放时需要,频率不高;第四,相比「记录可能丢失或被改」,磁盘成本是可接受的代价。但承认:长期治理策略(保留多少、谁付费)官方没说透,这是存疑点。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
DSH 的会话日志是 append-only 的事件流,覆盖系统提示词、思维链、工具调用、子 Agent 调度、上下文注入、压缩动作。Trajectory 视图按来源过滤。恢复、分叉、检索、回放共享同一事件流——本质上都是读同一份不可变日志的不同方式。这是 LLM 时代可审计性的基础设施。
第8章 与 Claude Code 的对比
Claude Code 是当前最成熟的「模型+工具」Agent 产品。把 DSH 放在它旁边,能看清两者的路线差异——一个开放,一个精致。
学完这一章你应该能做到
- 列出 DSH 与 Claude Code 在「模型绑定」上的差异
- 解释「开放工坊 vs 精致商业产品」的含义
- 判断自己的场景应该选谁
8.1 模型绑定:本质分歧
Claude Code 绑定 Claude 模型。它本质是 Anthropic 为了「让 Claude 更好用」做的工具,模型是中心,工具是配套。DSH 反过来:模型只是众多插件之一,理论上 Claude、GPT、本地 Llama 都能挂。这叫 model-agnostic(模型无关)。
这不只是技术差异,更是商业差异。Claude Code 的目标是「让 Claude 卖得更多」——工具越好,用户越依赖 Claude 模型,Anthropic 越赚钱。DSH 把模型解耦,等于把「模型议价权」还给用户:模型 A 涨价了,你换模型 B,整套工具链不用变。
为什么这是关键差异
因为模型价格在快速变化(DSH 自己发布同期就有 API 涨价)。绑定单一模型的产品,用户的成本被锁定。模型无关的产品,用户可以「用脚投票」。在「模型军备竞赛」阶段,模型无关=长期议价权。
8.2 开放工坊 vs 精致商业产品
界面新闻的概括很贴切:Claude Code 是「精致商业产品」——开箱即用、打磨精良、体验流畅。DSH 是「开放工坊」——给你零件和工位,自己焊。两者面向的是不同用户群。
| 维度 | Claude Code | DSH |
|---|---|---|
| 开箱体验 | 精致流畅 | 毛坯,需自行配置 |
| 模型 | 绑定 Claude | 模型无关(插件) |
| 扩展性 | 受官方扩展点限制 | 插件可任意组合 |
| 开源 | 部分开源 | MIT 全开 |
| 用户群 | 所有用户 | 开发者/技术团队 |
| 社区 | 官方生态强势 | 依赖 Cordis 社区起步 |
对比的局限
这个表是「路线差异」而非「优劣差异」。Claude Code 在「精致」上做到了极致——不代表它不能在未来走向开放;DSH 在「开放」上做了选择——不代表它将来不会打磨体验。v0.1 的对比只反映当下,要持续观察。
8.3 哪个适合你
这不是「谁更好」,是「谁是你的工具」。选 Claude Code 如果:你是个人开发者/终端用户,想立刻上手、不在意模型绑定、希望体验最丝滑。选 DSH 如果:你是企业/团队,要控制模型成本或合规要求(必须用本地模型)、要深度定制工具组合、能接受配置复杂度。
另一个角度:选 Claude Code 如果你信任 Anthropic 的演进节奏;选 DSH 如果你相信 Cordis 社区 + 自家能力能把这个框架养大。后者风险更高、回报也更高。
Claude Code 与 DSH 在「模型绑定」上有什么本质差异?这种差异在商业上意味着什么?
「开放工坊」和「精致商业产品」是路线选择。请举例:什么类型的团队适合 DSH 不适合 Claude Code?什么类型反之?
构造一个反例:在什么条件下,DSH 的「开放」反而不是优势,而 Claude Code 的「绑定」是优点?给出理由。
答辩:如果我是审稿人
你把「模型无关」列为 DSH 的优势。但 Agent 的真正价值在「工具+模型协同调优」,单个厂商对自己模型调得最好——模型无关=「通用适配」=「次优适配」。你怎么辩护?
参考防守
防守要点:第一,「最优适配」的优势是真实的,但只对当前最强模型成立;模型迭代后绑定方的优势可能被新模型反超,模型无关让用户不被「押错宝」;第二,Cordis 的插件体系允许同一模型有自己的「定制插件」,所以「模型无关」不排斥「单模型最优」,反而允许共存;第三,企业最害怕的是「被锁」,通用适配等于「可替换保底」。承认:能力上限上,绑定方通常会更高,但长期看议价权在用户手里更重要。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
DSH 与 Claude Code 的对比,本质是「开放工坊 vs 精致商业产品」。模型无关 vs 模型绑定是核心分歧,背后是用户议价权之争。两者各有适用群体,没有绝对优劣。选择取决于你的团队属性、模型成本敏感度和长期策略。
第9章 模型无关:趋势还是口号
「模型无关」被多家媒体称为行业趋势。但它是真趋势还是营销口号?这一章拆开来评估。
学完这一章你应该能做到
- 给出「模型无关」的精确定义
- 列出支撑「趋势论」和反对「趋势论」的各三个论据
- 判断 DSH 的「模型无关」是真承诺还是依赖生态
9.1 定义:什么样的「无关」才算数
「模型无关」不是「能跑任何模型」这么宽泛。真正的模型无关需要三个条件:
- 接口统一:所有模型走同一套「对话+工具+工具结果」的接口,不依赖任何厂商专有特性。
- 配置切换:换模型=改配置,不需要改代码或重写工具。
- 能力无损:切换后 Agent 仍能有可用能力(不要求能力相同,但要求「能用」)。
第三个条件最难。一个模型有「视觉理解」而另一个没有,工具调用格式一个遵循标准 JSON schema、另一个用自定义格式——这时候「无关」就只是「理论装得上」,不是真的能替换。所以模型无关是有光谱的,不是 0 或 1。
Model-agnostic(Model-agnostic):系统能容纳多种模型,切换成本由配置承担而非代码承担,且切换后保持可用能力上限。这是渐变量,不是二值量。
9.2 趋势论:支持的三条论据
界面新闻说「Model-agnostic 是行业趋势」,有几条支撑论据:
- 模型在快速迭代:今天最好的模型半年后可能被超过。绑定=押宝;无关=可换。
- 开源权重繁荣:Llama、Qwen 等开源权重让用户可以本地部署,天然倾向模型无关。
- 价格竞争:API 持续降价,用户乐见多家竞价,模型无关让用户切换灵活。
为什么这是趋势而非技术偏好
因为「议价权」是硬需求。企业最怕被锁,每个 CIO 都在算「换供应商的代价」。模型无关把代价压到「改一行配置」,这是实打实的商业价值。
9.3 反对论:也可能只是口号
但也有三条相反论据:
- 差异化能力:每个模型都有自己的「独家特性」(多模态、长上下文、function calling 格式),统一接口=削足适履。
- 协同调优:厂商自己能把工具和自己的模型调到最优,无关框架只能做通用适配。
- 成本结构:模型无关要支持多种模型=更多适配代码=更重框架,对单一厂商反而更贵。
所以最严格说法是:模型无关是有上限的好处,不是无条件的优点。适用群体明确:需要多模型/控成本/防锁定的用户;不适合:追求当前最强单一模型体验的用户。
存疑点
DSH 宣称模型无关,但实际能不能无损切换各种模型(尤其是非主流模型、本地模型),取决于有没有对应的「模型插件」。生态不成熟时,「无关」可能只是「技术上可挂」而非「实际可用」。这是 v0.1 阶段的真实风险。
9.4 DSH 的「模型无关」能不能成立
我的评估:能成立,但需要生态。DSH 本身只承诺「模型也是插件」,具体可用与否看插件的成熟度——DeepSeek 自家模型肯定有旗舰支持;Claude、GPT 应该会跟进;但一些小众模型/本地模型能不能用,看社区贡献。这是「能力上限」问题,不是「架构不可能」问题。
Pi-Agent 把自己定位「极简 Agent 底座」,也走模型无关路线,说明至少有共识:「这个方向值得做」。但 Pi-Agent 偏极简、DSH 偏插件化,「无关」的实现路径不同——一个靠减少接口实现统一,一个靠插件实现可挂。哪条路终将胜出,要看生态怎么演进。
写出「模型无关」的三个条件,并说明为什么第三个(能力无损)最难。
「模型无关是渐变量而非二值」。请给出三个产品案例,分别处于「完全绑定」「半无关」「完全无关」位置,并说明它们各处于光谱何处。
DSH 「承诺」模型无关,但「实际可用」依赖生态。请分析:在 v0.1 阶段,DSH 应该用什么策略让「模型无关」从架构承诺变成现实能力?给出至少 3 个具体行动,并解释每个行动解决什么问题。
答辩:如果我是审稿人
你说模型无关「是渐变量」。但「渐变量」意味着用户要承担适配成本。用户为什么要为框架的「未竟之事」付钱付时间?
参考防守
防守要点:第一,渐变量意味着「程度可调」,而不是「未竟之事」。Cordis 的接口定义让最小适配成本降到「实现一个 interface」,这是可接受代价;第二,用户付费买的不是「框架的完整」,是「框架的开放空间」——这个空间让用户长期自主,等于把适配成本用「未来灵活性」偿还;第三,模型无关让用户可以选择「适配一两个核心模型」,不是必须适配所有,可控范围。承认:v0.1 缺文档,有适配成本,但这是阶段性问题不是结构性问题。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
模型无关是渐变量,定义需要三个条件(接口统一、配置切换、能力无损,第三个最难)。趋势论有支撑但也有反对论据。DSH 的模型无关在架构层面成立,但实际可用看生态。Pi-Agent 等也走这条路,说明方向有共识,实现路径有差异。
第10章 上手安装与第一个 Agent
理论讲完,该动手了。这一章带你装 DSH、跑第一个 Agent,并指出真正的环境坑。
学完这一章你应该能做到
- 用 npm 或 npx 安装并启动 DSH
- 说出 Node 版本要求和兼容性风险
- 跑通 `dsh web` 并发一句话
10.1 安装:两条路
官方给了两种安装方式。第一种是 npx 临时运行,不用装,直接 `npx @deepseek-ai/dsh` 起服务——适合快速体验;第二种是 全局安装,`npm install -g @deepseek-ai/dsh`,把 dsh 当命令用,适合长期使用。
本机实测装的是 v0.1.0-rc.6(2026-08-13 当天的 npm 包),总共拉了 530 个依赖包——其中 90 多个是 @deepseek-ai 子包。安装目录:`C:\Users\78430\AppData\Roaming\npm\node_modules\@deepseek-ai\dsh\`,里面能看到 lib/bin.js(CLI 入口)、package.json(依赖清单)、README.md 等文件。
环境坑:Node.js 版本
DSH 要求 Node.js >= 22.12。本机实际是 v20.18.0(旧版),安装时 npm 抛了 EBADENGINE 警告——但能安装、能跑。这是一个明确的兼容性风险:未来某个版本可能用到 Node 22+ 才有的特性(比如更新的 fetch API),那时 Node 20 就跑不动了。建议升级到 Node 22.12+ 再长期用。
10.2 跑第一个 Agent:dsh web 三步
装好之后,三步走起来:
- 设 API Key:DSH 默认用 DeepSeek 模型,需要 DeepSeek API Key(在 DeepSeek 平台拿)。把它写进 $DSH_HOME/cordis.patch.yml(第 3 章讲过的用户配置层),或者用 --patch 临时传。
- 启动:`dsh web`(即 `dsh --profile web`)。终端会提示监听端口(通常 localhost:xxxx)。
- 打开浏览器:访问提示的地址,看到「毛坯房」界面(对话框+历史记录),发第一句话。
能不能立刻干活?取决于 profile 默认加了什么工具。web profile 应该至少有 shell + 文件工具。让 Agent 帮你 `ls` 一下当前目录——如果它做得到,说明工具链通了。
10.3 第一次实验:--dump-config 自检
新手最容易踩的坑是「以为改了配置但没生效」。这时候用 `dsh --profile web --dump-config` 把最终合并树打出来——你想要的那个值,在树里是不是你期望的值?是 = 生效。不是 = 哪一层覆盖了,逐层排查。
这是个值得养成习惯的动作:改完配置 → dump-config 验证 → 跑 Agent。三步缺一不可。DSH 的「毛坯」也体现在这里:它不自动帮你校验,要你自己用工具查。
10.4 图解:dsh CLI 参数全景
DSH 的两种安装方式分别是什么?各自适合什么场景?
改完配置后「不生效」是 DSH 的常见坑。请说明:用 --dump-config 应该怎么排查?给出三步操作。
DSH 要求 Node >= 22.12,但本机 v20.18.0 也能装能跑。请分析:为什么 npm 给了警告但不阻止安装?这种「能装能用」的兼容性风险会在什么时刻爆发?怎么防范?
答辩:如果我是审稿人
你强调 Node 22.12+,但企业环境普遍 Node 18/20。这个兼容性是不是劝退很多企业用户?官方应该怎么做?
参考防守
防守要点:第一,Node 升级不是 DSH 独有问题,是整个 JS 生态的演进压力——Node 18 已 EOL,Node 20 也快了。DSH 跟上是合理选择,不是它自找麻烦;第二,对于企业,可以用 Docker 镜像固定 Node 22+,避免动宿主;第三,官方可以做的事:提供 Docker 镜像、提供独立二进制(pkg 打包)、提供详细的升级指南。但承认:v0.1 只管 npm,对企业的友好度确实不够。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
安装 DSH 用 npm 或 npx,Node 需 >= 22.12(v20 能装但有兼容风险)。启动 `dsh web`,设 API Key,发第一句话。改完配置用 `--dump-config` 自检。学会这几招,你就能在本地玩转 DSH 了。剩下的就是把第 3-7 章的机制映射到你自己的实战中。
第11章 社区反应与生态初探
一个产品发布后,开发者怎么说往往比官方文档更真实。这一章梳理 DSH 发布 48 小时内的社区反应,看看赞美、吐槽和观望分别指向什么。
学完这一章你应该能做到
- 说出社区对 DSH 的三个主要正面评价和三个主要批评
- 理解「毛坯房」和「乐高积木」这两个比喻各自指向什么
- 评估 DSH 与 Claude Code 在生态层面的本质差异
11.1 正面反应:「Agent 领域的 Linux?」
DSH 发布后,社区最热的比喻是「可能成为 Agent 领域的 Linux」。这个说法的逻辑链条是这样的:Linux 不限定你用什么 GUI、什么桌面环境、什么包管理器——它只提供内核和模块化接口;同样,DSH 不限定你用什么模型、什么 UI、什么工具——它只提供 Agent 内核和插件接口。两者都把「选择权」交还给用户。
但是,这个类比有一个容易被忽略的断裂点。Linux 之所以成功,不是因为它「模块化」,而是因为它有足够多的模块供选择——GNU 工具链、X11 窗口系统、apt 和 rpm 包管理、各种发行版。如果 Linux 只有一个内核、没有模块,它和 BSD 没区别。同理,DSH 能不能成为「Agent 领域的 Linux」,取决于它的生态能不能长出足够多的插件,而不取决于它的架构设计有多优雅。
为什么开发者兴奋
深层原因是「控制权回归」。用 Claude Code 时,你遇到的天花板是 Anthropic 的产品决策——它不开放某一层,你就改不了。DSH 把每一层都打开,开发者第一次觉得「Agent 是我的」。这种心理满足感比技术特性更能驱动早期口碑传播。
11.2 「毛坯房」与「乐高积木」:同一个产品的两种体验
有趣的是,同一些人既说它是「毛坯房」又说它是「乐高积木」。这不是自相矛盾——两个比喻指向 DSH 的不同面向。
「毛坯房」指向的是开箱体验:装完之后没有漂亮的界面、没有预设的模型、没有一键上手向导。你需要自己配 API Key、自己选模型、自己理解配置层叠。对于习惯了 Claude Code 「装完就用」体验的开发者来说,DSH 的第一印象确实像走进了没有装修的房间。
「乐高积木」指向的是上限体验:一旦你理解了插件机制,就能拼出各种组合——换模型、换工具、换 UI、换沙箱策略。这种自由度给人「创造工具的乐趣」,像玩乐高一样。
这两个比喻合在一起揭示了 DSH 的产品定位:建设工具而非成品工具。它不想成为「最好的 Agent 产品」,而是想成为「让你造最好的 Agent 产品的那套工具」。这个定位决定了它的早期用户画像是「愿意折腾的开发者」,而不是「想快速解决问题的用户」。
11.3 主要批评:门槛、文档与稳定性的三重质疑
社区的批评集中在三个方面:
- 上手门槛高:配置层叠五层、profile 是什么、模型怎么配——这些概念对没有 Koishi/Cordis 经验的开发者完全不透明。有用户在 GitHub Issue 里直言「文档像写给已经会的人看的」。这是 v0.1 的真实代价:架构太灵活,文档来不及把所有路径讲清楚。
- 文档不足:README 覆盖安装和基本启动,但「怎么自己写一个插件」「profile 的 cordis.patch.yml 到底写什么」这些关键问题没有系统文档。官方在公告里说会逐步补齐,但 v0.1 阶段开发者只能靠读源码来理解。
- 稳定性未知:开发者预览版意味着 API 可能随时改、插件接口可能不兼容、可能有未发现的 bug。对想认真基于 DSH 做产品的团队来说,「v0.1」这个标签是最大的劝退信号。
这些批评不是否定,而是「先决条件缺失」——架构有潜力,但支撑架构的基础设施(文档、示例、社区模板)还没有跟上。DeepSeek 团队接下来的关键工作不是加功能,而是补文档和养示范项目。
一个需要警惕的信号
有用户反馈安装时遇到 Node 版本不兼容、依赖包之间的冲突等问题。这些不是「版本号问题」,而是 v0.1 发布的生态成熟度不足。如果连续几个版本的反馈都是「装不上」或「跑不起来」,口碑会迅速滑向「概念很美好但不可用」。
11.4 生态对比:开放工坊 vs 精致商业产品
社区的讨论往往绕回 DSH 和 Claude Code 的对比。我在第 8 章讲过技术层的差异,这里从生态维度来看:
| 维度 | DSH | Claude Code |
|---|---|---|
| 许可证 | MIT 开源 | 专有(服务化) |
| 初期用户 | 愿意折腾的开发者 | 想快速解决问题的用户 |
| 扩展方式 | 插件市场(社区驱动) | 官方扩展(受控) |
| 天花板 | 生态决定上限 | Anthropic 决定上限 |
| 天花板类型 | 不确定(取决于生态) | 确定(取决于公司决策) |
这张表最关键的行是最后一行。Claude Code 的天花板是确定的——你知道 Anthropic 的产品哲学和商业策略,就能预测它不会开放哪些东西。DSH 的天花板是不确定的——它可能变强(如果生态爆发),也可能变弱(如果 DeepSeek 团队失去投入动力或社区没跟上)。「不确定」对保守的企业用户是风险,对乐观的开发者是机会。
11.5 黑色鲸鱼的信号
一个小的但值得注意的细节:DSH 的标志是黑色鲸鱼,和 DeepSeek 模型产品的蓝色鲸鱼做了区分。这不是随意配色——它在视觉上宣告「DSH 和模型是不同的产品线」。模型解决「大脑够不够强」的问题,Harness 解决「大脑怎么和手脚配合」的问题。这种区分暗示 DeepSeek 内部对 Agent 和 Model 的定位是分开的。
从商业角度看,黑色鲸鱼还有一个功能:降低模型绑定的预期。如果标志还是蓝色鲸鱼,用户会默认「这是 DeepSeek 模型的配套工具」。换成黑色,用户更容易把它当作一个独立平台来看待——这对吸引非 DeepSeek 模型用户进生态有帮助。
有人说 DSH 是「毛坯房」也有人说是「乐高积木」。这两个比喻矛盾吗?它们分别指向 DSH 的什么面向?
为什么说 DSH 的天花板是「不确定的」而 Claude Code 的天花板是「确定的」?这种差异对什么类型的用户是优势,对什么类型是劣势?
「DSH 可能成为 Agent 领域的 Linux」这个类比在什么层面成立,在什么层面不成立?请分别用 Linux 的一个成功因素和一个失败因素来论证。
答辩:如果我是审稿人
你说「Agent 领域的 Linux」类比的关键在于生态,但 Linux 的生态是 30 年长出来的。DSH 凭什么让开发者愿意花时间为它写插件?
参考防守
防守要点:第一,Linux 早期生态也不是 30 年才有的——Linus 发布后 3 年就有了 Slackware 和 RedHat。关键是第一批拓荒者有没有动力。DSH 的动力来源是「控制权回归」——开发者第一次能完全控制 Agent 的每一层。第二,DeepSeek 自身有模型能力背书,不是纯壳项目,降低了「项目可能跑路」的风险。第三,MIT 许可证让插件作者不怕法律纠纷。但承认:如果前 6 个月没有 3-5 个标杆插件出现,生态就很难起飞。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
社区对 DSH 的反应是正面与批评并存。「Agent 领域的 Linux」这个类比在架构哲学上成立,但不成立的部分是生态还远未长成。「毛坯房」和「乐高积木」不矛盾——一个说门槛,一个说自由度。主要批评集中在门槛高、文档不足、稳定性未知三方面。与 Claude Code 的生态差异本质在于天花板类型:一个不确定(看生态),一个确定(看公司)。DSH 的成败不只取决于架构,更取决于能否在前 6 个月长出足够的插件生态。
第12章 局限与存疑点
前 11 章我讲了 DSH 的设计理念和优势。这一章专门挑刺——每一个架构决策都有代价,搞清楚代价才能判断它适不适合你。
学完这一章你应该能做到
- 说出 DSH 在 v0.1 阶段的三个核心局限
- 解释插件化架构的「灵活性税」具体是什么
- 判断 DSH 当前适合什么场景、不适合什么场景
12.1 文档缺口:架构太灵活,文档追不上
DSH 最直接的局限是文档。这不是小问题——因为架构太灵活(一切皆插件),「怎么用」的路径空间是指数级增长的。文档需要覆盖的不是「一条主路径」,而是「N 条路径的组合」。v0.1 阶段文档主要集中在安装和基本启动,对以下关键问题尚未覆盖:
- 怎么从零写一个插件(需要理解 Cordis 的插件注册机制)
- profile 的 cordis.patch.yml 完整字段参考
- 每种运行模式的内部行为差异(标准模式怎么调用工具 vs PTC 模式怎么传递参数)
- 会话日志的完整事件 schema(用于自定义恢复/分叉逻辑)
- 沙箱插件的配置和扩展(怎么自定义执行策略)
这些问题在 v0.1 阶段只能靠读源码解决。源码是 TypeScript,质量尚可,但「靠读源码理解」和「靠文档理解」的门槛差了一个数量级。
文档缺口的恶性循环
文档不足 → 只有硬核开发者能用 → 社区贡献的插件少 → 生态不丰富 → 吸引不到更多用户 → 文档投入动力下降。这个循环不打破,架构再好也走不远。打破的方式是官方优先投入文档和示例,而非新功能。
12.2 灵活性税:每个选择都是你的责任
「一切皆插件」听起来是优势,但每多一个插件接口,用户就多一个需要做的决策。在 Claude Code 里你不需要选模型(默认 Claude)、不需要选 UI(就是终端)、不需要选沙箱策略(官方定了)。在 DSH 里,这些全是你的事。
这不是缺陷而是设计代价。Claude Code 把决策成本替你扛了,换来的是灵活性受限。DSH 把决策权交给你,换来的是你必须有足够的判断力。具体来说:
- 模型选择成本:选哪个模型?DeepSeek-V3 还是别的?不同模型对不同任务的效果差异需要你自己测试。
- 配置调试成本:五层配置有一层写错,行为就和预期不同。排查时需要理解全部五层的交互。
- 插件兼容性成本:插件之间可能有隐式依赖或冲突(A 插件依赖 B 插件的某个版本,C 插件和 B 不兼容)。npm 生态的依赖地狱问题在 DSH 上同样存在。
- 安全审计成本:开源生态意味着任何人都能发布插件。恶意插件可以伪装成有用工具。你需要自己判断哪些插件可信。
这种「灵活性税」对个人玩家是可接受的成本,但对企业团队是实打实的工程负担。团队需要有人专门负责插件选型、配置管理、安全审计——这些岗位在用 Claude Code 时是不需要的。
12.3 性能开销:Cordis 框架的间接层
DSH 基于 Cordis 4.0.1,一个通用插件框架。这意味着每次工具调用、每次模型请求、每次会话操作,都要经过 Cordis 的插件系统间接层——注册、查找、调用、返回。这比直接硬编码的 Agent 框架多了运行时开销。
这个开销在单次交互中可以忽略(毫秒级),但在高频场景(批量处理、大规模并发)会累积。如果你要跑 1000 个并发 Agent,Cordis 的间接层可能是瓶颈之一。
不过,这个判断有一个重要的前提:我没有跑过严格的基准测试。推理依据是「通用框架通常比专用实现在高频路径上有额外开销」这个一般规律。DSH 是否真的存在性能瓶颈,需要用实际负载来测量才能下结论。我在这里只是提出存疑,不作定论。
为什么我标注「不确定」
因为 v0.1 没有公开的性能基准数据,我也没有高负载测试环境。盲目说「Cordis 一定慢」是不负责任的。但盲目说「一定没问题」同样不负责任。负责任的做法是标注存疑,等有人做实测后再修正。
12.4 安全模型:沙箱好但不是万无一失
DSH 的沙箱插件是一个重要的安全机制(第 6 章过过),但沙箱不是银弹:
- 沙箱逃逸:任何沙箱实现都有边界。如果模型生成的代码利用了运行环境的漏洞(如通过 Node.js 的 child_process 绕过限制),沙箱可能被突破。
- 网络隔离:沙箱默认是否阻止网络访问?如果不阻止,恶意代码可以外传数据。这取决于沙箱插件的配置,而配置又取决于用户理解了风险。
- 文件系统范围:沙箱限制的是文件系统访问范围。如果范围配错了(比如允许访问 $HOME),敏感文件可能泄露。
这些风险不是 DSH 独有的——任何能执行代码的 Agent 都有。但 DSH 的特别在于:沙箱是插件,用户可以选择不用沙箱(为了性能或便利)。这种自由度本身就是风险——人总是倾向于「先关了安全限制跑通再说」,然后忘了开回来。
安全建议
对于生产环境,建议:(1) 始终启用沙箱插件;(2) 沙箱配置限制网络和文件系统范围;(3) 如果自建插件,审计其文件系统操作;(4) 不在生产环境运行来源不明的第三方插件。这些不是 DSH 特有建议,是所有 Agent 框架的通用安全实践。
12.5 版本风险:v0.1 意味着 API 可能随时变
官方公告和 GitHub 都明确标注了「Developer Preview」。这意味着:
- 插件接口可能不兼容——今天写的插件,下个版本可能要重写。
- 配置格式可能变——cordis.patch.yml 的字段可能会改。
- CLI 参数可能变——--profile、--patch 的行为可能调整。
- 可能有未发现的 bug——核心路径可能有潜在问题。
对于想基于 DSH 认真做产品的团队,v0.1 是一个需要谨慎对待的版本号。建议的策略是:先用它做原型验证,不要把生产系统绑在 v0.1 的 API 上。等 1.0 发布后,API 稳定了,再迁移到生产。
这是不是太保守了?不一定。Agent 框架和 Web 框架不同——Web 框架的 API 变了,顶多重写路由。Agent 框架的 API 变了,你可能要重定义你的 Agent 的行为逻辑,这比路由改动复杂得多。
12.6 适用性判断:现在该不该用
综合以上局限,我的判断是:
| 场景 | 适合度 | 理由 |
|---|---|---|
| 学习 Agent 架构原理 | 高 | 开源可读,每一层都透明 |
| 个人原型/Demo 验证 | 高 | 灵活度高,试错成本低 |
| 企业生产 Agent | 低 | v0.1 稳定性不足,文档缺失 |
| 需要多模型支持的 Agent | 高 | 模型无关是核心设计 |
| 需要快速上手的团队 | 低 | 门槛高,文档不足 |
| 高并发批量处理 | 存疑 | Cordis 间接层开销未实测 |
注意,这张表是 v0.1 阶段的快照。随着文档补齐、生态成熟、版本迭代,适用性会变化。我的判断基于 2026-08-15 的信息,不保证未来仍然成立。
什么是「灵活性税」?请举一个具体场景说明 DSH 的用户需要为灵活性付出什么额外的决策或调试成本。
为什么我建议「用 DSH 做原型验证但不绑生产系统」?这个建议在什么条件下可能变得过于保守?
一个 50 人的创业团队想用 Agent 做内部代码审查工具,预算有限,模型可用 DeepSeek 和 GPT-4o。请用本章的适用性矩阵分析:DSH 在 v0.1 阶段适不适合他们?你会给他们什么建议?
答辩:如果我是审稿人
你说 v0.1 不适合生产,但 DeepSeek 是大公司(有腾讯背景),它的 v0.1 可能比一般团队的 1.0 更稳定。你的保守建议是否过度?
参考防守
防守要点:第一,「公司大」不等于「产品稳定」。内部测试覆盖 != 用户场景覆盖。v0.1 的不确定性是「不知道什么场景会出问题」,而不是「已知的有问题」——后者反而好处理。第二,DeepSeek 以模型闻名,DSH 是它的第一个 Agent 框架产品,没有 Agent 框架运维积累。模型和框架的工程挑战不同。第三,我的建议不是「别用」,是「用但别绑死」——原型验证完全可以做。但承认:如果 DeepSeek 快速迭代到 1.0,且 API 做了向后兼容承诺,我的保守建议确实可以放宽。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
DSH v0.1 的核心局限是:文档缺口(架构太灵活,文档追不上路径空间)、灵活性税(每个选择都是用户的决策责任)、性能开销存疑(Cordis 间接层在高频场景可能有瓶颈,但未实测)、安全模型依赖用户自律(沙箱可关、插件来源不受控)、版本风险(API 可能随时变)。适用性判断:适合学习和个人原型,不适合生产和企业团队快速上手。这些局限是 v0.1 阶段快照,随版本迭代会变化。
第13章 未来推演与实战建议
最后一章,我从「未来会怎样」和「你现在该干什么」两个维度给出判断。所有推演都是我的主观预测,不是官方路线图。
学完这一章你应该能做到
- 说出 DSH 未来 6-12 个月的三个关键演进方向
- 判断 DSH 要成功需要跨越的三个门槛
- 制定一份「现在就能执行」的 DSH 上手计划
13.1 推演一:插件市场——决定 DSH 生死的不是框架本身
我判断 DSH 未来 6 个月最关键的工作不是加功能,而是建立插件市场。原因很简单:Agent 框架的价值不是「能跑多少种模型」,而是「生态里有多少现成可用的插件」。用户不想自己写数据库查询插件、不想自己写文件搜索插件、不想自己写 Git 操作插件——他们想从市场里装一个就用。
Cordis 已经有插件市场的经验(Koishi 时期就有 marketplace),这是 DSH 的一个隐性优势——团队知道怎么做插件分发。但 Agent 插件和聊天机器人插件的需求维度不同:Agent 插件需要更多的安全审计、版本兼容、沙箱策略说明。这是一套新的工程体系,不是简单复制 Koishi 的 marketplace 就行的。
我的预测:如果 DSH 在 3 个月内上线插件市场,并在 6 个月内有 50+ 个高质量社区插件,它有机会成为 Agent 开发者的首选框架。如果 6 个月后插件市场还没起来,开发者会转向其他框架——不是因为它不好,而是因为「没有生态的框架」等同于「框架不存在」。
主观判断(请批判性看待)
这是我的推测,不是事实。插件市场的成功取决于太多因素(用户体验、审核机制、盈利模式、竞品动作),50 插件这个数字也是拍脑袋的。真实情况可能更好或更差。但有一点我比较确定:没有插件市场的 Agent 框架走不远。
13.2 推演二:模型无关将变成行业标配
第 9 章我讲过「模型无关」是 DSH 的一个设计方向。我的判断是:未来 12-24 个月内,模型无关会从「某些框架的差异化特征」变成「Agent 框架的行业基本要求」。原因有三:
- 模型成本波动:模型定价在快速变化(降价是趋势),但也可能出现某些模型涨价或限流。不绑死一个模型是应对不确定性的策略。
- 能力差异化:不同模型在不同任务上表现不同(代码生成用 A、推理用 B、摘要用 C)。多模型组合比单一模型更适合复杂 Agent。
- 企业合规:不同企业的合规要求不同——有的只能用私有部署模型,有的可以用云端但要符合数据驻留法规。模型无关让 Agent 框架能适配多种合规场景。
如果这个推演成立,DSH 的先发优势在于:它从一开始就按模型无关设计,不像某些框架要「后期改造」。但先发优势不等于胜势——如果竞品能更快做到模型无关 + 更好体验,DSH 的架构优势会被对冲。
13.3 推演三:沙箱安全将成为关键竞争维度
Agent 能执行代码,意味着安全风险是真实的。目前各家框架的沙箱策略差异很大——有的很强(完全容器隔离),有的很弱(只限制目录访问),有的干脆没有。随着 Agent 在企业生产场景的渗透,安全审计会成为采购决策的核心因素。
DSH 的优势是沙箱是插件(可以替换、升级、定制),劣势是没有默认的最强安全配置。如果 DeepSeek 能提供一个「企业安全沙箱插件」(容器级隔离 + 网络白名单 + 操作审计 + 合规报告),这对企业采购者是一个强卖点。
我的预测:到 2027 年,Agent 框架的安全模型会成为比性能更重要的竞争维度。因为性能差异在缩小(模型进步太快),但安全事件是「一票否决」的——一次代码注入导致数据泄露,整个产品可能被禁用。
为什么安全是「一票否决」维度
因为安全的代价是「不对称」的。性能差 10%,用户忍一忍或加机器;安全出一次事,用户直接跑路。这个不对称让安全成为「下限决定型」因素——你可以因为安全好而被选中,也可以因为安全差而被否决,但不会因为安全好而胜过更强的对手。框架的方向是「把安全做到及格线以上」,而不是「用安全当卖点」。
13.4 三个门槛:DSH 要成功需要跨越什么
综合前面所有章节的分析,我认为 DSH 要从「有潜力的 v0.1」变成「主流 Agent 框架」,需要跨越三个门槛:
- 文档门槛:从「靠读源码理解」到「靠文档上手」。需要完整的 API 参考、插件开发指南、配置字段清单、至少 5 个端到端示例项目。时间窗口:3-4 个月。
- 生态门槛:从「官方插件为主」到「社区插件占据半壁江山」。需要上线插件市场、建立审核机制、种子 50+ 个高质量插件。时间窗口:6-12 个月。
- 信任门槛:从「开发者预览」到「团队敢放生产」。需要发布 1.0、承诺 API 向后兼容、建立安全基线、出几个标杆用户案例。时间窗口:9-12 个月。
三个门槛不是串行的——应该并行推进。但优先级是文档 > 生态 > 信任。因为没有文档,生态长不起来;没有生态,没有标杆案例;没有标杆案例,信任无从建立。
文档门槛 ──→ 生态门槛 ──→ 信任门槛
(3-4月) (6-12月) (9-12月)
│ │ │
▼ ▼ ▼
API参考 插件市场 1.0发布
开发指南 审核机制 兼容承诺
示例项目 50+插件 标杆案例
13.5 实战建议:现在就开始的 7 天上手计划
如果你看完前 12 章觉得 DSH 值得试试,这里是一份 7 天上手计划。它不追求让你成为专家,只追求让你「跑起来并且理解每一层在做什么」。
- Day 1:装 DSH(第 10 章),跑通 `dsh web`,发一句话确认整个链路通。读 README.zh.md。
- Day 2:跑 `--dump-config`,对照第 3 章理解五层配置。试着用 --patch 改一个配置(比如模型默认值),再 dump 确认变化。
- Day 3:切换 profile(web → headless → tui),体会第 4 章讲的四种模式区别。在 headless 模式下跑一次任务,观察日志输出格式。
- Day 4:读 lib/ 目录下的源码(重点看 bin.js 和核心 Agent 循环),对照第 5 章理解循环四阶段。不需要看懂全部,能定位「模型调用在哪」「工具调用在哪」就行。
- Day 5:配置一个非 DeepSeek 模型(比如本地 Ollama 或 OpenAI API),验证第 9 章讲的模型无关。体会「换模型不动框架」是什么感觉。
- Day 6:尝试理解会话日志格式(第 7 章)。开一个会话,发几句话,关掉重开,验证恢复功能。如果日志是 append-only,尝试找到「分叉点」。
- Day 7:尝试写一个最简单的自定义插件(比如一个返回当前时间的工具),挂到 Agent 上。如果跑通了,你对 DSH 的理解就超过 90% 的围观者了。
这个计划的核心思路是:每一天碰一层,七天碰完所有核心层。你不需要在第 7 天就写出复杂插件——目标只是「对每一层有手感」。有了手感,后续深入任何一层都有基础。
13.6 结语:一个值得认真对待的实验
DSH 是一个不完美但值得认真对待的项目。它不完美在于 v0.1 的文档缺失、稳定性未验证、生态未建立。它值得认真对待在于:「一切皆插件」不是营销话术,而是从 Cordis/Koishi 五年实战中长出来的工程哲学,有代码和架构支撑。
我无法预测 DSH 是否会成为「Agent 领域的 Linux」。但我可以说:如果你对 Agent 架构感兴趣,不管你最终用不用 DSH,理解它的设计决策对你都有价值。因为 DSH 提出了一组清晰的命题——模型要不要绑、工具要不要固定、UI 要不要内置、安全谁说了算——这些命题是所有 Agent 框架都要回答的。DSH 给了一份答案,你可以认同或不认同,但至少你有了一个参照系。
这,就是深度精读的意义。
说出 DSH 要成为主流框架需要跨越的三个门槛,以及它们之间的依赖关系。为什么是文档优先而非生态优先?
为什么我说安全是「一票否决」维度而非「胜出」维度?这种不对称性对 Agent 框架的产品策略意味着什么?
基于全书 14 章的内容,请给出你对 DSH 的综合判断:它最大的价值是什么?最大的风险是什么?如果让你给 DeepSeek 团队一条建议,你会说什么?
答辩:如果我是审稿人
你的三个推演(插件市场、模型无关标配、安全竞争维度)都是「行业趋势」,不是 DSH 独有的洞察。凭什么说 DSH 有优势?
参考防守
防守要点:第一,推演本身不是说 DSH 有优势,而是在说「这些趋势来了之后 DSH 处于什么位置」。我的判断是 DSH 在「模型无关」和「架构灵活性」上有先发优势,在「插件市场」和「安全」上没有。第二,行业趋势对所有玩家是同一个考试题,但 DSH 的 Cordis 经验(Koishi 有 5 年插件生态运营)是在「插件市场运营」这门考试上有别人没有的复习资料。第三,最终优势不取决于今天谁先看到趋势,取决于谁先执行到位。承认:我的推演可能是对的,DSH 仍可能因为执行不力而输给后发者。
本章自测
以下题目由系统自动判分,答题记录接入间隔重复算法。
本章小结
未来推演三方向:插件市场(6 个月内生死线)、模型无关变标配(12-24 月趋势)、安全成关键竞争维度(2027 年预期)。三个门槛:文档 (3-4 月) → 生态 (6-12 月) → 信任 (9-12 月),文档优先。7 天上手计划:每天碰一层,安装→配置→模式→循环→模型→会话→插件。DSH 不完美但值得认真对待——它提出了所有 Agent 框架都要回答的命题,给了一份清晰答案,你可以不认同,但理解它对你判断整个领域有价值。