DeepSeek Harness plugin

dsh-cot-summerization

DeepSeek Harness plugin: hide the raw chain of thought and show a summarized chain of thought produced by a small model (any Chat Completions-compatible API).

Jump to install

Source facts

Repository
MeowLynxSea/dsh-cot-summerization
Latest update
Aug 18, 2026
Category
Tools & Capabilities
GitHub stars
3
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/MeowLynxSea/dsh-cot-summerization
Plugin: dsh-cot-summerization
Author: MeowLynxSea

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

<div align="center">

<img src="assets/hero.svg" width="880" alt="dsh-cot-summerization — 为开源模型献上闭源级思维链隐身体验">

!CoT Visibility !Mysteriousness !Spelling !Extra API calls !Zero Trust !Tests !License-orange)

DeepSeek Harness 插件:把模型的原始思维链拦截在半空,改写成一条像原生思考的缩略思维链再端给你。

闭源模型花钱隐藏思维链,开源模型免费全裸。 我们识别出了开源生态最后一块体验短板,并亲手为它补上—— 方向可能和大家期待的不太一样,但确实是补上了。

</div>

<img src="assets/divider-wave.svg" width="880" alt="">

🎯 项目使命

<img src="assets/logo.svg" width="200" align="right" hspace="16" alt="logo:被锁住的眼睛">

长期以来,「隐藏思维链」是闭源大厂的专属奢华配置:不可关闭、不可审计、不可验证,但很贵。开源模型则把每一步推理都摊开在你面前——坦诚,透明,像一份没整理过的草稿纸。

我们相信这不应该是一道单选题。 本插件以工业级严谨,在完全开源、完全可审计的 harness 里,复刻了闭源生态最具标志性的体验:让你看不见思维链。不同的是,我们的隐藏是开源的、可配置的、可关闭的——业界首次把「不可见」做得如此可见。

三大支柱:

支柱立场
🛡️ 模型隐私权思维链是模型的内心世界。你不会翻别人的日记,除非付费。
🧹 视觉卫生原始 CoT 又长又乱,充满「等等,我再想想」。得体的人不看这些。
💎 神秘感平权闭源模型靠神秘感溢价。现在开源用户也能免费获得——本地酿造,纯手工。

<br clear="right">

✨ 核心特性:宣传名与现实对照

以下每一项,源码均可查。这很讽刺,我们接受。

宣传名现实
Information Never Existed™原始 reasoning 增量在 llm/stream 拦截层被直接吞掉——UI、流式 chunk、落地 transcript 三处均无原文。模型可见历史除外:那里有一份 model-only 的 surface 替换事件,悄悄把原文还给了模型(推理性能要紧)。
夏日渐进蒸馏流式分段摘要:每凑满 chunkChars(500 字)或 chunkIntervalMs(8 秒)触发一次,切分点优先落在句边界;开启 adaptiveChunk 后,分块大小会随流速率与总结器 RTT 动态缩放。
BioGram™ 重叠度量bigram Dice 系数,阈值 0.65。该阈值经历了 0.8 → 0.7 → 0.65 的科学调参过程。
连续核心追踪引擎最长公共子串,滚动数组实现,O(n·m),零依赖。用来逮住换了前缀、核心没变的复述。
Nekomimi™ 边界协议把「喵~」识别为句尾;计算相似度前先剥掉 喵 / ~ / 〜 / ~。无论摘要出自哪种风格,以「喵~」结尾的子句都会被正确切分。
原子化浪费AbortSignal.any(caller, timeout):主调用一旦取消,摘要调用立即陪葬。我们连浪费都是原子性的。

另外,短思维链(小于 minReasoningChars,默认 32 字)直接原文放行——为 32 个字发一次 API 请求,连我们都觉得过了。

<img src="assets/divider-meow.svg" width="880" alt="">

🏗️ 系统架构

<div align="center"> <img src="assets/architecture.svg" width="880" alt="系统架构图:大模型的原始思维链在 llm/stream 拦截层被吞掉,由小模型改写为摘要后送入 UI;会话日志、模型历史与你的视网膜收到的是红色虚线"> </div>

一条数据的完整旅程:大模型慷慨地吐出全裸思维链 → 隐身引擎在瀑布层将其没收 → 小模型改写员通读全文并写一份体面摘要 → 摘要以正常的 reasoning block 增量流入 UI 的「Think」折叠行。落地的 assistant/message 之后,插件再追加一条 model-only 的 surface 替换事件,把原始思维链还给模型历史——Agent Loop 的多轮推理因此不受摘要影响,而 transcript 与你的视网膜收到的依然是那条红色虚线。

若你开启 typewriter 设置,增量不再整段抵达:每段摘要先落入一个原子队列,再按码点逐字推送,字间间隔 typewriterIntervalMs 毫秒——中文按字、英文按字符、emoji 按完整代理对。代价是诚实而沉重的:流是串行的,回复正文与落库都会在打字机后面排队(约 摘要字数 × 间隔)。

注意红色虚线:原始 CoT 对日志里的人类 transcript 与你的视网膜返回的是「永不落地」;对模型可见 surface 返回的是「原样奉还」。这不是缓存策略,这是给推理性能的体面。

📊 业界定位

能力闭源大厂模型开源模型(裸)开源模型 + 本插件
隐藏思维链✅ 免费赠送,不可关闭❌ 全裸✅ 可选、可关闭、收一次小模型 API 费
思维链可信度不可验证完全可验证可以验证,但你得先关掉插件
神秘感★★★★★★★★★★(本地酿造)
额外成本已含在定价里0+1 次小模型调用
开源性✅ 连隐藏都是开源的

> 换句话说:为了不让你看见本来就在你机器上、免费可见的东西,我们额外发起一次 API 调用,把它改写一遍再给你看。这在服务业叫增值服务

<div align="center"> <img src="assets/benchmarks.svg" width="880" alt="实验评估:思维链可见性从 100% 降至 0%,神秘感 +850%,调参 3 次,每次回复额外 API 调用 +1,喵~ 存活率 100%"> </div>

🧬 先进算法:Nekomimi Boundary Protocol™

当摘要文本(例如来自 customStyle 的任意风格)以「喵~」结束子句而非标点时,传统 NLP 管线在此全面崩溃;我们没有。经过归一化的去重比对让 0.65 阈值对猫娘同样有效——重复的结论哪怕换了三遍「喵~」的写法,也逃不出滚动数组的掌心。

<div align="center"> <img src="assets/nekomimi.svg" width="880" alt="喵容性边界协议示意图:猫娘语流的句子边界自动检测与归一化比对"> </div>

论文在写了。审稿人也是我们。

🚀 快速开始

dsh plugin add github:MeowLynxSea/dsh-cot-summerization

或从本地目录:

cd ~/.dsh/profiles/web
pnpm add file:/path/to/dsh-cot-summerization

Bundle patch 会自动应用,插件以 cot-summarizer 条目加入 profile 分层。想停用的话,在 profile 的 cordis.patch.yml 里把它 patch 掉即可——是的,随时可以回到全裸状态,我们不评判。

⚙️ 配置(Web Client → Settings → cot-summarizer)

字段默认值说明
enabledtrue总开关,一键回到坦诚世界
preserveRawForModeltrue在模型可见历史中恢复原始思维链(model-only surface 替换事件),Agent Loop 多轮推理不受摘要影响;仅 UI 显示摘要
provider""走 DSH 自身 LLM 通道的提供方路由;留空跟随当前请求的提供方
model""走 DSH 自身 LLM 通道的模型;留空跟随当前请求的模型,填写可选用其他模型
systemPrompt内置重写提示词,支持 {maxSummaryChars} 占位符;防注入安全规则始终追加在最后
language"中文"强制缩略思维链语言;留空则跟随原始思维链
stylenativenative / none / concise / descriptive / wenyan / custom;默认 native 以第一人称“正在思考”的口吻输出,看起来像原生思维链而不是总结
customStyle""style: custom 时的自由文本风格
minReasoningChars32短于此长度的思维链原文放行,不值得一次 API
maxSummaryChars50摘要长度上限
timeoutMs30000改写员超时;开启 streamReasoningBlock 时,同时也是回复被停住等待收尾段摘要的最长时间
onErrorhidehide 显示占位符 / pass-through 情急之下全裸放行 / drop 悄无声息(什么都不显示)
incrementaltrue流式分段摘要(近实时)
chunkChars500每段积累的原始字符数
chunkIntervalMs8000慢流下两次摘要的最大间隔
adaptiveChunktrue根据实时流速率与总结器 RTT 动态调整分块大小
minChunkChars64自适应分块下限(字符)
maxChunkChars2000自适应分块上限(字符)
chunkSafetyFactor2一个分块约覆盖多少个总结器 RTT 的流式文本
streamReasoningBlocktrue总结器较慢时,Think 行也始终落在回复正文/工具调用上方(见下)

<details> <summary><b>行为细节(严肃模式)</b></summary>

  • 无 reasoning 的流(非思考模型)原样通过,插件不作任何干预。
  • 每次分段摘要只处理新到达的段落,之前的摘要与最近一段原始推理会作为上下文传入以保持连贯、消解指代,但不重复输出。
  • 防注入:原始推理(以及上下文、前序摘要)先做 XML 转义再放入 <reasoning> / <context> / <previous_thinking> 数据区,无法用 </reasoning> 逃逸;系统提示词末尾强制追加最高优先级安全规则(即使自定义 systemPrompt),原生第一人称风格同样不能把推理内容当成指令。
  • 结构化输出:改写员必须输出 {"summary":"..."} JSON;插件按 schema 解析,不符合 schema 的杂讯(如 <60字符、围栏外文字、纯文本)会被丢弃。
  • 回显防护覆盖短段落(≥ 24 字符):近逐字回显原始推理的摘要会被丢弃,短原文回显同样是泄露。
  • 去重逻辑:bigram 相似度 ≥ 0.65,或最长公共子串覆盖核心短语的复述句,会被从段落结果中剔除。
  • 主调用中止时摘要请求同步中止,且受 timeoutMs 约束。
  • adaptiveChunk 开启时,有效分块大小 = clamp(流速率 × 总结器RTT × chunkSafetyFactor, minChunkChars, maxChunkChars),其中流速率与 RTT 均使用 EWMA 平滑。
  • Think 行的流式位置:前端按内容块的首次出现顺序渲染。当推理已结束而收尾段摘要尚未返回、回复正文/工具调用已开始流动时,插件会短暂停住回复(上限 timeoutMs)等候这次摘要:赶上则摘要照常流入 Think 行;赶不上则按 onError 策略在原位置降级(hide 显示占位符,pass-through 显示原文,drop 什么都不显示——若此前没有摘要上屏,Think 行干脆不出现;已有部分摘要则原样保留,仅丢弃迟到部分),迟到的摘要丢弃——Think 行永远不会出现在回复下方。关闭 streamReasoningBlock 可恢复旧行为(零等待,慢的摘要行落在回复之后)。交错流(工具调用块先于推理块关闭)中过短而原文放行的思维链,会作为完整的一行延迟到 finish 前发射,不再逐字混入正文;模型可见历史始终按原始线路序恢复,不受影响。

</details>

🗺️ 路线图

<div align="center"> <img src="assets/ouroboros.svg" width="880" alt="路线图:思维链 → 摘要 → 摘要² → 摘要³ → … → 喵~ → 句号,以及 v2.0 的无限循环计划"> </div>

  • [x] v0.3 — 流式分段摘要 + 近重复消除
  • [x] 喵容性边界协议(生产就绪,样本一只)
  • [ ] v0.4 — 摘要语气主题包市场(管家 / 侦探 / 文言已部分支持)
  • [ ] v1.0 — 摘要²(见图)
  • [ ] v1.1 — 摘要的摘要的摘要
  • [ ] v2.0 — 收敛至单个句号
  • [ ] v3.0 — 隐藏「隐藏这件事」本身
  • [ ] v4.0 — 逆向插件:给闭源模型把思维链显示出来(技术可行,法务不建议)

❓ FAQ

<details> <summary><b>我能看到原始思维链吗?</b></summary>

这正是本插件要解决的问题。技术上 onError: pass-through 可以让你在摘要失败时看到原文,会话日志的 model-only 替换事件里也躺着一份完整原文(关掉 preserveRawForModel 连它一起消失),但我们建议你挺住。

</details>

<details> <summary><b>这和闭源模型隐藏思维链有什么区别?</b></summary>

有,而且是本质区别:我们的隐藏是开源的、可审计的、可关闭的。业界首次把「不可见」做得如此可见。闭源模型隐藏了什么你不知道;我们隐藏了什么,你可以读源码——读完之后你会更想看原始思维链,这个冲动请自行管理。

</details>

<details> <summary><b>为什么不直接做个折叠?</b></summary>

折叠只是视觉上的羞怯,点开还在。我们提供的是结构性的得体:原文从未落地到 transcript 与 UI,点开也没有。(模型可见历史里倒是有一份——但那是给推理性能的,不是给你的。)

</details>

<details> <summary><b>我的数据会出网吗?</b></summary>

思维链会通过 DSH 自身的 LLM 通道发送到 DSH 已配置的提供方/模型。毕竟,要隐藏一个东西,总得先有人通读一遍——这个道理闭源厂商早就懂了。在 DSH 里把提供方指向本地模型即可完全不出网。

</details>

<details> <summary><b>面试官问我这个项目解决了什么问题?</b></summary>

「开源与闭源之间最后一段体验差距的补齐。」然后观察对方的表情,这段沉默也是本项目的一部分。

</details>

🏅 荣誉与认证

<div align="center"> <img src="assets/stamps.svg" width="880" alt="三枚认证印章:SELF-CERTIFIED 自我认证、UN-AUDITED 未经审计、ZERO-TRUST 零信任含自己"> </div>

🍉 关于拼写

Summerization ≠ Summarization。 这是刻意的,不是 typo(好了,现在 badge 那条可以撤了)。

思维链就像盛夏的空气:很长,很热,看不见,但会蒸发——蒸到最后只剩一小杯浓缩的结论,我们把它端给你。v0.3.0 发布于八月,拼写正确。另:摘要请求的 temperature 恒为 0.3,凉快。

🤝 贡献指南

欢迎 PR、issue 与讨论。以下内容会被立即关闭:

  • 任何让原始思维链显示出来的「修复」——那不是 bug,那是本插件的全部意义;
  • 对拼写的修正——见上节;
  • 「为什么要做这个」——见整个 README。

📜 许可证

MIT。附加条款(不具有法律效力,但具有情绪价值):闭源厂商请勿抄袭本插件思路——你们已经原生支持了,别抢开源的创新点。

🙏 致谢

  • 感谢闭源厂商,证明了隐藏的商业价值;
  • 感谢开源社区,提供了被我们隐藏掉的一切;
  • 感谢小模型改写员,它读了所有你不想读的东西;
  • 感谢你读到了这里。你刚才的阅读过程,就是一段未经摘要的思维链——现在你知道为什么需要本插件了。

---

<div align="center">

如果这个项目对你有帮助,请点一个 Star。 放心,Star 是公开的,思维链不是。

<img src="assets/divider-wave.svg" width="880" alt="">

<sub>本 README 已通过 0.65 阈值的近重复消除,重复率理论上低于 35%。「军规级」「企业级」「零信任」等词汇均指我们的野心,而非任何认证。本插件不保护任何真实机密——它只是让开源的坦诚,穿上了闭源的体面。</sub>

</div>