前言¶
在 DeepSeek Harness(DSH)裏做陪伴型或角色型智能體時,常見做法是給模型加一段固定人設,或在對話裏臨時貼「開心 / 委屈」之類的標籤。這類狀態往往不連續:換一句就忘,也很難和一天裏的作息、剛纔被誇還是被兇聯繫起來。若希望 Agent 在每次請求裏攜帶一套可回落、可累積的「心情」,並在界面上能看見、能輕量干預,社區插件 dsh-emotion-engine 提供了一條基於慢變量激素模型的路徑。
下面介紹它是什麼、如何進入模型上下文,以及如何在本機安裝與使用。
這是什麼¶
dsh-emotion-engine 是維護者 OrdinaryTu 發佈的 DSH 插件(npm 包名 dsh-emotion-engine,當前資料中版本爲 0.1.0,許可證 MIT)。在 SkillHub 等社區目錄中歸類爲 趣味換裝 一類;其核心不是換裝資源本身,而是爲 Harness 提供類似生理節律的 心情引擎:七種激素隨晝夜基線漂移,並受對話、誇讚衝突、工具成敗、沉默與手動「戳一下」等事件推動;當前狀態會作爲運行時上下文寫入每一次請求,並在輸入框下方提供可展開的心情膠囊面板。
插件在 package.json 中聲明依賴 DSH 版本 >=0.2.2-rc.1 <0.3.0-0;README 標明在 DSH 0.2.2-rc.1 上做過測試。
核心機制¶
慢變量而非隨機標籤¶
狀態由七種激素(多巴胺、血清素、催產素、皮質醇、腎上腺素、內啡肽、褪黑素)表示。每種激素有自己的回落時間常數(engine.js 裏 HORMONES 的 tau);事件只把它們推離基線,心情從偏離程度推導,會隨時間自行散去,也會被後來的事件覆蓋。README 強調:不是隨機貼標籤。
晝夜基線與重啓回落¶
baselineAt() 控制一天內的基線起伏:例如深夜褪黑素偏高、血清素偏低;下午血清素與多巴胺偏高;早晨皮質醇偏高。重啓後按經過的時間自然回落,狀態持久化在 $DSH_HOME/emotion-engine/state.json(通常爲 ~/.dsh/emotion-engine/state.json),相當於「睡了一覺」後的衰減。
親近感與微量漂移¶
closeness 是比激素更慢的親近感:被誇、被抱會升,被兇會降,長期不用會回到中間;它會給催產素一個偏移。此外每分鐘有很小概率產生輕微波動,模擬無明確理由的情緒漂移。
進入模型的方式¶
插件在 Host 側(index.js)註冊系統提示段(說明這是生理狀態而非臺詞)和運行時上下文。上下文示例形態類似:
【此刻】深夜,心情有點心動(精力 44/100)。
比較明顯:催產素偏高(想靠近)、褪黑素高(很困)。
剛纔:他說「想你了」(3 分鐘前)。
表現:語氣會不自覺軟下來,願意靠近,但別膩。 別報數值、別解釋情緒、別寫動作旁白…
同時提供 feel 工具:在聊天裏被「戳到」時可記一筆,取值爲 touched / happy / upset / shy / soothe 等,強度 1–5,並附一句起因;會立即改狀態並驅動面板曲線變化。
心情面板與本地 API¶
Client 半身(client.js)在輸入框下方渲染小膠囊(心跳速度隨喚醒度變化);點開後展示七項激素條(細豎線爲當前生理基線)、精力、最近一次起因,以及四個交互按鈕:誇誇她、抱一下、摸摸頭、兇她一下。按鈕直接改狀態,下一次回覆會帶上更新後的情緒上下文。
數據接口僅對本機迴環開放:
GET /dsh-emotion-api→{ ok, state }POST /dsh-emotion-api,body 爲{ "action": "praise" | "hug" | "pat" | "scold" }→{ ok, action, state }
代碼結構(便於二次開發)¶
| 文件 | 作用 |
|---|---|
engine.js |
激素、晝夜基線、事件、心情推導、落盤、HTTP |
index.js |
Host:提示段、運行時上下文、feel 工具、事件訂閱、路由 |
client.js |
Client:膠囊與面板 |
locale/*.json |
插件管理器中的標題與說明 |
cordis.patch.yml |
向 profile 插入 emotion-engine 一行 |
若需調參,可在 engine.js 頂部修改:HORMONES.tau、baselineAt()、classify()(心動/悶/困等命名)、POKES 與 FEELINGS。改完後重新安裝該 bundle 即可生效。
安裝與啓用¶
取得插件目錄的絕對路徑後,在 DSH 環境中執行 README 給出的安裝方式(勿憑倉庫名自行拼接其他 install 命令):
plugin_manager action=install_bundle target=<本目錄的絕對路徑>
裝完後刷新頁面:emotion-engine 應出現在插件列表,輸入框下方出現心情膠囊。
典型用法¶
- 安裝 bundle 並刷新 Web Client,確認膠囊與面板可見。
- 正常對話時,每次請求會自動附帶簡短「此刻」上下文;編寫 Agent 提示詞時,應尊重 README 中對錶現的約束(例如勿在回覆中報數值、勿寫動作旁白),把上下文當背景而非臺詞。
- 需要 Agent 主動記錄被觸動時,在對話中調用
feel工具並填寫類型、強度與起因。 - 需要即時干預心情時,使用面板四個按鈕,或對本機
POST /dsh-emotion-api發送對應action。
適用場景與注意¶
適合:希望在 DSH 上做陪伴、角色或趣味交互,且需要連續、可回落、帶晝夜節律的心情狀態,並希望在 Composer 旁可視化的開發者。
注意:
- 插件以當前 DSH 進程的權限運行;安裝前應自行審閱源碼與 MIT 許可證,確認 HTTP 迴環接口與狀態文件路徑符合你的安全預期。
- 社區目錄(如 SkillHub 插件頁)爲獨立生態站點,與 DeepSeek / 幻方無官方從屬關係;本文事實以倉庫 README 與
package.json爲準。 - DSH 版本需滿足
engines.dsh聲明;低於或未測試的版本行爲未在資料中說明。
結尾¶
dsh-emotion-engine 用七種激素慢變量、晝夜基線與社交事件,把「心情」做成可持久化、可注入每次請求的運行時上下文,並配上 feel 工具與 Composer 下方面板,適合在「一切皆插件」的 DSH 棧裏做趣味換裝向的陪伴體驗。