DSH Story Mode:DeepSeek Harness 剧情模式开关

前言

在 DeepSeek Harness(DSH)里做角色扮演或带场景的对话,常见做法是把大段设定写进 system prompt,或每次手动粘贴场景文档。改设定往往要改配置、重启服务,对话里也很难临时切换「正常聊天」和「按剧本演」。社区插件 dsh-story-mode(维护者 xianshu-virtuous)针对的是另一类需求:在保留当前人格(例如 whale-companion 注入的深深人设)的前提下,用开关进入剧情扮演,并把工作区里的 Markdown / 文本文档当作场景与须知注入 prompt,且开关即时生效、无需重启 DSH。

下面介绍插件定位、工作方式、安装与典型用法。

这是什么

DSH Story Mode 是 DSH 的客户端类外部插件,包名为 @dsh-external/dsh-story-mode(仓库 xianshu-virtuous/dsh-story-mode)。官方简介:Story mode for DeepSeek Harness —— 一个会话级开关,以当前 persona 做角色扮演,并把工作区 story/ 下的文档作为场景说明加载进 system prompt。

它不替换人格文本,也不覆盖其他 system prompt section;身份仍由 whale-companion 等人格插件提供,本插件只追加「扮演边界 + 场景文档正文」。

核心功能

开关即时生效

开启后,模型以当前人格身份进入剧情扮演;关闭后恢复普通对话。无需重启 DSH 进程,状态在下一轮请求组装 prompt 时即反映。

工作区文档即场景

开启时,插件读取当前会话工作区(会话 cwd)下 story/ 目录中的 .md、.txt 文件,按文件名排序,以 【文件名】 分段拼进 <story-mode> 指令。文件名可自定,例如 scene.md(场景)、rules.md(须知)、characters.md(人物卡)。

文档总字符数超过配置项 maxChars(默认 12000)时,按上述顺序截断,避免撑爆 context。

双入口控制

  1. WebUI:设置 → 剧情模式 页面,提供按钮开关与已加载文档清单。
  2. 工具 story_mode:模型在对话中可调用,参数 action 为 on / off / status(status 返回状态与文档列表,不含正文,省 token)。

与 system prompt 的衔接

插件注册一个追加的 system prompt section(order 15,紧随 whale-companion 人格 section)。每次组装时同步读开关状态:

  • 关闭:该 section 返回空串,不参与组装。
  • 开启:注入 <story-mode> 指令(含扮演边界规则)及全部已读剧情文档正文。

开关状态持久化在:

$DSH_HOME/plugins/dsh-story-mode/state.json

剧情文档路径由配置 storyDir 决定,默认相对工作区的 story。

配置

可在 cordis.patch.yml 中覆盖插件实例配置(资料中的示例):

- insert:
    - id: dsh-story-mode
      name: '@dsh-external/dsh-story-mode'
      config:
        enabled: true        # 插件总开关,false 完全禁用
        storyDir: story      # 剧情文档目录;相对路径相对会话工作区,也支持绝对路径
        maxChars: 12000      # 注入 system prompt 的文档总字符上限

安装与启用

README 给出的流程是本地构建后按路径安装(示例为 Windows 路径,需换成你本机克隆或下载后的插件目录):

pnpm install
pnpm run typecheck
pnpm test
pnpm run build
dsh plugin --profile web add F:\dsh\dsh-story-mode

完成后重新启动 dsh web。在 Web 端打开 设置 → 剧情模式 即可使用 UI 开关。

package.json 要求 Node ^22.19.0 || >=24.0.0;当前发布版本为 0.2.0。安装前请自行查看仓库源码与 LICENSE,插件以当前 DSH 进程权限运行。

典型用法

准备场景文档

在会话工作区创建目录(默认名 story),放入若干 .md 或 .txt,例如:

your-workspace/
  story/
    scene.md
    rules.md
    characters.md

保存后开启剧情模式;下一轮对话 prompt 会带上这些文件内容(受 maxChars 限制)。

用工具切换

模型可调用的 story_mode 工具:

  • action: 'on' — 开启剧情模式(写 state,下一轮生效)。
  • action: 'off' — 关闭,恢复正常对话。
  • action: 'status' — 查询开关与已加载文档文件名列表。

与 whale-companion 搭配

两个插件可独立安装:whale-companion 提供深深等人格;dsh-story-mode 只决定「是否以该人格进入扮演」以及「场景文档是什么」。未安装 whale-companion 时,仍可使用剧情模式,但「当前人格」取决于你环境里其他人格注入方式。

适用场景与注意

适合:需要在 DSH Web 会话里做可切换的角色扮演;场景、规则、人物卡希望用文件维护、随工作区版本管理;希望 UI 与工具双通道控制,而不是改全局 prompt 模板。

注意:

  • 剧情内容来自工作区文件与插件注入逻辑,安装前应阅读 GitHub 仓库 源码与许可证。
  • 大文档会被截断,重要规则宜放在排序靠前的文件或控制单文件体积。
  • 社区目录 SkillHub 插件页 与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本介绍事实以 README 与 package 元数据为准。

结尾

dsh-story-mode 把「剧情开关 + 工作区 story 文档注入」做成一个客户端插件:order 15 的 system section、持久化 state、Web 设置页与 story_mode 工具,并与 whale-companion 人格 section 分工明确。若你在 Harness 里做带场景的对话,可从目录页或 GitHub 获取仓库,按 README 构建安装后在 设置 → 剧情模式 试用。

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

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

Xiaoye