很多新手会误以为 Standard、PTC、Minimal、Creator 是 4 个不同大模型。它们不是模型,是会话级插件组合预设 (Preset)。同一套 Cordis 内核,通过加载不同插件集合、系统提示词、工具集,形成完全不一样 Agent 行为。
本文拆解 4 种内置模式底层差异、真实业务场景,手把手演示自定义 Agent 预设两种实现路径,WebUI 可视化操作 + 手动修改
agent.cordis.yml配置文件,同时讲清楚 Preset 与 Profile 核心区别,避开大量新手踩坑点。
GitHub 官方仓库
https://github.com/deepseek‑ai/deepseek‑harness
一、什么是 Agent Preset(Agent 预设)
1.1 Preset 核心概念
Preset = 一组绑定到会话的插件集合 + 角色提示词 + 工具白名单 + Agent 运行参数。
- Profile:进程全局配置,Web/Headless,全局安装插件,整个服务生效。
- Agent Preset:会话级别配置。同一个 dsh web 服务,新建会话可以切换不同 Preset,每个会话拥有独立工具集、角色设定,互不干扰。
- 底层实现:每次新建会话,DSH 会读取 Preset 的
agent.cordis.yml,把里面的插件 id、配置注入当前会话的隔离 Scope;不会修改全局 Profile,关闭会话即销毁该运行环境。
关键认知:模型还是你配置那一个模型;改变 Preset,改变的是模型可以调用什么工具、拥有什么角色、Agent 循环如何工作,不是切换大模型。
预设文件存放路径:
# 用户自定义预设目录
~/.dsh/.agent‑presets/
├── standard/
├── code/
├── minimal/
├── creator/
└── my‑custom‑agent/ # 我们自己新建的自定义预设
└── agent.cordis.yml
官方内置预设源码位置:仓库内 apps/cli/config/agent‑presets/。
二、四大官方内置 Preset 全方位解析
| 预设名称 | 别名 | 加载插件集合 | 核心能力 | 最佳适用场景 | 不适合场景 |
|---|---|---|---|---|---|
| Standard 标准模式 | standard | 全套插件:文件编辑、持久 Shell、文件检索、Web 搜索、Skills、规划、Goal 目标追踪、子 Agent、工作流 | 开箱即用完整 VibeCoding Agent;具备规划、子 Agent 拆解复杂任务,支持第三方 Skill 插件(如 dsh‑workspace‑enhance) | 日常开发、完整项目重构、调研、写新项目、普通用户默认选择 | 简单单文件小修改(工具太多,token 开销偏大) |
| PTC 代码模式 | code | Standard 全部插件 + Code‑Mode SDK(Programmatic Tool Calling) | 模型生成 TypeScript 脚本,在沙箱执行脚本编排批量工具调用,减少 LLM 往返轮次,中间变量保存在脚本环境,不污染上下文 | 批量文件处理、多步骤链式任务、数据库迁移、大量文件重构、脚本自动化 | 简单 CRUD、小 bug 修复(会过度写复杂 TS 脚本,增加耗时) |
| Minimal 极简模式 | minimal | 仅 2 个插件:persistent‑shell持久终端、filesystem文件编辑器 (str_replace_editor) | 剔除搜索、规划、子 Agent、Skills,最小工具集,上下文干净 | 模型基准跑分、最小复现 bug、简单文件修改,控制 token 消耗 | 需要网页搜索、子任务拆解、调用第三方 Skill 插件的复杂项目 |
| Creator 创造模式 | creator | Standard 全部插件 + 运行时自省、内存插件实验、Preset 创作指导 | 高信任模式。允许 Agent 读取运行时状态、内存中测试插件、直接编写 agent.cordis.yml 生成新 Preset | 插件开发、自定义 Agent 预设制作、调试 Cordis 插件 | 普通业务编码,风险提示:该模式允许模型操作运行时,只在可信本地环境使用,禁止公网部署开启DeepS... |
2.1 Standard 标准模式(绝大多数人首选)
底层加载完整工具链,和 Codex、Claude Code 体验对齐。 业务场景举例:
- 从零开发 UniApp 小程序、完整后端项目;
- 阅读大型仓库,做项目重构、Bug 排查;
- 结合社区插件
dsh‑workspace‑enhance做完整 VibeCoding 开发。
注意:工具越多,每一轮模型输入上下文越长;小任务可以切 Minimal 节省 token。
2.2 PTC / Code 模式(程序化工具调用)
传统工具调用:LLM → 调用工具A → 返回结果给LLM →调用工具B,多次往返。 PTC 模式:模型输出一段 TS 脚本,脚本内部连续调用多个工具,中间数据保存在沙箱 Worker,只把最终结果返回给大模型,极大减少轮次和 token 消耗。
示例任务适合 PTC:
遍历工作区全部 md 文档,每篇生成摘要,汇总输出 summary.md;批量修改 100 个前端文件导入路径。
2.3 Minimal 极简模式
agent.cordis.yml核心片段,整个预设只启用两个工具:
‑ id: persona
config:
text: "你是一名软件工程师,精简输出,只使用提供工具完成任务。"
‑ id: persistent‑shell
‑ id: filesystem
没有网页搜索,没有 skills,没有规划器。适合做模型评测,复现问题。
2.4 Creator 创造模式【高信任模式】
⚠️安全警告:不要在服务器公网环境开启 Creator 模式! 该模式可以让 Agent 直接读取 Cordis 运行时,让 AI 帮你写、调试、生成新的 Agent 预设。 典型用法:开启 Creator 会话,直接提示词: "帮我创建一个专门做前端 UniApp 开发的 Agent 预设,关闭 web 搜索,开启文件树增强插件 dsh‑workspace‑enhance,角色设定为 uni‑app 专家" Agent 会直接生成完整
agent.cordis.yml配置,保存到.agent‑presets目录,立刻可以选用。
三、WebUI 如何切换 Agent 预设
- 启动 dsh web:
dsh web,访问http://127.0.0.1:3080 - 点击【设置】→【Agent 预设】
- 列表会展示 4 个官方预设 + 你自定义的全部预设
- 新建会话才会生效;已经打开的会话修改预设不生效,每个会话绑定创建时选择的 Preset。
很多新手踩坑:已经打开聊天窗口再修改预设,不会变化,必须新开会话。
四、自定义 Agent Preset 两种实战方案
自定义 Preset 两种路线: 方案 A:Creator 创造模式,AI 辅助生成(简单快速,推荐新手) 方案 B:手动复制官方预设模板,修改 agent.cordis.yml(可控,硬核开发者)
方案 A:Creator 模式,AI 一键生成自定义预设(零手写 yaml)
- WebUI 设置,Agent 预设选择 Creator 创造模式,新建会话;
- 直接输入提示词示例(UniApp 前端专用 Agent):
请为我生成一个自定义Agent预设,名字叫uniapp‑dev。
需求:
1、继承standard基础能力;
2、默认加载dsh‑workspace‑enhance插件;
3、禁用web网页搜索插件;
4、角色persona设定:你是UniApp全栈开发专家,优先兼容小程序、H5、App多端,输出代码必须考虑多端兼容;
5、输出完整agent.cordis.yml,保存到~/.dsh/.agent‑presets/uniapp‑dev/下面。
完成之后告诉我,之后我新建会话就可以直接选用。
- Agent 自动创建目录与 yaml 文件;刷新 WebUI 设置页面,就出现
uniapp‑dev自定义预设。
方案 B:手动编写 agent.cordis.yml(完全掌控配置)
步骤 1:创建预设目录
# 创建自定义预设文件夹
mkdir -p ~/.dsh/.agent‑presets/uniapp‑dev
cd ~/.dsh/.agent‑presets/uniapp‑dev
步骤 2:新建 agent.cordis.yml
# uniapp‑dev 自定义Agent预设示例
‑ id: persona
config:
text: |
你是UniApp全栈开发专家,做跨端开发,输出代码优先兼容微信小程序、H5、App端。
编写代码主动规避uniapp多端兼容坑,注意生命周期,样式兼容,API兼容性。
不要调用web搜索工具,优先读取本地项目文件。
# 基础标准模式插件集
‑ id: planning
‑ id: goals
‑ id: sub‑agent
‑ id: filesystem
‑ id: persistent‑shell
‑ id: workspace‑enhance # dsh‑workspace‑enhance第三方插件
# ‑ id: web‑search # 注释掉,禁用网页搜索
# 关闭不需要的插件,只需要注释id,会话就不会加载
保存文件,不需要重启 dsh web 服务,直接打开设置‑Agent 预设,即可看到自定义预设。
原理:DSH 读取
.agent‑presets下全部子文件夹,读取每个目录内agent.cordis.yml,自动注册为可选 Agent 预设。
4.1 如何在自定义预设启用第三方社区插件
比如我们想把dsh‑workspace‑enhance内置到自定义预设。
- 先在 web profile 安装插件:
dsh plugin --profile web add git+https://github.com/luis1232023/dsh‑workspace‑enhance
- 在你的
agent.cordis.yml增加一行:
‑ id: workspace‑enhance
新建会话选择该预设,会话自动加载这个第三方插件。
区分:profile 安装插件是全局下载包;preset 控制这个会话要不要启用该插件。包需要 profile 安装,是否启用由 preset 控制。
五、Preset 常见踩坑清单
- ❌ 修改预设,当前会话不生效
Preset 绑定会话生命周期,必须新建会话。
- ❌ 自定义预设看不到
- 确认文件夹放在
~/.dsh/.agent‑presets/; - 文件名严格
agent.cordis.yml,yml 语法不能有缩进错误; - yaml 缩进必须使用空格,禁止 tab 制表符。
- ❌ 自定义 Preset 写了插件 id,但是工具不生效
插件包需要在当前 profile 执行
dsh plugin install下载;Preset 只是开启开关,不会自动下载 npm 包。
- ❌ Creator 模式直接在公网服务器部署
Creator 拥有运行时修改能力,存在安全风险,仅限本地可信环境使用。
- ❌ Preset 和 Profile 概念混淆
Profile:全局服务;Preset:单次会话。 举例:同一个 web profile,可以同时跑 Standard 会话、Minimal 会话、自定义 uniapp‑dev 会话,互不干扰。
六、选型决策树(直接照抄选择)
- 普通开发、写完整项目、VibeCoding 日常干活 → Standard 标准模式
- 批量处理文件、多步骤自动化脚本、大量文件重构 → PTC (Code) 模式
- 简单小修改、模型性能测试、最小问题复现、节省 Token → Minimal 极简模式
- 开发 DSH 插件、制作自定义 Agent 预设,调试 Preset 配置 → Creator 创造模式(本地)
- 固定业务场景(UniApp 开发、后端 Java 开发)→ 复制 Standard,自定义 Preset
七、总结
DeepSeek‑Harness 的 Agent Preset 是整个框架的灵魂,体现 “一切皆插件” 的设计理念:不需要修改框架源码,只通过配置文件,就能组装完全不同行为的 Agent。
很多使用者只知道切换大模型,忽略 Preset 带来能力差异:同样 DeepSeek‑V4‑Flash 模型,Minimal 模式和 Standard 模式的产出效果完全不一样。
业务落地最佳实践:
- 通用任务直接使用官方 4 套预设;
- 团队固定业务场景,直接产出自定义 Preset 模板分享,统一 Agent 角色、工具白名单,减少每个人反复写系统提示词。
扩展思考:你甚至可以写一套用于代码评审的 Preset,关闭文件写入权限,只保留文件读取,专门做代码审计。



被折叠的 条评论
为什么被折叠?



