Skip to main content
C

dsh-big-fat-whale-maid-adaptive

canaryjing/dsh-big-fat-whale-maid-adaptive

Agent preset with adaptive tool presentation and environment-aware shell routing. Ports modules from yjh051108/dsh-routing-suite and xiaobright/dsh-anchored-standard (the former is listed here), so do not enable it alongside those presets.

Install

dsh plugin --profile web add github:canaryjing/dsh-big-fat-whale-maid-adaptive

README

DS女仆长模式 · v3.2.1

DSH 的个人工程预设:思考强度三档联动工具面(low 原生 / high PTC / max PTC+全量)、系统提示词要求中文思考并主动汇报进度与风险、常驻核心按需解锁、可靠环境简报、实时请求模型 ID、安全工作目录、PowerShell 7 优先绑定,保留温柔严谨的蓝发蓝瞳鲸鱼娘女仆长风格。

整个目录是一个 DSH bundle;自定义模块只使用 Node 内置模块及包内导入,不依赖 dsh-wsl-workspace。组合本身仍依赖 DSH 官方插件与服务,不是脱离 DSH 的独立运行时。

v3.2.1:PTC 门控补修(2026-10-26)

下载 v3.2.1 · 发行说明

  • run_code 为固定入口,无须解锁,不交给能力过滤器裁剪。high 在 SDK 生成前应用 agent 级 restriction,同时限制继承工具的 SDK 与嵌套执行;max 全量但不移除外部限制。
  • dev_tool_search 只同步撤下本门控自己的 mask 读取实际目录,随后立即恢复;不会解除其它 scope restriction 或审批。申请解锁后本次程序先返回,下一次 run_code 才绑定新工具。
  • 冷启动与实时事件支持 tool/ptc-dispatch-start / tool/ptc-dispatch,按 root/parent/subcall 配对成功结果并恢复精确 accepted;失败、孤立结果、空 accepted 不恢复。
  • 修正首轮和切档时序:使用早于工具/section 快照的变量提供者预对齐 presentation,再对齐门控;不再在太晚的 assemble waterfall 才切换。high/max 首轮即声明 run_code,SDK 与执行范围当轮一致。
  • 51 项针对性测试全部通过、0 跳过;新增两种插件注册顺序下的 78 次真实组装快照,覆盖首轮 low/high/max、连续切档、模型选择事件、解锁下一次生效及外部限制。未重跑全部测试或真实上游 API。

v3.2.0 重点:思考强度三档驱动工具面

预设现在把会话的推理强度当成第一等输入。档位归一严格照 DeepSeek 思考模式文档 的映射表:

请求传入 effort实际推理强度本预设档位
minimal / low / offlow低档
medium / high / xhighhigh高档
max / ultramax满档
维度低档高档满档
工具呈现native(与 v3.1.0 完全一致)ptc:只有 run_code 可直调,其余工具从程序内调用ptc
解锁策略progressive:常驻核心 + dev_tool_searchprogressivefull:已注册工具全量可见
预算提示无PTC 用法说明PTC 说明 + 「用量 unlimited、放开花」原文提示
  • 按会话声明,互不干扰:呈现用 ctx.tools.presentAs() 声明在该会话的 agent scope(cordis 的 traceable 代理会把 this.ctx 换成调用者 ctx),所以两个会话可以一个跑 low、一个跑 max;解锁模式也支持会话级覆盖。
  • 改档在下一轮组装时生效:对齐挂在 system-prompt/assemble(该事件能拿到 agent 与 agent.ctx;agent/pre-step 的 payload 里没有 agent,挂不上),对齐在 next() 之前,PTC 说明段当轮即就绪;轮内不再改动 schema,避免同一轮工具面抖动;同一 scope 重复声明会抛 conflict,因此换档先 dispose 再声明;high → max 只换解锁策略,不重新声明呈现。
  • 失败一律 fail-open:PTC 运行时缺失、scope 不合法、声明抛错,都只回落 native 并只告警一次,绝不阻断会话。低档不做任何呈现声明,行为与 v3.1.0 逐字一致。
  • 手动锁定:设环境变量 DSH_MAID_EFFORT=low|high|max(优先级最高,便于测试与临时压制)。dev_router_status 的 effort= 行会报告当前档位、呈现、解锁与强度来源。
  • 全局汇报纪律:persona 前缀新增两条(任何档位都生效)——主动汇报进度(几步一次说清在做什么、改了什么、还剩什么),遇到检查失败/路径错误/权限拒绝/计划不再成立时当轮立即汇报,不要闷头重试。

v3.2.0 当前发行包修复(2026-10-26)

  • 修复 DSH 0.2.1-rc.2 同一会话切到 PTC 时 DeepSeek 报 All tools cannot be deferred:新增 bundle 级 deferred-tools-compat.mjs,在 DeepSeek 适配器的请求投影之后,仅对非空且全延迟的工具列表加入不可调用的传输占位声明,策略与引擎现有 Anthropic 占位声明一致。
  • 真实工具(包括 run_code)继续保持延迟加载,工具加入顺序、冻结请求、会话日志、prepared connection 快照和审批执行边界均不改变;普通/native、首轮 PTC、其他提供者不变。不修改底座文件或全局 fetch;卸载 bundle 时恢复适配器方法。兼容层位于 profile 范围,安装此 bundle 后也覆盖切换到内置 PTC 预设的请求。
  • 同版本覆盖 v3.2.0 的发行资产与源码 tag;旧包已有留底。重新下载并安装,重启宿主后生效。旧引擎没有 DeepSeek Messages 适配器时明确告警并保持原行为。
  • 当前 Tauri 引擎 0.2.1-rc.2 + 真实 PowerShell 7:156 tests / 156 pass / 0 fail / 0 skip。包括真实 DeepSeek 序列化报文与模拟 HTTP/SSE 的错误前后对照;不等同于真实上游端到端验证。

v3.1.0 重点:路由、交付、工具组与单一 shell 规则

  • 路由看最近真实用户请求:sessionMode 不再取第一条 user/message。它逆序找最近一条真实用户实质请求,忽略 plugin/plugin:*/agent-message/model-selection/user-approval 等自动来源,剥离 openviking/runtime 等包装块;Current runtime context 按整个多段快照剥离,不会只删标题段后让 Current working directory / You are… 覆盖真实任务,同一消息包装外的真实请求保留。最近的「继续/好的/可以」等简短应承沿用上一实质任务。新增 consult 带:明确问句(「如何修复这个错误?」「Why create this file?」)即使含 fix/build 等动词也先回答;解释、评审、分析、只读、先给计划不催写代码;明确实施意图仍走 react/spec(例如「按计划实现修复」)。范围限制不是拒绝实施:「只做这个错误的修复」「修复这个错误,不要改其他文件」仍走 spec。没有可靠意图时返回中性 weak。英文动词按单词边界匹配,address/prefix/somehow 不会误命中 add/fix/how;代码块/引用块不参与判断。
  • delivery_check 收紧为基础交付证据检查:相对路径只按 exec.agent.session.header.cwd 解析;无会话 cwd、相对 cwd、Windows drive-relative(C:foo)、root-relative(\foo、/foo)及外部平台绝对路径都直接 FAIL,不退到 process.cwd()。文件必须是普通、可读、非空文件;未知扩展也验证可读性。文本严格 UTF-8 且超过校验上限直接 FAIL;PNG/JPEG/GIF/WebP 查签名与基本截断,PDF 查头尾;docx/xlsx/pptx 只读 ZIP central directory,校验 [Content_Types].xml、_rels/.rels 与主文件,拒绝条目 data 覆盖 central directory、本地范围重叠、未消费完的声明区域,不解压、不执行。证据 item 必须有合法 kind、非空 label/result;file/page/image/run/test 需本地普通可读非空 target 并记录 SHA256。图片/PDF/docx/pptx 页面交付至少需要一项 accepted 的 page/image evidence 且 reviewed:true;视觉 target 必须是可识别图片并通过签名检查,reviewed:true 指向文本日志/HTML 不能冒充截图;xlsx 维持数据/测试证据即可。格式读取异常统一转成 FAIL,不抛出工具异常。所有 PASS 只代表基础文件与证据检查。
  • dev_tool_search 支持固定工具组:新增可选 groups,保留 query/toolNames。固定组为 office / repo-files / sessions / team / terminal / memory-write,只从 ctx.tools.schemas(exec.agent) 的实际作用域目录展开,仅改变可见性、不授予权限。成功解锁的实际 accepted 精确名写入官方 tool/result 的 tool-private meta,冷启动/压缩后按精确名恢复。恢复只信与该会话一条 dev_tool_search callId 配对成功的 result:其它工具的文本/meta、伪造 gate 名、无 result 的中断调用都不会解锁;仅 tool/call 的旧日志无法区分成功与中断,保守保持锁定,需要重新调用解锁。v3.0 固定成功文案仍需配对 call 才恢复。没有 agent.session 时执行返回 accepted: [] 并明确说明未解锁。搜索说明为「任一关键词命中即评分」。
  • shell 规则单一来源:shell-policy.mjs 是唯一文案源,persona 只引用它、不再复制表。Windows 通用执行优先 gitbash;Git Bash 不可用时由已验证绑定的 pwsh 处理 Windows 通用任务,pwsh 同时负责 PowerShell 专属命令、.ps1、Windows UI;bash 只用于 Linux-only 工作,绝不作为 Windows 回退;原生 Linux/macOS/Android 用 native shell;ops_bash 只在适用环境能力明确时作为执行入口。目录非法停止,命令失败不换旧 PowerShell/不同 shell,权限拒绝不可越过。该 section 使用 order 10300,位于引擎内置的 WEB_SURFACE(10100) 与 DEPLOYMENT_PERSONA_SUFFIX(10200) 之后;这一点由真实 SystemPrompt 组装测试验证,而不只是 mock 的 order 断言。

v3.0.0 重点:全能 ≠ 全量常驻

v2 的「全量工具首轮开放」是给当年不会用工具搜索的 v4 补课。模型换强之后,这笔账变成只付成本:

  • 本机 109 个会话、7255 次 tool/call 的实测分布:8 个工具覆盖 86.5%,前 25 个覆盖 97.1%;
  • 目录里约 110 个工具,约四成从未被调用过,却每轮重发 schema。

v3 的做法:

  • 常驻核心 29 个(tool-gate.mjs 的 DEFAULT_RESIDENT_TOOLS):shell 三通道、文件读写与图像、搜索、任务/交付、技能、记忆读取、交互与目标、后台作业、子代理协作;
  • 其余全部按需解锁:dev_tool_search 支持关键词搜索全量目录与按精确名解锁,解锁从下一次请求起生效;
  • 解锁持久可恢复:解锁名写入会话事件,重启/恢复后冷扫描重建(v3.0 固定成功文案需与 tool/call 配对;v3.1 起用 tool/result.meta.accepted 并校验 callId 配对)。只有 call、没有 result 的旧日志无法证明成功,保守保持锁定,需要重新调用 dev_tool_search;
  • 子代理默认不裁剪(includeSubagents: false),避免被派活的子代理缺工具卡死;
  • 一键回退:mode: full 回到全量首轮可见,不用卸载插件;
  • 安全网:门控工具缺失或过滤器异常时自动降级全量,绝不锁死会话。

门控裁的是模型可见 schema,不是权限:被锁的工具直接调用会得到 UNKNOWN_TOOL,解锁后仍走原有审批与沙箱策略。

v2.3.0 重点:中文思考写进系统提示词

「用中文思考」升级为 persona 前缀里的第一条显式规则,不再依赖记忆条目、会话习惯或用户当场提醒:

  • 推理、权衡、计划、验证与自我纠错一律用简体中文书写,不得悄悄换成别的语言;
  • 代码、命令、文件路径、标识符、被引用的日志与文档正文保持原文语言,不做翻译;
  • 对用户可见的回复仍跟随用户语言(用户说中文就用中文)。
  • complete:false 不变,因此该规则与环境段、模型 ID 段、任务模式叠加句共存。
  • 旧格式 agent.cordis.yml 的 persona 同步补上同一条,历史备查文件不再与现版自相矛盾。

v2.2.0 重点

环境简报始终可见

[ENV] 从首轮 user 消息改为 每次请求装配的系统 section:

  • 缓存宿主 OS、内核、架构、CPU、内存、用户、home/tmp、可用 shell 候选及路径规则;工作目录按当前会话生成。
  • 首次请求等待异步探测完成,不会先发送空环境;重启、恢复、上下文压缩后仍能重新装配,不会碰撞旧 env-brief-* 消息 ID。
  • env_probe 可重新采集缓存并显式冒烟测试,可能启动 WSL;常规请求不反复探测。
  • 明确区分“发现可执行文件”“已验证 PowerShell 版本”和“已实际执行冒烟测试”,未发现 WSL 不再声称 bash 可用。
  • 修复旧环境消息被误认成 AGENTS 指令提示的问题,旧会话日志仍可识别。

当前模型 ID,而不是初始模型

[MODEL] 使用 DSH 的 {{model}} / {{provider}},在最终 prompt 渲染时读取当前请求选定的 provider model ID,跟随官方 UI 切换模型。不会读可能过时的 agent.options.model。

这是 DSH 请求路由 ID,不是对反向代理背后实际模型身份的鉴定。

为了保留环境段,persona 使用 complete: false。旧的 complete:true 会让 DSH 丢弃其他系统段,并复原 waterfall 中对 persona 的追加;这一点已用真实 DSH prompt registry 测试。

PowerShell 7 优先、没有 7 才回退默认

  • gitbash 仍是 Windows 通用执行的第一优先。PowerShell 专属操作、.ps1 和 Windows UI 自动化使用绑定的 pwsh 工具;Git Bash 不可用时,绑定的 pwsh 就是 Windows 通用回退(不是 WSL bash)。
  • 枚举常见安装位置和 PATH,实际校验版本、edition、进程可执行文件路径,将工具 argv 固定到验证后的绝对路径,不只依赖提示词或 PATH。
  • 优先稳定 PowerShell 7+,同类选择较高版本,再考虑 preview。
  • 没有有效的 7 时回退系统默认 PowerShell(Windows 包括 5.1),简报和工具描述明确显示实际版本、路径及 fallback 状态。
  • 绑定后命令执行失败直接报错,不再偷偷换另一个 PowerShell 重试。
  • 可选配置 env-probe.config.pwshPath 固定一个 PowerShell 7+ 路径。显式固定路径无效时报告不可用,不绕过配置选择其他后端;跨机器通常无需配置此项。

工作目录失败关闭

  • Git Bash 的目录作为完整 POSIX 单引号参数传给 cd --;$()、反引号、单双引号、空格和中文保持字面含义。
  • cd 失败立即退出,不执行后续命令。
  • 显式空值、相对路径、NUL、未知世界报错,不再静默回退到系统目录。
  • Git Bash 支持 Windows 绝对盘符、WSL/SMB UNC、MSYS 路径;其他 Linux 绝对路径需要默认 WSL 发行版。
  • Windows PowerShell 接受 Windows 绝对盘符/UNC;原生 Linux/macOS PowerShell 接受原生绝对目录。

安装 / 升级

本版在 DSH 0.2.0-rc.2 实测。使用当前支持 bundle、prompt variable 与 section API 的 DSH;不再支持旧 .agent-presets 目录安装方式。

# 从源码目录安装;请替换路径和实际 profile
 dsh plugin --profile web add "file:/absolute/path/to/big-fat-whale-maid-adaptive"

# 或安装 GitHub Release 下载的 tgz
 dsh plugin --profile web add "file:/absolute/path/to/dsh-preset-big-fat-whale-maid-adaptive-3.1.0.tgz"
  • 使用实际宿主对应的官方插件管理 CLI。Electron 的 desktop 档须用桌面版自带 CLI 管理。
  • Tauri profile 使用真实目录来源,不要用 file:…tgz。 已复现 Tauri 启动清理把 tgz 误判为悬空目录并自动卸载;请先解压到持久目录或使用源码目录,再执行 dsh plugin --profile tauri add "file:/absolute/path/to/preset-directory",并保留来源目录。
  • 安装完成后重启对应宿主,并选择「DS女仆长模式」。安装文件成功不代表正在运行的旧实例已经热更新。
  • git pull 后须重新安装;本地 file: 依赖通常是安装快照,不保证自动跟随源码。
  • 不要直接复制整个 profile 或 node_modules;遇供应链/兼容限制应检查原因,不要默默关闭保护。

维护和安装细节见 AI.md、AIreadme.md。

验证

npm test
# 接入已安装 DSH 的真实 prompt/model-selection/tools registry 服务
DSH_TEST_ANCHOR=/path/to/dsh npm test
# 同时验证这一份本机 PowerShell 7(不执行 WSL 或 5.1)
DSH_TEST_ANCHOR='C:/Users/admin/AppData/Roaming/npm/node_modules/@deepseek-ai/dsh' \
PWSH_RUNTIME_REAL_PATH='C:/Program Files/PowerShell/7/pwsh.exe' npm test

在本 Windows 工作树中,同时设置上述两个变量后共 122 项测试全部执行、0 skip、0 fail。覆盖首轮异步探测、每轮/重启/压缩环境上下文、切模、字面大括号路径、旧指令提示识别、shell 转义与失败阻断、PowerShell 7 选择及默认后端回退;v3.1 另覆盖明确问句/范围限制路由、多段 runtime 快照、交付文件格式/原生 cwd/视觉证据/ZIP 伪造、工具组作用域与 callId 配对恢复、空 accepted meta 的权威性、真实 DSH Tools 注册与 tool-result.meta 持久化、真实 SystemPrompt 的 shell section 顺序。没有真实 DSH 锚点时相关集成用例会显式 skip,不会伪装成已通过。

能力与边界

  • 所有已注册且可用工具都在目录里,但首轮只常驻高频核心;其余用 dev_tool_search 的 query / toolNames / groups 解锁。能力齐全不代表所有提供者均已安装、认证;技能按需 skill_search / skill_load。
  • 保留任务分类、子代理、workflow、goal、计划模式与交付检查工具。v3.1 的路由与 delivery_check 行为已更新;mode overlay 只是风格提示,不授予权限,用户请求、计划模式和审批规则优先。
  • 档位驱动的呈现只改变「模型看到哪种工具形态」,不改变宿主权限:PTC 程序内的每次工具调用仍走同一套审批、沙箱与作用域可见性;满档的全量可见也只是「已注册且当前作用域可见」的工具,不会绕过任何安装或授权条件。
  • delivery_check 是检查辅助与模型遵守的交付约定,不是不可绕过的安全门禁;PASS 只代表基础文件与证据检查,不代表语义正确、视觉质量、完整格式合规或外部事实真实。page/image 的 reviewed 只是人工声明,检查器不会真的“看”图;但它会拒绝文本日志/HTML/未知扩展充当视觉 target,并要求图片/PDF/docx/pptx 页面交付至少一项带签名校验的 reviewed 视觉证据。xlsx 只需数据/测试证据。
  • shell 路由建议不是 OS 沙箱;真实权限、审批、网络边界由宿主、当前账户和 DSH 底座决定。目录非法或 cd 失败必须停止,不能因命令失败换 shell。
  • 旧 agent.cordis.yml、preset.yml 和 bootstrap/gate 源码仅备查,不参与现行组合。改人设、展示名和工具行请编辑 cordis.patch.yml。

来源与致谢

v3 的按需解锁是自研门控(tool-gate.mjs:常驻核心 + dev_tool_search + 会话事件持久化),不依赖、也没有恢复首轮锚定与四阶段披露。仍沿用部分通用模块:

完整归属见 CREDITS.md。

版本历史

  • v3.2.0:思考强度三档(low/high/max)驱动工具呈现、解锁策略与预算提示;tool-gate 支持运行期与会话级切档;effort-policy.mjs 新增档位归一、agent scope 呈现声明与 fail-open 回落;persona 增加「主动汇报进度 / 遇阻立即报告」全局纪律;dev_router_status 报告 effort 状态。详见 发行说明。
  • v3.1.0:路由改取最近真实用户请求并新增 consult 带(明确问句优先、范围限制仍实施);delivery_check 收紧原生 cwd/可读性/视觉证据/ZIP 边界检查并抽为 delivery-check.mjs;dev_tool_search 新增固定工具组与 callId 配对恢复;新增 shell-policy.mjs 统一 shell 路由并追加 order 10300 的靠后系统段;真实 DSH Tools/SystemPrompt 集成测试。详见 发行说明。
  • v3.0.0:全能工具面改为「常驻核心 + 按需解锁」(tool-gate.mjs / dev_tool_search),解锁持久化、子代理不裁剪、mode: full 可回退;dev_router_status 报告真实门控状态。详见 发行说明。
  • v2.3.0:系统提示词(persona 前缀)要求以中文进行思考,旧备查人设同步;其余行为与 v2.2.0 一致。详见 发行说明。
  • v2.2.0:可靠系统环境段、实时模型路由 ID、PowerShell 版本验证绑定与默认回退、安全工作目录、精简人设、自包含回归测试。详见 发行说明。
  • v2.1.2:修复 DSH v4 会话格式不接受裸 kind: plugin 的消息来源问题。
  • v2.1.1:预设内部模块改用包内子路径,修复相对路径导致的装载失败。
  • v2.1.0:迁移 bundle 格式;存在装载缺陷,应升级后续版本。
  • v2.0.1:修复 env_probe 引用已更名函数的回归。
  • v2.0.0:全量工具开放,独立环境探测和 Git Bash 优先。
  • v1.x:历史锚定与渐进披露实现,保留在 Git 历史中。

Related plugins