前言¶
在本地部署大模型时,受限于显存或硬件条件,单次对话的上下文窗口往往较短,难以直接处理长文档或复杂的长任务。DeepSeek Harness (DSH) 提供了插件化的扩展能力。dsh-plugin-task-runner 是其中的一个工作流插件,它实现了“任务拆解模式”,通过主代理拆解任务、子代理并行执行并综合结果的机制,绕过本地模型的上下文限制。
它是什么¶
这是 DeepSeek Harness 的“任务拆解模式” agent preset。由 weixshaw 维护,归属于工作流类别。它的核心价值在于将一个大任务拆解为独立子任务,由子代理在全新短上下文中并行执行,主代理仅负责汇总结果。
核心功能¶
- 任务拆解与并行执行:主代理将大任务拆解,子代理在隔离的上下文中并行干活。
- 上下文隔离:子代理拥有全新的短上下文,完全隔离父会话上下文,避免信息泄露或干扰。
- 参数自定义:支持并发数、worker 模型、fallback 模型、超时等参数自定义。
- 外部记忆:支持将长期状态结构化落盘到工作区
.task-runner/目录。 - 预算控制:支持配置 worker 上下文预算和返回结果带宽预算,防止主上下文膨胀。
安装与启用¶
使用 DSH 的命令行工具安装:
dsh plugin --profile web add dsh-plugin-task-runner
安装后,重启 web(或刷新页面),在模式选择器里选择“任务拆解模式”即可启用。插件安装时会自动将 preset 拷贝到 ~/.dsh/.agent-presets/task-runner/ 目录。
配置¶
配置文件位于 ~/.dsh/.agent-presets/task-runner/config.json,也可以在项目根目录放置 task-runner.config.json 进行项目级覆盖。以下是核心配置项:
{
"maxConcurrentWorkers": 1,
"worker": {
"provider": "omlx",
"model": "root4k/Huihui-Qwen3.8-27B-abliterated-oQ4e-mtp"
},
"fallback": {
"provider": "deepseek-official",
"model": "deepseek-v4-flash"
},
"maxWorkerContextTokens": 40000,
"maxReplanRounds": 2,
"workerTimeoutMinutes": 30,
"maxWorkerResultTokens": 2000
}
maxConcurrentWorkers:同时运行的子代理数上限,内存小的机器建议设为 1。worker:默认的本地模型配置,用于执行子任务。fallback:子任务超出本地能力时的云端兜底模型。maxWorkerContextTokens:本地 worker 的上下文预算。maxWorkerResultTokens:每个 worker 返回给主代理的小结带宽上限,防止主上下文随 worker 数量线性膨胀。
依赖与前置条件¶
本插件依赖 dsh-plugin-subagent-director 插件。如果没有安装该依赖,worker 无法路由到本地模型,只能使用云端模型。
同时,需要在 DSH 的 settings.yaml 中配置本地模型的端点(如通过 omlx 部署的 OpenAI 兼容接口),以便 worker 调用。
外部记忆¶
插件会在工作区生成 .task-runner/ 目录,用于存储长期状态:
* state.json:当前阶段、目标、待办及决策。
* tasks.json:任务清单(ID、状态、worker、小结路径)。
* findings/:按主题分类的关键发现。
* artifacts/:worker 的完整输出。
* summary.md:任务结束时的交接摘要。
注意事项¶
- 配置生效时机:配置修改后,需在下一个会话开始时才会生效。
- 全本地模式:勾选“全本地模式”开关后,仍需在模型选择器中手动切换到本地模型,主代理才会真正使用本地模型。
- 会话重启:某些配置变更或依赖问题可能需要重启应用或刷新页面才能修复。
短结尾¶
dsh-plugin-task-runner 通过拆解与隔离机制,解决了本地大模型处理长上下文难题。配合外部记忆和灵活的配置,适合处理复杂、长链路的开发或分析任务。
仓库地址:https://github.com/weixshaw/dsh-plugin-task-runner