dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Multi-Agent collaborative skill forging system for DeepSeek Harness — distill conversational experience into verifiable, reusable Agent Skills.
🌏 English Version | English
多 Agent 协作式技能锻造系统,让 Agent 从对话经验中学习,用工程手段锻造可验证、可追溯、可复用的高质量技能。
从对话触发到技能激活,每一步都有工程化把控。提取、生成、验证、迭代、审计、批准、激活,七道工序层层过滤,最终产出的技能不是「看起来对」,而是「实际能用」。
六个专职 Agent 各司其职又彼此制衡。Extractor 负责从对话中提炼模式,Generator 负责生成技能草稿,Verifier 负责多维度验证,Refiner 负责基于反馈迭代优化,AdversarialTestGenerator 负责生成对抗性测试用例,Auditor 负责安全与重复检查。每个角色有独立的 system prompt 和评估标准,确保过程透明可控。
借鉴 SkillOpt 文本梯度下降的思想,每次锻造都附带完整的验证报告。验证不通过时,Refiner Agent 基于失败模式定位具体问题,做增量改写而非全部重写,保证质量严格不回退。最大迭代轮次可配置,默认三轮内完成收敛。
技能库不会静止不动,三套进化引擎持续推动质量提升:
系统空闲时自动运行的批量优化引擎。健康体检扫描技能库全貌,低分技能批量调用达尔文优化,相似技能自动饕餮融合,启发式生成改进建议(零 LLM 消耗)。支持手动、定时 cron、空闲检测三种触发方式,永不自动删除,所有变更严格不回退。
复杂任务的多技能协作引擎。任务分解支持 fast 关键词匹配和 llm 语义分解两种模式,从技能库中匹配最相关的技能组合,生成执行指导。单任务最多编排 5 个技能,相关度阈值可配置。
生成时安全、验证时安全、入库时安全、使用时安全,四道防线覆盖技能全生命周期。默认对自动生成内容持不信任态度,危险模式匹配、重复技能检测、用户手动批准三重保险。所有进化模式默认需要人工批准,不会自动修改激活技能。
每个技能都携带完整的家族树。来源对话 ID、锻造轮次记录、每轮验证得分、版本变更日志、使用反馈统计、衍生技能图谱,所有信息可追溯可审计。你随时知道一个技能从哪里来、经过了哪些修改、表现如何。
五维加权评分(关键词匹配 40%、验证得分 30%、使用频率 10%、新鲜度 10%、反馈得分 10%)+ Token 预算管理,替代启动时全量注册的粗放模式。奖励驱动的权重自调整从显式反馈和隐式反馈中学习,动态优化召回排序。智能注入根据每轮对话上下文动态挑选最相关的技能,在 token 预算内达到最优召回效果。
深度嵌入 DSH Web UI,右侧边栏承载锻造队列、技能库、文件浏览器、统计仪表盘与设置面板,顶栏展示锻造状态与快捷操作,Toast 通知实时推送锻造进展并支持一键批准/驳回。不需要切换工具,在对话界面内就能完成从触发到审核的全流程。
Skill Forge 通过 DSH profile 的 package.json 安装为插件。
直接对 DSH 说这句话,它会自动完成安装:
帮我安装 "dsh-skill-forge" 插件,从 GitHub:Epiphany-Leon/dsh-skill-forge 安装到 web profile,加到 package.json 的 dsh.profile.bundles 里,然后重启。
在你的 DSH profile 目录下安装插件:
# 在 DSH profile 目录中(例如 ~/.dsh/profiles/web)
pnpm add dsh-skill-forge@github:Epiphany-Leon/dsh-skill-forge
然后编辑 profile 的 package.json,在 bundle 列表中启用:
{
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-skill-forge"
]
}
}
}
重启 DSH,右侧边栏会出现 Skill Forge 面板。
git clone https://github.com/Epiphany-Leon/dsh-skill-forge.git
cd dsh-skill-forge
pnpm install
pnpm build
# 链接到本地 DSH profile
cd ~/.dsh/profiles/web
pnpm add dsh-skill-forge@link:/path/to/dsh-skill-forge
# 然后在 package.json 的 dsh.profile.bundles 中添加 "dsh-skill-forge"
# 启动 DSH Web
dsh web
# 打开浏览器访问 DSH,右侧边栏会出现 Skill Forge 面板
forge_skill 工具更详细的步骤指南见 docs/quickstart.md。
插件安装后可通过 DSH 设置界面调整配置,也可直接修改 profile 的 cordis.patch.yml。
| 配置项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
securityLevel | strict / normal / permissive / auto | normal | 安全等级,控制安全审计的严格程度 |
autoTrigger | boolean | true | 是否启用自动触发锻造 |
triggerThreshold | number (0.1-0.95) | 0.3 | 自动触发的置信度阈值 |
maxIterations | number (0-10) | 3 | 锻造最大迭代轮数 |
verificationPassThreshold | number (0.5-1.0) | 0.9 | 验证通过率阈值 |
skillCountAlertThreshold | number (10-100) | 30 | 技能数量提醒阈值 |
tokenBudgetRatio | number (0.05-0.3) | 0.1 | 技能注入的 token 预算占比 |
injectionMode | all / smart | all | 技能注入模式,all 为全部注册,smart 为智能动态注入 |
injectionTokenBudget | number | 0 | 智能注入每轮 token 预算上限(0 为自动计算) |
injectionRelevanceThreshold | number (0-1) | 0.2 | 智能注入最低相关度阈值 |
enableDreaming | boolean | false | 是否启用闲时锻造 |
dreamingSchedule | string | 0 3 * * 0 | 闲时锻造的 cron 表达式 |
customDangerousPatterns | string[] | [] | 自定义危险模式列表 |
workspaceRoot | string | '' | 技能库存储根目录,为空则使用 DSH 第一个 workspace |
完整配置说明见 docs/configuration.md。
┌──────────────────────────────────────────────────┐
│ DSH Web UI │
│ 右侧边栏 · 顶栏 · Toast · 设置面板 · 审核弹窗 │
└──────────┬───────────────────┬───────────────────┘
│ HTTP API │ 事件订阅
▼ ▼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Host 端(Cordis 插件) │
│ │
│ ┌──────────────┐ ┌─────────────────┐ ┌──────────────────────────┐ │
│ │ TriggerEngine│───▶│ ForgeOrchestrator│───▶│ SkillRegistry │ │
│ │ 触发引擎 │ │ 编排器 │ │ 技能库(版本化) │ │
│ └──────────────┘ └────────┬────────┘ └────────────┬─────────────┘ │
│ │ │ │
│ ┌─────────────────┼──────────────────┐ │ │
│ ▼ ▼ ▼ ▼ │
│ ┌─────────────┐ ┌──────────────┐ ┌──────────────┐ ┌────────────┐ │
│ │ Extractor │ │ Generator │ │ Verifier │ │ Auditor │ │
│ │ 提取 Agent │ │ 生成 Agent │ │ 验证 Agent │ │ 审计器 │ │
│ └─────────────┘ └──────┬───────┘ └──────┬───────┘ └────────────┘ │
│ │ │ │
│ ▼ │ │
│ ┌──────────────┐ │ │
│ │ Refiner │──────────┘ │
│ │ 迭代 Agent │ 验证反馈 → 增量改写 │
│ └──────────────┘ │
│ │
│ ┌─────────────────┐ ┌──────────────────┐ │
│ │ InjectionEngine │ │ SecurityAuditor │ │
│ │ 智能注入引擎 │ │ 安全审计器 │ │
│ └─────────────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘
对话事件 → [触发] → [提取] → [生成] → [验证] ──通过──▶ [审计] → [批准] → 入库激活
│ ▲
└──失败──▶[迭代]──┘
dsh-skill-forge/
├── src/
│ ├── index.ts # Host 入口(Cordis 插件主文件)
│ ├── types.ts # 全局类型定义
│ ├── global.d.ts # 全局类型声明
│ ├── prompts/ # Agent System Prompts
│ ├── services/ # Host 服务层(12 个模块)
│ │ ├── BaseService.ts # 服务基类
│ │ ├── ForgeOrchestrator.ts # 核心编排器
│ │ ├── TriggerEngine.ts # 增量式触发引擎
│ │ ├── SkillRegistry.ts # 技能库管理(版本化)
│ │ ├── InjectionEngine.ts # 智能注入引擎
│ │ ├── SecurityAuditor.ts # 安全审计
│ │ ├── SkillForgeService.ts # 对外服务 + HTTP 路由
│ │ ├── DarwinOptimizer.ts # 达尔文模式(爬山进化)
│ │ ├── TaotieFusion.ts # 饕餮模式(技能融合)
│ │ ├── CoEvoOrchestrator.ts # CoEvo 共进化模式
│ │ ├── DreamingEngine.ts # Dreaming 闲时锻造
│ │ └── SkillOrchestrator.ts # 技能编排器
│ ├── agents/ # LLM Agent(6 个角色)
│ │ ├── BaseAgent.ts
│ │ ├── ExtractorAgent.ts
│ │ ├── GeneratorAgent.ts
│ │ ├── VerifierAgent.ts
│ │ ├── RefinerAgent.ts
│ │ └── AdversarialTestGenerator.ts
│ └── client/ # 浏览器端 React 组件(15+ 组件)
│ ├── index.tsx # Client 入口
│ ├── components/ # UI 组件
│ ├── api.ts # API 客户端
│ ├── toast-store.ts # Toast 状态管理
│ └── style-inject.ts # CSS 注入
├── docs/ # 文档
│ ├── quickstart.md # 快速上手
│ ├── configuration.md # 配置参考
│ └── faq.md # 常见问题
├── cordis.patch.yml # DSH 插件配置层
├── tsdown.config.ts # 构建配置
├── CHANGELOG.md # 变更日志
├── STATUS.md # 项目进度记录
├── CONTRIBUTING.md # 贡献指南
├── package.json
└── README.zh.md / README.md
自动触发:开启 autoTrigger 后,系统会监听每轮对话的结束事件,自动评估是否满足锻造条件。置信度超过阈值时弹出锻造建议,用户可选择确认或忽略。
手动触发:在对话中直接告诉 Agent「把这个方法存成技能」,Agent 会调用 forge_skill 工具启动锻造流程。也可通过右侧边栏的「锻造当前对话」按钮手动触发。
批量锻造:在技能库面板选择「闲时锻造」,系统会在配置的时间段(默认每周日凌晨 3 点)扫描历史对话,批量提取可锻造的模式。
锻造完成后进入待审核状态,审核弹窗会展示:
确认无误后点击批准,技能进入激活状态并立即生效。驳回时可选择预设原因或填写自定义理由,系统会将驳回原因记录到锻造历史中。
技能库面板支持:
将 injectionMode 设为 smart 即启用智能注入模式。系统会在每轮对话开始前,基于用户最新消息计算所有激活技能的相关度评分,按 token 预算从高到低依次注入,直到预算用尽。
评分维度与权重:
| 维度 | 权重 | 说明 |
|---|---|---|
| 关键词匹配 | 40% | 技能内容与用户消息的词汇重合度 |
| 验证得分 | 30% | 最近一次验证的综合得分 |
| 使用频率 | 10% | 历史使用次数的归一化值 |
| 新鲜度 | 10% | 最近使用时间的衰减值 |
| 反馈得分 | 10% | 显式 + 隐式反馈的归一化得分 |
完整 FAQ 见 docs/faq.md。
欢迎贡献代码、文档或反馈。
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)# 克隆仓库
git clone https://github.com/Epiphany-Leon/dsh-skill-forge.git
cd dsh-skill-forge
# 安装依赖
pnpm install
# 构建
pnpm build
# 类型检查
pnpm typecheck
# 安装到本地 DSH profile 进行测试
dsh plugin --profile web add .
本项目站在巨人的肩膀上,以下项目和研究提供了重要的灵感和方法论参考。
注:本项目与上述项目均无官方关联,鸣谢仅表示灵感和方法论上的参考。所有引用的项目版权归其各自作者所有。
MIT © Epiphany-Leon