明白了,你说的是对话内四种会话模式(极简/PTC/创造/标准)。我去上游源码确认这四种模式的定义和各自挂载的插件/skill 组合,再对照 lightharness。
结论:四种模式的「名字、识别、显示文案、组合清单算法」复刻了;但「每种模式具体挂哪几个插件/skill」的组合数据和运行时切换链路没有复刻。
上游的确是这样的
四模式对应 packages/bundle/web-app/presets/ 下四个 patch 文件,每条都插入一个 @deepseek-ai/dsh-agent-preset 声明,插件集各不相同:
| 上游 preset id | order | 你说的叫法 | 挂载特点 |
|---|---|---|---|
standard |
1 | 标准模式 | 完整插件集 |
ptc |
2 | PTC | 编码向插件集 |
minimal |
3 | 极简模式 | 最小集:persona(软件工程师前缀)+ persistent-shell 组(terminal/terminal-bash/tool-bash-persistent,含 !!js process.platform === 'win32' 平台条件禁用) |
cordis |
4 | 组装模式(你说的"创造") | persona + agent-instructions + tool-bash + tool-pwsh 等,且 skill 相关由 preset 自带 authoring 规则 |
Web 编辑器保存的修改会按 id 覆盖 profile patch 里对应行的 config.plugins。
lightharness 复刻状态
已复刻(逻辑面):
- 四模式识别与显示文案 :
src/预设.light:125-128的内置预设文案字典------standard:标准模式 / ptc:编码模式 / minimal:极简模式 / cordis:组装模式,加是内置预设/造显示文本,对齐上游display.ts的 BUILT_IN_PRESET_KEYS(shipped 预设走字典键、user 预设不翻译)。 - 组合清单算法 :
src/预设深化.light:29的 §1 预设组合清单(对齐composition-inventory.ts)------能列出某预设包含的插件/工具/提示段/投影单元,含!!js表达式 → conditional 启用值的状态机。 - mount/specifier/metadata 等七类纯逻辑 (对标清单 #72,
src/预设.light,状态 done)。
没复刻的(数据与链路):
- 四个 preset 的具体插件组合清单 :我在
lightharness/src和lightplugin全库搜preset-minimal / preset-ptc / preset-standard / preset-cordis,零命中------上游那四个 patch 文件里"minimal 只挂 2 组、cordis 挂 4+ 项"这类具体数据没有搬过来。 - 对话内按模式切换挂载集 的运行链路没接:
启动配置.light的 profile/patch 组合未接总入口命令面;lightplugin 集成层是全量统一挂载(75 插件 154 工具一把全挂),不分模式。
一句话总结
四模式在 lightharness 里目前是「识得出、显示得出、能算组合清单」------但「每模式挂多少插件/skill」的数据表和切换开关都还空着。要对齐的话,缺两件事:① 把上游四个 preset 的插件/skill 组合数据复刻成光明数据表(可顺手补一张 #249 卡);② 在挂载层加按 preset id 过滤的开关。需要的话我可以把这两步展开成任务书。
把这两部展开成任务书!
好,我把这两步展开成 R103 任务书。先核实三件事:上游四个 preset patch 的具体内容/体量、lightharness 现有预设逻辑的段落清单、对标清单当前最大卡号,确保任务书里的引用准确。
核实完毕:上游四个 preset patch 共 26481 字节(minimal 8 项 / ptc 34 项 / standard 33 项 / cordis 34 项),对标清单已到 #248,新卡从 #249 起。现在写 R103 任务书。
核对任务书里引用的既有测试文件是否存在,再交付。
R103 任务书已写好
文件 :R103_任务prompt分发_四模式预设.md(工作区根目录,与 R101/R102 任务书同目录同格式)
内容 :三条任务线,派单方式沿用 dispatch.ps1 -SessionId r103-x -Task "...":
| 线 | 目标 | 落点 | 卡号 |
|---|---|---|---|
| A | 四 preset 插件/skill 组合数据表(对齐 预设深化.light 组合行形状,含 !!js 禁用标记、persistent-shell 组行) |
src/预设组合.light(新)+ examples/test_预设组合.light |
#249 |
| B | 挂载层按预设过滤开关:组行展开 + 禁用剔除 + 跳过可查询 + 组合覆盖率 | src/预设挂载过滤.light(新)+ examples/test_预设挂载过滤.light |
#250 |
| C | 收口:#249/#250 核对 + 全量 pytest 门禁 + lightplugin 集成回归 + R103_交付报告.md |
docs/功能对标/ | --- |
已核实写进任务书的事实:
- 上游四个 patch 体量:minimal 3184B(8 项)/ ptc 7697B(34 项)/ standard 7511B(33 项)/ cordis 8089B(34 项);order 常量 standard=1/ptc=2/minimal=3/cordis=4
- A 线测试判据按这些数锁定(如 minimal 插件行 7 + 声明 1 = 8 项、展平后 8)
- 对标清单当前已到 #248(R102 五线 #244~#248 均已由并行会话完成),新卡从 #249 起
- 任务书里引用的既有测试
test_预设.light、test_预设深化.light均已确认存在,回归判据可落地
派单顺序:A 先派(B 的测试判据依赖 A 的组合表数据),A 绿后派 B,两线全绿后派 C。B 线刻意不碰 lightplugin 集成层脚本,集成回归放收口线跑既有判据,保持文件互斥。
需要我现在按派单顺序直接开跑 A 线的话,说一声即可。