DeepSeek Harness 解读(四):minimal 真的是最小 Agent 吗?
这是 DSH 系列的最后一篇。我们之前问过:minimal preset 只有两个工具,它是否已经是最小化 Agent?答案是:对模型可见能力来说接近最小,对真实运行时来说并不是。
DSH 的四种 preset 不是四个产品
DSH 当前把 Agent 能力组合成几类 preset:
standard 完整 Coding Agent
ptc TypeScript Code Mode / PTC
minimal persistent bash + str_replace_editor
creator 运行时检查和插件实验
它们不是四个独立程序,而是同一个 Cordis Runtime 上的不同能力组合。
这一区分很重要:preset 决定的是某个 Agent Scope 可以看到和使用哪些能力,而不是重新启动一套完全不同的 Agent 实现。
minimal 为什么看起来很小
DSH 的 minimal 配置对模型暴露的主要能力只有:
1. persistent bash
2. str_replace_editor
同时它关闭或抑制了很多额外上下文:
- 不加载完整 Coding Agent 的复杂工具集;
- 不注入运行时上下文;
- 不使用默认的复杂压缩能力;
- 使用固定、短的系统提示;
- 让 Bash 在多个 step 之间保持状态。
相关实现可以直接看 minimal agent preset 和 minimal runtime 设计记录。
DeepSeek Harness 解读(二):内核不是 Agent,而是 Cordis 运行时
上一篇讨论了 DSH 为什么不应该被简单看成“另一个 Codex”。这一篇进入源码架构:DSH 的真正内核不是一个大而全的 Agent 类,而是一套用来组装 Agent 的插件运行时。
先给一个简化模型
Runtime = Profile + Bundle + Patch + Plugin
Agent = Scoped Context + Session + Agent Driver
Turn = LLM Request + Tool Pipeline + Durable Events
DSH 官方文档对自己的描述很直接:模型适配器、工具注册表、会话日志和 Agent Loop 都是插件;没有一个需要被所有扩展修改的 privileged core。DSH Architecture
这里的“没有核心”不是说系统没有基础代码,而是说:基础服务存在,但业务能力没有被绑死在一个不可替换的中心对象里。
Cordis:Context 是服务仓库
Cordis 是 DSH 底层的插件框架。每个插件可以向共享 Context 注册服务:
ctx.llm 模型适配器
ctx.sessions 会话存储
ctx.tools 工具注册表
ctx.systemPrompt Prompt 组装
ctx.fs 文件系统能力
ctx.sandbox 沙箱能力
ctx.agents Agent 注册表
插件不直接依赖具体实现,而是通过 ctx.<key> 找到能力;依赖通过 inject 声明,加载顺序由服务依赖关系决定。插件注册的工具、Prompt、Provider 和事件监听器都会通过 effect 安装,并在插件卸载时撤销。Cordis Primer