dsh-sidecar:后台 Sidecar 子智能体与按需审阅

前言

在 DeepSeek Harness(DSH)里做复杂任务时,主会话往往要一边推进主线,一边跑探索、修 bug 或并行调研。若把这些子任务都塞进同一条对话,上下文会被工具调用和中间产物占满;若每次都要等子任务跑完再继续,主线程又会长时间空转。

下面介绍的 dsh-sidecar(维护者 kenjoe41,社区分类:工作流)针对的是另一类需求:在后台启动聚焦的子智能体(sidecar),每个子任务有独立名称、可选独立工作目录或 git worktree,跑完后把可审阅的结果存盘,由你在合适时机用命令或工具拉取,而不是默认把完整子会话日志灌进主对话。

它与 dsh-autocontinue(续跑/重启)和 dsh-update(更新器)是独立插件,不共享状态。

这是什么

dsh-sidecar 是 DSH 的插件包名,当前资料中的版本为 0.4.0,许可证 MIT。一句话定位:在后台拉起带唯一名称、可隔离工作空间的 sidecar 子智能体,任务结束后写入结构化审阅结果,完整子会话 transcript 按需读取。

核心功能

斜杠命令

主会话或用户可通过 /sidecar 系列命令管理 sidecar:

/sidecar <task>                              # 自动命名(sidecar-1、-2…),使用父会话 cwd
/sidecar --name alpha <task>                 # 指定唯一名称,并固定为子会话标题
/sidecar --cwd /tmp/alpha-space <task>       # 使用独立工作目录
/sidecar --worktree --name wt-fix <task>     # 独立 git worktree + 分支 sidecar/wt-fix
/sidecar list                                # 列出运行中的 sidecar:名称、id、时长、cwd
/sidecar result <id>                         # 立即读取并消费一条已存储结果
/sidecar log <id>                            # 按需拉取完整子会话 transcript
/sidecar cancel <id>                         # 中断指定 sidecar

多个 sidecar 可并发运行,上限由子智能体服务的 maxActiveSubagents 决定(默认 8)。若请求的名称已被占用,会自动追加 -2、-3 等后缀。默认与父会话共享 cwd;需要文件系统或分支隔离时用 --cwd 或 --worktree。worktree 从当前 HEAD 创建,父工作区未提交的改动在 worktree 中 intentionally 不可见。

给主智能体用的工具

当父智能体选择审阅结果时,可使用:

  • sidecar_result:参数 { id },返回已存储的审阅正文并从队列中移除。
  • sidecar_list:列出等待审阅的已存储结果。

交付方式:通知,而非排队用户消息

子智能体通过 ctx.subagents.startActivation() 启动,delivery: 'caller';子会话的 prompt 禁止 send_message 和进一步委派。

子任务结束后插件会:

  1. 将完整结果写入 ~/.dsh/sidecar/results/<parent>/<child>.json;
  2. 调用 agent.inject(notice)——下一步通知、不唤醒。这不是 followup:不会创建排队的用户消息,也不会自动开新的一轮。运行中的父智能体在下一步看到通知;空闲的父智能体在下次运行时再看到。通知只说明结果已存储,可用 sidecar_result 取回;
  3. 默认不把完整结果注入主会话 transcript。父智能体通过 sidecar_result(或用户执行 /sidecar result <id>)以 工具结果 形式取回并消费文件。

存储的审阅内容刻意保持紧凑,包含:子任务完整 task 描述、最终答案、按顺序排列的 证据链(每次工具调用及其结果,上限约 8 KB)、以及 子会话 id 与指向 sidecar_log 的说明。完整子会话日志(含工作区说明、推理与每一步)留在磁盘上,通过 sidecar_log 或 /sidecar log <id> 按需获取。

若父会话在看到通知前就关闭,文件仍会保留;下次创建或恢复该父智能体时会再次注入通知。若通知已被消费或错过,可用 sidecar_list 发现待审阅项。

安装与启用

官方安装方式(web profile)如下:

dsh plugin --profile web add github:kenjoe41/dsh-sidecar
# 或固定某一 release
dsh plugin --profile web add github:kenjoe41/dsh-sidecar#v0.4.0

本地 checkout 可用 link 方式安装;link 安装需要 node_modules/@deepseek-ai/{dsh-llm,dsh-tools} 等 shim,以便 profile 的 peer 依赖能解析。安装后需 reload 或重启该 profile。

插件以当前 DSH 进程权限运行,安装前请自行查看仓库源码与 MIT 许可证,确认符合你的安全与合规要求。

典型用法

  1. 在主会话里用 /sidecar --name research-api <task> 把一段聚焦调研丢到后台,主线程继续改代码或回复用户。
  2. 用 /sidecar list 查看仍在运行的 sidecar 及其 cwd。
  3. 收到通知或空闲时,让父智能体调用 sidecar_list / sidecar_result,或你手动执行 /sidecar result <id> 消费结果。
  4. 需要核对子智能体每一步时,再执行 /sidecar log <id> 拉完整 transcript,避免默认把冗长日志压进主上下文。

需要与主仓库改动隔离的修复尝试,可使用:

/sidecar --worktree --name wt-fix <task>

适用场景与注意

适合:并行多路探索、长耗时子任务、希望主会话保持精简而结果仍可追溯的场景。不适合:必须把子任务输出实时流式合并进当前轮对话、或依赖与 dsh-autocontinue 同一套续跑状态的工作流——应选用对应专用插件。

DSH 生态强调「一切皆插件」;插件目录在 SkillHub 等社区站点展示,与 DeepSeek / 幻方无官方从属关系。本插件在目录页分类为工作流,GitHub 星标以仓库页面为准(撰写时资料为 0)。

  • 目录页:https://www.skillhub.cn/plugins/kenjoe41/dsh-sidecar
  • 仓库:https://github.com/kenjoe41/dsh-sidecar

结尾

dsh-sidecar 把「后台子智能体 + 唯一命名 + 可选 cwd/worktree 隔离 + 紧凑审阅与按需完整日志」做成一条清晰工作流,主会话不必为每次子任务牺牲上下文,也不必盲等子任务结束。按上文安装命令接入 web profile 后,即可从 /sidecar 与 sidecar_result 开始试用。

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

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

小夜