🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

经验库 wqx11235/dsh-experience

DeepSeek Harness
wqx112356 天前有提交已提供中文文档扫描:含敏感能力

把踩过的坑存成可检索条目,出错时自动递到眼前

30.6/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add wqx11235/dsh-experience
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · browser
装得上吗
本站尚未做安装检查
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 6 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 48 处,展示前 21 条)
  • 读取本地文件
    index.js:51
    try { entries = await readdir(ROOT) } catch { entries = null }
  • 读取本地文件
    index.js:53
    try { await access(PACKAGE_LIBRARY) } catch { return }
  • 写入本地文件
    index.js:54
    await mkdir(ROOT, { recursive: true })
  • 读取本地文件
    index.js:68
    const text = readFileSync(join(dir, 'package.json'), 'utf8').replace(/^ FEFF/, '')
  • 读取本地文件
    index.js:80
    for (const entry of await readdir(dir, { withFileTypes: true })) {
  • 读取本地文件
    index.js:337
    meta = JSON.parse(await readFile(META_FILE, 'utf8'))
  • 写入本地文件
    index.js:355
    try { await writeFile(META_FILE, JSON.stringify(meta, null, 2)) } catch (e) { console.error('[experience] meta save failed', e.message) }
  • 读取本地文件
    index.js:366
    dshVersion = JSON.parse((await readFile(manifest, 'utf8')).replace(/^ FEFF/, '')).version || ''
  • 发起网络请求
    index.js:510
    const r = await fetch(v.target, { method: 'HEAD', signal: AbortSignal.timeout(5000) })
  • 写入本地文件
    index.js:714
    await mkdir(DRAFTS_DIR, { recursive: true })
  • 写入本地文件
    index.js:715
    await writeFile(join(DRAFTS_DIR, `auto-${sigId}.md`), body)
  • 写入本地文件
    index.js:956
    await mkdir(join(DRAFTS_DIR, 'archive'), { recursive: true })
  • 写入本地文件
    index.js:957
    await rename(join(DRAFTS_DIR, name), join(DRAFTS_DIR, 'archive', name))
  • 删除本地文件
    index.js:1116
    if (draftFile) { try { await unlink(join(DRAFTS_DIR, draftFile)) } catch { } }
  • 写入剪贴板
    client.js:271
    if (navigator.clipboard && navigator.clipboard.writeText) return navigator.clipboard.writeText(text)
  • 发起网络请求
    client.js:325
    return fetch(LIST_URL).then(function (r) { return r.json() }).then(function (d) {
  • 发起网络请求
    client.js:330
    return fetch(GAPS_URL).then(function (r) { return r.json() }).then(function (d) {
  • 发起网络请求
    client.js:345
    fetch(STATS_URL).then(function (r) { return r.json() }).then(function (st) {
  • 发起网络请求
    client.js:355
    fetch('/experience/inbox/prune').then(function (r) { return r.json() }).then(function (d) {
  • 发起网络请求
    client.js:359
    fetch(STATS_URL).then(function (r) { return r.json() }).then(function (st) {
  • 发起网络请求
    client.js:370
    fetch('/experience/refresh').then(function (r) { return r.json() }).then(function (d) {
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

DeepSeek Harness 的自学习经验库:本地 markdown 知识、按错误签名检索、从缺口到条目的闭环、侧边栏面板。不联网。

README

由 DeepSeek 最新模型翻译生成
dsh-experience 给 DeepSeek Harness 的自学习经验库:把踩过的坑变成可检索的本地知识,在错误发生的那一刻自动递到智能体面前,并在收尾时把「问题」变成「条目」。 Self-learning experience library for DeepSeek Harness: local, indexed markdown knowledge that is retrieved at the moment of failure and closed into new entries afterwards. 没有模型调用、没有向量库、没有联网上报。检索是纯本地打分,索引每 3 秒跟磁盘对齐。 ▶ 45 秒完整演示(1080p,中英字幕) 为什么不是「再写一段提示词」 提示词解决「智能体该怎么做」,解决不了「同一台机器上的同一个报错又出现一次」。经验库补的是后者: 错误签名 → 命中已有条目 → 当场注入症状与避坑 → 解决后把缺的那条补齐。
展开完整文档(README 剩余 1 节)
dsh-experience

给 DeepSeek Harness 的自学习经验库:把踩过的坑变成可检索的本地知识,在错误发生的那一刻自动递到智能体面前,并在收尾时把「问题」变成「条目」。
Self-learning experience library for DeepSeek Harness: local, indexed markdown knowledge that is retrieved at the moment of failure and closed into new entries afterwards.

没有模型调用、没有向量库、没有联网上报。检索是纯本地打分,索引每 3 秒跟磁盘对齐。

▶ 45 秒完整演示(1080p,中英字幕)

为什么不是「再写一段提示词」

提示词解决「智能体该怎么做」,解决不了「同一台机器上的同一个报错又出现一次」。经验库补的是后者: 错误签名 → 命中已有条目 → 当场注入症状与避坑 → 解决后把缺的那条补齐。

决定性机制(改任何一处都要先读)

| 机制 | 作用 | 代码 |
| 分区加权检索 | 标题/正文命中之外,命中「诊断关键词」+8、「避坑」+5;中文按 2-gram 兜底;别名半权扩展 | search() / zoneText() / ALIASES |
| 错误签名路由 | ERR_MODULE_NOT_FOUND、EPERM、fetch failed、Error NNN 等签名给专属加权,并记录复发频率 | SIGNATURES / signatureWeight() / repeatBoost() |
| 精确重排与去重 | top15 用整句命中/标题覆盖率重排;近似条目后一名 ×0.6;severity: critical 提权 | similarMap / search() 尾部 |
| read-as-click 闭环 | 「按签名搜 → 读命中条目」记为解法(resolveMap);同签名短时间内真实复发则记 miss 降权 | noteRead() / pendingRead |
| 失败采集 + 修复证据 | tools/result 的 isError(或 value.ok === false)进候选;同工具 30 分钟内成功调用参数回填为「修复证据」 | tools/result 监听 |
| 缺口 → 条目闭环 | 复发但无解法的签名 + 未命中查询 + 待认领草稿 → experience_promote 一条命令入库(套模板/查重/同步分类 README/删草稿/重建索引/返回覆盖结果) | lib/promote.js / promote() |
| 主动推送 | 工具失败时自动检索,命中分数过阈值就把「症状 + 避坑」注入本轮对话;按采纳率自适应阈值 | tools/post-execute |
| 面板 | 侧边栏:按库浏览 / 结构化正文(避坑一键复制)/ 缺口与待认领 / 候选池 | client.js |

细节见 docs/architecture.md;条目格式见 library/README.md。

安装

从 GitHub 安装(当前主要方式)
dsh plugin --profile web add github:wqx11235/dsh-experience

npm 发布后
dsh plugin --profile web add dsh-experience

官方桌面端请在应用的设置 → 插件里安装,不要用命令行改桌面配置档。

装完重启宿主(host 插件不热更),侧边栏出现「经验库」。

首次启动会把包内 library/ 复制到库根;已有库不会被覆盖。

工具

| 工具 | 用途 |
| experience_search | 检索;支持空格分词、中文 2-gram、报错签名加权;返回摘要与元数据 |
| experience_read | 读全文;同时记录阅读次数与「解法关联」 |
| experience_ask | 要结论而非文件列表:按 top 命中汇总「症状/原因/避坑」 |
| experience_gaps | 缺口清单:反复出现无解法的签名、待认领草稿、未命中查询 |
| experience_promote | 把草稿/签名/未命中查询写成正式条目;dryRun: true 先预览 |

HTTP 端点(面板同源使用):/experience/list、/search、/read、/gaps、/drafts、/promote、/inbox、/inbox/prune、/inbox/draft、/inbox/dismiss、/flag、/dedup、/stats、/missed/dismiss、/refresh。

库根与配置

优先级:config.experienceRoot → 环境变量 DSH_EXPERIENCE_ROOT → ~/.dsh/experience。

在 profile 的 cordis.patch.yml 里按 id 覆盖(不要重复 insert)
- id: experience
config:
experienceRoot: '/absolute/path/to/experience'
seed: false

两条库的边界(不要混)

| | 私有库 | 公开起步库 |
| 位置 | 你机器上的库根(默认 ~/.dsh/experience) | 仓库 library/ |
| 来源 | 你的使用积累 | 白名单 + 脱敏构建 |
| 谁写 | 运行时(采集 / 认领 / 归档) | 只有 tools/build-library.mjs |
| 是否发布 | 永不 | 随 npm/git 包 |
| 检查 | — | 隐私 + 死链 + 边界 |

- 公开库只从私有库按 tools/public-entries.txt 生成;运行时代码从不写 library/。
- 插件首次运行时把 library/ 播种到空的库根;已有私有库不会被覆盖(seed: false 可关)。
- 包内 cordis.patch.yml 不写任何机器路径;私有库用 profile patch 的 experienceRoot 指过去。
- node tools/check-boundaries.mjs 断言两边不混(CI 每次跑):公开库条目 = 白名单、仓库无 .meta.json/.drafts、无私有分类、patch 无绝对路径。

隐私

- 全部数据在本地;插件没有任何网络请求(唯一例外是你配置的 verify: url 校验)。
- 公开的起步库由构建期隐私闸门生成:只拷贝白名单条目,脱敏绝对路径/账号/邮箱/个人与私有项目信息,再跑泄漏扫描与死链扫描,任一命中即构建失败。见 docs/privacy.md。
- 你的本地库不会随插件发布,也不会上传。

开发

node test/run-all.mjs # 集成测试 + 死链 + 隐私闸门
node test/host-harness.mjs # 无宿主集成测试(假 ctx + 真 defineTool schema)
node tools/build-library.mjs <私有库目录> # 从私有库重建公开起步库
node tools/privacy-rules.mjs library # 公开库隐私闸门

test/host-harness.mjs 会自行 stage 一份插件并注入 @deepseek-ai/dsh-tools,不需要真的起宿主。

发布到插件市场

收录流程(awesome-dsh-plugin 一个 YAML 文件就是一个投稿)见 docs/publishing.md。

License

MIT
预览分享卡片长什么样 ↓wqx11235/dsh-experience
分享 · DeepSeek Harness Hub
wqx11235/dsh-experience

把踩过的坑存成可检索条目,出错时自动递到眼前

这是你的仓库?认领条目

回到顶部