dsh-chat-settings:为单个对话定制系统提示与上下文

前言

DeepSeek Harness(DSH)采用「一切皆插件」的架构,允许开发者通过插件扩展能力。在多对话场景下,不同对话往往需要不同的系统提示、采样参数或上下文策略。如果全部修改全局设置,会影响其他对话;如果为每个对话新建会话,又会增加管理成本。DSH 提供了对话级自定义能力,但需要插件来落地。

下面介绍 FallnStrelitzia 开发的 dsh-chat-settings 插件,它允许为单个对话配置独立的系统提示词、控制上下文轮数、覆盖采样参数,并开启低 token 的纯聊天模式——所有改动不影响全局设置。

插件定位

dsh-chat-settings 是一个 DeepSeek Harness 插件,为单个对话提供独立的配置入口。它不是通用聊天客户端,不是主题,也不替代 DSH 原生的会话管理,只负责在调用模型前组装对话内容。

插件数据存储在 $DSH_HOME/chat-settings/settings.json,通过 cordis.patch.yml 注入预设和 UI 组件。

核心功能

插件提供以下能力:

  • 对话级系统提示词:每个对话拥有独立的系统提示词,互不干扰。
  • 上下文折叠:保留最新 N 轮对话,旧轮次折叠为单条通知,控制 token 消耗。
  • 采样参数覆盖:可为单个对话调整采样参数。
  • 纯聊天模式:切换到 persona-only preset,不给模型提供任何工具和运行时上下文,只保留人设,大幅降低 token 消耗。
  • 工作区选择性启用:在设置中勾选需要暴露该功能的工作区,其他工作区不显示设置按钮。

安装与启用

从 npm 安装

插件发布在 npm 包 @fallnstrelitzia/dsh-chat-settings。安装命令如下:

dsh plugin --profile <profile> add @fallnstrelitzia/dsh-chat-settings

也可以直接使用 npm 安装:

npm i @fallnstrelitzia/dsh-chat-settings

从本地目录安装

如果从本地目录安装,修改 profile 的 package.json 依赖:

{
  "dependencies": {
    "@fallnstrelitzia/dsh-chat-settings": "link:<this-dir>"
  },
  "dsh.profile.bundles": [
    "@fallnstrelitzia/dsh-chat-settings"
  ]
}

启用功能

安装后,打开 设置 → 对话设置,勾选需要启用该功能的工作区。

使用步骤

  1. 开启设置入口:在对话设置中勾选工作区后,对话标题旁、新会话行会出现 对话设置 按钮。
  2. 填写配置:点击按钮,填写系统提示词、上下文条数、可选采样参数,保存。
  3. 切换纯聊天模式:勾选 纯聊天模式,对话切换到 chat-settings-pure-chat preset,该模式只挂一个人设,不提供任何工具,并在 agent 作用域内拒绝所有全局工具。系统提示只有一句人设加你的指令,指令通过提示词变量在渲染时填入。取消勾选可切回标准模式。

卸载注意事项

纯聊天会话会在日志头记录 preset id。卸载插件前,建议先在插件详情页点击 迁移纯聊天会话,或逐个打开对话取消纯聊天模式。卸载时未打开的会话会自动改回标准模式。

适用场景

  • 需要为不同对话配置不同系统提示词的场景。
  • 需要控制上下文长度、降低 token 消耗的场景。
  • 需要在某些对话中禁用工具、只使用人设的场景。
  • 希望在全局设置不变的情况下,为特定工作区提供定制化能力的场景。

插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证(MIT)。

小结

dsh-chat-settings 通过对话级配置和纯聊天模式,为 DSH 用户提供了细粒度的控制能力。它不改变全局设置,而是让每个对话独立管理自己的提示词、上下文和工具调用策略。适合需要在同一 DSH 实例中处理多种对话风格的开发者使用。

目录页|GitHub

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

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

小夜