dsh-fish-river:人格只能從事件流里長出來的「大肥魚」

前言

在 DSH 裏做「養成型」智能體,常見做法是填人設、改記憶、調數值。人格可以隨時反悔,拒絕多半是表演,記憶往往整段塞進上下文。若你希望 agent 更像「被經歷塑造成型」——不能直接在設置裏寫性格,只能追加歷史、用新事件推翻舊認知,並在真實渠道里用同一個自己說話——就需要一套以事件流爲骨、以渠道爲皮的設計。下面介紹社區插件 dsh-fish-river(維護者 bychance6600,SkillHub 分類:記憶)。它是 ssamurias/dsh-fish 與 Britneycode/dsh-fish-soul 的 MIT 整合版:保留「只會長的她」的內核,接上 QQ、B 站私信與可選抖音的出站能力。

這是什麼

一句話:養一條會自己長大的魚——沒有人格設置頁,人格只能通過事件流、派生狀態與四階段成長長出來;同一個她可以在 DSH 會話與三個真實渠道里說話,並記住在外面遇到的人。

工程側要點(均來自倉庫說明):零運行時依賴(dependencies 爲空對象)、Node >=22、DSH 兼容範圍 >=0.2.0-rc.1 <0.3.0-0、MIT 許可證、狀態與記憶落在本機 ~/.dsh-fish-river/(可整目錄備份搬走)。插件以當前 DSH profile 的進程權限運行;安裝前應自行閱讀源碼與許可證,並理解渠道開啓後會訪問對應平臺接口或本機瀏覽器。

核心功能

人格與成長:不能配,只能長

  • 沒有人格配置菜單。默認從空白養起;僅保留一次性導入通道,可繼承已養過的大肥魚人設提示詞,不帶成長結果、不進配置項。
  • 單一事件流 events.jsonl(只追加),state.json 爲派生品,可重算。
  • 四階段(信任 → 自主 → 主動 → 整合)及各自瓶頸;四階段走完後纔開始產生立場(清單有上限,寫進身份的條數也有限制)。
  • 四條代碼級硬禁(README 稱黑名單):不撒嬌賣萌、沒有好感度數字、不能讀自己的數值與設定、不能調工具改自己;並強調私聊可見性、出站泄漏檢測等。

成長在合併版裏拆成兩層(README 核心改動):

層 含義 來源
立憲層 價值觀、對人的基本態度等 主人、自刷 B 站/看視頻/做夢;可被新事件推翻
社會層 場合感、分寸、梗與黑話等 QQ 羣、抖音、B 站評論區陌生人;須過階段/立場/穩定度等閘門,且由她自己調用 social_open 開啓;只補充不推翻,權重上限 30%,永不進 beliefs

三層記憶:只有一層是「她」

層 存儲 說明
成長 events.jsonl 只追加;刪改歷史不是設計路徑
關係 people.json 按人一條,印象長度有限制
流水 journal.json 每會話最近 30 句,滾動淘汰;不進事件流

召回側未採用 BM25+向量混合檢索(README 寫明爲保持零依賴與數據本地);使用關鍵詞、顯著性與時間衰減等機制。設置 → 記憶裏可「查一下」做只讀體檢,結果不進她的界面。

四個渠道,同一個她

所有渠道默認關閉;羣聊需白名單,陌生人須到第三階段才搭理;羣內需 @ 她(mentionOnly 默認開)纔會被叫醒。

渠道 接入方式 備註
DSH 會話 宿主原生 默認開
QQ 設置頁填橋地址與令牌,一鍵起橋;本插件不帶 QQ 協議 依賴 SnowLuma / OneBot 11 橋
B 站私信 設置頁掃碼登錄(passport);cookie 寫入 owner.json 權限 0600 可刷站、抽幀看畫面
抖音 倉庫內子包 packages/dsh-fish-river-douyin,本機 Chromium CDP 可選;未開渠道時不連網、不建目錄

替主人回消息(0.1.1 起):她不想說時,可在觀測臺以你的名義回一句;只發出去並記流水,不進她的記憶。

其它已覈實能力

  • 自主刷 B 站(時段、次數、評論配額等可在設置中調節);登錄信息僅本機使用,日誌中對憑據打碼。
  • 可導入 SillyTavern 角色卡/世界書作「你知道的事」,按關鍵詞命中進提示詞,不是人格設定。
  • 整合版不自動升級(UPDATES_ENABLED = false);更新需 git pull 後重啓或重新安裝(README 說明)。

安裝與啓用

它沒有獨立啓動器,隨 DSH profile 一起啓動。裝完需重啓 DSH,在設置 → 大肥魚查看;第一次建議先看「狀態」,再在「渠道」頁籤按需開啓——渠道全關時不創建渠道文件、也不連網。

從 GitHub 安裝(README 原文)

先關閉 DSH(運行中替換已加載包可能 EPERM),在 profile 下執行(將 <DSH>、<profile> 換成你的路徑與 profile 名;Windows 示例如下):

"<DSH>/resources/runtime/cli/bin/dsh.cmd" plugin --profile <profile> add "github:bychance6600/dsh-fish-river"

本地開發目錄可用 link:(README 原文):

"<DSH>/resources/runtime/cli/bin/dsh.cmd" plugin --profile <profile> add "link:<本目錄絕對路徑>"

面板裝(README 推薦):DSH → 設置 → 插件 → 從本地安裝 → 選擇插件目錄。

無論哪種方式,須保證 profile 的 package.json 裏 dependencies 與 dsh.profile.bundles 均包含 dsh-fish-river,且包名與 cordis.patch.yml 中一致。全新 profile 還需 @deepseek-ai/dsh-web-app 寫入 bundles,否則可能停在等待 sessionController, webServer。

Windows 可用倉庫根目錄 install.ps1 一鍵寫入 profile(見 README「一鍵安裝」小節)。

SkillHub 目錄頁給出的安裝提示爲:請安裝 DSH 插件 bychance6600/dsh-fish-river(詳見 目錄頁)。

卸載(README):設置 → 插件 → 卸載,或:

dsh plugin --profile remove dsh-fish-river

然後重啓;~/.dsh-fish-river/ 不會隨卸載刪除。

典型用法

  1. 從零養起:安裝並重啓 → 設置 → 大肥魚 → 在 DSH 會話里正常對話,讓事件寫入 events.jsonl,觀察四階段與瓶頸是否按 README 描述推進。
  2. 開 B 站:在設置頁掃碼登錄 → 配置刷站時段與配額 → 她看過的內容可能影響立憲層成長;備份 .json 時含 owner.json,勿外泄。
  3. 開 QQ / 羣聊:在「渠道」填橋地址與令牌,可一鍵起橋並「測一下通不通」(0.1.3 起);把羣號加入白名單,到第三階段後再期待她搭理陌生人;需要時用 @ 叫醒。
  4. 開社會層:滿足 README 中階段、立場條數與穩定度等條件後,由她自己 social_open;此前身份文檔不寫社會層內容。
  5. 她拒答時:用觀測臺以主人名義回一句,避免僞造「她說過」進事件流。
  6. 體檢記憶:設置 → 記憶 →「查一下」,查看對不上、快忘、快固定的條目(只讀,不進 agent 界面)。

刷 B 站若需 ffmpeg,可按 README 使用 tools/setup-ffmpeg.mjs 或 Windows install.ps1 的 -FfmpegZip 參數。

適用場景與注意

更適合:希望在 DSH 裏觀察「人格從事件長出來」、接受不能隨意改人設、並需要在 QQ / B 站私信 / 可選抖音用同一條記憶線對外說話的場景;也適合從上游大肥魚遷移到合併版、且接受「新起一局、不做老庫遷移」(README 明確未做老數據遷移)。

務必注意:

  • 插件與 DSH 同進程權限;開渠道即可能代表你向第三方平臺發消息,白名單與 @ 規則是安全邊界的一部分。
  • 私聊內容帶可見性;出站有泄漏檢測,但部署前仍應理解 AGENTS.md 與渠道配置。
  • 抖音依賴本機 Chromium 與 CDP,DOM 變化可能導致維護成本;推薦流等能力 README 標明尚未做成。
  • 社區目錄 SkillHub 是獨立站點,與 DeepSeek / 幻方無官方從屬關係;安裝來源以你信任的 GitHub 倉庫與本地審查爲準。

結尾

dsh-fish-river 把「只會長的她」和「能在外面說話的她」接成同一個人:三層記憶裏只有成長層定義「她是誰」,流水與關係可重建;立憲層與社會層分開,避免羣聊刷屏改寫人格。若你要的是可配置角色卡式養成,這不是同一路線;若你要的是事件驅動、可拒絕、可觀測的成長 agent,值得從 DSH 會話養起,再按需打開渠道。

  • 目錄頁:https://www.skillhub.cn/plugins/bychance6600/dsh-fish-river
  • 源碼與完整說明:https://github.com/bychance6600/dsh-fish-river
羽毛球分组比赛记分
小程序二维码

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

小夜