前言¶
在 DeepSeek Harness(DSH)這類“一切皆插件”的智能體開發體系中,調整 Agent Profile 後通常要回答兩個問題:這次改動是否真的更好,壞掉時能否退回到已驗證版本。dsh-self-evolution 把這兩個問題放進同一套流程:它讓 Agent Profile 在凍結的 Benchmark 上自我迭代,只有候選版本嚴格優於當前版本時才接受,否則從已驗證快照精確回滾。
這是什麼¶
dsh-self-evolution 是 Lhy723 維護的 MIT 許可插件,面向 DeepSeek Harness / Cordis。它原生調用 ctx.subagents.start(...) 與 ctx.tools.register(defineTool(...)),作爲 Cordis Service 暴露爲 ctx.evolution,並註冊以下模型工具:
evolution_runevolution_evaluateevolution_statusevolution_rollback
核心功能¶
下面按能力邊界介紹。
- 在凍結的 Benchmark 上迭代 Agent Profile。
- 每次改進必須嚴格優於當前版本纔會被接受,否則從已驗證的快照精確回滾;接受規則不使用
>=,平分會回滾。 - 宿主代碼執行確定性策略,包括 Benchmark 凍結哈希、
Case × Run矩陣、嚴格接受門檻、單調版本號與快照驗證。 - 使用 Target、Evaluator、Optimizer 三類隔離角色;Optimizer 使用
{ allow: [] }全工具隔離。 - 私有
rubric不進入 Target / Optimizer 上下文;公開與私有產物分目錄落盤。 - 變更防護包括候選文件白名單、路徑穿越與符號鏈接防護、單 Profile 互斥鎖、外部改動檢測。
- 每個子 Agent 有獨立 DeepSeek Session ID,Scoreboard 與運行事件日誌可用於覆盤。
安裝與啓用¶
先確認前置條件:
- 已有初始化的 DeepSeek Harness profile。
dshCLI 與pnpm在 PATH 上。- Node 滿足
>=22。 - Benchmark 必須聲明
frozen: true。 - 生產環境請把 Benchmark(尤其
private rubric)放在 Target workspace 之外;默認allowBenchmarkInsideWorkspace: false會拒絕 workspace 內的 Benchmark。
在目標 profile 安裝:
dsh plugin --profile web add dsh-self-evolution
安裝後,查看當前 profile 配置:
dsh --profile web --dump-config
經過上面的步驟,插件會以 ctx.evolution 服務註冊,並在會話中提供四個 evolution_* 模型工具。
典型用法¶
下面先做評測,再做一輪進化,然後查詢狀態與回滾。
建立評測¶
調用 evolution_evaluate:
evolution_evaluate(profile_dir, benchmark_dir, runs_per_case)
這裏的 benchmark_dir 應指向一個聲明瞭 frozen: true 的 Benchmark 目錄。
啓動自我進化¶
調用 evolution_run:
evolution_run(profile_dir, benchmark_dir, rounds, runs_per_case)
可選參數 target_score 表示目標分:
evolution_run(profile_dir, benchmark_dir, rounds, runs_per_case, target_score)
查詢與回滾¶
調用 evolution_status 查詢當前版本、實際哈希、漂移、下一版本、Benchmark 引用與快照。
調用 evolution_rollback 恢復到某個已驗證的版本快照。
適用場景與注意¶
適合已經維護 Agent Profile,並希望把修改放到固定 Benchmark 上驗證的 DSH 使用者。需要注意:
- 插件以當前
dsh進程權限運行;安裝前應檢查源碼與許可證。 Optimizer默認被限制爲{ allow: [] }全工具隔離,只能通過受限文件操作提候選。- 默認禁止
Optimizer修改provider與model;設置allowModelRouteMutation: true纔開放。 - 從 GitHub 安裝時直接提交了預構建的
dist,不需要prepare構建步驟,也不需要配置allowBuilds。
相關鏈接¶
- 插件目錄頁:
https://www.skillhub.cn/plugins/Lhy723/dsh-self-evolution - GitHub 源碼:
https://github.com/Lhy723/dsh-self-evolution