DeepSeek Harness Hub
← 返回列表

iimaguest/dsh-contradictions-indicator

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

一个 DeepSeek Harness 插件,用于对实时对话进行内部矛盾评分,并在会话标题栏中显示 0–100…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/17 · 已提供中文文档

DSH 插件:0-100 对话连贯性徽章,带并行矛盾分析

综合分
30.5
GitHub 分
30.5
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add iimaguest/dsh-contradictions-indicator
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-settings@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

矛盾指标

一个 DeepSeek Harness 插件,用于对实时对话进行内部矛盾评分,并在会话标题栏中显示 0–100 的一致性徽章。

0 表示对话充满矛盾。100 表示对话一致。点击徽章可查看评论、手动“立即分析”按钮以及按会话的控制项。

安装、更新和移除

使用 web 配置文件:

dsh plugin --profile web add https://github.com/iimaguest/dsh-contradictions-indicator

dsh plugin --profile web update dsh-contradictions-indicator

dsh plugin --profile web remove dsh-contradictions-indicator

dsh plugin --profile web 会在该配置文件目录中转发给 pnpm(add / update / remove)。添加或更新后,重启 dsh web,以便宿主端和客户端两半加载。徽章会出现在对话标题栏工具区中。全局默认值位于 Settings → Plugins → Contradictions 下。

需要带有本插件所注入的设置和对话 UI 包的 DSH web。已针对 dsh 0.1.1-rc.2 和 0.1.2-rc.1 测试。

它的作用

- 监视主对话的 llm/stream 调用(跳过压缩、会话标题以及它自己的分析调用)。
- 按需或按轮次间隔,发起一次并行模型调用,复用对话的 provider、model、system prompt、tools、session id 和 messages,然后追加一条分析用 user 消息,以便 provider KV 缓存保持热态。会话声明的其他所有请求字段——reasoning effort、temperature、stop sequences 以及输出预算——也会原样转发,因此请求体就是主调用加上恰好一条消息,且不会在任何地方替换为适配器默认值。唯一被有意替换的字段是 abort signal。绝不会从请求中移除任何内容来引导模型的回答:丢弃工具列表会使整个上下文缓存失效。
- 从该响应中解析 SCORE:  和 ANALYSIS: 。
- 显示彩色标题栏徽章(绿色 ≥80,黄色 ≥50,红色 <50)以及带有评论的浮层。
- 自动分析对新对话默认开启(默认间隔 25 轮,可编辑 1–500)。可在 Settings → Plugins → Contradictions 中全局关闭,或在面板中按对话关闭。
- 可选的 system-reminder 引导,使用 {{score}} 和 {{commentary}}。当某一轮正在运行时,它会在分析完成的那一刻作为 user 消息推入对话(对活动 agent 调用 agent.steer(),落在下一个步骤边界)。空闲对话绝不会仅为了传递通知而被唤醒——文本会保持待处理状态,并在该对话的下一个步骤时移交。如果无法解析出活动 agent(注册表缺失、会话已关闭、收件箱拒绝),则适用同样的 agent/pre-step 回退。如果你取消勾选,则完全关闭。
- 忽略必需的 SCORE:/ANALYSIS: 格式的响应,或者以完全没有文本的裸工具调用形式到达的响应,会在运行被报告为失败之前重试一次。重试会重新发送完全相同的缓存前缀,因此几乎不产生任何开销——而且工具列表永远不会从请求中移除,因为移除它会使提供方的上下文缓存失效。
- 徽章、面板和设置选项卡通过 shell 的语言环境服务进行本地化(英语 / 简体中文),因此 Settings → Language 也适用于此插件,并且每个界面颜色/圆角/阴影都来自 shell 的 --dsw- 主题令牌,因此 Settings → Appearance 会像宿主 UI 一样为其应用主题。

设置:两个平面,严格分离

全局默认值(autoEnabled、interval、steer、两个提示文本)位于 Settings → Plugins → Contradictions 中,并通过 DSH 设置持久化(在 ~/.dsh/contradictions-indicator.json 处有文件回退)。每个对话在创建时快照一次这些默认值;此后,该对话的面板拥有自己的副本。因此,编辑设置仅影响之后启动的对话——它永远不会触及正在进行的对话——并且调整某个对话永远不会写回默认值(/contradictions/auto 上旧的 persist 标志被忽略并已移除)。

HTTP 端点(本地 DSH Web 服务器)

宿主半部分在 DSH Web 服务器上注册四个精确路径。它们旨在供同一源上此插件的客户端 UI 使用:

| 方法 | 路径 | 用途 |
|---|---|---|
| GET | /contradictions/state?sessionId= | 当前分数、评论和会话标志 |
| POST | /contradictions/auto?sessionId= | 更新自动分析、间隔、steer、提示 |
| GET/POST | /contradictions/defaults | 读取或写入全局默认值 |
| POST | /contradictions/trigger?sessionId= | 立即运行分析 |

这些路由不受 DSH 的 /api 浏览器信任围栏覆盖,因此该插件
应用自己的同源检查(Sec-Fetch-Site / Origin 与 Host 对比),并在触及会话状态之前拒绝跨站请求。这四个端点还都会
拒绝超过 1 MB 的请求体,并限制持久化提示文本的长度。

本地克隆后的对等包

如果你将此目录 link: 到某个 profile 中,Node 会从真实路径解析导入,并且不会看到该 profile 的 @deepseek-ai 包。在全新克隆后重新运行(node_modules/ 已被 gitignore):

./link-peer-deps.sh

只有 dsh-settings 和 schemastery 被链接——它们是此插件宿主半部分在 Node 中实际执行的仅有的裸
import。cordis 是仅类型导入(仅由 lib/types/index.d.ts 使用),而 react 通过 DSH 浏览器模块表解析,而不是 Node 的 node_modules,因此这里两者都不需要链接。

所有四个 peerDependencies 在 package.json 中都标记为 optional。对于 DSH 宿主插件来说,这是正确的安装*契约——它告诉 pnpm 这些包由 profile 提供,而不是由此包重复提供——但它
这并不意味着插件在没有它们的情况下也能运行。lib/index.js 会硬性导入
@deepseek-ai/dsh-settings 和 @deepseek-ai/schemastery,如果 profile 不提供它们,
就会加载失败。

settings 导入有意采用命名空间导入,并且该 section 是通过一个小型 shim 安装的:
dsh-settings ≤ 0.1.0-rc.8 导出 installSettingsSection(ns, …),并带有经过验证的
命名空间,而 0.1.1+ 将同一 hook 暴露为 settings.installSection(owner, ns, …),
并使用普通命名空间字符串。对旧符号的命名导入在较新的版本上会在模块链接阶段失败,
这会导致整个 host 部分随之崩溃。

使用以下命令运行 host 侧回归测试:

npm test

./client 导出(lib/client.js)是一个 DSH window.__ModuleLoader__
懒加载工厂,而不是标准的 ESM/CJS 模块。它只能在 DSH
浏览器运行时内运行;import … from 'dsh-contradictions-indicator/client' 在它之外
无法工作。

布局

- lib/index.js — host 插件(Cordis apply)
- lib/client.js — web 客户端(徽章、覆盖层、设置标签页)
- cordis.patch.yml — 用于 dsh plugin add 的 bundle 插入
- test/ — host 侧交付时序回归测试(npm test)
- plugin/ — 相同 host/client 源代码的工作副本

许可证

Apache License 2.0。参见 LICENSE。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群