minimal
minimal
别名:极简模式、最小预设、minimal preset
DSH 出厂四个预设之一(显示名「极简模式」,order 3):固定系统提示加持久 bash 加 str_replace_editor 的裸双工具编码 Agent,没有压缩、技能、子智能体与 todo 行,是排「是不是某个插件行搞坏了启动」时最好用的最小对照。
一句话
minimal 是 DSH 的「最小可跑编码 Agent」:一个写死的系统提示,加两个工具(持久 bash、strreplaceeditor),仅此而已。它不是给人日常用的预设,而是排障用的对照组——当你不确定启动异常是本体、插件行还是补丁层造成的,切到它;如果它还起不来,问题就不在插件上。
它实际装了什么
agent.cordis.yml 是一份顶层行列表,实测只有三行(两行是组):
| 行 id | 包 | 关键 config |
|---|---|---|
persona | @deepseek-ai/dsh-persona | text: You are a helpful software engineer assistant.、complete: true、includeRuntimeContext: false |
persistent-shell(cordis:group,isolate.terminals) | dsh-terminal 加 dsh-terminal-bash 加 dsh-tool-bash-persistent | timeoutMs: 300000(两处各写一遍),持久 bash 带一段写死的工具描述 |
filesystem(cordis:group,isolate.fs) | dsh-fs-local 加 dsh-tool-str-replace-editor | cwd: !!js process.env.DSH_CWD ?? process.cwd();maxOutputChars: 16000 |
preset.yml 给的是显示文本:name: 极简模式、description: 仅提供持久 bash 与 str_replace_editor 的双工具编码 Agent。、order: 3(order 决定它在预设列表里的次序)。
它刻意不装什么
对照同为出厂预设的 standard(那种全量编码预设)就能看出 minimal 的取舍:
- 没有
compaction组(compaction-basic/command-compact/tool-result-pruner),所以上下文压缩缺席——长会话只能硬扛。 - 没有
skill-filesystem与tool-skill,所以这个 Agent看不到技能目录。注意 Web 形态下 base bundle 的 hostskill-filesystem行是被禁用的(技能发现归预设所有),于是 minimal 下技能彻底不可见。 - 没有子智能体、工作流、todo、ask-user、web(搜索)行。它只有两个工具,这是设计而不是缺漏。
- 没有
agent-instructions行(那行出现在 standard 里,config 是maxBytes: 65536)。按清单推断,minimal 不读AGENTS.md这类指令文件——这是机制推断,本轮未实测。 - persona 是
complete: true,意思是它就是完整系统提示:全局身份、Web 取向、工具指引、后续装配监听器都加不进一个字;运行时上下文快照也被includeRuntimeContext: false抑制。
一个容易被忽略的点:文件系统绕开了宿主沙箱
minimal 的 filesystem 组里挂的是 dsh-fs-local,源文件注释写得很直接:
The bare local filesystem shadows the host's sandboxed provider only for this preset.
也就是只有这个预设把文件系统换成裸的本地实现。这既是它「最小」的一部分,也意味着:用 minimal 时不该把它当成与日常预设同等隔离的环境。同一段注释还说编辑器共享这个 realm 且要求绝对路径。
发现与落点(怎么加自己的一份)
发现逻辑在 @deepseek-ai/dsh-agent-presets(实测 0.1.0-rc.6):
| 事实 | 值 |
|---|---|
| 出厂根 | <安装目录>/@deepseek-ai/dsh/config/agent-presets/(profile-boot 里的 SHIPPED_PRESET_ROOT),其条目带 system 信任 |
| 可写根 | 测试机上的 $DSH_HOME/.agent-presets/<id>/(USER_PRESET_DIR) |
| 组成文件 | agent.cordis.yml(必需,缺了目录算 broken 但仍占号);preset.yml 只放显示文本 |
| id 规则 | ^[a-z0-9][a-z0-9-]*$;不合规的目录名直接跳过 |
| 同名冲突 | 先扫到的根赢(依次比较 order,再按 id) |
| 生效时机 | 每次调用重读根,改完不用重启;但已开始的会话留在它启动时那一代组成上 |
什么时候用它
- 二分定位:怀疑「装了某个插件之后就起不来」时切它,能起=问题在插件/补丁层。
- 当最小复现模板:
dsh-preset-authoring那条工程纪律就是「逐行抄已出厂的预设,别自己编字段名」——minimal 是最短的一份参照。 - 不要当日常档:没有压缩、没有技能、没有指令文件,长任务会很难受。
未核实 / 未声明
agent-presets的挂载/切换细节:本站只核实到发现层(读目录、id 规则、order 排序、first-root-wins、broken 目录占号)。「切预设只对空白会话生效、已产出内容的会话会拒绝切换」来自dsh-preset-authoring技能正文,本轮未在代码里复核。- 从 minimal 切到别的预设再切回来的会话状态影响:未核实。
skills/与.agent-presets/的 junction 是不是整合包的标准行为:只核实到本机.dsh-pack/migrate.log里有switch done: active=<包名> method=junction这类行,以及两个目录是指向.dsh-pack/的 junction;这是启动器/桌面端侧的实现约定,不是规范条款(concept/2 对 profile 侧的同类现象也是这个口径)。- standard 之外另两个出厂预设(code / cordis)的行差异:未核实,本站没有逐行读它们。
谁引用了这一条
信息表
- authors
- deepseek-ai(开发团队)
- category
- capability.preset
- files
- agent.cordis.yml、preset.yml
- install
- 无安装动作——它随 @deepseek-ai/dsh 出厂,落在安装包的 config/agent-presets/minimal/;自建同名预设要放 $DSH_HOME/.agent-presets/minimal/(落点已核实,本轮未实测复制一份进去)
- licenseRefs
- MIT · id: MIT · note: 托管包 @deepseek-ai/dsh 的 package.json 声明 MIT;仓库根 LICENSE 本轮未读取,整仓许可口径未核实。
- permissions
- note: minimal 的 agent.cordis.yml 里没有任何权限行——agent preset 不拥有沙箱与审批栈,「选预设」不改变权限档位 · owner: host 平面,由 @deepseek-ai/dsh-permission-presets 把 sandbox/mode 与 approval/policy 组合成一组 · pickedAt: 会话创建时把 permissionPresets/preset、sandbox/mode、approval/policy 钉进该会话,之后改默认不影响已开会话
- presetKind
- agent
- provides
- 一个固定系统提示(persona 用 complete: true 写死,global identity / Web 取向 / 工具指引都无法再往里加字)、持久 bash 工具(tool-bash-persistent,timeoutMs 300000,带一段固定工具描述)、str_replace_editor 编辑工具(maxOutputChars 16000,要求绝对路径)、一份可在界面预设列表里直接切换的出厂条目(preset.yml 提供显示名与 order)
- repo
- deepseek-ai/deepseek-harness
- titleEn
- minimal
- updatedAt
- 2026-10-02
被 1 条词条引用
属性
分类 capability.preset 预设类型 agent 上游 deepseek-ai/deepseek-harness 最后更新 2026-10-02 文件 agent.cordis.yml、preset.yml 提供内容 一份可在界面预设列表里直接切换的出厂条目(preset.yml 提供显示名与 order)开发者 / 团队(1)
支持的 DSH 版本
本站尚未收录它的 DSH 版本声明。