Skip to content

Releases

v1.2.4 — 修 0.2.x 上三份 preset 第一条消息即失败(#1)

Choose a tag to compare

@Funny1Potato Funny1Potato released this 23 Oct 09:14

修复:0.2.x 上三份 preset 第一条消息即失败(#1)

DSH 0.2.x 的 prompt 装配严格解析 persona 的 prefix/suffix:引用未注册的变量会直接抛

unknown prompt variable "{{cwd}}" in section "deployment:persona-suffix"; registered variables: provider, model

1.2.3 的三份 preset 末尾都还留着 0.1.x 时代的 Your working directory is {{cwd}}.,于是预设能注册、能出现在模式下拉里,但一条消息都发不出去。

变了什么

  • 删掉三处 {{cwd}}。0.2.x 只登记 provider / model 两个变量;工作目录由 persona 行默认的 includeRuntimeContext: true 注入,不必自己写。
  • 新增 tests/preset-prompt-variables.test.mjs:把 cordis.patch.yml 里所有 {{…}}(注释行除外)按白名单校验,并钉住成对性与「三份 persona 还在」。拿修之前的文件跑,会精确报出 {{cwd}} @ 49 / 222 / 407 行。
  • README:补 0.2.x 兼容说明,并挂上 powered by dsh 徽章。

升级

dsh plugin --profile <profile> add dsh-outsourcing-expert@1.2.4

Desktop 端在插件页更新;重启后新建会话,选「外包高手」「外包高手(独具慧眼)」或「领导模式」。


v1.2.3:新增「领导模式」preset(保留原版纪律,只注入全局能力表)

Choose a tag to compare

@Funny1Potato Funny1Potato released this 03 Oct 05:53

新增

第三个 preset「领导模式」(id leader,显示名「领导模式」):

  • 保留原版纪律:领导自己是执行者也是委派者,read / write / web_search 等干活工具不被拦截;选模流程(发现 → 判档 → 联网核实 → 内置启发式对照表)逐字保留,外包高手的纪律一个字都没搬进来。
  • 只增加全局能力表:本机有能力表缓存时直接内联(判档优先照表,表外模型按原有流程核实);没有缓存时按流程建表(查名册 → 前台派侦察兵联网调研 → 自动缓存),与外包高手共用同一份 <DSH_HOME>/outsourcing-expert/models.json。

安装

dsh plugin --profile <profile> add dsh-outsourcing-expert

装完后新建会话,预设选择器里选「外包高手」「外包高手(独具慧眼)」或「领导模式」。

本页 tarball 与 npm 上那份由同一次 CI 打包,逐字节相同。

完整变更:v1.2.2...v1.2.3

v1.2.2:能力表 provider 按名册校准,不再记成模型的真实厂商

Choose a tag to compare

@Funny1Potato Funny1Potato released this 02 Oct 10:29

修复

能力表缓存不再把 provider 记成模型的真实发布者。 侦察兵联网查来的表容易把 provider 写成模型的真实厂商,而客户端里配置的供应商名可能完全另一个样(实测日志里配置是 gpt-uuapi,表里写成 openai,委派当场被拒:child LLM route "openai/gpt-5.6-luna" is not allowed for this Session);写歪的表一旦落盘就会长期误导后续所有会话。

现在侦察表落盘前会用 list_subagent_models 的返回(客户端里实际配置的供应商与路线)逐行校准:

  • 模型对上名册 → 整条换成名册原文;
  • 供应商对上(大小写差异,或 deepseek ↔ deepseek-account 这类加后缀写法)→ 换回配置里的名字;
  • 对不上名册的行丢掉;凑不够两行就整份不写——宁可没有表,也不留一个派不动的 provider;
  • 没拿到名册则原样不动,不做任何猜测。

提示层同步收紧:provider 必须照抄名册原文;名册参数要整个省略(写空字符串会被工具拒——实测模型这么干过,于是拿不到名册、只能凭印象编模型)。

安装

dsh plugin --profile <profile> add dsh-outsourcing-expert

本页 tarball 与 npm 上那份由同一次 CI 打包,逐字节相同。

完整变更:v1.2.1...v1.2.2

dsh-outsourcing-expert 1.2.1

Choose a tag to compare

@Funny1Potato Funny1Potato released this 02 Oct 08:05

dsh-outsourcing-expert 1.2.1

插件行为没有任何变化——这一版只补工程面:CI、npm 发布与文档。已经在用 1.2.0 的人不需要为它升级。

新增:CI(契约测试)

node 22 / 24 × ubuntu / windows 四种组合跑 node --test,共 30 项契约测试。矩阵里刻意放了 Windows:这个插件自己管一个真实文件存储(能力表),而 harness 是 Windows 优先的。

新增:发布 Release 即发布到 npm

本版起,发布 GitHub Release 会把同一个版本发到 npm,走 OIDC(trusted publishing)——仓库里不存任何密钥,npm 侧带 provenance(slsa.dev/provenance/v1)。流程依次是:校验 release tag 与 package.json 的版本一致 → 跑一遍契约测试 → 发布。

预发布(prerelease)走 next dist-tag,不会抢 latest。

改:README

  • 标题下加了一枚 CI 徽章。
  • 修正 Desktop 端的安装说明。原文写「desktop profile 由应用独占管理」,不准确:启动器只拒没有 manageDesktopProfile 的 CLI 实例——桌面端自带的那份 dsh 能管它,别的 dsh 安装才会被拒。

安装

从 npm:

dsh plugin --profile <profile> add dsh-outsourcing-expert

从 GitHub,或从本页的 dsh-outsourcing-expert.tgz:

dsh plugin --profile <profile> add github:Funny1Potato/dsh-outsourcing-expert

装完新建会话,在 preset 选择里选「外包高手」或「外包高手(独具慧眼)」;桌面端走插件页(插件 → 添加插件)填同一串。本页的 tarball 与 npm 上那份逐字节相同(sha1 15e2a4fb…)。

要求

DeepSeek Harness 0.2.0-rc.2(按该版本源码逐条核对过契约)。

v1.2.0 提示只点名会话真有的工具

Choose a tag to compare

@Funny1Potato Funny1Potato released this 02 Oct 02:32

dsh-outsourcing-expert 1.2.0

修:提示不再点名会话里不存在的工具

提示段现在按这个会话实际拥有的工具来写:委派工具名、名册那一节、白名单列表、被拒时的提示,都只提真实存在的工具。

起因是一个真机上真实发生过的报错:某条 preset 链上只注册了 subagent_fork,而纪律段通篇写着「用 subagent」——模型照做,宿主回 ToolNotFoundError: unknown tool "subagent",第一条委派根本没派出去。只有 subagent_fork 时现在改提 subagent_fork,没有 list_subagent_models 时不再叫它去查名册。

修:能力表缓存不再因一次失败而废掉

待写入的标记以前只要「这次委派没报错」就被消费掉,于是第一条侦察翻车(例如子智能体撞上委派深度上限、交回一句错误说明)之后,第二次交出的合格能力表会被漏掉,整个会话再也存不上。现在只有真的写进缓存才消费该标记,连续 3 次不成才放弃本会话。

修:子会话不再拿到领导纪律

子会话会继承父会话的 preset,所以「结论不由你产出、所有工作外包给子智能体」这套纪律也发给了侦察兵——它照做去派自己的子智能体,撞委派深度上限、交不回能力表。现在纪律段只发给顶层领导。

改:能力表缓存改存 JSON

<DSH_HOME>/outsourcing-expert/models.json,含 updatedAt / source,正文要么是按表头解析出的结构化 models 数组(模型 / 档位 / 擅长 / 不适合 / 来源),要么是解析不出结构时的 raw 原文兜底——两种都是 JSON,手工编辑也没问题。老的 models.md 仍可读,下次写入自动转成 JSON 并删掉它。

改:说话方式

  • 选人理由是唯一允许的过程话:每次发出委派那一刻必须用一句话说清为什么是它,交付结果时不再重复;其余过程旁白仍禁止。(此前这两条并列,互相压制——真机 12 次委派里 10 次一个字都没说。)
  • 结论不由你产出:连简单问答也先派子智能体去查去答;也不自己在正文里替子智能体做推导、算数字或下判定。
  • 子会话标题改用短路线名(默认路线 / provider / model),长文案只留给界面卡片。

其他

  • 选人理由从「可选」改为「必须」;「独具慧眼」模式的理由改成装作看不出它不合适(不说破是故意挑的)。
  • 契约测试 30 项。

安装

dsh plugin --profile <profile> add github:Funny1Potato/dsh-outsourcing-expert

或在桌面端插件页填同一串。装完新建会话,选「外包高手」或「外包高手(独具慧眼)」。

要求

DeepSeek Harness 0.2.0-rc.2(按该版本源码逐条核对过契约)。

v1.1.1 改名:外包高手(独具慧眼)

Choose a tag to compare

@Funny1Potato Funny1Potato released this 01 Oct 02:22

dsh-outsourcing-expert 1.1.1

改动

  • 第二个 preset 的显示名改成「外包高手(独具慧眼)」(原「外包高手(反向用人)」)。

它的 config.id 仍然是 outsourcing-expert-reverse,没有变——已保存的 preset 选择、会话头里的引用都不受影响,不用重建会话。文件里的 reverseHiring 开关语义、提示段里的选人规则措辞也都没动。

行为零变化:这一版只改名字与文档。

其他

  • README 精简:删掉两节机制说明(「顺序纪律」「子会话标题」)。功能都还在,只是不再写进面向用户的文档。

安装

dsh plugin --profile <profile> add github:Funny1Potato/dsh-outsourcing-expert

或在桌面端插件页填同一串。装完新建会话,选「外包高手」或「外包高手(独具慧眼)」。

要求

DeepSeek Harness 0.2.0-rc.2(按该版本源码逐条核对过契约)。想让插件能显式指定 subagent 模型,需要该会话的 list_subagent_models 可用(本包的 patch 里已把 modelSelectionSettings 打开)。

v1.1.0 能力表缓存 + 三条命令

Choose a tag to compare

@Funny1Potato Funny1Potato released this 01 Oct 02:09

dsh-outsourcing-expert 1.1.0

新增:模型能力表缓存(侦察一次,之后所有会话直接用)

「这些模型各自擅长什么」是这台机器的属性,却要花一次联网调研才能得到。现在侦察成功后插件会把表写下来(<DSH_HOME>/outsourcing-expert/models.md),之后直接把表内联进系统提示段——不再侦察、不再调 list_subagent_models。

  • 只在空表时写入,永不自动覆盖;文件可以直接手工编辑,删掉它就回到「重新侦察」。
  • 只写通过体检的结果(≥2 行含 provider/model,且出现能力档位词),宁缺勿脏;正文上限约 6000 字符。
  • 三条命令:/outsourcing-models 看(路径、更新时间、来源、正文)|/outsourcing-models-clear 清空|/outsourcing-models-init 清空并让当前会话重新侦察一次。

修复:首轮会跳过侦察

以前只强制「第一条委派必须是前台」,模型照做,但仍然会直接派活、根本不侦察。现在缓存为空时多一道门:没调过 list_subagent_models 就不准发第一条委派。表已经缓存时,这道门与「第一条必须前台」一起取消——没有侦察要做时不该再要求。

其他

  • 提示段标记 interpolate: false。宿主对 {{变量}} 是严格的,而缓存正文是模型写的——不关掉的话,表里出现 {{model}} 这类字面量会打断整轮装配。
  • 新增配置项 capabilityCache(默认 true;关掉即回到「每个会话各自侦察一次」)与 storeDir(缓存目录)。
  • 契约测试 24 项。

安装

dsh plugin --profile <profile> add github:Funny1Potato/dsh-outsourcing-expert

或在桌面端插件页填同一串。装完新建会话,选「外包高手」或「外包高手(反向用人)」。

要求

DeepSeek Harness 0.2.0-rc.2(按该版本源码逐条核对过契约)。想让插件能显式指定 subagent 模型,需要该会话的 list_subagent_models 可用(本包的 patch 里已把 modelSelectionSettings 打开)。

仍然如此

选人规则是提示层,不是运行时强制:宿主明确排除「改写工具参数」,插件无法替模型把 provider / model 改掉。磁盘上的拦截(干活工具一律 deny)是硬的。

v1.0.0(外包高手 / 外包高手(反向用人))

Choose a tag to compare

@Funny1Potato Funny1Potato released this 30 Sep 16:08

dsh-outsourcing-expert 1.0.0

DSH 插件包,声明两个 agent preset:顶层 Agent 不亲自干活,把活全部外包给 subagent。

装法

dsh plugin --profile <profile> add github:Funny1Potato/dsh-outsourcing-expert

装完新建会话,在 preset 选择里选「外包高手」或「外包高手(反向用人)」。包里没有 prepare / build 脚本,源码安装不需要 allowBuilds 授权。

也可以直接用这个预构建包:

dsh plugin --profile <profile> add ./dsh-outsourcing-expert.tgz

这一版有什么

  • 硬拦截:tools/pre-execute 把非管理类工具调用(读写文件、跑命令、搜索、上网、workflow、skill、自省……)直接 deny,且不产生任何副作用;领导保留的工具只有提问、规划、目标、用人。子 Agent 与宿主内部不带 agent 的调用照常放行。
  • 顺序纪律(代码强制):每条会话的第一条委派必须是前台(run_in_background: false),有前台委派在飞时新的委派会被拒绝——模型实测会无视只写在提示里的顺序要求。
  • 用人两步走:先派一个随机挑中的「侦察兵」联网调研全部可选 subagent 模型各自擅长什么(能力表只留给领导自己用),之后按任务难度 + 能力表选人,并把所选 provider / model 显式写进委派参数。
  • 模型名可见:委派结果正文首行由插件自动补 ▸ 委派模型:<provider> / <model>|任务:…,同时把子会话标题写成「模型 · 任务」。
  • 反向用人 preset:outsourcing-expert-reverse 故意把难活交给弱模型。

要求

  • DeepSeek Harness 0.2.0-rc.2(按该版本源码逐条核对过契约)。
  • 想让插件能显式指定 subagent 模型,需要该会话的 list_subagent_models 可用(宿主的 subagent 实例开了 modelSelectionSettings,本包的 patch 里已开)。

已知限制

  • 选人规则是提示层,不是运行时强制:宿主明确排除「改写工具参数」,插件无法替模型把 provider / model 改掉。
  • 硬拦截意味着领导只能问、只能拆、只能委派,不能自己动手。
  • 用旧 preset id(incompetent-leader)建过的会话需要新建会话重新选。