dsh-self-evolution:面向 DeepSeek Harness 的基準驅動自我進化插件

前言

在 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_run
  • evolution_evaluate
  • evolution_status
  • evolution_rollback

核心功能

下面按能力邊界介紹。

  • 在凍結的 Benchmark 上迭代 Agent Profile。
  • 每次改進必須嚴格優於當前版本纔會被接受,否則從已驗證的快照精確回滾;接受規則不使用 >=,平分會回滾。
  • 宿主代碼執行確定性策略,包括 Benchmark 凍結哈希、Case × Run 矩陣、嚴格接受門檻、單調版本號與快照驗證。
  • 使用 Target、Evaluator、Optimizer 三類隔離角色;Optimizer 使用 { allow: [] } 全工具隔離。
  • 私有 rubric 不進入 Target / Optimizer 上下文;公開與私有產物分目錄落盤。
  • 變更防護包括候選文件白名單、路徑穿越與符號鏈接防護、單 Profile 互斥鎖、外部改動檢測。
  • 每個子 Agent 有獨立 DeepSeek Session ID,Scoreboard 與運行事件日誌可用於覆盤。

安裝與啓用

先確認前置條件:

  1. 已有初始化的 DeepSeek Harness profile。
  2. dsh CLI 與 pnpm 在 PATH 上。
  3. Node 滿足 >=22。
  4. Benchmark 必須聲明 frozen: true。
  5. 生產環境請把 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
羽毛球分组比赛记分
小程序二维码

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

小夜