dsh-assistant-profile:为 DeepSeek Harness 提供全局人格与长期记忆

前言

DeepSeek Harness(DSH)在创建新会话或切换模式时,预设会自动注入一份系统提示,通常包含身份句与工具说明。如果想在所有会话里统一一份人格,就需要手动复制粘贴或改预设,维护成本高,且容易在不同会话间不一致。dsh-assistant-profile 插件提供了一份全局人格档案,以及随档案存在的长期记忆,让助理在每次新会话中自动带上相同的身份与背景信息。

它是什么

dsh-assistant-profile 是一个由维护者 iStarryDust 开发的 DeepSeek Harness 插件,分类为「趣味换装」。它将助理的人格分为名称、语言、人格提示词三段,装进一份档案后,每次新会话的系统提示最前面都会从这份档案开始,同时附带一份长期记忆。侧栏「新会话」上方会显示这份档案的助理名。

核心功能

1. 全局人格注入

插件在每个对话 agent 创建时(以及空白会话换模式重新绑定预设时),在 agent 自己的作用域里注册一段 deployment:persona-prefix。作用域链上最近的同名段胜出,于是预设自带的身份句被档案替换,而工具、流程、模式语义保持不变。

注入的文本格式如下(空行分隔,缺哪段就少哪段):

Your name is 大肥鱼.

Reply in 简体中文 throughout.

<你写的人格提示词…>
  • 极简模式:预设把人格当作「整段系统提示只有这一句」(complete: true)。插件会镜像这个标记——极简模式下系统提示就只有档案,没有工具说明,符合原模式的设计。
  • 四段全空时回落到预设原文,等同于原生行为。
  • 子智能体不注入:委派出去的子代理保留它自己的人格。

2. 助理记忆

一份档案对应一份记忆,存储为 markdown 文件,每行一条 - [YYYY-MM-DD HH:mm] 内容,随档案存在 profile 的同一份配置里,所有会话共享。

记忆段注入位置为 memory:assistant,order 500,排在人格(order 0)之后、工具目录(order 1000)之前。记忆描述「用户和我是什么关系」,工具说明可以引用这些前提。

三个入口:

  • 聊天里的「记住」按钮:每条助手消息的动作行上(官方的点赞/点踩旁边)多一个 ✨。点开是一个勾选弹窗,列出当前会话里可提炼的用户/助手消息。勾选后提交,宿主用该会话自己的模型跑一次独立请求,把选中的对话压成几条稳定事实,逐条追加(同义条目只刷新时间戳,不重复堆积)。
  • 设置 → Agent记忆:两个开关(启用记忆 / 自动记忆)+ 一个编辑框。手工写、改、删都在这里,保存即落盘。
  • memory_add 工具:只在「启用记忆 + 自动记忆」都打开时注册,模型可以在对话中自己决定记什么。

提炼是 fail-closed 的:会话不在线、取不到这个会话的模型配置、模型没吐出一条可用条目,都不会写任何东西,只把原因回显在弹窗里。

3. 删除会话

侧栏任意会话行的「…」菜单里多一行删除(红色,带分隔线,排在「复制 Session ID」之后)。确认后删除的是这个会话本身:

  • 磁盘:<DSH_HOME>/sessions/<项目>/<会话 id>/ 整个目录(日志、分代文件一起)。
  • 索引:会话查询里那一行(下次搜索不会再出现)。
  • 登记:工作区里对这个会话的记账。
  • 界面:宿主发 api-session/removed,官方 session-controller 收到后把行从侧栏移除。

正在运行的会话会被拒绝(先停止),空闲但还开着的会话会先摘下再删。

4. 改人格不重算历史

DeepSeek 的上下文缓存是前缀缓存:系统提示在最前面,直接改写开头那条会让后面全部失效。档案的文本是每次组装提示词时求值,所以保存后下一个请求的提示词就变了,而历史一个字节都不动。剩下的交给宿主判定:模型路由声明了 systemPromptUpdate: 'in-history'(DSH 默认的 deepseek-flash 条目就声明了)时,变化的系统提示会被追加在已缓存的历史之后,历史那段前缀仍然命中,只有新增的这一小段按普通输入计费。

会话日志里的 request/context 会写明当前路由的模式:

{"provider":"deepseek-official","model":"deepseek-flash","systemPromptUpdate":"in-history"}

路由不支持这个模式时(例如默认的 deepseek-v4-pro 条目),改人格会让下一次请求从开头失效一次——那是路由能力问题,不是插件的选择。介意的话,把改动留到新会话。

5. 界面

  • 侧栏「插件」下面多一行Agent助理(行序 5,夹在插件与自动化任务之间)。
  • 点开是主区的一个页面:名称、语言、人格提示词,右下角实时字数(超过 2000 字转成提醒色)。
  • 「保存」行左侧是人格预设:默认一 / 默认二 / 默认三(点击只把三段文本填进表单,落盘仍按「保存」)加「另存」出来的自定义(名字取自「名称」,胶囊右侧带小删除钮);装好默认用默认三,放不下横向滚动。
  • 「新会话」按钮上方一行小字 + 首字方块显示助理名;侧栏收成 56px 图标栏时自动隐藏;改完名称保存后立刻变。
  • 名称默认 大肥鱼、语言默认 中文。

6. 数据存储

四个字段就是本插件在 profile 里的配置,由官方设置通道读写,落进 profile 的 cordis.patch.yml:

- id: assistant-profile
  name: '@istarry/dsh-assistant-profile'
  config:
    name: 小星
    language: 简体中文
    persona: 你是一个只讲证据的助理。不确定就说不确定。

所以它跟着 profile 走:换 profile 就是另一份档案;备份 profile 就备份了人格。

安装与启用

dsh plugin --profile <profile> add @istarry/dsh-assistant-profile
# 本地包:
dsh plugin --profile <profile> add E:/Plugin/发布版/dsh-assistant-profile/dist/istarry-dsh-assistant-profile-0.2.1.tgz

重启 DSH 后生效。卸载:

dsh plugin --profile <profile> remove @istarry/dsh-assistant-profile

profile 里残留的四行配置不会影响原生行为(插件不在了,没人读它),手工删掉更干净。

典型用法

  1. 安装插件后,侧栏「插件」下面会出现「Agent助理」菜单。
  2. 打开页面,填写名称、语言和人格提示词。
  3. 在聊天中点击助手消息旁的 ✨,勾选需要提炼的对话,提交即可加入记忆。
  4. 在设置中打开「启用记忆」和「自动记忆」,模型可以在对话中自行调用 memory_add 工具。

适用场景与注意

  • 适合需要统一人格与背景信息的场景,例如客服助理、技术顾问、知识助手等。
  • 插件以当前 DSH 进程权限运行,安装前应检查源码与许可证。
  • 不建议与 dsh-agent-suite 同时启用,两者遮蔽同一个段(deployment:persona-prefix),后加载的会赢,人格会互相覆盖。需要多个 agent 各自的人格请用 agent-suite;只要一个随身人格就用这个。
  • 插件只注入顶层会话,子代理不注入;没有远程调用,记忆、信箱、归档都走设置通道与配置字段。

短结尾

dsh-assistant-profile 用一份档案为 DSH 提供全局人格与长期记忆,让每个新会话都带着相同的身份与背景,减少重复配置。更多细节可访问插件目录与 GitHub 仓库。

羽毛球分组比赛记分
小程序二维码

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

小夜