前言¶
给 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 在没人说话的时间也能持续存在,并在一天结束时把当天串成一张「我的一天」。如果你要给角色加时间维度,这是个可以上手的小插件。