dsh-multitask:DeepSeek Harness 多任务“减震器”模式

前言

DeepSeek Harness (DSH) 采用插件化架构,允许开发者扩展其核心能力。在处理复杂任务时,主对话容易因为频繁读取文件、执行命令或搜索网页而被过程数据淹没,导致上下文膨胀或注意力分散。dsh-multitask 插件旨在解决这一问题,它引入一种“减震器”模式,将主对话转变为协调者,将具体的执行工作下放给子代理。

核心功能

该插件通过严格的上下文隔离,区分了主对话(协调者)和子代理(执行者)的职责。

1. 协调者(主对话)职责

主对话在启动后仅保留受限的工具集:
* 只读检查:read、grep、glob、file_info
* 任务委派:subagent、subagent_fork、subagent_ptc、subagent_minimal
* 代理控制:send_message、interrupt_agent、list_agents
* 结果检索:job_list、job_output、job_kill
* 工作流编排:workflow
* 交互与自我管理:ask_user_question、todo_write、create_goal 等

协调者的核心工作是理解需求、生成任务简报、验证结果并汇总报告。它无法直接写入文件或运行命令,从而避免上下文被过程数据污染。

2. 子代理(执行者)职责

子代理拥有完整的工具集,负责处理所有流程数据,包括文件内容、命令输出、构建日志、搜索结果等。它们只返回最终结论,不将中间数据返回给主对话。

3. 四种子代理类型

协调者根据任务需求,可以选择四种不同的子代理:

类型 工具面 适用场景
subagent 完整工具 通用默认类型,用于写代码、跑测试、编辑文件
subagent_fork 完整工具 + 对话历史 需要基于现有对话上下文进行审查或继续
subagent_ptc PTC 压缩(仅 run_code) 程序化批量处理(如过滤、聚合大数据),防止中间值进入上下文
subagent_minimal 只读工具 调查、快速问答、事实核查

安装与启用

从发布包安装

安装时必须指定 --profile 选项,该选项对应 DSH 的配置文件名称(如 desktop 或 web)。

dsh plugin --profile <profile> add dsh-multitask

安装完成后,DSH 会自动将插件加入配置的 dsh.profile.bundles 列表,并在启动时加载。

从源码安装

若需直接运行源码进行调试:

  1. 在 cordis.patch.yml 中添加以下配置,使用绝对路径:
- insert:
    - id: multitask
      name: 'file:///absolute/path/to/dsh-multitask/lib/index.js?v=6'
  1. 路径中的空格和 % 需进行 URL 编码(如 PowerShell 中可使用 New-Object System.Uri 生成)。
  2. 注意:?v=N 是缓存键,仅在 file:// 模式下有效。

注意:从源码安装时,若使用桌面应用,需完全退出应用后再操作,否则会因文件锁定导致安装失败。

典型用法

  1. 创建会话:在创建新会话时,在模式选择器中选中 “Multitask 减震器模式”。
  2. 提交需求:直接提出你的需求。
  3. 任务分发:协调者会将需求拆解为独立的任务简报。
  4. 并行执行:简报会并行分发给子代理执行,协调者继续监控或处理其他逻辑,直到所有子代理完成。

配置说明

安装后,DSH 的设置页面会出现相应的配置项。

Multitask 页面

  • 模型选择:multitask.subagentModels[] - 为四种子代理类型指定默认模型,可选择“统一使用协调者模型”或“分别指定”。
  • 并行限制:subagent.maxActiveSubagents - 限制同时运行的最大子代理数量。

General 页面

  • 递归深度:subagent.maxDepth - 设置子代理递归调用的最大深度(全局生效)。
  • 并行限制:subagent.maxActiveSubagents - 与 Multitask 页面共用同一配置项。

注意事项

  1. 模式选择时机:该模式必须在会话开始前选择。一旦会话开始,工具集和提示词即冻结,无法中途切换。
  2. 层级限制:委托是单向的一层深度(协调者 → 子代理),子代理无法进一步委托其他子代理。
  3. 工具白名单:协调者的工具集基于白名单,任何未列出的工具(如 write、edit、pwsh、web_search)默认不可见。

总结

dsh-multitask 通过将规划与执行分离,利用子代理处理噪音数据,为主对话保留了高价值信息。这对于需要同时处理多个文件、构建项目或进行复杂搜索的开发场景尤为实用。该插件零依赖,不修改 DSH 源码,可安全集成到现有的插件生态中。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜