← 返回列表
⚠ 装前注意
dsh-skill-curator — 自动技能策展插件
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/10 · 已提供中文文档
为 dsh 打造的自动技能策展插件:每 N 轮真实对话,后台起一个评审子代理阅读会话摘要,主动把值得沉淀的经验提炼为 ~/.dsh/skills/<name>/SKILL.md - 把 Hermes 的「后台评审自我改进」闭环移植到 DSH,零侵入 bundle 插件,不改 dsh 源码。
综合分
29.4
GitHub 分
29.4
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add runfali/dsh-skill-curator未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
信任档位:已验证本站已于 1 天前真实安装成功
- 是什么
- dsh 原生插件 · tool
- 装得上吗
- 本站已真实安装成功(非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 15 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/23(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-skill-curator(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/23 21:27:27
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-llm@deepseek-ai/dsh-settings@deepseek-ai/dsh-subagent@deepseek-ai/dsh-tools@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-skill-curator — 自动技能策展插件
仓库简介:DeepSeek Harness 自动技能策展插件——后台评审子代理定期复盘对话,自动创建/更新 SKILL.md,让智能体在真实使用中持续自我进化,零侵入、不改 dsh 源码。
为 DeepSeek Harness 开发的自动技能策展 bundle 插件:每 N 轮真实对话(默认 3),后台起一个评审子代理阅读会话摘要,主动创建/更新 ~/.dsh/skills//SKILL.md——把 Nous Research Hermes Agent 的「后台评审自我改进」闭环移植到 DSH,零侵入,不改 dsh 源码。
工作原理
回合结束 ──▶ agent/turn-stopping(scoped 监听,按 agent 计数)
│ 满 3 轮?(skillNudgeInterval)
▼
异步 fire-and-forget(绝不阻塞回合关闭)
▼
构建会话摘要 ──▶ 最近 N 条全文 + 更早逐轮压缩
▼
起子代理(provider: spawn),注入摘要 + 评审指令
│ toolFilter allow = 仅 skill-library-(hermes 式白名单)
▼
子代理阅读并写盘 ~/.dsh/skills//SKILL.md(正文中文、description 双语)
│ frontmatter 盖 author: dsh-skill-curator(产权标记)
▼
摘要写入宿主日志 + 设置卡片「最近评审」面板可见
后台评审子代理(任务管理面板)
评审子代理以任务形式出现在右侧「任务管理」面板,图中可见正在排队/空闲的 skill review 任务,可实时观察策展全过程。*
手动触发:/skill-refine [关注点] 立即对当前会话发起一次评审。
关键设计(对照 hermes)
| hermes | dsh-skill-curator |
|---|---|
| turn_finalizer 计数(10 轮) | scoped agent/turn-stopping 计数(默认 3,可配) |
| daemon 线程 fork AIAgent | 平台子代理(ctx.subagents.start)——UI 可见、会话完全隔离 |
| 全量回放会话(吃前缀缓存) | 摘要注入(尾 N 条全文 + 更早压缩)——DSH 无缓存优势 |
| 运行时工具白名单 | toolFilter.allow 白名单 + 提示词约束 |
| curator 产权标记 | frontmatter author: dsh-skill-curator + skill-library-adopt |
| /refine | /skill-refine 命令 |
行为对照矩阵详见 docs/COMPARISON.md。
安装
cd /path/to/dsh-skill-curator
dsh plugin --profile web add ./
重启 dsh,然后在 设置 → 插件 页签 → 「技能策展(Skill Curator)」卡片 里启用
标准 bundle 插件,装/卸后重启生效;全程不改 dsh 源码。
设置项(设置页 · 插件页签 · 「技能策展」卡片)
| 设置卡(上) | 设置卡(下) |
|:---:|:---:|
| 设置卡 1/2 | 设置卡 2/2 |
- enabled 总开关(默认开)
- skillNudgeInterval 触发间隔(默认 3 轮)
- notifyMode off=静默 / on=宿主日志摘要 / verbose=含内容预览(分段按钮)
- reviewProvider / reviewModel 评审子代理模型覆盖(留空 = 跟随主会话当前模型)
- reviewBaseUrl / reviewApiKey 自定义评审端点(OpenAI 兼容 /chat/completions)。
填了 base_url + 模型后,评审子代理经专用适配器路由跑在该端点(路由名 = reviewProvider,
缺省 skill-curator-review);端点与凭据每次请求现读设置,改动即时生效无需重启。
仅 base_url 为空时忽略 api_key
- 最近评审记录 持久化于 ~/.dsh/skill-curator/reviews.json(保留最近 50 条),卸载/重装/重启不丢失
- 评审韧性(两层):针对端点/模型层失败(HTTP 错误 / 断网 / 鉴权失败 / 限流 / 模型缺失 / 超时)——
① 自定义端点失败时,自动以主会话模型重跑一次(回退在宿主日志、评审记录与状态面板「⚠️已回退主模型」均有标记);
② 最终尝试又因连接类错误/无详情的 killed 失败时,按 reviewRetryCount 上限退避重试(默认 1 次),
主模型瞬断不再直接丢失本次评审。工具层报错一律不重试
- reviewTimeoutMs 评审预算(默认 15 分钟,超时自动终止)
- reviewRetryCount 最终尝试失败后的额外重试次数(0=完全不重试;默认 1)
- reviewRetryDelayMs 重试退避基数:第 n 次重试等待 = 基数 × n 毫秒(默认 5000)
- digestTail / digestMaxChars 摘要形态
- adoptSkills 收养清单(逗号分隔):允许自动维护的非本插件 skill
技能库工具(白名单)
评审子代理只能调这六个工具(主会话也可直接用):
| 工具 | 用途 |
|---|---|
| skill-library-list | 列技能(名称/描述/是否托管) |
| skill-library-read | 读单个 SKILL.md |
| skill-library-create | 新建类级 umbrella 技能(中文正文 + 双语描述) |
| skill-library-patch | 定点 oldString→newString 或全文替换(保留 frontmatter) |
| skill-library-write-file | 写 references/ templates/ scripts/ 支持文件 |
| skill-library-adopt | 收养未托管技能(盖 author 章) |
产权守卫:只有 frontmatter 盖 author: dsh-skill-curator 章或列入 adoptSkills 的 skill 才能被修改,其余一律拒绝并明确提示「先收养」。路径全部越界校验,写盘原子(tmp + rename)。
环境要求
// package.json(机器可读)
"engines": { "node": ">=22" },
"dependencies": {
"@deepseek-ai/dsh-llm": "^0.1.5-rc.1",
"@deepseek-ai/dsh-settings": "^0.1.5-rc.1",
"@deepseek-ai/dsh-subagent": "^0.1.5-rc.1",
"@deepseek-ai/dsh-tools": "^0.1.5-rc.1",
"@deepseek-ai/schemastery": "^3.18.2"
},
"dsh": { "engines": { "dsh": ">=0.1.2-alpha.3 =0.1.5-alpha.1 <0.1.6" } }
- 已验证宿主:@deepseek-ai/dsh 0.1.5-rc.1(Node v24)。
- 区间里的析取是承重的:npm semver 只从「区间组自身含同 [major,minor,patch] 元组预发布」的组满足预发布,故单区间 <0.2.0 那组覆盖不了 0.1.5-rc.1。test/entry.test.mjs 用 10 行判定表 + 反证(改回旧区间即红)+ 宿主真实 semver.satisfies 交叉验证钉住。
- 无安装脚本、禁 gyp/原生编译:全树纯 ESM,test/entry.test.mjs 守护(无 install/postinstall/prepare、无 optionalDependencies、依赖面仅 @deepseek-ai/*)。
开发
pnpm install # 部分环境需带代理/独立 cache(默认 npm cache 可能不可写)
npm test # entry + 单测 + smoke + client-smoke 全量
node test/entry.test.mjs # 入口直载、manifest、engines 区间、键集合一致性、依赖卫生
node test/smoke.mjs # 模块/工具/白名单冒烟
node test/client-smoke.mjs # client bundle 冒烟(真实执行组件树)
docs/EVIDENCE.md 记录隔离实例的安装/启动/真机验证(一次性 DSH_HOME,不碰任何已部署实例);docs/AUDIT.md 记录各轮审计。
License
MIT