dsh-my-agent-preset:在 DSH 里为 Agent 定制可复用的能力预设

前言

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 清单(不含提示词与名单明细)。

人设的三种注入方式

  1. 追加:用你的文字替换人设前缀,保留 DSH 其它系统提示(含工具指导)。
  2. 完全替换:仅使用你的文字,移除其余提示词(官方工具指导也会消失,需自行写清工具用法)。
  3. 自定义屏蔽(默认官方):你的人设为主,按段规则屏蔽 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「快速开始」流程操作:

  1. 打开 设置 → 自定义预设模式,点「+ 新建预设模式」。
  2. 填写名称与描述。
  3. 写人设;不确定时先用「追加」。
  4. 勾选任务需要的技能(需要专业技能时再勾,否则保持空白)。
  5. 工具范围选「仅白名单」,只勾选 read、grep 等只读工具。
  6. 按需勾选运行时上下文;不确定可先全选。
  7. 保存并启用,新建会话时选择该预设。
  8. 在「运行时自检」确认工具面与技能符合预期。

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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye