dsh-subagent-effort
本地 DeepSeek Harness 插件,为 spawn / fork 前台一次性子代理工具增加父 Agent 可选的 reasoning_effort 参数。父 Agent 在创建 child 之前选择 effort,插件验证目标模型能力并把 selection 安装到 child 的首个模型请求。
行为
- 工具只支持 DSH 内建的进程内
spawn和forkprovider。 - 工具不暴露
run_in_background,并拒绝显式传入run_in_background: true。 - 每次调用都等待 child 完成,随后释放 run。
reasoning_effort可选值默认为low、medium、high、xhigh、max。- 参数省略时默认选择
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
可选的 agentOptions、persona、toolFilter 和 maxDepth 与 DSH 内建 subagent 工具的前台一次性路径一致。默认 maxDepth 为 3。
本地安装
把包作为运行该 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
No comments yet. Be the first to write one.