前言¶
在 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,再按順序做三件事:
- 打開 Settings → Plugins,確認列表中有
dsh-xingye; - 新建會話,並選擇 「星野」agent preset——這一步不可省略,preset 決定該會話的身份與工具集;
- 直接開始對話,星野會按內置人設問候。
爲何還要選 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 與事件簿,適合在本機完成換裝式角色對話而無需自建後端。