dsh-xingye(星野):把 DSH 会话变成本地角色聊天 Agent

前言

在 DeepSeek Harness(DSH)里做角色扮演或多人设对话,常见做法是手写 system prompt、自己管上下文,换角色就要开新会话或改配置。对话一长了,想「撤销刚才几轮」或「回到某个节点再聊一条线」,往往得靠外部笔记或手动删消息,数据和 UI 也分散。

下面介绍社区插件 dsh-xingye(星野):它把 一个 DSH 会话 固定成带完整工具链的聊天 agent——可创建多角色、写人设、为同一角色开多条档案线,并在本机保留可撤销、可回溯的对话记录与事件簿。除你配置的模型调用外,数据不离开本机。

这是什么

Xingye(星野) 由维护者 Iambatman1928 发布,在 SkillHub 目录中归类为「趣味换装」。当前 package 版本为 1.0.1,许可证 MIT,依赖 Node.js ≥ 20 与 dsh ≥ 0.1.0-rc.1,面向 web profile 的 DSH 客户端。

一句话定位:安装插件后,在新会话里选择 「星野」agent preset,即可与星野对话;在同一会话内还能创建其他角色、切换人设、管理多条档案线,并通过自然语言或界面完成创建、归档与故事改写。

核心功能

角色与人设

  • 通过对话创建角色(名称、性格、开场白、标签等),保存后角色会按人设开口。
  • 支持从本地 .md / .txt 导入人设,例如说明「人设文件在某某路径」。
  • 可重命名、替换人设、删除角色。

多档案线(Archives)

  • 同一角色可拥有 多条独立档案线,每条线有自己的对话记录;切换档案会继续该线,而不是重新介绍角色。
  • 新开 DSH 会话 会为当前角色再开一条新档案(继承角色与你的人设,档案名为「Archive 2」「Archive 3」等,在发送第一条消息后命名);重新打开同一会话 会按 session id 绑回原有档案。

对话、撤销与改线

  • 每一步都会注入当前角色人设、你的 persona 与当前档案,模型侧表现为「就是该角色在聊」。
  • 撤销最近消息:例如「撤销最后 5 条」;会回滚本档案本地记录,删掉的内容进入 trash,可用「恢复刚才删的」找回;硬上限为 30 条,超出时插件会明确说明。
  • 改线 / 回溯:「再说一遍」「收回那句」「回到 X 之前」「重新开始」等;被切掉的内容存为 branch,可再恢复。

事件簿(Event book)

  • 五类条目:plot / scene / detail / preference / note,带 rewind 锚点。
  • 作为 recap 段在 每一步 重新注入,刚写入或刚被 undo 失效的节点会在下一次模型调用中体现。

你的多套 Persona

  • 可创建、导入、切换或清空「我」的人设,与角色人设分开管理。

记忆与图像(可选)

  • 默认 transcript 保留最近 400 条消息的原文,更早的会被摘要并删原文;超过 30 天 的内容同样处理,但 最近 30 条始终保留原文(供 undo / rewind)。
  • 工具 xingye_memory_image、xingye_character_image 用于记忆图与角色头像 / 立绘 / 背景;DSH 本身不生成图片,需配置 OpenAI 兼容 端点。未配置 key 时不报错,仅降级为保存绘图 prompt。粘贴进对话的图片会自动进入图库归档。

界面

五个页面:Characters(会话头角色 pill)、Create(新建角色)、My personas、Conversation(主聊天气泡)、Archives(某角色的多条线)。支持响应式布局、安全区、减少动效偏好,以及跟随 DSH 的明暗主题。设计 token 包括暖白 #fffbf7、品牌紫 #8b5cf6 等。

安装与启用

插件以 web profile 安装。官方 README 给出的命令如下(二选一)。

从 GitHub 安装:

dsh plugin --profile web add 'github:Iambatman1928/dsh-xingye'

或使用 release 附带的预构建包(可跳过 pnpm 的 build-approval 步骤):

dsh plugin --profile web add 'https://github.com/Iambatman1928/dsh-xingye/releases/latest/download/dsh-xingye.tgz'

安装后 重启 DSH,再按顺序做三件事:

  1. 打开 Settings → Plugins,确认列表中有 dsh-xingye;
  2. 新建会话,并选择 「星野」agent preset——这一步不可省略,preset 决定该会话的身份与工具集;
  3. 直接开始对话,星野会按内置人设问候。

为何还要选 preset? DSH 的 agent preset 仅从文件系统发现,没有插件注册 API。首次加载时,本包会把自带 preset 复制到 <DSH_HOME>/.agent-presets/xingye/($DSH_HOME 默认为 ~/.dsh),且 仅在目标不存在时复制、不覆盖你已编辑的 preset,并记录日志。若不想自动安装,可在插件配置行设置 installPreset: false,并自行把 node_modules/dsh-xingye/preset/ 复制到 ~/.dsh/.agent-presets/xingye/。

典型用法

以下示例均来自官方 README,用自然语言即可,无需记命令。

创建与导入角色

  • 「Create a character called Lin Yan; her persona is in D:\personas\linyan.md」
  • 「Make a character called Xiaoman, sixteen, talkative, starts sentences with ‘hey’」

维护角色

  • 「Replace Lin Yan’s persona with this: …」 / 「Rename her to Lin Yanzhi」 / 「Delete Xiaoman」

档案线

  • 「Start another archive called ‘Another Night’」 / 「List Lin Yan’s archives」 / 「Switch to ‘First Meeting’」

你的人设

  • 「Make me a persona called ‘Traveller’」 / 「Import D:\personas\me.txt」
  • 「Switch to ‘Colleague Lin’」 / 「Drop my persona」

对话与记录

  • 正常聊天;问「What did we talk about before?」或「Scroll back」可读本地 transcript。

撤销与改线

  • 「Undo the last 5」 / 「Those last few don’t count」
  • 「Say that again」 / 「Take back that line」 / 「Go back to before X」 / 「Start over」

输入框旁的「+」为故事菜单(retry / rewind / restart / recap / undo),全屏页可通过再点当前 tab、Esc、点击遮罩或头图「⌄」关闭。

数据存放与备份

默认根目录为 <DSH_HOME>/xingye-data/(即 ~/.dsh/xingye-data/),结构包括全局 index.json、config.json(保留策略,可手改)、sessions.json、各角色下的 persona.md、以及每个 archive 的 messages.jsonl、eventbook.jsonl、trash.jsonl、branches/ 等。备份 复制整个 xingye-data 即可;清空重来 可将 dataRoot 指到空目录(具体字段见仓库内 cordis.patch.yml 与 preset 配置,安装前可在 GitHub 阅读截断后的完整 README)。

适用场景与注意

适合谁

  • 希望在 DSH 里做角色扮演、多 persona 切换、同角色多线叙事,且强调 local-first 的开发者或玩家。
  • 需要可撤销、可分支回溯、事件簿辅助长期剧情,而不是每次靠外部文件拼 prompt。

使用前请知悉

  • 插件在 当前 dsh 进程的权限 下运行,会读写 ~/.dsh(或你配置的 DSH_HOME)下的 preset 与 xingye-data;安装前请自行查看 源码与 MIT 许可证。
  • 图像生成依赖你配置的兼容端点;无 key 时仅保存 prompt,不会因此中断对话。
  • SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系;DSH 生态理念是「一切皆插件」,本文介绍的是社区维护的 dsh-xingye,非官方应用商店条目。

结尾

dsh-xingye(星野) 把单次 DSH 会话变成带 UI 的角色聊天 agent:多角色、多档案、可 undo 的本机 transcript 与事件簿,适合在本机完成换装式角色对话而无需自建后端。

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

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

Xiaoye