前言¶
在 DeepSeek Harness (DSH) 的插件生态中,智能体的记忆与技能管理是提升复用效率的关键。开发者通常需要从大量执行轨迹中手动提炼可复用的技能,这不仅耗时,还容易遗漏。dsh-skill-evolution 插件旨在解决这一问题,它通过事件驱动的机制,自动监控并结晶智能体在成功回合中的经验。
插件简介¶
dsh-skill-evolution 是一个 DeepSeek Harness (DSH) 插件,由维护者 VanadisGithub 开发。它的核心逻辑是:在智能体成功执行一个回合后,根据特定信号触发 LLM 审查,将可重用的工作流结晶为独立的技能。
核心能力¶
-
事件驱动结晶
插件监听turn/end事件,而非基于简单的频率计数。当满足条件时,触发 LLM 审查。 -
LLM 审查门控
审查 LLM 会判断是结晶新技能、合并到现有技能还是跳过。配合硬性不捕获列表,防止结晶环境依赖、临时错误等垃圾内容。 -
技能持续进化
新的经验会被合并进现有技能,版本号会更新。支持语义去重 (FOLD_INTO),即使通过不同工具序列重现了相同的经验,也能合并。 -
管理与持久化
插件在设置面板提供完整的管理 UI,可查看技能卡片、版本、调用次数等。技能持久存储在generated/目录下,重启后自动注册。
安装与配置¶
官方安装(推荐)¶
如果插件已发布至 npm,可使用 CLI 安装:
dsh plugin --profile web add dsh-skill-evolution
本地开发安装¶
- 克隆仓库:
git clone https://github.com/VanadisGithub/dsh-skill-evolution.git ~/Code/dsh-skill-evolution
- 修改
~/.dsh/profiles/web/package.json,添加依赖:
"dsh-skill-evolution": "link:/Users/<you>/Code/dsh-skill-evolution"
- 在
~/.dsh/profiles/web目录下运行pnpm install。
手动挂载(调试用)¶
将插件文件放入指定目录,并修改 ~/.dsh/cordis.patch.yml:
- insert:
- id: 'skill-evolution'
name: file:///Users/<you>/.dsh/plugins/skill-evolution/plugin.mjs?v=1
config:
minToolCalls: 5
minPatternOccurrences: 3
autoRegister: true
llmProvider: deepseek
llmModel: deepseek-chat
注意:以上三种方式请选择其一,重复挂载会导致双重实例。
工作原理¶
信号检测¶
插件在回合结束时检查三种信号:
* complex:成功回合且工具调用次数 ≥ minToolCalls(默认 5)。
* recovered:回合成功,但包含失败步骤后恢复。
* repeated:相同的工具序列重复出现 ≥ minPatternOccurrences(默认 3)次,且成功率 ≥ minSuccessRate(默认 0.7)。
* 佐证门控:默认情况下,单一的 complex 信号会被拦截,直到出现 recovered 或 repeated 佐证。
审查与决策¶
审查 LLM 接收信号、意图和工具序列等信息,返回以下之一:
* SAVE:结晶新技能。
* FOLD_INTO:合并到现有技能(语义去重)。
* NOTHING_TO_SAVE:不保存(如环境依赖失败)。
输出格式¶
结晶的技能以 SKILL.md 格式存储,包含标题、使用场景、步骤、陷阱和验证方法。
设置与使用¶
安装后,在 DSH 的设置面板中会出现 “Skill Evolution” 部分。这里可以:
* 查看已结晶的技能卡片(包含价值评级、版本、调用次数)。
* 调整结晶和改进的系统提示词。
* 直接修改配置参数(如 minToolCalls、skillLanguage 等),设置中的修改会持久化并覆盖挂载配置。
注意事项¶
- 硬性不捕获列表:插件内置了不捕获列表,防止结晶如“工具 X 已损坏”等负面声明或环境依赖错误。
- 依赖限制:插件主机端仅依赖 Node.js 内置模块 (
node:),不引入外部依赖。 - 许可证:插件采用 MIT 许可证。
总结¶
dsh-skill-evolution 通过信号机制和 LLM 审查,实现了智能体技能的自动化提取与持续进化。它适合希望减少重复劳动、提升智能体复用率的开发者。完整文档与源码可参考 GitHub 仓库。