dsh-skill-manager
DiscoveredDeepSeek Harness 技能运维插件:自动发现、审计、去重和优化技能,构建安全可控的维护闭环。
dsh-skill-manager 0.4.0
DeepSeek Harness 原生技能运维插件,提供使用追踪、反馈归因、热度排行、人工审阅和优化效果评测。
默认 read-only,不修改技能文件。review 先保存候选、再由人类批准;automatic 可自动应用描述修复、指令优化和 specialize。移除源技能的 keep/composite 始终需要人类批准。
普通用户安装
使用 DSH 0.1.1-rc.2,Node ^22.19.0 || >=24.0.0。完整宿主 SHA 与 pnpm 版本见 compatibility.json。本次交付三个 tarball,未自动发布 npm。
dsh plugin --profile web add ./artifacts/skill-ops-engine-0.4.0.tgz ./artifacts/skill-ops-dsh-0.4.0.tgz ./artifacts/skill-ops-dsh-client-0.4.0.tgz
dsh web
host/client 的 dsh.bundle 使安装后的插件进入 profile 配置层;engine 作为库依赖,不激活为插件。启动后执行 /skill-ops doctor、/skill-ops status。普通安装需要 npm registry 可达;离线源码验收由固定宿主提供第三方依赖。
源码开发
使用 指定宿主提交,按其 lockfile 执行 pnpm install --frozen-lockfile 和 pnpm build。本插件脚本使用 DSH_CHECKOUT 或项目内 .cache/deepseek-harness,不依赖固定盘符。
$env:DSH_CHECKOUT = '/absolute/path/to/deepseek-harness'
node scripts/typecheck.mjs
node scripts/test.mjs
node scripts/test.mjs --vitest
node scripts/integration.mjs
node scripts/browser.mjs
node scripts/pack.mjs
node scripts/package-smoke.mjs
首次浏览器测试缺少 Chromium 时运行 node scripts/browser.mjs --install。脚本检测错误/失效链接后会停止;只移除诊断指出的链接,再用正确 DSH_CHECKOUT 重跑。不要删除其指向的宿主目录。
继续支持 overlay 接入:将工作区三个包链接至 DSH profile 的 node_modules/@skill-ops,然后执行 dsh web --patch ./overlays/skill-ops.cordis.yml。已经通过 bundle 安装的 profile 不要重复插入同名条目。
打包根据各包 files 清单收集构建产物、组合配置、doctor 和示例资源,在独立临时目录转换 workspace 依赖,验证前后源码 package.json 完全一致。scripts/publish.mjs 是单独的显式发布工具,CI 不调用它。
故障排查
插件能启动时执行 /skill-ops doctor:逐项显示通过/警告/失败、影响和修复方法,检查宿主版本、服务、反馈服务、目录、存储就绪和当前模型路由,不调用模型、不修改配置。
插件不能启动时运行独立 Node 命令:
skill-ops-doctor --json --root /absolute/path/to/skills
# 尚未建立 bin 链接时:
node packages/dsh/bin/doctor.mjs --json --root /absolute/path/to/skills
支持重复 --root、--package <host包目录>、--config <含skillRoots数组的JSON>。阻断问题返回非零退出码;独立命令只使用 Node 内置模块,检查入口、依赖解析和目录配置。无模型路由只影响生成/live评测,不影响基础查询。
配置与维护模式
默认配置见 只读 overlay,审阅见 review 示例,自动维护见 automatic 示例。skillRoots 与 skill-filesystem 的 customSkillDirs 应一致。
writeMode: review
automaticActions:
- merge
- optimize-instructions
- repair-descriptions
skillRoots:
- /absolute/path/to/skills
snapshotRetentionDays: 30
correctionThreshold: 3
correctionAgeDays: 7
evaluationTestSets:
my-regression-set: /absolute/path/to/my-regression-set.json
review/automatic 沿用启动、技能变化、反馈对账和 Agent 空闲窗口扫描。描述修复是确定性推导,无需模型;指令优化和合并使用当前 DSH 模型生成、独立复审,再执行静态校验。模型自报 confidence 是自评值,不是校准后的正确率。模型维护工具只允许 run/retry,没有批准权限。
命令
命令(前缀 /skill-ops) | 行为 |
|---|---|
doctor | 只读环境诊断 |
status [n] | 热度排行,默认前10 |
quality [skill] | 加载次数、反馈消息数、纠错/赞扬/澄清次数、纠错比例 |
duplicates [threshold] | TF-IDF 重复候选 |
forget | 遗忘建议,不压缩或删除 |
descriptions / names | 描述、命名和调用控制审计 |
operations [n|id] | 操作历史、状态、门禁和快照 |
run <all|merge|optimize|descriptions> | review/automatic 扫描 |
preview <id> | 理由、逐文件差异、资源变化、检查与到期时间 |
approve <id> | 应用保存的确切候选,不重新生成 |
reject <id> | 拒绝候选,抑制相同输入 |
retry <id> | 从最新输入创建新 ID,旧记录保留 |
rollback <id> | 显式恢复未被后续修改的快照 |
evaluate <id> <测试集ID> [--live] | 默认只校验适用性、展示调用计划 |
evaluate demo [--live] | 默认使用离线固定回答演示 |
evaluations [id] | 查询独立存储的评测摘要 |
审阅与安全边界
候选完整树与原版本位于 .skill-ops/proposals/<id>,操作记录保存原根、候选、反馈证据和清单摘要。有效期沿用 snapshotRetentionDays,默认30天。源文件、反馈或候选完整性变化后不得批准;过期或陈旧方案需要 retry。等待审阅的方案不会因切换 automatic 而自动应用。
批准重查当前动作配置、根目录和摘要,使用跨进程锁及持久化决策记录阻止重复提交。提交复用快照、日志、按差异原子替换、宿主刷新校验和失败恢复。keep/composite 完整安装目标后才移出源技能。卡片只展示结果和下一步命令;完整差异以 preview 为准,最新状态以 operations 为准。
根目录必须存在、可读写、无链接且互不重叠。模型不能指定路径,资源必须在技能边界内。.skill-ops 是宿主管理的私有控制目录,不应手工编辑。
热度与质量证据
热度分继续使用原频率、新鲜度和重要性算法。存储字段 successCount 保留兼容,含义是成功加载,不代表任务成功率。合并不再按热度差强制指定保留项;模型输入将热度和反馈证据分开。
质量报告按 sessionId/messageId 去重计数,纠错比例分母是有反馈的消息数。少于10条提示证据不足;零反馈显示未知。反馈是累计证据,可能跨技能版本,也可能多技能共同归因;不能据此宣称某版本的任务成功率。
评测测试集
参考 15题中英文演示 和 旧版/新版 示例技能。固定回答仅演示评测能力,不是任意用户技能的改善证据。
{
"id": "my-regression-set",
"skills": ["my-skill"],
"tasks": [{
"id": "structured-output",
"prompt": "只返回JSON,status字段为ok。",
"assertions": [
{"type": "json-field", "path": ["status"], "value": "ok", "critical": true},
{"type": "excludes", "value": "```"},
{"type": "length", "min": 1, "max": 200}
]
}]
}
支持 contains、excludes、json-field(字段路径数组、精确JSON值类型)、length(Unicode码点长度)。未知字段、脚本类型、重复题ID和超过20题会被拒绝。JSON测试集不执行脚本。
只有 --live 才调用当前 DSH 模型。两侧同一路由和参数、独立上下文、无工具,每侧每题一次,最多20题、2048输出tokens/次、60秒/次,支持宿主取消。报告列出前后通过数、失败断言序号、耗时和实际token用量;缺失用量显示未知,不推算费用。调用失败、取消、输出截断或结果不完整显示无法判定;出现单题退步或关键约束失败不得标为改善。
摘要绑定测试集、原版本和候选摘要,存入新域 skill_ops_evaluations。不额外存储任务全文或模型回答;评测不会批准或修改技能。
升级与 CI
从0.3.x升级保留 skill_ops 和 skill_ops_mutations 的版本1及原表布局,仅添加可选字段和状态。出现 awaiting-approval/rejected/stale/expired 等新状态后,旧插件不能完整读取所有记录;降级前需要保留完整数据备份,不要让新旧插件同时写同一存储。
GitHub Actions 固定宿主完整 SHA 和 pnpm 11.7.0,覆盖 Linux/Node22、Linux/Node24、Windows/Node24;包含类型检查、原生测试、Vitest、构建、离线评测、宿主集成、打包安装,Linux/Node24额外执行浏览器验证。工作流不读取模型密钥、不调用外部模型、不发布 npm。
实际验收结果见 0.4.0 测试记录。卡片约定见 DESIGN.md;历史设计见 架构说明。
Comments
Loading…
Similar plugins
by weibaohui
DeepSeek Harness 插件:技能市场——安装/删除/详情 API + 管理界面
★ 11
↓ 546/wk
JavaScript
Sep 15, 2026
dsh plugin --profile web add @weibaohui/skills-managementby Nay-1
DeepSeek Harness 技能管理设置页插件:图形化管理用户级/项目级技能的安装、卸载与调用启停
★ 0
MIT
TypeScript
Aug 26, 2026
dsh plugin --profile web add @nay-1/dsh-skill-manageby jasper-zsh
DeepSeek Harness(DSH)的只读技能清单插件,在 Web GUI 中展示全局技能和当前会话可见的技能,并从会话日志推导技能加载状态。
★ 0
TypeScript
Aug 14, 2026
dsh plugin --profile web add dsh-plugin-skill-panelby tuogusa
DeepSeek Harness 技能管理器:扫描/删除/撤回/检查更新技能,支持 GitHub/Gitee Release(host + client 一体包)
★ 4
↓ 171/wk
MIT
JavaScript
Aug 19, 2026
dsh plugin --profile web add dsh-skill-managerby xiaoxianyu-office
DSH Skills 管理器:设置页系统/用户技能分类,用户技能开关/编辑/删除/新建。Skills manager for DeepSeek Harness: system/user skill management (toggle/edit/delete/create) in Settings.
★ 3
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-skills-managerby JasperGuWP
DeepSeek Harness 插件技能库:浏览/预检/一键安装/更新/卸载 dsh 插件与 Skill 技能包,设置页一键重启与 harness 本体自更新。Plugin & skill marketplace for deepseek-harness.
★ 0
↓ 144/wk
JavaScript
Aug 22, 2026
dsh plugin --profile web add dsh-plugin-market