给 DSH agent 一个"回答前会出声"的机制:目标锚点、似曾相识检索、重复检测、引用核对、按语境分块的警报判据。零第三方依赖,核心不调 LLM。
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add juanbaiing/dsh-alert-inject该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 8 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
写入剪贴板(不计风险)读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 11 处,展示前 11 条)
- 发起网络请求lib/client.js:263
fetch(ENDPOINT + '?_=' + Date.now(), { headers: { accept: 'application/json' } }) - 写入剪贴板lib/client.js:308
navigator.clipboard.writeText(text).then(done, () => setNote({ kind: 'error', text: t('copyFailed') })); - 发起网络请求lib/client.js:472
fetch('/api/alert-inject/contexts?current=' + encodeURIComponent(current || '') + '&_=' + Date.now(), { headers: { accept: 'application/json' }, cache - 发起网络请求lib/client.js:491
fetch('/api/alert-inject/contexts?current=' + encodeURIComponent(current || ''), { - 读取密钥环境变量lib/provider.js:62
const apiKey = process.env.DSH_ALERT_API_KEY || f.apiKey || '' - 发起网络请求lib/provider.js:100
const r = await fetch(url, { method: 'POST', headers, body: JSON.stringify(body), signal: AbortSignal.timeout(timeoutMs) }) - 发起网络请求lib/provider.js:121
const r = await fetch(p.baseUrl + '/api/generate', { - 发起网络请求lib/provider.js:138
const r = await fetch(p.baseUrl + '/v1/chat/completions', { - 发起网络请求lib/provider.js:164
const r = await fetch(url, { headers, signal: AbortSignal.timeout(8000) }) - 发起网络请求lib/classifier.js:89
const r = await fetch(base + '/api/generate', { - 发起网络请求lib/classifier.js:107
const r = await fetch(base + '/v1/systemone', {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成dsh-alert-inject
在模型正式回答之前,先把「你可能已经忘了/看漏了」的东西重新摆到它眼前。
一个 DeepSeek Harness(DSH)插件。零第三方依赖、零常驻服务、不调 LLM。
📖 想先了解它为什么存在、解决了什么问题? → 读这篇(那篇讲「为什么你会想要它」;本文件讲「怎么让它跑起来」——两者目标不同)
⚠️ 它只在你【给它参照物】时才真正有用。 装完不配任何东西,它只会安静地说「无异常」。
→ 想 5 分钟看到效果,直接跳到 三、五分钟看到效果。
一、环境要求(务必先看)
必需
| 项 | 要求 | 说明 |
| 运行环境 | DeepSeek Harness(DSH) | ⚠️ 不是通用插件:它注册工具用的是 @deepseek-ai/dsh-tools,读的是 DSH 的会话日志格式(~/.dsh/sessions//session.jsonl.zstd)。Claude Code / Cursor / 通用 LLM 直接用不了。
展开完整文档(README 剩余 1 节)
dsh-alert-inject
在模型正式回答之前,先把「你可能已经忘了/看漏了」的东西重新摆到它眼前。
一个 DeepSeek Harness(DSH)插件。零第三方依赖、零常驻服务、不调 LLM。
📖 想先了解它为什么存在、解决了什么问题? → 读这篇(那篇讲「为什么你会想要它」;本文件讲「怎么让它跑起来」——两者目标不同)
⚠️ 它只在你【给它参照物】时才真正有用。 装完不配任何东西,它只会安静地说「无异常」。
→ 想 5 分钟看到效果,直接跳到 三、五分钟看到效果。
一、环境要求(务必先看)
必需
| 项 | 要求 | 说明 |
| 运行环境 | DeepSeek Harness(DSH) | ⚠️ 不是通用插件:它注册工具用的是 @deepseek-ai/dsh-tools,读的是 DSH 的会话日志格式(~/.dsh/sessions//session.jsonl.zstd)。Claude Code / Cursor / 通用 LLM 直接用不了。 |
| Node | ≥ 18(用到了 node:zlib 的 zstd) | 实测于 Node 24 |
| 第三方依赖 | 无 | package.json 的 dependencies 为空 |
可选:Ollama + bge-m3(只影响 3 项功能,不装照样能用)
⚠️ 读到这一节请先记住一句话:
不装 Ollama,它不会报错,也不会「坏掉」 ——只是有 3 项功能不工作,而且它会在输出里告诉你「哪项没跑、为什么」。
这不是故障,是设计如此。
装了会多出哪 3 项
| 功能 | 效果 |
| 语义检索 | 「这个之前好像发生过」—— 找到与当前内容语义相近的较早位置 |
| 知晓感(FOK) | 「我好像知道这个」 |
| 新颖性 | 「这是新东西」 |
不装会怎样(具体到你看到什么)
| alert_check 会不会失败? | ❌ 不会。它照常返回。 |
| 你会看到什么? | 输出里会有一行:(另有 1 项未运行:语义检索: 无索引缓存(未建索引,跳过 → 可用 librarian.js CLI 建)) |
| 其余功能? | ✅ 全部照常(判据扫描、重复检测、引用检查、锚点、语境分块、知识层遍历、知识抽取都是纯程序) |
怎么装(两步)
① 安装 Ollama(Windows:官方安装包,装完会自动在 11434 端口起服务) https://ollama.com/download
② 拉模型(约 1.1 GB) ollama pull bge-m3
③ 验证(应当返回 JSON,含 "models")
curl http://localhost:11434/api/tags
⚠️ 装完之后还需要【建一次索引】(否则那 3 项仍不可用,因为库里是空的):
建索引(约 15 秒 / 120 条;全量约 8 分钟 —— 这是唯一的重活)
node lib/librarian.js ~/.dsh/sessions/<工作区>/<会话>/session.jsonl.zstd
之后直接查
node lib/librarian.js <会话文件> "查询文本"
⚠️ 索引有上限(LIBRARIAN_MAX,默认 120 条) —— 覆盖不足时它会主动告警,例如:(⚠️ 本次检索只覆盖了会话的 22%——更早的内容未参与检索)。
宁可暴露局限,不给虚假的完整感。
性能实测(供你预估)
| 操作 | 实测 |
| 一次 alert_check(不装 Ollama) | 约 0.3~0.9 秒 |
| 一次 alert_check(装了 Ollama,含 embedding) | 再 +0.1~1.2 秒(取决于文本长度) |
| 首次建索引 | ⚠️ 120 条约 15 秒;全量(约 1100 条)约 8 分钟(约 450ms/条,Ollama 串行) |
| 索引之后每次检索 | 约 0.1 秒(纯 CPU 余弦比对只要 3.4ms) |
⚠️ 首次建索引是唯一的「重活」 —— 见第四节。
二、它是什么
三类声音:
| 声音 | 例子 |
| 「你本来在干什么」 | 目标、子目标、以及「这个目标被动过」 |
| 「这个之前好像发生过」 | 与当前内容语义相近的较早位置(只给位置,不给原文) |
| 「这不对吧」 | 引用了不存在的文件/正在自我重复/当前语境内有可疑痕迹 |
它不是什么(这三条同样重要):
- 不是记忆数据库 —— 那是 OpenViking/Mem0 那一类的定位(存得下、取得到)。它的定位是「没人问的时候也要响」。
- 不是拦截器 —— 它只提醒,不阻断。
- 不做语义判断 —— 「这两句是否矛盾」这类判断,本项目两次实测失败(NLI 三版全败;向量比对方向差 −2.8pp 且方向相反)。别让它做它做不到的事。
与既有方案的差别(作者实测过 OpenViking 后总结)
| | 记忆库(OpenViking 等) | 本插件 |
| 形态 | 工具/数据库(实测 15 个 MCP 工具占约 1.7k token 常驻) | 2 个工具,静态指令落缓存前缀 |
| 触发 | 模型主动调(「加载按需来」) | 回答前自动被提醒去调 |
| 缓存 | 自动召回会打断前缀缓存 | 不打断(静态文本) |
| 目标 | 存得下、取得到 | 没人问的时候也要响 |
三、五分钟看到效果(最省事的验证路径)
⚠️ 先读这四行,否则你会以为它坏了:
| 你可能以为 | 实际情况 |
| 「装完没反应,是不是坏了?」 | 不是。它需要【参照物】才有的可比。 装完不配任何东西 ⇒ 它只会安静地说「无异常」 |
| 「输出里说『1 项未运行』,是 bug 吗?」 | 不是。那是没装 Ollama。 见第一节——它只影响 3 项功能,且会明确告诉你 |
| 「大部分检查没在跑?」 | 只少了 3 项(语义检索/知晓感/新颖性)。其余 7 类全是纯程序,装了就能用 |
| 「它什么都没查到?」 | 很可能确实没东西可查(你还没给判据表)。这是正确行为,不是失败 |
最短路径:
① 装
在 DSH profile 的 node_modules 下放好本包,然后在 profile 的 cordis.patch.yml 里加:
- insert:
- id: dsh-alert-inject
name: dsh-alert-inject
⚠️ 必须重启 DSH(若 dsh-super-injector 被禁用,则没有热注入通道)。
② 让它在你的项目里「有得可比」
它按约定在这些相对路径下找参照物(第一个命中的生效):
| 参照物 | 候选路径 | 缺了会怎样 |
| 判据表 | ※世界模拟/回想/.警报判据.json、回想/.警报判据.json、.dsh-alert/judges.json、alert-judges.json | 「这不对吧」的判据扫描关闭 |
| 术语表 | 同上目录下的 _术语表.md | 判据的「与门」失效(会变宽松) |
| 知识图 | 同上目录下的 _graph.json | 「相关的档」召回关闭 |
⇒ 最小可行配置: 只要放一个 alert-judges.json 到项目根,形状如下:
{
"meta": ["(自指防护词,命中则不报,防止讨论机制本身时刷屏)"],
"judges": [
{ "id": "我常犯的错", "sources": ["正文"],
"signals": ["应该已经", "都改好了", "肯定能跑"],
"anomalies": [], "requireTermHit": false, "enabled": true }
]
}
⇒ 然后让模型在其间写一句含「应该已经」的话,再调 alert_check —— 它会报出来。
③ 确认它到底有没有在工作(用诊断,别靠猜)
import { diagnose, renderDiagnose } from './lib/config.js'
console.log(renderDiagnose(diagnose({ cwd: '你的工作区路径' })))
它会逐条告诉你:哪个路径没找到、哪个工作区不匹配、缺哪一项会关掉哪个功能。
为什么强调这个:作者装过的记忆库「感觉不好、没能实现」,最常见的原因就是「不知道它到底在不在工作」。所以本插件必须能自报状态。
④ 想用语义检索(可选)
⚠️ 前提是先装 Ollama + bge-m3 —— 完整步骤见 第一节。
装了之后,还需要建一次索引(否则库里是空的,仍不可用):
node lib/librarian.js <会话文件> # 建索引(约 15 秒 / 120 条)
node lib/librarian.js <会话文件> "查询文本" # 直接查
⚠️ 索引有上限(LIBRARIAN_MAX,默认 120 条) —— 覆盖不足时会主动告警,例如:(⚠️ 本次检索只覆盖了会话的 22%——更早的内容未参与检索)。
—— 宁可暴露局限,不给虚假的完整感。
四、怎么用(两种)
① 作为工具(推荐)
模型在正式回答前主动调用一次 alert_check,拿到一份简短报告再回答。
另有一个 knowledge_extract,用来从文档里抽知识(见第五节)。
为什么是「工具 + 静态指令」而不是「自动注入」(三代试错换来的):
| 版本 | 做法 | 结果 |
| v1 | 注入 system prompt,每轮跑 | 打断前缀缓存 + 读 reasoning 通道 ⇒ 招来瘟疫 |
| v2 | 插一条消息 | 插在数组最前 ⇒ 前缀缓存全废 |
| v3 | 工具 + 静态前置指令 | ✅ 静态文本落缓存前缀,不打断 |
② 作为库
import { buildReport } from './lib/report.js'
const r = await buildReport(cwd) // { sections, text, meta }
console.log(r.text)
| 模块 | 做什么 |
| index.js | 判据扫描(alertText)/指针回取(peek)/工具注册 |
| report.js | 总装:把各检测器汇总成一份报告(按预算裁剪) |
| anchor.js | 锚点:目标/子目标/约束(含「目标被动过」提醒) |
| blocks.js | 语境分块(按用户每次发言切)—— 降误报的关键 |
| knowledge.js | 知识层:遍历设定图(cooccur 优先,向两侧递减) |
| librarian.js | 会话内语义检索(bge-m3) |
| repetition.js | 重复检测(纯统计,误报实测 0%) |
| reference-check.js | 引用存在性(查文件系统) |
| fok.js / novelty.js | 知晓感/新颖性(复用检索结果,不另建索引) |
| learning.js | 学习循环(发现→求证→入待审) |
| extract.js | 知识抽取(提示词 + 防幻觉校验) |
| samples.js | 样本层(「能长起来」的前提) |
| config.js | 配置 + 诊断 |
五、从文档里长知识(knowledge_extract)
插件不调 LLM(它没有那个能力),所以分工是:
① knowledge_extract(mode="prompt", doc=路径) → 返回【抽取提示词 + 原文】 ② 模型自己按提示词产出 JSON ③ knowledge_extract(mode="verify", json=..., source=原文) → 程序【逐字核对】每条的证据(evidence/quote 必须真的出现在原文里)
· 对不上 ⇒ 判定为编造,丢弃并留痕
· 对得上 ⇒ 转入【待审记】(不直接入图)
⇒ 关键在③:模型可以编,但编的会被子串比对拦下来。 实测混入一条违规的 gate 边,被正确拒绝并给出理由(gate 是「读者的门」,按规矩只能手写)。
实测一次:候选 5 条 → 原文可核 4 条 → 入待审 6 条(含此前累积)。
六、它报出来的东西长什么样
核心尺度:像一个声音,不像一份报告。 实测演进(这条曲线本身是设计的一部分):
| 版本 | 长度 | 读者感受 |
| 初版 | 608 字,76% 是列表 | 像仪表盘 |
| 中间版 | 207 字,但无所指 | 礼貌的空话(「我查了没找到」) |
| 现在 | 60 字左右 | 像提醒 |
🧩 已换过 59 段话题 —— 主线目标值得回头确认一次(当前在谈:…)
两条硬规矩:
1. 没值得说的就不出声(借 dsh-plugin-save-token 的 never-worse 门控:不值得占位的东西不发出去)。「我查了,没找到」不构成信息。
2. 一旦出声,必须有所指:要么指向具体位置(pos=…),要么指出某个模式(「已换过 N 段话题」)。
七、⚠️ 五条设计红线(改代码前必读)
① 输出绝不回显触发词
报一次 = 把命中词写进上下文 = 下一轮又被匹配 = 自我喂食(REPORT.md §二·v4 的病因)。
改任何对外文本后,必须跑:
node leak-check.mjs <projectRoot>
这个检查已累计抓出 5 次真实泄漏(包括写检查工具的人自己踩的)。
实测教训:用正则从源码里「猜」文本是不可靠的 —— 它会漏(曾漏掉一个多行拼接的前置指令)。
⇒ 现在的做法是直接 mock ctx 调用 apply(),抓真实文本(单一真相源)。
② 只给指针,不给内容
要原文,用 peek(pos) 按指针取。这是 déjà vu 的 decoupled familiarity:只发「这事发生过」的信号,不把内容一起送上来。
③ 不注入到会被回传的通道
reasoning 是强制回传通道(且只在带工具调用的轮次回传)。
往里写东西 = 下一轮必然被自己看见。(读取无害;注入才是病因。)
④ 有界容器超限时【归档】,绝不【静默丢弃】
一切结果留痕 —— 不留痕的结果等于没发生。
samples.js 是轮转(对);learning.js 曾错误地 slice(-500) 静默截断(已修为归档)。
参考实现在 learning.js 的 archiveOverflow():归档失败 ⇒ 不裁剪(宁可文件变大,也不丢数据)。
⑤ 工具返回值必须是无损 JSON(挂载后才发现的那类)
实测坑(挂载后首次调用才发现):返回 { note: undefined } ⇒ DSH 拒收整个返回值
(value is not lossless JSON)。离线调用测不出来(本地不经 DSH 序列化)。
⇒ 现已统一过 toLosslessJson() 闸门,并有专门断言。
八、可调参数(都有合理默认,不改也能跑)
DSH_ALERT_MAX_LINES=8 # 判据段最多几行
DSH_ALERT_SCAN=0 # 0=全量扫痕迹
ALERT_BUDGET=2400 # 报告总字数预算
ALERT_NO_RETRIEVAL=1 # 关掉需要 embedding 的部分
ALERT_LEARNING=1 # 打开学习循环(有副作用:写样本+入待审)
KNOW_GATE_W=0.3 # 图遍历里 gate 边的权重折扣
KNOW_LAYER_DECAY=1.0,0.6,0.35,0.2,0.15 # 按 rank 距离的层衰减
LIBRARIAN_MAX=120 # 索引上限(⚠️ 越高越贵:embed 约 450ms/条)
LIBRARIAN_MIN_DIST=3 # 近处排除半径
SAMPLES_MAX_MB=64 # 样本文件轮转阈值
配置文件(可选):~/.dsh/alert-inject.json
{ "workspaces": [], "projectRoot": "D:\\你的项目", "dataDir": "C:\\Users\\你\\.dsh" } workspaces 为空数组 = 对所有工作区生效(这是发布后的正确默认)。
九、自测:四层,重点在第四层
node selftest.mjs <projectRoot>
| 层 | 测什么 |
| 单元 / 集成 / 系统 | 组件对不对、拼起来对不对、整份报告能不能生成 |
| 工具契约 | 工具注册、返回值可序列化(只有挂载后才发现的那类) |
| ★ 验收 | 「端上来的,是不是他点的那盘」 |
第四层是重点:前三层只能证明「代码能跑」,而「代码能跑」和「这东西有用」是两件事。
那个差距就是「在酒馆点炒面」:菜单写的是炒面,端上来的不是那回事。
实测:这一层抓出过三个问题 —— 「608 字的报告」、「207 字的礼貌空话」、「测试自己判据写错(608 字 vs 判据 400,竟显示通过)」。都是前三层测不出来的。
十、当前状态(诚实清单)
已经能跑:
| 项 | 状态 |
| 挂载 | ✅ 已挂(cordis.patch.yml 生效),实测两个工具都可用 |
| 两个工具 | ✅ alert_check(自查)/knowledge_extract(知识抽取) |
| 知识抽取 | ✅ 完整闭环实测通过(提示词 → 校验 → 入待审) |
| 自测 | ✅ 27/0 通过;30 处对外输出无泄漏 |
还没有的:
| 项 | 状态 |
| 样本标注 | ⚠️ 判定样本 220 条(其中已标注 0 条)+纠正样本 274 条(规则自动收)。⇒ 标签缺失是当前最大的缺口 —— 而且「由使用者来标注」这条路不成立(使用者不会做),得换成从回复里自动判动作 |
| Laya(特化判断引擎) | ⚠️ 已实测可行(零样本 36% → 校准后 76.6%),未接入 |
| 跨环境验证 | ⚠️ 只在开发者的机器上跑过。换项目/换机器会怎样,未经检验 |
十点五、最近新增
v0.6.0
完整清单见 CHANGELOG.md —— ⚠️ 它把「还没做」也列出来了(只写做了的,会让人以为它完整了)。
| 新增 | 一句话 | 怎么试 |
| 语料体检 | 语料「好不好」第一次有了可复现的度量:规则污染率 / 输入与标签的形态 / 无监督离群 / 重复 | node tools/check-corpus.mjs |
| 感觉表 | 不记内容,记「我判断得准不准」(judge 级);只认用户裁决,样本不足时不给结论 | node tools/feelings.mjs |
v0.5.0
完整清单见 CHANGELOG.md —— ⚠️ 它把「还没做」也列出来了(只写做了的,会让人以为它完整了)。
| 新增 | 一句话 | 怎么试 |
| 检索视野 ≈100% | 原先只看得见会话的 4.6%~15%(硬上限 120 条);现在逐轮后台补齐,最大会话 9 轮补满 | 见 tools/check-capacity.mjs |
| 档案检索(另一个语境) | 教训库/笔记与会话分开索引,不和会话痕迹混排 | 配 archiveDir 后自查会报覆盖度 |
| 跨对话回忆 | 命中每条标注来自哪一场,并提醒"可能是你后来已经改掉的想法" | 语境区勾一场别的对话 |
| 5 个自检工具 | 容量 / 增量一致性 / 鲁棒性(79 项) / 档案增量 / 手动重建 | 从 node tools/check-capacity.mjs 开始 |
⚠️ 还没做的(v0.5.0 里最要紧的一条): "提醒得准不准"仍然没有度量表 —— 能测"它看了多少"(覆盖率),测不出"该不该报"。
两条独立路线(规则/词表 与 向量原型)都收敛到同一处瓶颈:没有 ground truth。
⇒ 在这个问题解决前,我不主张它"可靠"。 其余"还没做"见 CHANGELOG.md。
v0.4.0
完整清单见 CHANGELOG.md —— ⚠️ 它把「还没做」也列出来了(只写做了的,会让人以为它完整了)。
| 新增 | 一句话 | 怎么试 |
| 影子模式 | 新判据先只记录、不提醒 —— 判据表自己记着「首轮 5 条警报全是噪声」,所以不敢直接上线 | node tools/shadow.mjs |
| 可替代层 | 嵌入/生成不绑死 Ollama:云端或本地别的推理服务,只改配置不改代码 | 见 PROVIDERS.md |
| 三个库(骨架) | knowledge 累积/cases 整理稿的语境块投影/profile 覆盖+旧版留痕 | node tools/init-db.mjs |
| 整理稿接线 | 原先那块代码没有任何调用点(孤岛);现在有 CLI,还能把语境块灌进库 | node tools/context.mjs --project <你的项目> --to-cases |
| 索引自动重建 | 过期后以前是静默失效("回忆"直接消失),现在会自动后台重建 | 索引过期时自查会明说 |
| 纯测试环境 | 不碰你的数据:隔离数据目录+假项目,跑完当场核对真实数据没被动过 | node tools/sandbox-test.mjs |
| 接线审计 | 问一句「这个导出真的有人在用吗」——本项目的孤岛就是这么抓出来的 | node tools/audit-wiring.mjs |
⚠️ 还没做的:训练那一环(用你自己的纠正,长成你自己的判据)没接 ——缺负例、缺分类、缺训练环境。详见 CHANGELOG.md 的「还没做」一节。
十一、希望得到什么反馈
这个项目最需要的不是"点赞",而是下面这几类具体信息。
★★★ 最想要:它在你那儿「报了什么没用的话」
这是最关键的反馈。 请贴出:
- alert_check 的实际输出
- 你当时在做什么
- 那句话对你有用吗(有用/没用/看不懂)
为什么最想要这个:本项目的核心矛盾是误报。
开发者测出来的结论是「全库命中 45 处、当前语境 0 处 ⇒ 100% 是跨语境误报」,但那是单一项目的结论。你的项目里是不是这样,我不知道。
★★ 想要:你在什么场景下想到它
它现在的用法是"回答前自查"。但开发者一开始设想的是「一个声音在你思考时提醒你」。
⇒ 你实际会在什么时候希望它响? 这个答案会决定下一步往哪走。
★★ 想要:没有参照物时,它是不是等于没用
它需要判据表/术语表/知识图才能发挥作用。 装上不配,就只会说"无异常"。
⇒ 这个门槛是不是太高了? 你愿意为它写一份判据表吗?还是希望它自己从会话里长出判据?
★ 想要:性能实测
| 场景 | 你的实测 |
| 一次 alert_check 耗时 | ? |
| 首次建索引 | ? |
开发者的机器上是 0.6~0.9 秒/120 条约 15 秒。你的机器/你的会话规模下是多少?
★ 想要:明确的失败
崩溃、报错、卡住、装不上 —— 请带上完整报错与环境(DSH 版本、Node 版本、有没有 Ollama)。
⇒ 尤其是这一类:开发者踩过一个「离线测了 27 项全绿,一挂上就报错」的问题(value is not lossless JSON)。那类问题只有真实运行才会暴露 —— 你的环境很可能还有别的。
不需要的反馈
- "看起来很酷" —— 那不构成信息(本项目的原话:"我查了,没找到"不构成信息)
- 功能建议(除非你已经在用,并且说得出哪个具体场景下缺它)
十二、最需要你知道的一件事
这套东西的价值不在「零件多」,而在「长起来」。
- 规则冷启动(今天就能用)
- 攒样本(机制已就绪)
- 训练特化模型(Laya 已实测过这条路:36% → 76.6%)
⇒ 而当前唯一缺的动作是「标注」 —— 每一次纠正,都是一条免费的高质量标注。
也就是说:你现在就能帮到它 —— 当你纠正它的时候,那就是一条训练样本。
作者注
这个是我发现 agent 老是会忘掉上下文才做的。
我的计算机水平不高,所以是在 agent 帮助下做的 ——它比我更了解这个项目,所以介绍让它写。
本说明书随实现更新。如果说明书与代码不符,以代码为准,并回来改本文件。*预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
juanbaiing/dsh-alert-inject
给 DSH agent 一个"回答前会出声"的机制:目标锚点、似曾相识检索、重复检测、引用核对、按语境分块的警报判据。零第三方依赖,核心不调 LLM。
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目