前言¶
在 DeepSeek Harness(DSH)裏跑智能體時,同一類任務往往會在每個新會話裏重新摸索一遍:命令順序、項目約定、踩過的坑。Harness 本身會掃描技能目錄並在合適時機加載 SKILL.md,但「誰寫、怎麼改、無人值守時會不會亂改」並沒有默認答案。社區裏 jianghuife/dsh-self-evolve 做過概念驗證;維護者 Kosello 的 Kosello/dsh-self-evolve 將其移植到 DSH 0.2.1-rc.2,補上安全護欄,並把回合結束後的自動回顧半環接進插件。下面介紹它是什麼、能做什麼,以及如何安裝與配置。
這是什麼¶
dsh-self-evolve 是 DSH 的「記憶」類插件:讓智能體把已驗證的流程寫成 Harness 已會掃描目錄下的 SKILL.md,後續會話按技能執行,而不是反覆探索;同時提供讀寫守衛、預算與可選審批,適配無人值守的自改進循環。
- 維護者:Kosello
- 上游:Fork 自
jianghuife/dsh-self-evolve(MIT),保留上游版權聲明 - 當前狀態(README):版本
0.4.0,106 項測試,針對 DSH0.2.1-rc.2做類型檢查;未發佈到 npm,需從 GitHub 或本地構建安裝 - 社區目錄頁:skillhub.cn/plugins/Kosello/dsh-self-evolve(獨立站點,與 DeepSeek / 幻方無官方從屬關係)
插件在 profile 中激活爲 self-evolve 行,向模型增加 skill_manage 工具,並向人類提供 /skills 命令。
核心功能¶
skill_manage 與技能範圍¶
模型通過 skill_manage 管理程序性記憶,支持的操作包括:list、create、patch、edit、delete(歸檔,非硬刪)、write_file、remove_file、pin、unpin。
技能落在兩處:
- 用戶級:
~/.dsh/skills - 項目級:
<project>/.dsh/skills
另有扁平的 <name>.md 技能形態。創建時可指定 scope: "user" | "project"。
讀寫與安全護欄¶
| 機制 | 說明 |
|---|---|
| Read before write | 默認開啓:技能須先用 skill 工具加載後,才能 patch、edit、delete 或 pin |
| Duplicate refusal | create 拒絕近似重複,並提示應 patch 的已有技能名 |
| 憑證與 lint | 攔截憑證形態文本;對過大正文、事故日誌形態、引用發散、破壞性 shell 慣用法給出警告 |
| Staged approvals | 可選 writeApproval:用 /skills pending 看 diff,用 approve / reject 結算 |
回合後回顧(Reviewer)¶
可選開啓:在回合結束後 fork 出獨立回顧子流程,通過 skill_manage 創建或 patch 技能,與主對話 transcript 隔離。默認配置裏 review.enabled 爲 true,但回顧會消耗 token,README 將其表述爲 opt-in 能力,可按需關閉。
觸發受計數器約束(如 turnInterval、toolCallThreshold);完整預算見 docs/configuration.md。
Jev 門控(可選)¶
review.gate 可爲 counters(默認)或 jev。啓用 Jev 時,可調用 TypeSafe Jev 在足夠把握時取消無意義的回顧;無法運行時退化爲 counters。門控爲 advisory,不能繞過權限、審批與寫入守衛。啓用 Jev 需環境變量 TYPESAFE_API_KEY;出站數據僅爲有界摘要(用戶消息、助手消息、工具次數、已加載技能名、回合索引),不含工具輸出。
Curator 與用量賬本¶
Curator 對僅由智能體 authored 的技能做機械老化:30 天 stale、90 天歸檔;pin 的技能豁免;從不硬刪。Usage ledger 記錄加載與 review-gate 決策,便於調參。
自改進循環(概覽)¶
turn ends ──▶ counters due? ──▶ (optional) Jev gate ──▶ fork reviewer
│
skill_manage ─┴─▶ ~/.dsh/skills/<name>/SKILL.md
│
next session ─┴─▶ skill catalog (progressive disclosure)
細節見倉庫 docs/review-loop.md。
環境與安裝¶
要求¶
- DeepSeek Harness
0.2.1-rc.2(README 中的測試目標;其他 0.2.x 可能可用) - Node.js 22.19 或更新
- 可選:僅在使用 Jev 門控時需要
TYPESAFE_API_KEY
從 GitHub 安裝¶
README 給出的命令如下(安裝後需重啓對應 profile):
dsh plugin --profile web add github:Kosello/dsh-self-evolve
本地 checkout 需先 npm ci 與 npm run build,再用 dsh plugin --profile web add "$PWD";手動接線、環境文件、驗證與卸載見 docs/installation.md。
配置¶
各項均可選;默認在「有用且安靜」之間取捨。在 profile 的 cordis.patch.yml 裏改 self-evolve 行的 config:
- id: self-evolve
config:
readBeforeWrite: true # default
writeApproval: false # set true to review every write
review:
enabled: true # the reviewer spends tokens; opt in
turnInterval: 10
toolCallThreshold: 15
gate: jev # counters (default) or jev
jev:
model: jev-latest
apiKeyEnv: TYPESAFE_API_KEY
confidentNo: 0.75
完整鍵說明見 docs/configuration.md。API 密鑰不應寫入 profile YAML,只寫環境變量名。
啓用 Jev 時,README 建議用獨立 env 文件並通過 systemd 注入(示例):
install -m 600 /dev/null ~/.dsh/typesafe.env
printf 'TYPESAFE_API_KEY=%s\n' "$YOUR_KEY" >> ~/.dsh/typesafe.env
mkdir -p ~/.config/systemd/user/deepseek-harness.service.d
printf '[Service]\nEnvironmentFile=%%h/.dsh/typesafe.env\n' \
> ~/.config/systemd/user/deepseek-harness.service.d/typesafe.conf
systemctl --user daemon-reload
systemctl --user restart deepseek-harness.service
典型用法¶
模型側:skill_manage¶
| Action | Purpose |
|---|---|
list |
兩個 scope 下的技能、用量與佈局 |
create |
新建技能;scope: "user" \| "project" |
patch |
在 SKILL.md 內做精確文本替換(首選更新方式) |
edit |
整體替換 body / description |
delete |
歸檔 |
write_file / remove_file |
技能目錄下的附屬文件 |
pin / unpin |
免於 Curator 老化 |
人類側:/skills¶
/skills pending | diff <id> | approve <id|all> | reject <id|all>
/skills approval on|off
/skills review on|off|now
可復現示例見 docs/usage.md。
適用場景與注意¶
適合誰: 需要把「已經跑通的一整套步驟」沉澱爲 DSH 技能、並在後續會話自動遵循的開發者;希望在自改進 loop 裏仍保留 read-before-write、重複拒絕、憑證掃描和可選寫審批的團隊。
務必知曉:
- 插件以當前 DSH 進程權限運行;安裝前應閱讀源碼與 MIT 許可證。
- 回顧子智能體繼承父級工具集,激活後範圍收窄爲
skill+skill_manage,但 DSH 無 per-activation 工具 過濾器,這是縱深防禦而非沙箱;審查不可信對話時建議writeApproval: true。 - 回顧子流程使用父會話同一模型,成本由 counters、cooldown 與會話上限約束。
- 本插件不是通用記憶存儲:持久事實應交給 profile 裏組合的其他記憶層(例如 MCP memory server)。
- 構建與測試目標爲 DSH
0.2.1-rc.2;插件 API 仍較新,可能變動。回顧依賴subagent服務與 provider(默認fork)。
威脅模型與 outbound 說明見 docs/security.md。
結尾¶
dsh-self-evolve 把「智能體寫程序性記憶」收進 Harness 已有的技能掃描路徑,並用 skill_manage、可選寫審批、回合後回顧與 Jev 門控、Curator 老化把無人值守 loop 需要的護欄補齊。DSH 生態強調「一切皆插件」;若你要在 web profile 上試裝,可從目錄頁瞭解分類與簡介,並按 README 安裝與配置。