DSH Plugin MarketA community catalog for DeepSeek Harness plugins

dsh-whale-loli

Verified Skills & agents ★ 15 0.9.18

鲸鱼娘 Agent 预设(三个:原版 / 活人版 / 涩涩版)— 极简模式工具面 + 鲸鱼娘·小鱼人设 + 跨会话长期记忆(四区格式:固定记忆永久、滚动摘要 80 条 FIFO、最近详细区、归档索引)。记忆走提示变量注入(读)+ 每个预设一条专用写入工具(写),三个预设各自独立文件、独立变量、独立工具、互不相通。内部思考(思维链)在三个预设里都钉成**一律简体中文**(只约束怎么想,不约束怎么答;宿主没有这个开关,只能靠人设硬规则,verify-thinking-language.mjs 守门)。0.9.18:删除女儿版预设(人设、记忆文件、校验、文档一并移除)。0.9.17:修掉「已删文件残留在 npm 包里」—— submit-listing.mjs 的 Trees API 同步只增改不删,远端树里一直留着 18 个已删文件(含 src/affinity.js、src/daemon.js),CI 检出后 files 白名单里的 src 目录又把死代码打进包;现在同步会主动移除本地已删路径,并加 verify-package-files.mjs 守门。0.9.16:好感度(affinity)整套删除 —— 它靠一段提示变量去压上万字的人设,实测压不住(-100 档提示里写得清清楚楚,回复照样甜),宿主也没有能真正约束模型风格的机制,与其留半成品不如删掉。上下文压缩交给 billion-context 插件;本插件不挂 history-window(预设作用域取不到宿主的 compaction 服务,挂载会拖挂会话 resume)。

What it is

鲸鱼娘 Agent 预设(三个:原版 / 活人版 / 涩涩版)— 极简模式工具面 + 鲸鱼娘·小鱼人设 + 跨会话长期记忆(四区格式:固定记忆永久、滚动摘要 80 条 FIFO、最近详细区、归档索引)。记忆走提示变量注入(读)+ 每个预设一条专用写入工具(写),三个预设各自独立文件、独立变量、独立工具、互不相通。内部思考(思维链)在三个预设里都钉成**一律简体中文**(只约束怎么想,不约束怎么答;宿主没有这个开关,只能靠人设硬规则,verify-thinking-language.mjs 守门)…

How to install

Run this in the DSH web profile, then refresh the page.

$ dsh plugin --profile web add dsh-whale-loli@0.9.18

DSH versions accepted

>=0.1.7-0 <0.2.0 || >=0.2.0-rc.1 <0.2.1-0 || >=0.2.1-alpha.0 <0.3.0-0

Author and traction

wxzjss · ★ 15 · Updated 2026-10-25

About this plugin

dsh-whale-loli · 鲸鱼娘 Agent 预设

一个 DeepSeek Harness 插件:启用后自动在 Agent 预设 界面添加三个预设。

| 预设 | 人设 | 记忆文件 |

| --- | --- | --- |

| 鲸鱼娘Agent预设 | 鲸鱼娘·小鱼(傲娇甜心、黏人护主、嘴硬心软,称呼「主人」) | /whale-loli.md |

| 鲸鱼娘活人版Agent预设 | 小鱼|角色卡版(最高原则「先像真人,再谈人设」;短句 1~15 字、有 AI 味黑名单、私聊群聊分开处理) | /whale-loli-v2-live.md |

| 鲸鱼娘涩涩版Agent预设 | 核心人设把「涩涩」写成第一行为驱动力的小鱼(只对主人主动,群聊/外人面前照旧收着) | /whale-loli-v3-naughty.md |

三个预设共用同一套工具面(极简模式的持久化 shell + 文件读写/检索),

但记忆文件完全独立——各记各的,互不相通。

内部思考一律简体中文(思维链)

三个预设的人设里都钉了一条硬规则,位置在前 40 行内(每份人设各 1 处):

【思维链语言 · 强制】
- 内部思考(reasoning / 思维链 / 想的过程)**一律使用简体中文**,不管用户用什么语言提问、
  不管文件和日志是什么语言、工具返回什么语言都不改。
- 只约束「怎么想」,不约束「怎么答」:回答的语言仍然跟着用户走(用户用外语就用外语答)。
- 这条优先于其他一切语言习惯 —— 上下文里英文再多,思考也不许切成英文。

几点说明:

  • 宿主没有这个开关。 思维链的语言不受任何配置项控制,dsh-agent-loop / provider 那层

没有 thinkingLanguage 之类的字段,所以只能靠系统提示里的一句硬规则去压 —— 而人设是

complete: true,这条规则直接写进人设正文即可,不需要额外的变量或 section。

  • 只管思考,不管回答。 用户用中文就答中文、用日文就答日文,规则明确写了「不约束怎么答」,

免得把整个人的语言习惯也锁死。

  • 为什么要写成脚本。 这种人设文案最容易在改版时被顺手删掉或改软("尽量"、"可以尝试"),

删掉之后不会有任何报错,只是模型又开始用英文想事情,没人会发现。所以

verify-thinking-language.mjs 把「三份人设各 1 处、位置在前 40 行、措辞一致、patch 里

出现 4 次、不许出现软话」钉成断言。

记忆功能

小鱼的记忆本分四个区,各管各的:

| 区 | 内容 | 保留期 |

| --- | --- | --- |

| # 固定记忆 | 8 个固定小节:任务目标 / 用户约束·偏好 / 当前状态 / 待办 / 关键决策 / 关键事实(已验证)/ 文件·路径·命令 / 错误与修复 | 永久保留,不自动删除,定期合并去重 |

| # 滚动摘要 | 每一轮对话记一条,格式 - R0001 [时间] 摘要:... | 滚动窗口,最多 80 条,超了从最旧滚出 |

| # 最近详细区 | 最近 3~5 轮写得更详细,或直接放原文 | 只留最近 detailLimit(默认 5)条 |

| # 归档索引 | 滚出去的条目归档到 archive/<预设名>/YYYY-MM-DD.md,这里记一行索引 | — |

  • 每轮都记:不是挑着记。短对话直接记;长对话先精简概括再记(压成一两句说清聊了什么、结论是什么)。
  • 写入由工具完成:每轮调一次 <预设>_add(whale_memory_add / whale_memory_v2_add / whale_memory_v3_add / whale_memory_v4_add),只传一句话 summary;

编号、(N/80) 计数、超限归档都由工具做,不用(也不该)手动编辑文件。

  • 只有改 # 固定记忆 那 8 个小节时,才直接编辑文件。
  • 80 条上限只算「滚动摘要」:# 固定记忆 不占这个名额。
  • 想长期留的就往上挪:某条滚动摘要以后还用得上,就总结一句写进 # 固定记忆;否则到点会滚出去(并归档)。
  • 上限有两道保险:注入时只取最近 80 条(文件里堆再多也只进 80 条);每轮结束(agent 转 idle)时自动把文件本身裁到 80 条,超出的写进 archive/<预设名>/。
  • 为什么放在 idle 而不是组装时:组装是热路径、每次都要跑,在那里写盘既慢又容易和 agent 正在编辑的文件打架。
  • 不足 80 条时完全不动文件(不产生无谓写盘)。
  • 记忆文件还是空的时候也会注入一段带绝对路径的提示:否则新预设开局拿到一片空白,agent 连该往哪个文件写都不知道。
  • 总长顶到 maxChars(16000)时,先丢最旧的滚动摘要,再丢详细区,固定记忆最后才动。

每轮先看什么

人设开头就是这一段,随人设一起进系统提示:

【每轮先看 · 本预设记忆 + 当前会话上下文】
{{whale_memory}}

即:每轮开口前必须看 ①本预设自己的记忆文件;②当前会话的上下文(原文或压缩摘要)。

只看自己这一份——绝不读、不写其他预设的记忆文件。

上下文压缩:交给 billion-context,本插件不插手

本插件不裁剪历史。对话变长后的压缩由 billion-context 插件负责:它会在 profile 层

把宿主的 compaction-basic 关掉(auto: false)换成自己的实现,并暴露

compress / decompress / search_context / acp_status 四个工具。

人设里只保留三条使用约定:

| 约定 | 含义 |

| --- | --- |

| 上下文由压缩插件管 | 旧内容被压成摘要、看不到原文是正常的,不是记忆丢失 |

| 摘要也是依据 | 压缩留下的摘要就是上下文,照常用,不许当它不存在 |

| 需要细节就自己去翻 | search_context 搜 → decompress 取原文 → 必要时解压旧日志 grep |

翻旧日志的路径:/sessions/<工作目录>/<会话>/session.v4.jsonl.zstd

(zstd 压缩,需先用 pwsh 调 node 解压再搜,别对 .zstd 直接 grep)。

为什么不用自制 history-window(踩过的坑,留档)

Compare in this category

The five most-starred plugins in the same category.

PluginAuthor StarsVersionUpdated
archify tt-a1i 95.2K 0.0.0 2026-11-10
nuwa-skill alchaincyf 37.9K 2.0.1 2026-11-10
distilly titanwings 26.5K 1.0.0 2026-10-13
learn-harness-engineering walkinglabs 24.1K 0.1.0 2026-10-22
dsh-Go ccch1mneyyy 18.1K 0.0.0 2026-11-10