技能鍛造爐:把對話沉澱成可複用的 SKILL.md

前言

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 官方語法,並帶有所有權標記,確保不會誤刪其他技能。

目錄頁 | GitHub

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜