dsh-fish-reflection: Maintaining an Auditable Reflection and Personality State Layer for the DSH Main Session

前言

在 DeepSeek Harness(DSH)里做长期陪伴型主会话时,常见做法是堆固定 system prompt 或外挂记忆检索。前者人格不会随经历缓慢调整,后者能记事实却未必形成「自己写、自己改」的原则层。维护者 Najiya5 的 dsh-fish-reflection(社区目录分类为「记忆」,项目自述定位为反思/人格层,见下文「这是什么」)面向的是另一类需求:白天对话与可选的视频摄入,夜里或按规则触发反省,把经历沉淀为 3–7 条分层原则,并写入可审计的成长档案;同时维护精神、健康、财务三个外循环状态,按轮注入主会话。它不承诺「越反思越好」,只保证改变有上限、有记录、失败时保留原人格。

这是什么

dsh-fish-reflection 是 DSH 插件(当前版本 0.8.12,MIT 许可证),给主会话加一个会缓慢自我修订的人格/反思层,而不是事实记忆或固定角色卡。

  • 维护者:Najiya5
  • 目录页:https://www.skillhub.cn/plugins/Najiya5/dsh-fish-reflection
  • 源码:https://github.com/Najiya5/dsh-fish-reflection

一句话定位(来自项目 README):反思不保证让它变好,只保证改变有上限、有记录、不恶化。

是什么

  • 人格/反思层:维护 3–7 条分层原则(价值观 value / 偏好 preference / 习惯 habit),每天最多小改 2 条;慢速漂移(保留条目权重每次最多 ±0.15,新条目权重 ≤ 0.6)。
  • 状态层:精神(每轮情绪读数)、健康(慢均线)、财务(每晚账户余额样本)。
  • 可审计成长档案:history.jsonl,可导出到 pass by/ 的三份 Markdown。
  • 内容摄入器(可选):B 站/抖音(游客模式)→ 字幕 / 本地 ASR / 画面描述 → 笔记 → 反省素材。

不是什么(项目明确说明)

  • 不存事实、不做检索;事实记忆请配 dsh-fish-memory 或 OpenViking 等。
  • 不是提示词里固定的人设角色卡。
  • 不提供「效果更好」的承诺,只维护连续性。

核心功能

下面按 README 特性表与工作方式归纳,均可在仓库 README 核对。

分层人格与注入

注入时按层取高权重(2/2/3),每条截 60 字。只对设置页勾选的主会话生效;子代理/委派会话不参与。每轮在输入末尾追加带来源标记的 user 消息(append-only),不改系统提示前缀,便于 KV Cache。

反省触发与输入输出

  • 触发:settlementTime 默认 23:30 之后;或启动/新建会话时补做(两次自动反省之间至少 4 小时);设置页可手动「立即反思」。
  • 输入:自上次反省以来的主会话摘要 + 视频笔记;对话与视频素材权重约 7:3,视频笔记最多占实际使用字符的 30%。
  • 输出:3–7 条原则 + 一句话说明;经确定性过滤与一次廉价审稿(fail-open),异常一律保留原人格。
  • 反谄媚:不把用户称赞当作改价值观的证据。

情绪、健康与财务

每轮用默认模型同步判读用户情绪(约 1 秒,emotionTimeoutMs 默认 3000 硬超时);健康为慢速滚动均值。每晚在结算时间读一次账户余额并记账,模型仅看到余额与近 N 天日均。

刷视频(可选)

支持 B 站热门/生活区与抖音分享链接队列;链路为字幕 → 本地 ASR → 画面(本地 Ollama 或外部分析 API)→ 笔记。可通过 intakeEnabled、autoIntake、feedSources 等开关控制。

本地数据布局

  • 状态域:~/.dsh/storages/fish_reflection.json
  • 运行目录:~/.dsh/fish-reflection/(含 options.json、scope.json、intake.json、history.jsonl)
  • 运行时设置写入 options.json,改设置不需要重载插件。

安装与启用

环境需要 DSH 桌面端或 dsh web,并带 Web 设置页。

先将插件目录放到本机(README 以本地 bundle 为例),再在终端执行:

https://github.com/<Najiya5>/dsh-fish-reflection
dsh plugin --profile desktop add ./dsh-fish-reflection

也可以在 DSH 设置 → 插件 → 安装 里选择本插件目录(本地 bundle 安装)。

安装前建议阅读仓库 LICENSE、SECURITY.md 与源码:插件以当前 DSH 进程权限运行,Cookie 与 API Key 明文保存在本机 options.json。

典型用法与配置

自动反省与素材门槛

默认开启自动反省(autoReflection: true)。至少积累 minMaterial(默认 6)条摘要才允许改写人格。每日结算时间 settlementTime 默认 23:30(余额采样 + 反省)。状态块注入频率由 injectionIntervalTurns 控制,默认每 1 轮注入一次。

视频摄入相关(节选)

选项 默认 说明
intakeEnabled true 刷视频总开关
autoIntake false 是否每小时自动刷一个
feedSources bilibili + douyin 平台开关
bilibiliCookie / douyinCookie 空 游客模式;Cookie 明文存本机
analyzerBaseUrl / analyzerApiKey / analyzerModel 空 可选外部分析 API
asrLanguage / asrMaxSeconds zh / 600 本地 ASR
visionFrames 6 抽帧数

不配语音、视觉、抖音解析时,仍可只用对话反省。

工作流概览

用户对话与可选刷视频 → 对话摘要 journal → 每日或手动反省 → 更新 3–7 条原则 → 下一轮注入状态块,并写入成长档案。情绪判读与每晚余额采样汇入同一状态块。

适用场景与注意

适合谁

  • 希望在 DSH 主会话里实验「慢变人格 + 外循环状态 + 档案」,且接受反省质量主观、不可测的开发者或玩家。
  • 已有或计划搭配独立记忆插件做事实检索,本插件只负责「自己成了谁」的连续性。

务必知晓

  • 反省/笔记/情绪判读会把对话摘要、视频材料发给你配置的默认模型提供方;若配置外部分析 API,视频帧与转写也会发往该 API;余额数字随状态块注入,同样会发给默认模型。
  • 本机 JSON 中 Cookie/API Key 为明文;插件本地 API 仅有同源检查、无 token。勿将 DSH GUI 暴露到不可信网络。
  • 抖音链接仅接受抖音自有域名;只粘贴可信来源链接。
  • 已知限制包括:无事实记忆、自动反省未必严格每天一次、本地 ASR 默认每视频前 600 秒、视觉仅 6 帧、抖音解析可能失败等。项目定位为实验/娱乐,不提供医疗、心理或财务建议。

结尾

dsh-fish-reflection 在 DSH「一切皆插件」的生态里,补的是主会话上的反思层与可审计成长曲线,而不是替代记忆检索。若你要核对安装项、设置字段与隐私边界,以仓库 README 与 docs/ 为准。

  • 社区目录:https://www.skillhub.cn/plugins/Najiya5/dsh-fish-reflection
  • GitHub:https://github.com/Najiya5/dsh-fish-reflection
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye