它做什么
dsh-evolve-modes 在输入区放一个紧凑的工作流控制项,让你为当前这个任务组合 Agent 的工作方式。README 明确说这些不是互斥的「人格模式」——它们是四个独立的决策,每个任务都可以重新组合,而且当前组合始终显示在输入区旁:
正常 · 标准 · 关 · 进化 开
| 维度 | 选项 | 改变什么 |
|---|---|---|
| 工作状态 | 正常 · 计划 | 立即完成任务,或进入官方 DSH 计划工作流 |
| 思考策略 | 标准 · 第一性原理 · Grilling | 正常回答、显式梳理第一性原理,或通过分轮追问压力测试需求 |
| 质量门禁 | 关 · 对抗性审查 · 验收审查 | 不增加审查、由独立 Agent 寻找风险,或对照任务与已批准计划验收结果 |
| 自进化 | 关 · 开(Propose) | 分析已完成的会话,产出待人工审阅的规则提议 |
README 最关键的定位声明是:插件不 fork DeepSeek Harness、不复制 Agent loop、不修改核心代码。计划模式委托给官方 @deepseek-ai/dsh-plan-mode service,复用 DSH 自己的计划持久化与 exit_plan_mode 审批流程,而不是另实现一套计划系统。
以它做的事来说,依赖也出奇地轻:dependencies 只有 @deepseek-ai/schemastery 与 zod。十四个 peer 依赖(@deepseek-ai/cordis、dsh-agent、dsh-llm、dsh-session、dsh-tools、dsh-subagent、dsh-plan-mode、dsh-storage-domain 等)由宿主提供,dsh.client 注入八个 UI 包。
自进化循环,以及它的闸门为何重要
这是这个插件最需要仔细读的部分,因为「自进化 Agent」通常意味着比这里描述的东西更糟的形态。
默认是 Propose(提议)。插件分析已完成的 Agent 协作并产出候选规则;在你应用之前,没有任何东西会改变行为。
完成 3 次父 Agent 回复
↓
隔离的学习请求
↓
待审阅提议
├─ 应用 → 写入全局 learned instructions
└─ 忽略 → 不改变后续行为
| 设置 | 默认值 | 说明 |
|---|---|---|
| 自进化 | Propose |
新会话默认开启 |
| 学习批次 | 3 |
每累计 3 次父 Agent 回复启动一次学习;可调 1–100 |
| 待审阅提议上限 | 100 |
可调 1–1000 |
| 学习范围 | 已开启自进化的会话 | 不配置项目范围;在某会话开启即纳入 |
| 规则作用域 | 全局 | 已应用规则跨会话生效,不绑定目录 |
学习请求是刻意隔离的。 按 README,它使用单一的 learning persona/system prompt,把当前批次作为一条结构化 JSON 用户消息传入,并且:不继承父会话历史、不继承父 Agent 的工作型上下文、不创建学习子 Agent、不携带工具、不加载源会话工作目录中的 AGENTS.md 或 CLAUDE.md。
证据必须逐字来自用户消息。 README 明确排除把助手的推断、一次性任务细节、实现结果、沉默或「没有再次提到」单独作为规则证据。每个源会话最多取最近 100 条学习消息,助手消息只作上下文,超过 2000 字符时保留开头 1000 与结尾 1000,中间以 ... 代替。
插件从不写你的项目文件。 已批准规则写入插件自己存储中带标记的 system prompt section,并在 Trajectory 中投影同一内容;README 明确声明它不写入 AGENTS.md、CLAUDE.md 或任何项目文件。学习失败会记录在设置页,未完成的批次会保留以便重试,且失败绝不阻断父 Agent 的正常回复。
质量门禁、思考策略与工具策略
对抗性审查在父回复完成后启动独立审查 Agent,检查未满足要求、缺少依据的结论、遗漏、回归、反例与安全风险。它只报告证据、缺口与后续行动——README 声明它不会静默改写、重试或修复父回复。
验收审查对照任务、候选答案以及存在时的已批准计划进行验收。报告使用固定分区——Met、Gap、Unverified、Evidence、Concrete follow-up——并显示在对应助手回复下方。每次质量审查增加一次模型调用与相应延迟,并且不会执行你项目的 test、lint 或 build 命令。
第一性原理把目标、事实、假设、约束、推导与验证写入 request/header.system,Trajectory 保留同一段指令作为可检查证据;关闭后只影响后续请求,历史证据不会被删除。Grilling 先建立决策及其依赖关系,每轮只提出前置条件已明确的问题,使用编号列表并附推荐答案,会自行调查可发现的事实,并在所有分支明确后等待用户确认、确认前不实施。
工具策略是工作流策略,不是沙箱。 计划与质量审查通过 DSH 的 tools/pre-execute pipeline 控制工具;默认允许 read、glob、grep、read_image、已配置的平台 shell 与 exit_plan_mode。README 明确说明这不是操作系统级隔离。
要求与安装
-
Node
^22.19.0 || >=24.0.0。 -
DSH 版本落在声明区间
^0.1.1-rc.2 || ^0.1.2-rc.1。这条区间即本条目记录的dshTarget,它在清单的peerDependencies与 README 的兼容表里都是机器可读的——这也是本条目为 L3 的原因。 -
装进 web profile:
dsh plugin --profile web add @graysilver/dsh-evolve-modes@0.4.1没有全局 CLI 时用
npx -y @deepseek-ai/dsh plugin --profile web add @graysilver/dsh-evolve-modes@0.4.1。README 建议固定精确版本而不是依赖浮动标签,并建议同时固定 Harness 版本。支持按 revision 从 Git 安装用于审计或开发,README 同时警告 Git 安装包会执行安装期代码——只安装你信任的 revision。 -
重启 web profile。 控件出现在输入区工具旁;顶层 自进化模式 设置页管理全局规则。
-
已发布清单中没有安装期生命周期脚本——
prepublishOnly只在发布时运行,不在安装时运行。 -
插件需要的宿主服务: 质量门禁需要 DSH 的 fork/subagent 能力,自进化需要
llmservice,计划模式需要官方planModeservice 与工具注册表,插件整体需要支持 Web plugin loader、client UI slots、storage domain 与 Trajectory 的 Harness 版本。 -
若目标 profile 以别的名字注册 shell 工具,在 bundle 中覆盖:
- id: dsh-evolve-modes config: shellTool: bash -
命令可从输入区或命令 API 使用:
/evolve-mode,以及working execute|plan、reasoning standard|first-principles|grilling、quality off|general-review|acceptance-review、evolution off|propose|batch-size <n>|max-pending-proposals <n>、review <id>与reviews。旧别名normal、first-principles、adversarial-review仍可迁移:把旧单一模式映射到新维度,并保留当前自进化设置。
网络与数据
状态存在插件自己的 storage domain,可跨服务重启与会话重载继续使用。0.3.0 会自动迁移旧版本的会话设置、提议、已批准规则、备份与学习记录,且不会覆盖已存在的新名称数据。
学习会把会话内容发给模型。 这是机制本身,不是副作用:插件从你已纳入的会话中抽取近期用户消息,作为结构化批次发给所配置的模型,再存下产出的提议。如果某段对话不应该被模型总结,就不要在该会话开启自进化——纳入范围就是 README 描述的同意边界。
备份是自动的且可恢复。 每次变更前都会自动创建备份,设置页可从中恢复。
除插件自身的模型调用所需之外,未记录遥测。 本条目为 security: unverified,没有第三方扫描或独立审计记录。
已知限制
- 逐轮内嵌审查只在
0.1.1-rc.2上渲染。 Harness0.1.2-rc.1移除了旧的逐轮尾部与命令视图 slot;插件通过能力检测跳过这两个扩展点,因此审查命令与持久化记录仍可用,但逐轮内嵌展示不会出现。 - 支持窗口按设计就很窄。
0.4.1覆盖0.1.1-rc.2与0.1.2-rc.1;0.3.1是支持0.1.0-rc.6的最后一个版本,0.3.0及更早版本已不再支持。插件与 Harness 都要固定版本。 - 质量审查每个完成的父回复消耗一次模型调用并叠加延迟,没有免费的开关档位。
- 审查者是报告者,不是修复者。 两个门禁都不会跑你的测试,也不会修父回复;后续行动清单是留给你的。
- 工具策略不是隔离。 允许清单由工作流 pipeline 执行,而不是由操作系统执行。
- 自进化是被刻意限界的。 批次大小、待审阅上限、消息窗口与 2000 字符截断,都意味着学习输入是会话的采样,而不是完整记录。
- Grilling 是改编的第三方作品,源自 Matt Pocock 的 Grilling skill,署名见
THIRD_PARTY_NOTICES.md。 - Star(198)代表关注度,不代表审查。 本站没有条目声称 L4/L5,本条目也不表示已做过冒烟安装。
何时用 / 何时不用
适合你想在不引入整套 Agent 框架的前提下,对 Agent 的工作方式做按任务控制:高影响决策走计划审批、交付物配一个独立审查者、当风险在需求本身时用第一性原理或 Grilling、以及想要一个只提议的学习循环来发现你反复出现的偏好却不擅自行动。README 自己的搭配表是不错的起点——例如高影响决策用 计划 · 第一性原理 · 关,想要交付被检查时用 正常 · 标准 · 验收审查。
不要指望它自动变好——设计上刻意拒绝在没有人工的情况下应用规则,这既是它的特性,也是它不会「自己变强」的原因。不要把它当测试套件:质量门禁增加的是第二次有主张的模型调用,不是覆盖率。如果你在 Harness 0.1.0-rc.6 上、或者依赖浮动标签,请先固定版本——插件自己的兼容表就是契约。
FAQ
它会修改我的 AGENTS.md 吗?
不会。README 声明插件只使用自己的持久化存储,不写入 AGENTS.md、CLAUDE.md 或任何项目文件。已批准规则位于插件存储中带标记的 system prompt section,并在 Trajectory 中投影。
自进化会自动改变 Agent 吗?
默认不会。默认是 Propose:它产出候选规则,等你应用或忽略。被忽略的提议不改变任何东西。
学习请求实际能看到什么?
只有一个隔离的批次。按 README,它不继承父会话历史与工作型上下文,不创建子 Agent,不携带工具,也不加载源会话的 AGENTS.md 或 CLAUDE.md。每个已纳入会话最多读取最近 100 条学习消息,保留每轮完整用户消息与该轮最后一个可见助手消息,长助手消息截断为 1000 + 1000 字符。
审查门禁会跑我的测试吗?
不会——README 明确说明。它们增加一次基于模型的审查,输出 Met / Gap / Unverified / Evidence / Concrete follow-up;执行项目自己的 test、lint 或 build 由你决定。
该配哪个 Harness 版本?
以兼容表为准。0.4.1 支持 0.1.1-rc.2 与 0.1.2-rc.1,同一区间在 peerDependencies 中机器可读。更旧的 Harness 需要匹配的旧插件——0.1.0-rc.6 用 0.3.1。