首页行业百科DeepSeek Harness Profile 是什么?核心组织单元一篇看懂

DeepSeek Harness Profile 是什么?核心组织单元一篇看懂

2026-08-16 12:18:38阅读 5

在别的工具里,你"装一个 agent";在 DSH 里,你启动一个 Profile。这是 DSH 最独特的概念,也是后面一切配置的容器。它回答一个问题:一次 dsh 启动,到底是由什么拼出来的?

DeepSeek Harness Profile 是什么?核心组织单元一篇看懂_图1

一句话理解

Profile = 一份"怎么组装这个 dsh 实例"的清单,放在一个目录里。 目录里没有代码,只有声明:挂哪些插件、叠哪些配置、依赖哪些包。

$DSH_HOME/profiles/<name>/
├── package.json      # 依赖清单:树外插件声明在这里
├── dsh.profile       # profile 清单:按顺序排列的 bundles 列表
└── cordis.patch.yml  # 你的定制层:覆盖/追加配置写在这里

三个文件的角色:

文件干什么类比
package.json声明额外依赖的插件包项目依赖清单
dsh.profile声明由哪些组合包(bundle)叠成菜谱的主料列表
cordis.patch.yml在上面再叠一层你自己的修改你的"口味调整"
注意 cordis.patch.yml 才是你应该编辑的文件。同目录下的 cordis.yml 是空的根(内容就是一个 []),官方注释写得很直白:"Edit cordis.patch.yml, not this file."

两个内置 Profile:web 与 headless

装完就能用的两个入口,本质就是两个预先组装好的 Profile:

Profile启动命令用途
webdsh web(即 dsh --profile web浏览器 GUI,交互式工作
headlessdsh --profile headless "任务"一次性任务,打印最终答案后退出

两者共享同一套基础能力(模型、工具、持久化),差异只在"表面":web 挂 Web 服务器与前端,headless 不挂任何界面。首次使用时会从随附模板自动初始化,所以你没建过目录也能直接跑。

为什么要有 Profile:同一个核心,不同形态

DSH 的设计意图是:核心能力做成可复用的组合包dsh-base 是第一层,dsh-web-appdsh-headless 是第二层),Profile 只负责声明怎么叠。于是:

  • 想要 GUI?叠 web 组合包
  • 想要纯脚本执行?叠 headless 组合包
  • 想要你自己的形态?自建 Profile,只挂你要的插件

这种"组合而非写死"的方式,就是"一切皆插件"在入口层面的体现。

创建自定义 Profile

内置的两个之外的 Profile,用插件管理器创建:

dsh plugin --profile <name> <pnpm args>

例如给某 Profile 加一个社区插件,实际上是把 pnpm 命令转发到 profile 目录。创建后:

dsh --profile <name>        # 启动

几个常用命令速记

命令作用
dsh web启动 web Profile
dsh --profile headless "任务"一次性任务
dsh plugin --profile <name> <pnpm args>管理 Profile 插件
dsh --profile <name> --help看该 Profile 应用自己的参数
参数顺序有讲究:启动器的 flag 必须写在最前面,启动器不认识的第一串内容起,都属于应用参数。所以 dsh --profile web --port 8080 里的 --port 是 web 应用的参数,不是启动器的。

接下来读什么


← 上一篇:2.1 安装详解:目录结构、升级与卸载 | 下一篇:2.3 配置层与 patch:叠加规则详解

↑ 返回 教程总目录

立即领取行业头部企业 AI 应用案例

资深 AI Agent 技术专家将为您定制数字员工解决方案

立即获取方案