@yiyunet/dsh-learn-skills
DSH 插件:AI学习 —— 会话输入区的四入口学习插件(初始预设 / 收集提炼 / 关联升级 / 沉淀复用),把「收集→提炼→关联→升级→沉淀→复用」方法论做成有交互引导、预设管理、知识审核入库与体系体检的运行时能力。 适合需要构建个人知识库、对AI交互内容进行深度沉淀的用户。
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:yiyunet/dsh-learn-skillsREADME
Read the full README ↗配置
cordis.patch.yml 里的全部字段都有中文注释。默认值的关键两条:
allowWrite: true # 总闸。关掉后四项功能变纯只读(初始预设只出预览)
allowBehaviorRules: false # 行为规则(预设提示词 / AGENTS.md / 技能)默认不放行
第二条是刻意的:一条知识被认可,不会自动变成长期指令。会影响 Agent 行为的那类变更, 必须由人显式打开这个开关,才会在「关联升级」的确认里被执行。
语义增强(方案 B-1:双轨并存 + 冲突标记)
默认关闭,开关与预算都在 cordis.patch.yml:
allowModelSemantics: false # 打开后:提炼会把会话原文发给模型做语义判定
semanticBatchSize: 8 # 一次调用判多少条(越大越省,延迟越高)
semanticBudgetMs: 60000 # 总预算;用尽即停,剩余候选走基线轨
为什么默认关:打开后会话原文会发给模型。会话里可能有客户信息、平台账号线索、 内部报价 —— 这是数据出站,属合规红线,故默认不启用。
它做什么:给「收集提炼」加一条语义轨——模型判定每条候选的类型、以及它与
已有节点的关系(new/supplement/correction/conflict/duplicate/supersede/unverified),
并给出 why(依据哪几个字得出的)。
为什么不覆盖基线(这是设计地基):模型输出不可复现——同一份内容两次提炼可能给 不同判定。若覆盖基线,就会出现"同一知识两次入库分类不同 → 版本号无故 +1 → 索引抖动", 留痕与可回溯性当场失效。所以采用双轨并存:
| 轨 | 谁产生 | 可复现 | 落盘字段 |
|---|---|---|---|
| 基线轨 | 关键词正则 + 词面重合 | ✅ | type / relations(confidence: 'heuristic') |
| 语义轨 | 模型 | ❌ | typeSemantic / relationsSemantic(confidence: 'model')+ why |
两轨一致时不产生额外字段;不一致时并排显示并标 typeDivergence /
relationsDivergence,审核面板会把模型建议明确标注为「模型」——最终判定仍由你裁决。
降级纪律:没有模型 / 超时 / 输出不是合法 JSON / 超预算 ⇒ 静默回退基线轨, 候选照常产出,提炼流程一秒不停(与「初始预设」的"模型优先、硬编码兜底"同构)。
⚠️ 两个如实标注:① 语义增强部分生效时(达到预算或某批失败),界面与批次文件都会 标明"未跑完",不会假装全部完成;② 批次文件里的
semantic摘要记录了几次调用、几处 分歧,便于事后回溯。模型输出一律严格校验、绝不修补——编造的候选 id、非法 type/relation 一律丢弃。