dsh 配置指南:Profile、Patch 与 Agent Preset
一个 DeepSeek Harness(dsh)进程如何组装:Bundle、Profile、Patch 层层叠加成插件树,Agent Preset 定义整个会话。完整的 dsh 配置指南。
最近更新: 2026-08-14
一切都是一棵插件树
运行中的 dsh 不是一个"自带一堆功能的程序",而是一棵插件树——启动时由层层配置组装出来的 Cordis 插件系统。每一项能力(工具、模型接入、存储、沙箱、UI、主循环)都是树上的一个插件,而配置层决定了存在哪些插件、以什么顺序存在。
这就是全部的心智模型。剩下的篇幅就是把每一层拆开讲。
从底层到顶层的各层
配置按固定顺序叠加,上层覆盖下层:
┌─────────────────────────────┐
│ Patch(你的覆盖层) ← 优先级最高
├─────────────────────────────┤
│ Profile(你的具名组装清单)
├─────────────────────────────┤
│ Bundle(官方插件组合包)
└─────────────────────────────┘
- Bundle(组合包) —— 官方发布的成套插件。第一次启动时的默认体验就是一个 Bundle。
- Profile —— 你机器上的具名组装清单,内容是"加载哪些 Bundle 和插件、用什么设置"。可以保留多套、随时切换。
- Patch(覆盖层) —— 你自己的修改层。可以精确定位到任意一个插件条目并替换,不动它所属的 Profile。
因为每一层都只是配置,分享一套环境就是分享几个文件——把 Profile / Patch 文件发给你,就等于把"他的 dsh"交给你。
Patch 层:给 Agent 装能力的装扮系统
内置 Patch 层是 dsh 最不像其他 Agent 的部分。把它理解成一套装扮系统——你决定智能体"穿"上哪些能力,以及在什么条件下生效:
- 把本机 Agent 挂成子 Agent。 你电脑上的 Codex 和 Claude Code 可以注册为 Harness 调度的子 Agent,而不是被替换掉的竞品。
- 接入各种能力。 安装插件来添加工具、接入外来的服务、调整运行权限、开启全文搜索。
- 替换 UI。 界面模块同样是插件——皮肤、面板甚至整个 UI 组件都能通过 Patch 换掉。
- 规则按条件生效。 规则用 JavaScript 表达式定义,让能力只在你想要的地方生效:某个仓库、某类文件、某个时间段。
Patch 精确到单个插件条目,所以上面每一项都是一个可加、可查、可移除的覆盖,不动它下面的 Profile。
为什么"装插件"其实是改配置
dsh 没有那种"一键安装、从此不管"的中央包管理器。安装插件意味着往 Profile / Patch 层里加一条记录,插件仓库的 README 会给出确切的那一行。下次启动时插件进入插件树;卸载时,它注册过的一切自动撤销——注册必须是可逆的副作用,所以坏插件也留不下残余(见插件开发入门)。
Agent Preset:一个会话的形状
界面顶部的模式选择器,选的是 Agent Preset(智能体预设)——当前会话里智能体的完整定义:
- 拥有哪些工具;
- 什么样的系统提示词;
- 加载哪些 Skills;
- 子代理与工作流的配置。
预设不是"插件清单 + 一段提示词",而是整个会话赖以运行的契约。所以会话一旦产生内容就锁定预设——中途切换会让历史里的工具调用无法被新工具集解释。
四个内置预设:
| 预设 | 工具 | 适合 |
|---|---|---|
| 标准(Standard) | 完整的编程助手:理解需求、修改代码、运行命令并检查结果 | 日常写代码和调研 |
| PTC | 标准模式的一切 + 程序化工具调用:用 TypeScript 小程序把多步操作组合成自动化流程 | 批量机械步骤,更省上下文 |
| 极简(Minimal) | 只有持续可用的终端和基础文本替换工具 | 简单的改动、基准测试、教学 |
| 创造(Creation) | 标准模式的一切 + 运行时检查、尝试插件、用预设完成创作类任务 | 设计你自己的预设 |
打造自己的预设
创造模式(Creation) 是设计新预设的正规途径:直接描述需求("一个只读的代码审查员,绝不改文件,用中文回答"),Harness 会检查当前运行时、在内存里试验插件、起草配置、挂载验证,最后保存下来供复用。
官方文档里的两句提醒值得重复:
- 创造模式会执行模型写的代码并修改运行时——信任等级等同 shell;
- 预设就是配置,把它设为默认之前,先检查它到底保存了什么。
什么时候该停止折腾配置
最舒服的默认是:用标准模式,几乎什么都不改。 只有当你反复需要同一套环境(团队共享一个 Profile)、想给某类工作固定工具箱、或者只想换掉一个组件(换模型接入、收紧审批策略)时,才去动 Profile 和 Patch。上层覆盖层的存在,就是为了让你只改一处、不必推倒重来。
继续阅读
- 沙箱、审批与密钥 —— 这些配置层接入的安全模型
- 快速上手:5 分钟跑通 dsh
- dsh plugins 生态盘点
