前言¶
給 DSH 裝一個常駐人格類插件時,常見痛點是:Agent 只在用戶發消息時才「存在」。沒人說話時,它不知道過了多久,也不會主動做什麼。dsh-fishday(小魚的時間與世界)就是來解決這個的——它給 Agent 維護一條獨立於對話的時間線,到點做事、沒人說話會悶、晚上自動收一張「我的一天」。
下面介紹這個插件的定位、安裝方式、配置項和典型用法。插件由 yanyan-shub 維護,分類爲工作流,在 SkillHub 社區目錄(獨立站點,與 DeepSeek / 幻方無官方從屬關係)上的鏈接見文末。
這個插件是什麼¶
一句話定位:給 DSH Agent 一個屬於自己的時間和世界狀態,讓角色在沒被搭話時也有「活過的時間」。
它維護幾件事:現在幾點、多久沒人說話、悶度、今天做過什麼、今晚是否需要回顧。README 的原文描述是「給 Agent 一條自己的時間線:不是隻有人說話時才存在」,安裝後可以問它今天都做了什麼。
核心能力¶
README 裏列出了四條能力,按原樣轉述:
1、到點做事。fish_do 記一件「我自己做的事」,例如澆花、翻歌、看窗外、想一個人,時間線會攢起來。
2、時間在流。沒人說話也知道過了多久;超過一定時間會「悶」,提示可以主動開口。
3、晚上回想。過了設定的點,自動收一張「我的一天」,包含早/午/晚三段和今天有多少條消息找它。
4、自動注入。每次模型調用前,把「現在幾點 / 多久沒人說話 / 悶度 / 今天做過什麼 / 今晚回顧」寫進提示詞。
安裝與啓用¶
官方 README 只給了一種安裝方式:在 DSH 裏執行 plugin_manager install_bundle,指向插件目錄。
# 在 DSH 裏
plugin_manager install_bundle <這個目錄>
如果你自己維護了一份副本,也可以把它複製到任意本地目錄,再用 plugin_manager 的 install_bundle 指向該目錄。
安裝後會多出 5 個工具,職責如下:
| 工具 | 作用 |
|---|---|
fish_now |
看她自己的時間與狀態 |
fish_do |
記一件自己做的事 |
fish_idle |
多久沒人說話、悶不悶、要不要開口 |
fish_evening |
收一張「我的一天」 |
fish_timeline |
看某天做過什麼 |
配置¶
插件通過 insert 配置段啓用,配置項來自 README:
- insert:
- id: dsh-fishday
name: dsh-fishday
config:
eveningHour: 21 # 幾點之後算晚上(該回想今天)
boredAfterMin: 90 # 安靜多久開始覺得悶
keepDays: 30 # 保留多少天記錄
awakeStart: 8 # 幾點算醒着(悶度只在醒着時漲)
awakeEnd: 23
# dataDir: 'X:/somewhere/fishday' # 可選,默認 ~/.dsh/fishday
# heartbeatFile: 'X:/path/last-heard.json' # 可選,別的程序寫的"誰找過我"
其中 dataDir 和 heartbeatFile 是註釋裏的可選項,不配置也能運行。
數據存放¶
默認路徑是 ~/.dsh/fishday/state.json,單文件 JSON,可以備份或手動修改。README 明確寫了代碼裏沒有任何寫死的絕對路徑,全部走配置或用戶目錄。
和心跳配合(可選)¶
如果你另有程序(比如 QQ bot、網關)在收到消息時寫一個 JSON:
{ "at": 1762000000000, "conv": "魚塘" }
把 heartbeatFile 指向它,fish_now 就會顯示距離上一次有人說話過去了多久,talkedToday 也會累計。不配也能用。
適用場景與注意事項¶
適合想讓角色或 Agent 有自主時間感、並在一天結束時能回顧當天行爲的開發者。需要留意三點:
1、插件以當前 DSH 進程的權限運行,安裝前應先檢查源碼和許可證(該倉庫爲 MIT License,版本號見 package.json,爲 1.0.0)。
2、它依賴時間線與悶度機制讓 Agent 主動開口,如果你只需要固定任務調度,可能不需要這類插件。
3、社區目錄是獨立站點,與 DeepSeek / 幻方無官方從屬關係,不要當作官方應用商店。
鏈接¶
- 目錄頁:https://www.skillhub.cn/plugins/yanyan-shub/dsh-fishday
- GitHub:https://github.com/yanyan-shub/dsh-fishday
一句話回顧:dsh-fishday 的價值在於讓 Agent 在沒人說話的時間也能持續存在,並在一天結束時把當天串成一張「我的一天」。如果你要給角色加時間維度,這是個可以上手的小插件。