前言¶
在 DeepSeek Harness(dsh)里跑长任务时,常见的缺口不是「能不能丢到后台」,而是丢出去之后还能不能继续说话。内置的后台作业偏即发即弃:可以看到输出、可以杀掉进程,但很难在同一场对话里给它补一句「先看 snapshot 测试」、也很难在 Web 侧栏里点开子会话。调度类插件负责「何时启动」,状态栏类插件负责「展示进度」,真正缺的是对一场可续聊子会话的交互式操控。
dsh-background-agents 把这件事接到官方子代理接缝上:启动一个持续工作的子 agent,在侧栏看进度,随时发消息引导,必要时请求中断,父会话不用切走。v0.5.0 之后还加了一套持久化的多代理团队房间,消息总线和任务板走 harness 自己的存储,重启后还能恢复。
DeepSeek Harness 的官方定位是「一切皆插件」。社区站点 DeepSeek Harness 插件库 收录了一批扩展,它是独立运营的目录,与 DeepSeek / 幻方没有从属、背书或赞助关系。本文按该目录详情页、GitHub README / package.json / cordis.patch.yml、npm 发布页,以及 DeepSeek Harness 官方仓库 交叉核对后整理。
这是什么¶
dsh-background-agents 是一款会话与消息类插件,由 PerryLink 维护,许可证 Apache-2.0,主要语言 JavaScript。目录页给它的定位是:为 DSH 提供交互式长会话后台 agent——可启动一个持续工作的子 agent,在 Web 侧边栏查看进度、随时发消息引导、必要时中断,全程不离开当前会话。
仓库 README 写得更具体:它把即发即弃的后台作业升级成可续聊的子会话,并在同一套控制面上加上进度注入、空闲归档和侧栏面板。npm 包名同样是 dsh-background-agents,当前发布版本 0.5.1(2026-08-17)。兼容声明是 DeepSeek Harness 0.1.0-rc.6,peer 范围为 >=0.1.0-rc.5 <0.2.0;Node 要求 ^22.19.0 || >=24.0.0。截至 2026-08-18,目录页与 GitHub 均显示 5 颗星。仓库收录于目录的日期是 2026-08-15。
维护者在 README 里把它和另外几类社区插件划开了边界:titanwings/dsh-automation 负责定时启动新会话,本插件没有 cron;vlln/dsh-task-status 展示工具级作业,本插件创建并操控的是 agent 会话;YYTbit/dsh-plugin-agent-dashboard 偏展示,本插件的行可以跳进子会话、发消息、请求停止。
核心功能¶
五个操控工具¶
插件在官方子代理接缝(startContinuable / followup / interrupt / listChildren)上提供五个工具,不自己做生命周期路由,也不去杀进程树:
background_agent:启动一个可续聊的子代理。可选label、tool_filter、persona、max_depth,以及childProvider/childModel覆盖子代理的模型路由。tool_filter只从子代理视野里移除工具,不会授予新工具。bg_message:按 agent id 投递后续轮次。bg_list:列出本会话后台代理状态;recursive: true时带parentId/depth看后代树。目录不可用时返回明确的unrecoverable标记,不会捏造空列表。bg_result:读取子代理最新助手输出。回退到推理内容时标记textSource: 'reasoning';超长文本按resultMaxChars(默认 4000)截断并标记truncated。bg_stop:请求中断当前轮次。停止等于 request interruption,清理工作属于延续管理器。
一次性(one-shot)子代理不会出现在 bg_list 里,也不能被 bg_message 投递。子代理默认继承父会话的模型路由。
进度注入与空闲归档¶
autoReport 默认开启:每个子代理轮次结束后,向父会话注入一条节流进度行,规范前缀是 [background-agent] …。reportDelivery 默认 quiet,把该行追加到下一次模型请求;设为 wakeup 时,父会话空闲会再开一轮。同一子代理两次注入的最小间隔由 reportThrottleMs 控制,默认 15000 毫秒。
空闲清扫默认开启(autoArchive: true)。安静超过 idleTimeoutMinutes(默认 120 分钟)的子代理会被归档,之后可用 bg_message 唤醒。autoArchive: false 则让安静的监视者暂停驻留,清扫器不会归档它们。每个父会话未归档后台代理的硬上限是 maxBackgroundAgents,默认 4;这个预算与内置 subagent 启动的可续聊直接子代理共享。
进度与状态不靠单独数据库。结构化事实写进父会话日志的 background-agents/fact 事件(带 ignorable: true),仪表盘和 bg_list 每次打开都从日志重建。
Web 侧栏面板¶
backgroundAgents 会话投影把父日志折叠成仪表盘行。Web 侧栏面板可以看实时状态、跳进子会话、发消息、请求停止,以及预览结果。这一半依赖 Web 客户端注入(package.json 里声明了 @deepseek-ai/dsh-client-ui-sidebar 等),工具本身在 headless profile 上也能用。
团队房间(v0.5.0+)¶
/room 命令族加上八个 room_* 工具提供持久化多代理房间:成员各自是独立会话,带定向 / 广播消息总线、共享任务板和共享时间线。数据放在 team_rooms 存储域,后端是 SQLite 或 JSONL,不另起服务。跨成员任务交接走官方审批接缝:room_transfer_task 没有 answerer 授权时失败关闭。
团队房间依赖 @deepseek-ai/dsh-storage-domain。没有存储域时,/room 和 room_* 禁用,五个 bg_* 工具仍可加载。bundle 补丁会插入 storage / storage-json / storage-domain 行;在已经组合这些行的 web profile 上按 id 覆盖是安全的,在没有存储包的构建上这些行加载失败,房间半侧保持休眠。
房间上限可在配置里改,默认 maxRooms 16、maxMembersPerRoom 8、maxRoomsPerMember 4。单条房间消息超过 maxMessageChars(默认 4000)会被拒绝,不会截断。
与内置子代理工具的关系¶
Harness 核心已有 subagent、send_message、interrupt_agent 和子端 report。本插件的 bg_* 是它们的会话级同伴,可以一起挂载:
background_agent与subagent(backgroundMode: 'continuable')走同一条startContinuable接缝,额外做 per-child 的tool_filter/persona/max_depth校验和每会话上限。bg_message/bg_stop与send_message/interrupt_agent语义相同,同时维护投影事实。- 内置
report由子模型自己调用;本插件在每个子轮次后自动注入节流进度。
核心工具没有 bg_list、bg_result、空闲归档,以及按父会话折叠的面板。本插件也不做定时触发、跨机器 / 远程代理,也不改官方子代理激活契约。provider 必须指向具备 prepareContinuable 的 provider;缺失时 background_agent 会一直失败。
安装与启用¶
社区目录页给出的安装命令如下,在 DeepSeek Harness 终端里运行即可:
dsh plugin add github:PerryLink/dsh-background-agents
需要可复现安装时,目录页的写法是把 commit 哈希接到仓库后面:
dsh plugin add github:PerryLink/dsh-background-agents#commit
把 #commit 换成实际提交哈希。截至 2026-08-18,main 最新提交是 4bcab91f764dc30994119857824e61bb3515f90e,对应发布标签 v0.5.1。插件以当前 dsh 进程的权限运行,安装时可能执行代码。安装前应检查源代码仓库和许可证。
仓库 README 另外提供了指定 profile 的 git / npm 渠道。仓库已提交构建产物 lib/,git 安装不需要 prepare 或 allowBuilds。bundle 补丁会写入 id: background-agents 这一行,并把必填项 provider 设为 spawn:
# git 渠道(跟踪 main)
dsh plugin --profile web add "github:PerryLink/dsh-background-agents#main"
# 固定发布标签
dsh plugin --profile web add "github:PerryLink/dsh-background-agents#v0.5.1"
# npm 渠道(已发布版本,当前 0.5.1)
dsh plugin --profile web add dsh-background-agents
重启后验证配置行:
dsh --profile web --dump-config | grep -A4 'id: background-agents'
插件需要子代理脊柱已挂载;README 说明任何基于 @deepseek-ai/dsh-base 的 profile 都具备。可调项都是 Schemastery Config 字段,改 cordis.yml 或 profile 覆盖,不要改源码。仅 provider 为必填,其余如 autoReport、idleTimeoutMinutes、maxBackgroundAgents、房间上限等都有默认值。
卸载:
dsh plugin --profile web remove dsh-background-agents
也可以从 profile 补丁里删掉该行。
典型用法¶
装好并确认 dump-config 里出现 id: background-agents 之后,在任意会话里直接让模型调用工具,或按 README 的示例手动走一遍:
background_agent "watch the repo for test failures and keep me posted" (label: test-watch)
bg_list
bg_message <agentId> "also check the snapshot tests now"
bg_stop <agentId>
操作顺序可以按下面理解:
- 用
background_agent启动子代理,拿到稳定的 agent id。需要限制子代理工具时传入tool_filter;名称会按配置里的allowedChildTools校验,空或未设表示不额外限制。 - 用
bg_list看状态。Web 侧栏同一套投影也可以跳转、预览bg_result。 - 任务方向变了,用
bg_message投递后续轮次,不必新开一个子代理。 - 需要停下当前轮次时用
bg_stop。这是中断请求,不是杀进程。 - 若启用了存储域,再用
/room create|join|send|tasks以及room_post、room_create_task、room_claim_task、room_transfer_task做跨会话协作。
仓库还带了一个无需 API key 的端到端演示,用脚本化 LLM 驱动父会话和后台子代理。dev/ 目录被 gitignore,路径要按本机 checkout 调整,PowerShell 示例如下:
$env:DSH_HOME = 'D:/deepseek-harness/Project/Plugins/dsh-background-agents/dev/dsh-home'
pnpm dsh --profile headless --patch dev/cordis.yml "【父会话】驱动后台 agent 演示"
适用场景与注意事项¶
适合已经在本地跑 DeepSeek Harness、需要「一边继续对话、一边让子代理盯仓库 / 跑长任务」的开发者。Web profile 还能用侧栏面板操作;headless 则主要走五个 bg_* 工具。需要多会话分工、共享任务板时,再打开团队房间半侧。它不适合当作定时任务系统,也不能把子代理派到另一台机器上。
使用前建议先接受这些限制:
- 插件与当前
dsh进程同权。workshop 清单声明的权限是session:append、subagent:spawn、tools:register。安装前检查 GitHub 源码与 Apache-2.0 许可证;需要可复现安装时固定 commit 或v0.5.1这类标签。 - 子代理是该部署进程内的可续聊会话。进度事实写在父会话日志里;团队房间写在
team_rooms存储域。没有独立数据库,也不对外发网络请求。 tool_filter只会少给工具,不会多给。bg_stop不杀进程树。- 没有
@deepseek-ai/dsh-storage-domain时,房间相关命令和工具不可用,五个bg_*仍在。 maxBackgroundAgents计入本会话每一个可续聊直接子代理,包括内置subagent启动的那些。- 社区插件目录不是官方应用商店。兼容声明钉在
0.1.0-rc.6这一档 peer 范围,升级 Harness 后应重新验证。
小结¶
dsh-background-agents 把 DSH 的后台能力从「丢作业」补成「可续聊的子会话」:五个 bg_* 工具走官方子代理接缝,侧栏可以看进度、发消息、请求中断;v0.5.0 起还可以用团队房间做跨会话协作。它不负责定时触发,也不把 agent 派到远程机器。
目录页:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-background-agents/
GitHub:https://github.com/PerryLink/dsh-background-agents
npm:https://www.npmjs.com/package/dsh-background-agents