前言¶
DeepSeek Harness(DSH)在處理重複問題時,模型會重新推導:重讀上下文、重試錯誤、重組答案。這些 token 花費相同,但成果留在對話裏,下次還得重來。Skill Forge 做的事是:在對話結束時,把一個已經解決的流程壓縮成一個技能文件。之後 DSH 的技能目錄會在相關請求上命中它,模型加載幾十行指令,而不是重新思考幾百行過程。
它是什麼¶
dsh-skill-forge 是 DeepSeek Harness 的一個插件,維護者是 chaonimadesazhi。它提供 4 個模型工具和一個 Web GUI 面板(側邊欄「技能鍛造爐」)。技能文件寫入 ~/.dsh/skills/<name>/SKILL.md,這是 DSH 官方 skill 目錄,任何支持 skill 的 preset 都能用。
核心功能¶
插件提供兩條使用路徑:
路徑 1:讓 Agent 自己沉澱(零配置)¶
對模型說一句自然語言即可,它會調用工具鏈:
把剛纔這套 ffmpeg 排錯流程存成 skill
模型依次調用以下工具:
| 工具 | 作用 |
| skill_forge_context | 取當前會話(或指定會話)最近 N 輪的有界摘要,默認 10 輪 / 16000 字符,超長保留最新尾部 |
| skill_forge_save | 寫 ~/.dsh/skills/<name>/SKILL.md;同名默認拒絕,覆蓋時留 .bak |
| skill_forge_list | 列出本插件寫過的技能(含路徑、大小、時間) |
| skill_forge_delete | 移入 .trash 可恢復;只允許刪本插件寫的技能 |
寫入後技能目錄會熱刷新,本會話內即可被 skill 工具加載。
路徑 2:在面板裏手動鍛造(Web GUI)¶
側邊欄底部、任務看板下方有一個圖標,點開後是兩頁籤:
- 技能庫 — 搜索 / 點行預覽 / 刪除(移入
.trash)。預覽支持 Markdown 渲染與「原文」切換。 - 鍛造 — 選一個最近會話,或直接粘貼文本;可留空名稱/描述讓 AI 生成;「AI 提煉」產出草稿 → 人工確認 → 保存。
AI 提煉需要宿主同時具備 llm 與 agentDefaultModel 服務;不可用時接口返回 503 llm-unavailable,面板會提示改走路徑 1,或手動填寫草稿直接保存。
安裝¶
方式 A:從 npm¶
dsh plugin --profile web add dsh-skill-forge
方式 B:從 GitHub 本地安裝¶
git clone https://github.com/chaonimadesazhi/dsh-skill-forge.git
dsh plugin --profile web add link:./dsh-skill-forge
方式 C:桌面客戶端¶
桌面端的 desktop profile 由 Electron 應用獨佔管理,CLI 會拒絕寫入。請用桌面端界面:設置 → 插件 → 安裝本地目錄,指向克隆下來的目錄。
安裝後重啓 DSH;側邊欄出現「技能鍛造爐」即成功。若沒有出現,檢查 dsh.client 是否被 profile 的 bundle 列表收錄。
配置¶
在 profile 的 cordis.patch.yml 裏改 skill-forge 行:
- id: skill-forge
name: dsh-skill-forge
config:
maxCaptureChars: 20000 # 面板「AI 提煉」單次最多吞多少字符上下文
toolCaptureChars: 16000 # skill_forge_context 默認返回上限
生成的技能長什麼樣¶
---
name: eac-ffmpeg-path-fix
description: "修復 EAC 渲染任務因 ffmpeg 不在 PATH 而報 ffmpeg not found 的失敗。"
whenToUse: "EAC 任務提交或渲染失敗且日誌出現 ffmpeg not found"
metadata:
forge: "skill-forge"
version: 1
---
## 何時使用
...
## 執行步驟
...
## 驗收清單
...
## 反例
...
metadata.forge 是本插件的所有權標記:skill_forge_list 默認只列帶這個標記的技能,skill_forge_delete 也只肯刪帶這個標記的技能 —— 不會動你手寫或別的插件裝的技能。
安全邊界¶
- HTTP 路由僅接受 loopback + same-origin 請求,跨站/局域網一律 403;請求體上限 1 MiB。
- 只寫
~/.dsh/skills,不碰 DSH 安裝目錄、不改 profile 的package.json/cordis.patch.yml。 - 不向 session log 追加事件;會話內容通過
sessionQuery只讀獲取。 - 提煉過程不落盤,只有你按下「保存」才寫文件。覆蓋前會二次確認並保留
.bak。
已知限制¶
- 技能目錄熱刷新依賴 DSH 的文件監聽,通常即時,但不承諾「秒級一定命中」。
- 「AI 提煉」依賴宿主默認模型可用;無模型時只能用路徑 1 或手動草稿。
- 技能名必須是 kebab-case(小寫字母/數字/連字符),這是 DSH 官方 skill 語法。
- 只管理
~/.dsh/skills,不支持項目級.dsh/skills。 - 面板按 880px 最大寬度居中,超寬窗口下兩側留白較多。
開發與自檢¶
倉庫是純 ESM、無構建、無運行時依賴(只用 node: 內置模塊 + 瀏覽器側 react)。
node --check index.js
node --check client.js
適用場景與注意¶
適合經常遇到重複問題的場景,如排錯流程、配置模板、檢查清單等。安裝前應檢查源碼與許可證。插件以當前 dsh 進程權限運行,注意不要與手寫技能衝突。技能目錄熱刷新依賴 DSH 的文件監聽,通常即時,但不承諾「秒級一定命中」。
小結¶
Skill Forge 把對話沉澱成可複用的 SKILL.md,讓下一次相似問題直接命中技能,而不是重新推一遍。它通過 Agent 工具鏈或 Web GUI 提供兩種沉澱方式,生成的技能文件遵循 DSH 官方語法,並帶有所有權標記,確保不會誤刪其他技能。