dsh-companion:在 DSH 里切换聊天与工作,并带上人设与长期记忆

前言

DeepSeek Harness(dsh)默认面向「干活」:工具、工作区、会话都围绕任务展开。若你希望在同一套客户端里做一段带人设、能记住往事的对话,又不想把聊天记忆和工作会话搅在一起,通常只能另开应用或自己拼提示词与存储。dsh-companion 是社区插件,在界面顶部增加 聊天 / 工作 切换:聊天模式用人设卡驱动对话、后台整理长期记忆;工作模式保持 dsh 原样,不读写聊天侧数据。

这是什么

dsh-companion(GitHub:wuwen837/dsh-companion)由 wuwen837 维护,当前 package 版本 0.1.0,许可证 MIT。它给 dsh 增加「聊天」模式:模型按你设定的人设聊天,自动记住值得保留的事实,并在后续对话里按话题挑选相关记忆;工作模式不带人设,也不碰聊天记忆。数据落在本地目录,记忆检索在本地完成,不依赖 embedding 接口。

社区目录页:https://www.skillhub.cn/plugins/wuwen837/dsh-companion(独立站点,与 DeepSeek / 幻方无官方从属关系)。

核心功能

聊天与工作分离

  • 顶部切换:Windows 桌面版在标题栏「应用 / 编辑」菜单右侧;浏览器版在对话区左上角。打开某个会话时,模式会跟随该会话。
  • 独立聊天记录:聊天模式下侧边栏变为聊天记录列表;工作模式下聊天会话从工作区列表中隐藏。
  • 独立聊天模型:可在聊天输入框的模型菜单中切换;插件记住新聊天用的模型,并把工作模式的默认模型恢复为安装前状态。

人设

一张人设卡(名字、对你的称呼、性格、说话风格、关系、背景)作为聊天会话的完整系统提示词,每次对话都会完整带上。

自动记忆与记忆面板

  • 每轮聊天结束后,后台再调用一次模型,提炼事实、喜好、事件、约定,并自动去重、更新或删除过时条目。
  • 记忆按当前话题在本地做关键词检索(中文按字和词组切分),再叠加重要项与最近项,避免记忆过多撑爆上下文。
  • 「记忆与人设」面板支持查看、搜索、手动增删改、置顶;手动编写与置顶的记忆不会被自动记忆流程修改。

表情包

  • 聊天中发图并说「存起来」,可通过 save_stickers 工具写入表情库并自动命名、写含义。
  • 面板支持批量拖入上传(上传后会调用能看图的模型自动命名,名称与含义可改)。
  • 回复中出现 [表情:名字] 时,插件在聊天会话里将其替换为本地图片的小图 Markdown 显示。

实现概要(便于开发者对照)

部分 作用
companion Agent 预设 聊天会话用:不挂工具(表情包场景除外),保留上下文压缩
dsh-companion/agent 人设作系统提示词,注入当前时间与挑出的记忆
Host(index.js 等) 存储、POST /api/dsh-companion/*、轮次结束后的记忆提炼、模型隔离
Web 客户端 顶部切换、聊天记录侧栏、记忆面板 UI

数据默认在 ~/.dsh/companion/(若设置了 DSH_HOME 则在其下):persona.json、memories.json、settings.json、stickers.json,图片在 dsh-companion-stickers/。环境变量 DSH_COMPANION_HOME 可改数据目录。

安装与启用

插件以当前 dsh 进程权限运行;安装前建议浏览仓库源码并确认 MIT 许可与行为是否符合你的环境。

先从托盘完全退出 DeepSeek Harness 桌面版,再执行 README 中的安装命令:

dsh plugin --profile desktop add github:wuwen837/dsh-companion

安装后确认该 profile 的 package.json 里 dsh.profile.bundles 包含 dsh-companion,再打开桌面版。若修改了 Host 侧代码(index.js、agent.js、lib/),同样需要托盘完全退出后重开;只关窗口不会重新加载插件。

开发时可克隆仓库后用 link: 指向本地目录(README 有说明);本文不展开 clone 步骤。

运行环境要求 Node >= 22(见 package.json 的 engines)。

典型用法

  1. 点顶部「聊天」。侧边栏变为聊天记录,左侧出现「记忆与人设」。
  2. 打开「记忆与人设 → 人设」,填写人设卡并保存。
  3. 正常对话;每轮结束后记忆会自动整理,可在「记忆」页查看和修改。
  4. 需要换聊天模型时,在输入框的模型菜单里切换即可。

自动记忆每轮会多一次模型调用(默认跟随当前聊天模型、最低推理强度),可在设置里关闭或换成更便宜的模型。

适用场景与注意

适合:希望在 dsh 桌面版(或浏览器客户端)里做长期陪伴式对话、又不想污染工作会话与工具链的用户;接受本地 JSON 存储与人设 + 关键词记忆检索的实现方式。

限制(来自 README):

  • 记忆检索不理解同义改写,仅本地关键词匹配。
  • 工作模式隐藏聊天会话是按会话行隐藏,工作区默认只显示前几条会话时,列表可能少一两条。
  • 表情库仅 JPG / PNG / GIF / WebP;聊天里让模型存 GIF 可能变成静态图,动图宜在面板上传。
  • 带图轮次、工具调用与面板自动命名会额外消耗 token。
  • 浏览器版打开「记忆与人设」面板时,顶部切换按钮会随对话头部一起隐藏,可从侧边栏回到聊天。

结尾

dsh-companion 把「聊天人设 + 长期记忆 + 表情包」收进 dsh 的可切换模式,与工作流并行而不混数据。进一步了解实现与 issue 见 GitHub:https://github.com/wuwen837/dsh-companion;目录介绍见 https://www.skillhub.cn/plugins/wuwen837/dsh-companion。

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

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

小夜