前言¶
DeepSeek Harness (DSH) 采用插件化架构,智能体的技能、工具封装、提示词和策略通常需要人工维护。dsh-auto-evolve 是一个自演化插件,它通过观察运行时信号,利用 LLM 提出改进方案,在沙盒中验证,最后仅应用通过验证的版本化变更,并支持自动回滚。
核心功能¶
插件运行在 DSH 进程上下文中,主要包含以下环节:
- 观察:监听
tools/result和agent/request-error信号,记录工具失败、重复调用无进展、请求错误等数据,当阈值触发时启动演化流程。 - 提议:基于基因组(技能、后处理器、提示词片段、策略)和观察数据,通过 LLM 生成变更候选。变更内容受到严格的 Zod 模式验证,拒绝不符合语法的生成。
- 验证:在沙盒中复现失败场景,对比基线和应用变更后的指标(完成率、工具调用成本等),只有表现出改进才允许通过。
- 应用与版本管理:验证通过的变更注册为技能或策略。插件维护一个版本化账本,记录每次变更的前后状态。
- 回滚:如果应用变更后出现回归,支持立即回滚到上一版本。回滚是第一级公民功能。
- 成本控制:限制单次循环和每日的预算上限,防止在验证阶段消耗过多 Token。
安装与启用¶
插件以 DSH Bundle 形式提供,无需手动编辑 cordis.yml。安装命令如下:
# 安装到 web 配置文件(默认 UI 配置)
dsh plugin --profile web add dsh-auto-evolve
# 安装到 TUI 配置文件
dsh plugin --profile tui add dsh-auto-evolve
本地开发或源码构建时:
git clone https://github.com/lispking/dsh-auto-evolve.git
cd dsh-auto-evolve
pnpm install
pnpm build
# 安装本地构建产物
dsh plugin --profile web add /absolute/path/to/dsh-auto-evolve
配置与模式¶
安装后,插件会自动加载默认配置。如需自定义,需覆盖配置文件中的行。注意:Patch 模式会替换整行配置,因此需要指定所有保留的字段。
配置文件路径示例:~/.dsh/profiles/web/cordis.patch.yml
- id: self-evolve
config:
mode: auto-apply # observe | propose | auto-apply
observation:
toolFailureThreshold: 3
repeatThreshold: 3
requestErrorThreshold: 3
windowMs: 300000
proposal:
maxProposalsPerTrigger: 1
maxEpisodesPerProposal: 5
maxPromptChars: 24000
maxTokens: 2000
budget:
maxCostPerCycle: 0 # 0 表示禁用单循环上限
dailyBudget: 0 # 0 表示禁用每日上限
validation:
maxTrialMs: 30000
maxToolCalls: 20
maxTrialSteps: 12
maxTrialTokens: 8000
演化模式¶
| 模式 | 行为 |
|---|---|
observe |
仅收集信号并触发阈值,不进行提议。默认模式。 |
propose |
达到阈值时生成候选变更并持久化,等待手动批准。 |
auto-apply |
运行完整闭环:观察 -> 提议 -> 验证 -> 应用。若出现回归会自动回滚。 |
操作工具¶
插件向智能体注册了以下工具,可用于检查状态或手动干预:
evolve_status:查看健康摘要,包括模式、代数、资产状态、账本/观察总数、收敛暂停状态等。evolve_candidates:列出等待验证或手动应用的候选变更。evolve_apply:手动批准并应用一个候选变更。evolve_rollback:回滚一个已应用的资产,将其恢复为候选状态。evolve_cycle:手动触发一次演化循环。
安全与注意事项¶
- 执行验证:变更是否生效取决于沙盒中的执行结果,而非 LLM 的自我声明。
- 词汇表限制:LLM 仅在预设的闭合词汇表(如
add/patch/retire)内生成内容,不会创造新的资产类型。 - 运行权限:插件以当前 DSH 进程的权限运行。在安装前,建议检查源码以确认其行为符合预期。
- 许可证:MIT。
总结¶
dsh-auto-evolve 解决了智能体资产维护中的反复调试问题,通过自动化闭环降低维护成本。它提供了从观察到应用的全链路能力,并通过沙盒和成本控制保障了稳定性。