Back to home

inmny

dsh-subagent-effort

为 spawn / fork 前台一次性子代理工具增加父 Agent 可选的 reasoning_effort 参数。

Stars
0
Language
TypeScript
Created
Aug 15, 2026
Updated
Aug 15, 2026

Introduction

dsh-subagent-effort

本地 DeepSeek Harness 插件,为 spawn / fork 前台一次性子代理工具增加父 Agent 可选的 reasoning_effort 参数。父 Agent 在创建 child 之前选择 effort,插件验证目标模型能力并把 selection 安装到 child 的首个模型请求。

行为

  • 工具只支持 DSH 内建的进程内 spawnfork provider。
  • 工具不暴露 run_in_background,并拒绝显式传入 run_in_background: true
  • 每次调用都等待 child 完成,随后释放 run。
  • reasoning_effort 可选值默认为 lowmediumhighxhighmax
  • 参数省略时默认选择 medium
  • 若目标模型不支持 medium,省略值会先按允许列表向上选择,再向下选择。例如只支持 max 的模型会选择 max
  • 显式选择不受支持的 effort 时,在 child 创建前失败,不静默降级。
  • 模型没有 reasoning capability 元数据,或与允许列表没有交集时,在 child 创建前失败。
  • 并发工具调用使用独立的 AsyncLocalStorage 创建链,不共享可变的全局 effort 状态。

建议的选择标准:

Effort适用工作
low搜索、抽取、简单检查
medium常规且范围明确的实现、测试、文档
high多文件分析、调试、代码审查
xhigh架构、迁移、并发、安全或跨模块歧义工作
max高风险最终验证,或较低 effort 已失败后的升级

实现方式

插件复用 DSH 原有的 SubagentRuntime 和 in-process driver,不复制 provider。标准 spawn / fork 在发布 child 时同步触发 agent/created;该事件发生在 child 完成 preset 组合之后、首个 followup() 之前。插件在此边界调用 installModelSelection()

每个工具调用携带一次性 pending selection。事件监听器还会验证 child 的运行时 owner 以及最终 provider/model,只有精确匹配的 child 才能消费 selection。若 provider 返回前没有发布预期的本地 child,插件释放该 run 并报错。

该实现依赖 DSH 0.1.0-rc.6 的同步发布顺序,因此依赖版本被精确固定;升级 DSH 后必须重新执行测试和 live mount 验证。

Preset 配置

- id: subagent-task
  name: dsh-subagent-effort
  config:
    provider: spawn
    toolName: subagent_task
    enableRunInBackground: false
    backgroundMode: one-shot
    reasoningEffort:
      mode: model-select
      allowed: [low, medium, high, xhigh, max]
      default: medium
      onUnavailable: error

- id: subagent-fork
  name: dsh-subagent-effort
  config:
    provider: fork
    toolName: subagent_fork
    enableRunInBackground: false
    backgroundMode: one-shot
    reasoningEffort:
      mode: model-select
      allowed: [low, medium, high, xhigh, max]
      default: medium
      onUnavailable: error

可选的 agentOptionspersonatoolFiltermaxDepth 与 DSH 内建 subagent 工具的前台一次性路径一致。默认 maxDepth3

本地安装

把包作为运行该 preset 的 profile 依赖安装,不要加入 Host bundle 列表。插件行本身位于 Agent preset plane;它不发布共享 Host service。

{
  "dependencies": {
    "dsh-subagent-effort": "link:C:/Users/Inmny/source/repos/dsh-plugins/dsh-subagent-effort"
  }
}

构建包、刷新 profile 依赖后重启 dsh web,并新建会话。既有会话仍使用创建时绑定的旧 preset generation。

开发验证

pnpm install
pnpm run typecheck
pnpm test
pnpm run pack:check

测试覆盖配置校验、精确 effort 选择、默认回退、真实 installModelSelection() 请求注入、创建前 capability 失败、强制后台拒绝、并发隔离、owner 校验、route 漂移、provider 生命周期和 run 清理。

License

MIT