中文EN

dsh-agent-studio

workflow已测通过npmMIT

可视化地自定义配置 Agent 的提示词、工具、可见技能、子代理与备用模型,把它们编成一支团队。不写宿主的任何预设文件。

下载量 / Downloads
2,746
依赖体积 / node_modules
19.22 MB
测试时间 / Tested
2026-11-06
DSH 版本 / Version
0.2.2-rc.1

安装

dsh plugin --profile web add dsh-agent-studio

沙箱测试结果

阶段结果
1 安装✓
2 列装✓
3 挂载✓
4 启动—

四阶段在隔离沙箱里跑:安装(有网)→ 列装 → 挂载 → 启动(后三步断网)。

README

dsh-agent-studio

![在线文档](https://thissensen.github.io/dsh-agent-studio/)

![npm version](https://www.npmjs.com/package/dsh-agent-studio)

![CI](https://github.com/thissensen/dsh-agent-studio/actions/workflows/ci.yml)

![license](./LICENSE)

简体中文 · [English](README.en.md) · 在线文档

一个 DeepSeek Harness 图形化插件:可视化地精确配置 Agent 的提示词(prompt)、工具(tools)、可见技能(skills)、子代理、备用模型,轻松创建团队,根据不同任务分配不同模型。

模型每一轮看到的东西就三份:系统提示词、工具目录、技能目录。随着插件、工具、MCP 越装越多,这三份只会越来越大,拖累模型表现。另外 DSH 目前给子代理的配置极其简陋,没法轻松配置它的提示词、工具、技能、模型和思考强度。

本插件的配置存在自己的数据里,不改动宿主既有的预设定义,卸载即恢复原状。

它把 Agent 拆成可随意拼装的积木:提示词、工具、技能、模型拼成一个完整 Agent,子代理也一样能高度定制;预设可以随手新建;工具怎么呈现按预设分三档(继承部署默认 / 原生 / PTC),在面板顶栏直接切;支持跨供应商的备用候选模型。

可以搭配 dsh-context 一起用,查看模型这一轮实际收到的提示词、工具和 skill 到底长什么样。

它解决什么

你可能遇到过的问题 · 平台的默认行为 · 装上之后

系统提示词越堆越长,关不掉也用不上 · 预设里注册了哪些段就投递哪些段 · 按 agent 编一份白名单,名单外的段不进上下文

工具越装越多,同类工具一大堆,模型挑不准 · 工具面按已装的插件全量下发 · 挑出这个 agent 要用的,其余收起来

技能多了不好管 · 所有 modelInvocable 的 skill 都进目录 · 勾哪些就给哪些,不勾的模型看不见

每个 step 都塞一段运行时快照 · 官方按 step 动态注入,没有开关 · 代理级开关,可选部分关掉就不用再收

子代理只能整套继承主代理,占用大量上下文 · 官方 subagent 既没有条目标识,也没法按角色裁剪 · 每个子代理独立配:模型 / 提示词 / 工具 / 技能 / 后台模式

子代理的执行方式说不清 · 平台按预设里挂的执行器行决定,面板里没处选 · 子代理的执行方式由它所在的预设决定(平台机制),面板上按预设切三档

干不同的活想用不同的提示词、工具、Skill,切来切去很麻烦 · 预设只管提示词组合,工具和 skill 是全局一套,换个预设照旧全量下发 · 给预设挂的 Agent 一切换即可

本地部署模型上下文紧张,根本对话不了几轮 · 做不到提示词全清,只能创造模式自己建一个 · 创建一个什么都不挂的 Agent,给预设绑上就行,真 · 0提示词

主模型限流了 / 挂了,整轮直接失败 · 只在一个 provider 里重试到上限,然后放弃 · 配一条备用候选链(可跨供应商),失败按顺序顶上

安装

按你手头的条件挑一条:有网络就用 npm,内网或离线用 GitHub Release 的安装包,想改代码就走源码。

从 npm

dsh plugin --profile web add dsh-agent-studio

从 GitHub Release 下载

到 Releases 下载 dsh-agent-studio-<版本>.tgz,它就是 npm 上那份包,lib/ 与 client/ 的构建产物都在里面,不用自己构建:

dsh plugin --profile web add "./dsh-agent-studio-0.2.1.tgz"

包放在哪个目录都行,把路径写对即可(./ 开头或绝对路径),文件名里的版本号换成你实际下载的那个。离线、内网环境走这条。

从源码

git clone https://github.com/thissensen/dsh-agent-studio.git dsh-agent-studio
cd dsh-agent-studio

pnpm install                      # 只装 devDependencies;peer 是宿主包,不走 registry
node scripts/link-deps.mjs web    # 把宿主的 @deepseek-ai/* 链进本项目的 node_modules
dsh plugin --profile web add "link:<本目录的绝对路径>"

也可以把 Release 页的源码压缩包(Source code (zip))解压出来代替 git clone,后续步骤一样。

三条路装完都重启一次 DSH,在 设置 → Agent 中心 看到面板就成了。

  • link: 装法下改 lib/ 立即生效;改面板(client/parts/panel.js)刷新页面就行,不用重启。
  • 改 package.json 的入口类字段(main / exports / dsh.*)后必须重启。
  • --profile 填 web(纯 Web 版)或 desktop(桌面版)。桌面版就是 Web 版加一层 Electron 壳,host 半边一行不用改。

卸载

dsh plugin --profile web remove dsh-agent-studio

卸载后宿主配置里不留任何痕迹。预设从没被改过,其余配置都在插件自己的数据里。

面板预览

界面有浅色、深色两套:

<p align="center">

<img src="assets/panel-overview-light.png" width="49%" alt="Agent 详情:预设绑定与 Agent 身份">

<img src="assets/panel-overview-dark.png" width="49%" alt="Agent 详情(深色)">

</p>

截图为较早界面:导入 / 导出现已合并到顶栏的同一棵勾选树,后台模式已收成两档(不阻塞 / 阻塞)。

<img src="assets/agent-detail.png" width="520" alt="Agent 完整详情">

<img src="assets/prompt-set.png" width="620" alt="提示词集:段清单、PTC 专属标记、自定义与平台预设">

<img src="assets/tool-set.png" width="420" alt="工具集:按来源分组的工具候选">

<img src="assets/skill-set.png" width="480" alt="技能集:按来源分组的候选 skill">

区域 · 做什么

左侧「Agent 池」 · 每个 agent 一条:绑哪个预设、装哪些集、子代理名册

左侧集库 · 提示词集 / 工具集 / 技能集三类列表:新建、复制、改名、删除

右侧详情 · 选中集 → 编成员;选中 agent → 装载集、配模型与后台模式、挂子代理、切快照开关

顶栏 · 预设 tab 与新建 / 删除预设、预设呈现方式、主代理绑定、导入 / 导出(都走同一棵勾选树;导出的是草稿,含未保存的改动)

底栏 · 注册到主页面与突破 PTC 120 秒限制两个开关、保存态与保存改动

导入先选文件、再在树里勾要并进草稿的项;导出也在同一棵树里挑池与项(只含四个池,不带预设绑定与开关)。树里的「是否覆盖」开关决定撞 id 时是覆盖还是报错(默认关 = 报错);导入只并入草稿,点了保存才落盘。

注册到主页面:开启时主页面直接显示 Agent 中心面板、左栏出现入口;关掉后两者一起隐藏(主区回到会话页),随时可以去「设置 → Agent 中心」重开。它改的是全局开关,与草稿无关,点一下即时生效。

改 id 之前会先列出谁在引用它,改的时候把所有引用一并同步,不留悬空引用。

四个池,互相独立

四类配置对象各管各的,可以多对多引用。集建好之后,能被多个 agent 装载。

池 · 干什么用

代理 Agents · 指定绑给哪个预设;配提示词、工具、skill、子代理名册,以及被当子代理时的模型与思考强度

提示词集 promptSets · 有序的提示词清单,顺序可调

工具集 toolSets · 工具名清单,插件的和 MCP 的都在里面

技能集 skillSets · Skill 清单,决定哪些能被 AI 自主调用

  • 装载:把集挂到 Agent 上。同一个 Agent 装载的集之间不允许有重叠成员,界面和写入端点各拦一道。
  • 绑定:把某个预设绑到一个 Agent 上,这个预设就交给它管了。

语义边界

绑定之后,这个预设就归这个 Agent 管。三面一个规矩:没装就是空的。

概念 · 规则

绑定预设 · 被绑定的预设,提示词、工具、skill、子代理全部交给这个 Agent;解除绑

…(truncated)

以上内容来自 npm 上的 README,我们只做格式化,不改内容。

版本

npm 上共发布:11,最后更新 2026-11-05

链接

GitHub · Homepage · npm

同类插件