前言¶
在 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。