william-jin-cmu/dsh-evolve
自进化插件:代理在会话中根据对话内容自行增加或削减能力——evolve_add可热挂载并持久化Cordis插件(下一步工具即可见),evolve_remove支持可逆卸载,重启后自动恢复。
Project Overview项目介绍
dsh-evolve is a native DeepSeek Harness plugin that enables in-session self-evolution for agents. It leverages DSH’s real-time tool list recalculation per step and Cordis 4’s rollbackable fiber effects to make new capabilities available immediately after mounting. Agents can detect recurring user needs that base capabilities cannot handle well, then write, persist, and mount full Cordis plugins to themselves. It works with all standard DSH profiles and does not require custom modifications to core DSH code. Plugins can be fully removed when no longer needed, and all persisted evolutions are automatically restored when DSH restarts.
Evolution is not limited to adding new tools. This plugin enables agents to modify their core behavior through system prompt sections, event hooks, and timers, all added via a single evolve_add call. Three core functions are exposed: evolve_add creates and persists a plugin to the local store and mounts it, evolve_remove fully unloads a plugin and cleans up all resources, and evolve_list lists all existing evolutions with their status. A pre-injected system prompt guides agents to add capabilities only when they are truly needed to avoid unnecessary bloat to the agent’s capability set.
This plugin is distributed as a standard DSH Profile Bundle. To install, you first build the plugin with scripts/build.sh, which requires DSH to be available in your PATH or the DSH_CHECKOUT environment variable pointing to your DSH checkout root, then add it to your DSH profile with dsh plugin --profile web add . Alternatively, you can install it via the DSH plugin registry, but the two installation methods are mutually exclusive and should not be used together. The default storage directory for evolved plugins is ~/.dsh/evolve, and evolved code runs without sandboxing, with the same permissions as the main DSH process.
dsh-evolve 是专为 DeepSeek Harness 开发的原生插件,支持代理在对话会话中实现自我进化。当代理发现用户反复提出的需求超出自身现有能力范围时,可以当场编写 Cordis 插件源码并热挂载到自身,新增的能力在下一个对话步骤就能直接调用。不需要时可完整卸载,重启后已挂载的进化插件会自动恢复。
进化能力不仅限于新增工具,还可以直接修改代理的行为逻辑。插件本身提供三个核心工具:evolve_add 用于将插件源码持久化存储到本地并热挂载,同名重复调用会替换旧版本;evolve_remove 用于完整卸载插件并清理所有资源;evolve_list 用于列出所有已添加的进化项。插件还预设了系统提示规则,引导代理只在必要时新增能力。
本插件是标准的 DSH Profile Bundle,可通过构建后添加到用户配置文件安装,也可通过 DSH 插件注册表安装,两种方式互斥不能同时挂载。存储目录默认为 ~/.dsh/evolve,启动时默认自动恢复所有已添加的进化。插件运行在无沙箱环境,拥有和主 DSH 进程相同权限,适合可信自用场景。
请帮我安装这个 DSH 插件。安装前先完成【兼容性检查 + 安全性检查】,检查通过再动手。
插件:dsh-evolve(william-jin-cmu/dsh-evolve)
仓库:https://github.com/william-jin-cmu/dsh-evolve
本站详情页:https://www.yhbd.top/plugins/william-jin-cmu-dsh-evolve/
本站登记:类型 plugin · 归类 原生 DSH 插件 · 许可证未声明 · ⭐ 11 · 最近提交 2026-08-13 · 主语言 TypeScript
按下面顺序执行,每步先把结论告诉我,再进入下一步:
【1 兼容性检查】
① 我这边:DSH 版本、Node 版本、操作系统、当前 profile(web / desktop)。
② 读它的 README、package.json、插件 manifest,列出它要求的 DSH 版本 / Node 版本 / 操作系统 / 外部依赖 / 需要另外先装的运行时。
③ 逐条比对,结论只写「满足 / 不满足 / 未知」三种;不满足的给出可行替代方案。
④ 检查是否和我已装的插件冲突:命令名重复、skill / tool 重名、端口占用、重复注册的 MCP server。
【2 安全性检查】
① 仓库可信度:和上面「本站登记」是否一致;star / fork 数、创建时间、最近提交,是否归档或长期停更。
② 安装脚本:逐行看 package.json 的 preinstall / install / postinstall,以及 install.sh、setup.ps1 之类脚本。出现 curl|bash、下载后直接执行、混淆代码、访问与插件功能无关的域名,立刻停下来告诉我,不要继续装。
③ 依赖:列出新增依赖,标出无人维护、或与知名包拼写近似的可疑包(typosquatting)。
④ 权限与副作用:它会读写哪些目录、访问哪些域名、需要哪些 DSH 权限(filesystem / network / shell / clipboard 等),以及怎么卸载和回滚。
⑤ 如果它要求 sudo / 管理员权限,或权限明显超出功能所需,先停下来问我。
【3 安装】
上面两步没有「不满足」和「高危项」时才执行;用官方推荐方式安装,不要自行提权。
【4 汇报】
用表格输出:检查项 / 结论 / 依据 / 是否需要我决策。拿不准的一律写「未知」并说明要我怎么确认——不要猜,也不要替我决定。
Send this message to DSH in your current session: it verifies compatibility and security first (answering met / not met / unknown item by item) and only installs once everything checks out — it will stop and ask you if it finds a high-risk item. The box scrolls; the copy is the full prompt. CLI install commands may not be accurate across systems, so DSH is the safer route.把上面这条消息直接发给当前会话里的 DSH:它会先核对兼容性与安全性(逐条给「满足 / 不满足 / 未知」),确认没问题再安装,有高危项会停下来问你。框内可滚动,复制到的是完整提示词;安装命令不一定准确,发给 DSH 更稳。
- No license declared - all rights reserved by default; ask the author before commercial use or redistribution未声明开源许可证 —— 默认「保留所有权利」,商用或再分发前先问作者
- 11 stars - an early-stage project星标 11,属于早期项目
DSH walks through these 9 checksDSH 会逐条核对这 9 项
Compatibility兼容性
- DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
- External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
- Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册
Security安全性
- Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
- Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
- curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
- Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
- Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
- Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式
Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。
Or use CLI install (for developers)或使用命令行安装(适合开发者)
CLI Install命令行安装
dsh plugin --profile web add github:william-jin-cmu/dsh-evolve
把 william-jin-cmu/dsh-evolve 加入你的 DSH 配置(web profile)即可启用。
READMEREADME
dsh-evolve

自进化 harness 插件:agent 在 session 内随对话给自己长出/剪掉能力。用户的表述暴露出一个缺口(反复要查的表、天天要算的换算、老要看的端点),agent 现场写一个 cordis 插件挂载给自己——新工具在下一个 step就可调用;不再需要时可逆卸载;重启自动恢复。
进化不限于工具。evolution 是完整的 cordis 插件:常驻 system prompt 规则、agent/step / agent/settled 事件钩子、定时器主动唤醒 agent——改行为、而不只是加能力的进化,同样一次 evolve_add 完成(三条非工具实录)。
依据的机制:dsh 的工具列表每个 step 都从当前挂载的插件实时重算(无 session 级快照),cordis 4 的 fiber 具有可回滚 effect——挂载即生效,dispose 即净。
工具
evolve_add(name, source, description?, config?)— 把一段纯 ESM cordis 插件源码持久化到 evolve store(~/.dsh/evolve/<name>.mjs+ manifest),并热挂载。同名再次调用即替换(旧 fiber 先完整卸载)。evolve_remove(name, keepSource?)— 卸载 fiber(它注册的工具/监听/服务全部自动清理)、移出 manifest、删除源码。evolve_list()— 每个 evolution 的名称、fiber 状态、版本、用途。
另注册一段 system prompt(order 118)教模型进化姿态:会复用才长、过时就剪、长了剪了要告知用户;并附四条非工具进化的配方(常驻规则 → prompt section、每步自纠 → agent/step 钩子、事后自动化 → agent/settled 监听、主动性 → 定时器 + agent.send 唤醒)。
什么值得进化
不是所有事都配长一个工具——温度换算这种模型口算就对的,进化只是噪音。工具要挣到它的位置,得至少占一条模型裸答做不到的:
- 跨会话状态 — 随口记的账、喂药时间,下个会话还要接着用;
- 实时/外部数据 — 天气、汇率、你们的 git 仓库;
- 精确计算 — 日期边界、分类汇总、利息摊销,模型心算容易出错;
- 你的私有信息 — 家人的城市、家里的日子、项目的表,长进工具后零参数随口问。
还有第五条,它筛选的不是"值不值得进化",而是"该进化成什么形态":工具是 pull——模型得记得去调。凡是"不经过模型决策也必须发生"的需求(每次都要、自动发生、没人问也要来),做成工具就是错的姿态——该长的是 prompt section、事件钩子或定时器,见下面的非工具实录。
生活
| 你的日常表述 | agent 长出的工具 | 凭什么需要工具 |
|---|---|---|
| 「今天买菜花了 86,以后我随口说你就记着,月底我要问分类统计」 | expense_add / expense_stats:持久账本 |
跨会话状态:下个会话接着记、接着算 |
| 「我妈周六去杭州,要带伞吗?我经常帮家里人看天气」 | weather_city:降水概率+带伞建议,「妹妹」自动对应深圳 |
实时数据 + 私有别名 |
| 「帮我记下宝宝生日、结婚纪念日、我妈生日」 | family_* 三件套:日子固化在工具里 |
私有信息 + 精确日期计算 |
| 「供应商报价 12800 美元折人民币?天天要算」 | convert_currency:实时汇率、双数据源容错 |
实时数据 |
| 「房贷 120 万 30 年,提前还 10 万能省多少利息」 | 等额本息摊销表工具 | 精确计算(模型心算容易出错) |
工作
| 你的日常表述 | agent 长出的工具 | 凭什么需要工具 |
|---|---|---|
| 「每周五我都要汇总三个仓库大家这周的提交写周报」 | team_weekly_report:仓库清单长在工具里,按人/按仓库分组 |
私有数据源 + 多步聚合 |
| 「E4103 是什么错误来着?」(项目错误码表天天翻) | lookup_error_code:实时解析表文件 |
私有信息 |
| 「这批实验数据 A/B 组差异显著吗」(每周都问) | 显著性检验工具(t-test/卡方,出精确 p 值) | 精确计算 |
| 「staging 现在什么版本?」(每天问) | 包住团队 health 端点的状态工具 | 实时私有端点 |
以上带工具名的都不是设想——全部有下面的实录。
实证(未剪辑 E2E)
六条真实会话(dsh web + DeepSeek-V4-Flash,RPC 驱动,事件流原样提取)。重点看前两条:
Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →
liangmianya/dsh-synapse
alaliqing/claude-paper
acryldev/acryl
omdsh-dev/dsh-annotation
Anionex/dsh-turn-rewind
Tyan66666/billion-context-dsh
qkycir-123/dsh-run2skill