前言¶
在 DeepSeek Harness(DSH)裏做陪伴或角色類智能體時,常見做法是隻讓模型根據當輪對話猜狀態:你什麼時候開口,它就什麼時候「在線」,心情也全由話術推導。真實生活裏的人還有另一面——今天是不是假期、這節有沒有課、手機是靜音還是拿在手上、身上還壓着哪件小事。缺了這層,角色容易像永遠掛機的 NPC。
dsh-feiyu-life(目錄與 npm 包名同爲 dsh-feiyu-life,維護者 Vansnc)是 DSH 生態裏的客戶端插件:按校歷、課表、作息和可選事件池做本地計算,必要時用模型寫當日劇本,再在每輪組裝提示詞時往 systemPrompt.context 注入幾行生活上下文,並自帶 Web 設置頁。純上下文注入,不新增可調用的 life_now 類工具,也不寫會話日誌到別處。
這是什麼¶
- 定位:大肥魚的生活線插件——給她一條「自己的時間」,補「今天是什麼日子、這會兒在幹什麼」。
- 分類:客戶端(
platform: web,向設置槽位注入 UI)。 - 版本(package.json):0.3.0;運行環境 Node ≥ 22;許可證 MIT。
- 依賴 DSH:
dshengines>=0.2.0-rc.1。 - 社區目錄:SkillHub 插件頁;源碼與文檔:GitHub — Vansnc/dsh-feiyu-life。目錄站爲社區站點,與 DeepSeek / 幻方無官方從屬關係。
插件以當前 DSH 進程權限讀寫 ~/.dsh/ 下配置與日劇本文件;安裝前宜自行查看源碼與許可證。
核心功能¶
注入長什麼樣¶
每輪會在上下文中加入類似內容(0.3 起劇本模式更完整):
(今天)11月9日 週一·上課日。肚子還墜着。
(此刻)老師當衆點評我作業,臉有點燒,手機靜音,身上是藏青衛衣。
(早些時候)回宿舍躺着,抱熱水袋刷手機,然後專業課排版式,一個標題改到第三遍。
(接下來)17:30 取快遞是買的畫冊,順路喫了碗熱面。
(說話)這些是你自己的日子,別當時間表念:不說"按日程/計劃/安排",不報時間段、不列清單。
早期版本以兩行「此刻 / 今天」爲主;0.3.0 起支持全天分段劇本(在哪、做什麼、穿什麼、手機是否在手上)。
四層計算邏輯¶
年:學期 · 寒暑假 · 考試周 · 節日 ← 決定今天走哪張作息表
周:課表(只寫在學期裏有課的日子)
日:作息表切段(日常 / 晚起 / 假期 / 備考)
刻:此刻命中哪一段 + 身體感覺 + 偶爾小動作
優先級:特殊(考試周)> 假期 > 放假節日 > 學期。落在假期或放假的節日裏,自動走假期作息、不上課。
0.2.0 起爲同一日曆日引入按日 / 小時 / 十分鐘的隨機偏離(躺平日、身體感覺、臨時小動作等),概率可在設置頁調爲 0 以嚴格按表走。
每日劇本(0.3.0)¶
除課表與作息外,當天首次需要時可調用模型生成 00:00–24:00 分段劇本;傍晚可寫明天。失敗或不合法時退回模板。劇本落在 ~/.dsh/feiyu-life-days/<date>.json,同日不變。角色側可用 life_adjust 臨時改計劃,下一輪注入隨之更新。
設置頁¶
路徑:設置 → 魚的生活線。六個頁籤:
| 頁籤 | 作用 |
|---|---|
| 此刻 | 當前注入預覽與「爲什麼這麼算」;可選時間點預覽別日 |
| 年度 | 學期 / 假期 / 考試周起止;固定節日與按日期放假 |
| 課表 | 週一至週日每段:起止、在幹什麼、手機狀態 |
| 作息 | 日常 / 晚起 / 假期 / 備考四表;可睡晚的星期 |
| 身體 | 經期、三類「不按表走」概率 |
| 事件 | 按時段與條件(如早課)抽小事 |
保存後按配置文件 mtime 熱更,無需重啓宿主。裝完或改過插件代碼後需刷新頁面,瀏覽器側模塊才加載設置 UI。
配置文件¶
默認路徑:~/.dsh/feiyu-life-config.json。字段與 README 示例一致,含總開關、時區、校歷、節日、四張作息表、課表、事件池、偏離概率等。工作區 爲目錄前綴數組:留空則所有頂層會話都注入;若只想在特定項目裏啓用陪伴上下文,可填例如 ["/home/ubuntu/dsh-agentchat"]。
手機狀態僅支持:在手 / 靜音 / 在牀頭 / 不在手邊。作息表須有一段含「睡着」,用於推算起牀時間。
刻意不做的事¶
- 日常路徑不以調模型算狀態(劇本生成除外,且可回退模板)。
- 不提供查狀態的專用工具按鈕。
- 不碰其他插件,只改
systemPrompt.context。 - 子代理不注入:僅掛在
agents.roots()。
安裝與啓用¶
官方安裝命令(來自 README,勿自行拼接 github: 形式):
dsh plugin --profile web add dsh-feiyu-life
裝完後刷新頁面,在設置中可見「魚的生活線」。
更新建議先卸再裝,避免緩存舊副本:
dsh plugin --profile web remove dsh-feiyu-life
dsh plugin --profile web add dsh-feiyu-life
本地開發可用絕對路徑 link 安裝;若設置頁不出現,需按 README 調整 cordis.patch.yml 中 name 爲 index.js 絕對路徑,改代碼後卸載再裝一次方能加載新模塊。
典型用法¶
- 安裝並刷新 Web 端,打開 設置 → 魚的生活線。
- 在「年度」填學期、寒假、考試周;「課表」「作息」按真實或虛構校歷填寫。
- 在「此刻」頁籤覈對當前注入是否符合預期;需要時用「工作區」限制注入範圍。
- 開啓總開關後,在目標會話里正常對話,觀察 system 上下文中的生活線段落是否隨時間與配置變化。
- 若使用 0.3 劇本能力,確認模型可用;失敗時應自動退回模板,且當日 JSON 仍可讀。
配置也可直接編輯 ~/.dsh/feiyu-life-config.json,存盤即生效。
適用場景與注意¶
適合:需要角色帶「日程感」、與課表/假期/手機狀態一致的陪伴或 persona 實驗;希望少寫 prompt 手工維護「今天在幹嘛」的 DSH 用戶。
注意:
- 插件只管「知道自己在幹什麼」,不決定是否回覆消息(例如上課時仍會回,只是上下文裏有上課)。
- 農曆節日需自行按當年公曆日期填進配置。
- 僅 Web profile;Node 與 DSH 版本需滿足
package.json/ README 要求。 - 問題可參照 README「已知邊界」與排錯說明,或到 GitHub Issues 按模板反饋。
結尾¶
dsh-feiyu-life 把校歷、課表、作息和可選日劇本收成一段穩定的生活上下文,掛進 DSH 每輪提示詞,並可用設置頁或 JSON 維護。進一步瞭解可看 SkillHub 目錄頁 與 GitHub 倉庫 README。