前言¶
DSH(DeepSeek Harness)默认的通用 Agent 往往是「全量装备」:每轮请求都会带上大量工具 schema、技能描述和运行时上下文。任务简单时,真正留给对话的窗口被无关能力挤占;任务敏感时,模型同时看见写文件、执行命令、联网等能力,越权与误用的面也更大。临时改一段提示词可以应急,但很难审计、复用或按工种共享。
下面介绍社区插件 dsh-my-agent-preset(维护者 Zkbnfcnb,当前版本 2.7.2,MIT 许可证)。它把人设、技能白名单、工具范围和运行时上下文快照打成一套「预设」,在 DSH 设置里集中管理,新建会话时选用即可。分类上归在 SkillHub 的「趣味换装」,核心用途是能力层的收敛与角色换装,而不是替代沙箱或审批策略。
这是什么¶
dsh-my-agent-preset 在 DSH 侧注册为 bundle 插件:通过 cordis.patch.yml 挂载 Host 能力,并在 Web 客户端注入「设置 → 自定义预设模式」管理页(package.json 中 meta.title 为「自定义预设模式」)。
一句话定位:在 DSH Settings 里管理自定义 Agent 预设——人设提示词、运行时上下文勾选(含可选的必需项强制屏蔽)、按预设注入的技能与工具范围。预设启用后,新建会话时选择对应卡片即可生效;停用后从注册表移除,但配置仍保留在本地数据文件中。
社区目录页:SkillHub - dsh-my-agent-preset。源码与完整说明:GitHub - Zkbnfcnb/dsh-my-agent-preset。
核心功能¶
预设由什么组成¶
一个预设把五类配置绑在一起:
| 组成 | 作用 |
|---|---|
| 人设 / 提示词 | 定义角色与任务边界 |
| 技能 | 白名单注入;未勾选的不进上下文且调用会被拒 |
| 工具 | 全部 / 仅白名单 / 排除名单,并在可见性、调用守卫、提示词组装三层生效 |
| 运行时上下文 | 对 assembly.contexts 逐项勾选;官方必需项默认保留 |
| 元信息 | 名称、描述、启用状态、顺序、稳定 id(如 custom-xxxxxxxx) |
管理界面以卡片网格展示上述信息,支持新增、编辑、删除(两段式确认)、启停、复制副本、导出 id/name/description 的 JSON 清单(不含提示词与名单明细)。
人设的三种注入方式¶
- 追加:用你的文字替换人设前缀,保留 DSH 其它系统提示(含工具指导)。
- 完全替换:仅使用你的文字,移除其余提示词(官方工具指导也会消失,需自行写清工具用法)。
- 自定义屏蔽(默认官方):你的人设为主,按段规则屏蔽 DSH 官方段,可扩展前缀、精确段名或保留名单;第三方插件与外部 MCP 注入的提示词默认保留。
默认开启 附带工作区:在提示词末尾追加当前会话 cwd,避免模型猜错路径。
技能与工具¶
技能列表来自 DSH skills.list(),按来源分组勾选。空白名单表示没有任何技能,不是「全部技能」。勾选后会保留 skill 工具;未选技能会从模型上下文中裁掉,以节省 token。
工具三种模式:全部(默认)、仅白名单、排除名单。注意 README 中的行为:选了「仅白名单」却一个都不勾,保存后会归一为「全部」。
编辑器底部的 运行时自检 会列出继承工具面、可用与被拒绝数量、名单拼写错误、缺失技能等,排错时优先看这里。
数据存放¶
默认路径:$DSH_HOME/my-agent-preset/presets.json;未设置 DSH_HOME 时为 ~/.dsh/my-agent-preset/presets.json。可通过 bundle 配置中的 dataFile 覆盖。旧路径 agent-preset-studio/presets.json 不再读取,迁移需手工移动文件。写入采用临时文件加 rename,降低写一半损坏的风险。
安装与启用¶
本插件以 DSH bundle 形式加载,不依赖自编的安装命令字符串。官方 README 给出的本机验证方式是:将插件目录链接到当前 profile 的 node_modules,然后重启 DSH。
ln -s /path/to/dsh-my-agent-preset \
~/.dsh/profiles/web/node_modules/dsh-my-agent-preset
将 /path/to/dsh-my-agent-preset 换成你本机插件源码或发布包所在目录。重启后打开 设置 → 自定义预设模式;若未出现,在 DSH 日志中检索 my-agent-preset 相关报错。
SkillHub 等社区目录与 DeepSeek / 幻方无官方从属关系;在目录页可通过自然语言让 DSH 读取并安装 Zkbnfcnb/dsh-my-agent-preset,具体步骤以你环境中的 DSH 插件安装流程为准。安装前建议浏览源码与许可证,并认清插件与 DSH 进程同权限运行。
典型用法¶
从零配一个只读分析预设¶
经过上面的安装步骤后,按 README「快速开始」流程操作:
- 打开 设置 → 自定义预设模式,点「+ 新建预设模式」。
- 填写名称与描述。
- 写人设;不确定时先用「追加」。
- 勾选任务需要的技能(需要专业技能时再勾,否则保持空白)。
- 工具范围选「仅白名单」,只勾选
read、grep等只读工具。 - 按需勾选运行时上下文;不确定可先全选。
- 保存并启用,新建会话时选择该预设。
- 在「运行时自检」确认工具面与技能符合预期。
presets.json 中与只读场景接近的字段示例如下(摘自 README,id 需以你界面为准):
{
"id": "custom-1a2b3c4d",
"name": "只读分析模式",
"description": "只阅读与总结,不修改任何文件",
"instructions": "你是一名只读分析助手……",
"instructionMode": "append",
"includeWorkspace": true,
"contexts": ["sandbox:policy", "approval:policy", "harness:source"],
"skills": ["pdf"],
"tools": { "mode": "allow", "names": ["read", "grep"] },
"enabled": true,
"order": 0
}
与会话桥接插件组合(可选)¶
若已安装 dsh-session-bridge,创建子会话时可通过 agentPreset 指定预设的稳定 id,让编排会话只保留桥接工具,执行会话只加载工种技能。session_bridge_create 示例如下(agentPreset 需换成你卡片上的 id,且预设须为启用状态):
await session_bridge_create({
title: '文档:产品白皮书初稿',
cwd: '/root/work/docs',
agentPreset: 'custom-1a2b3c4d',
prompt: [
'任务:根据 outline.md 写白皮书初稿。',
'要求:3000 字左右;先列三级提纲再写;只输出文档,不做其他事。',
].join('\n'),
waitForReply: true,
})
不传 agentPreset 时,子会话会继承调用方预设——编排预设若未改,子会话也只会调度、不会干活,这是 README 强调的常见问题。
适用场景与注意¶
适合谁:需要在同一台 DSH 上切换「写文档 / 做幻灯片 / 只读审查 / 调度多会话」等不同 Agent 形态的用户;希望用白名单收窄工具与技能、减少 token 重复开销的团队。
能力边界:预设只决定模型能看见什么、能调用什么;执行后是否允许,仍由 DSH 沙箱与审批策略决定。高级选项里的「强制屏蔽」运行时必需项依赖实现细节,DSH 升级后可能失效,屏蔽当前工作区会让模型失去位置感,页面会给出警告。
权限与安全:插件与 DSH 同进程权限。给预设开放 write、bash 即具备相应能力;审阅类场景应坚持最小工具集。安装与升级前请阅读 GitHub 仓库 源码与 已知限制 小节。
结尾¶
dsh-my-agent-preset 把 Agent 从「每次临时拼提示词」改成「预设即配置」:人设、上下文快照、技能与工具可按任务复用、复制与导出元数据。若你正在 SkillHub 或 GitHub 上挑选 DSH 扩展,不妨从目录页了解简介,再按 README 的链接方式安装,在设置里建第一张预设卡片验证工具自检是否符合预期。
- 目录页:https://www.skillhub.cn/plugins/Zkbnfcnb/dsh-my-agent-preset
- GitHub:https://github.com/Zkbnfcnb/dsh-my-agent-preset