dsh-peach-persona:在 DSH 设置页分段配置 Agent 人设

前言

在 DeepSeek Harness(DSH)里跑 Agent,系统提示词往往要反复改:名字怎么叫、语气怎样、有哪些共事约定。改一版就粘进某处配置,下次又记不清「上一轮到底注入了什么」。社区里也有人参考 Character Card 或 ChatGPT 自定义指令,但和 DSH 的请求装配、设置页并不直接对应。

dsh-peach-persona 是维护者 clf0913 发布的 DSH 人设插件,在 SkillHub 上归类为「趣味换装」。它在设置里提供 人设 页:用 12 个字段分三段填写身份、说话方式与行为准则,保存后渲染成 persona.md 并注入每次请求,同时把每次注入记进日志,便于核对是否生效。

这是什么

一句话:给 DSH 增加「设置 → 人设」界面,把分段字段渲染成系统提示词片段,并保留注入记录。

出厂不带任何人设:12 个字段默认为空,内容全部由使用者填写;全空则不会注入残句。

核心功能

设置页与 12 个字段

字段分三组,保存后由插件渲染成一段人设正文:

组 字段 说明
身份 名字 Agent 自称用的名字
身份 简称 留空则不提简称
身份 对你的称呼 如何称呼你
身份 自称 对话中指代自己的词(我 / 本人等);与「名字」含义不同
身份 关系定位 接在「是」后面,如「你的工作搭子」
身份 语言 留空则整行省略
说话方式 说话基调 语气、是否奉承、是否用语气词
说话方式 篇幅 回话长度与信息密度
说话方式 分歧时怎么办 不同意你时的处理方式
行为准则 小块标题 留空则无标题行
行为准则 共事约定 一条一行,建议自行编号
行为准则 禁忌 / 不做什么 留空则整段省略

字段设计参考了 Character Card V2 与 ChatGPT custom instructions 的「关于你 + 该怎么回答」两分法。空字段在渲染时整行省略。

注入与预览

  • 保存后,persona/persona.md 作为产物,通过 systemPrompt.section() 注册两段:peach:persona(order 1)与 peach:persona-tail(order 10201)。persona.md 中间的 --- 为分段约定:前段进系统提示词开头,后段进第一方指导之后。
  • 不保存也可点「看最终长什么样」预览渲染结果。
  • 注入记录(persona/inject.jsonl):仅在渲染文本变化时追加一行,记录是否真的注入过、字数与时间。

数据文件位置

以 $DSH_HOME(通常 ~/.dsh)为根:

路径 内容
persona/persona.json 字段表,设置页读写
persona/persona.md 渲染产物,注入只读它
persona/persona.md.bak 每次保存前的上一版
persona/inject.jsonl 注入记录

手改 persona.md 不会回写字段表;页面会提示文件被外部改过,再次保存会按字段覆盖。

安装与启用

插件以当前 DSH 进程权限运行,安装前请自行查看仓库源码与 MIT 许可证。

前提

  • DSH 桌面版或 dsh web 版
  • 知道自己的 profile 名(桌面版一般为 desktop)

README 中的安装步骤在 Windows 桌面版上验证过;Linux / macOS 未在文档中声明已验证。装完后 必须重启应用(HMR 不会热加载插件自身的 JS 模块)。

下面命令摘自仓库 README,路径请按本机替换(含 dsh.cmd 位置):

# 1) 拿到源码(目录可自定,示例路径如下)
git clone https://github.com/clf0913/dsh-peach-persona.git "$env:USERPROFILE\.dsh\plugins\dsh-peach-persona"

# 2) 以本地 link 方式装进 profile
& "$env:LOCALAPPDATA\Programs\DeepSeek Harness\resources\runtime\cli\bin\dsh.cmd" `
  plugin --profile desktop add "link:$env:USERPROFILE\.dsh\plugins\dsh-peach-persona"

# 3) 重启应用(必须)

卸载示例(remove 子命令以你所用 DSH 版本为准):

& "<dsh.cmd 路径>" plugin --profile desktop remove dsh-peach-persona

也可从 profiles/<profile>/package.json 的 dependencies 与 dsh.profile.bundles 中移除对应项,并删除 profiles/<profile>/node_modules/dsh-peach-persona,再重启。

典型用法

  1. 打开 设置 → 人设。
  2. 12 个字段初始为空;可先填 名字、对你的称呼、共事约定,其余留空亦可。
  3. 点「看最终长什么样」预览,再点 保存。
  4. 下一回合起新人设生效(当前正在跑的一步不会变)。
  5. 要确认是否装配过:看页面底部 注入记录,有记录即表示曾注入。

正文里可使用宿主已注册的模板变量 {{model}}、{{provider}}、{{cwd}};其他未注册的 {{xxx}} 会降级为 {xxx},未注册变量可能导致整轮渲染失败。

适用场景与注意

适合谁

  • 希望在 DSH 里稳定、可复现地配置 Agent 人设,而不是每次手搓一大段 system prompt 的用户。
  • 需要核对「这一轮请求是否真的带上人设」的开发者。

限制(README 已写明)

  • 仅对提供 webServer 的 profile(web / desktop)生效。
  • 人设 全局一份,不按工作区区分;不同项目要不同人格时,可用各工作区的 AGENTS.md。
  • 文档说明仅在 Windows 桌面版上实际验证过;仓库未随包发布测试套件(源码内 test/ 供本地验证,装插件不依赖该目录)。

DSH 生态强调「一切皆插件」;SkillHub 为社区目录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-peach-persona 把人设拆成 12 个可维护字段,经设置页保存、渲染、注入,并用 inject.jsonl 留下注入痕迹。若你在 DSH 里做人格或语气实验,可从目录页或 GitHub 获取源码与说明:

  • 目录页:https://www.skillhub.cn/plugins/clf0913/dsh-peach-persona
  • GitHub:https://github.com/clf0913/dsh-peach-persona
羽毛球分组比赛记分
小程序二维码

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

Xiaoye