dsh-superagent-local: Host-Session-Driven Local Workspace Agent

前言

在 DeepSeek Harness(DSH)里做编码智能体,常见做法是让插件监听 GitHub 或飞书:外部有人提需求,编排器开 Ticket、Worker 在独立目录里改代码,再在原对话里回复。对个人开发者或只在本机 IDE 里干活的人来说,这套链路偏重——你本来就在侧边栏的工作区里,却还要先走到别的渠道才能「派活」。

下面介绍社区维护的 mengzhongjie/dsh-superagent-local:它是上游 dsh-superagent 的 fork,把需求来源改成本机操作者在主会话里的消息,每个侧边栏工作区各有一条主会话,主会话只路由,具体执行仍由 Worker 在该工作区目录完成。插件归类为「工作流」,由 mengzhongjie 维护;上游 README 标明这是研究原型,仅供参考,使用前请自行审阅源码与许可证(MIT)。

这是什么

一句话:dsh-superagent 的本地改造版 DSH bundle——每个工作区一个主会话,Trigger 来自本机 Session(source.kind === 'user'),而不是 GitHub/飞书 watcher。

与上游相比,README 列出四点差异:

  1. 本地 Source:src/sources/dsh.ts 以 ./local-watch 导出;主 Session 里的一条用户消息变成 Trigger,回答写回同一会话;编排器自己注入的消息不会回环。
  2. 每工作区一条主 Session:按需创建 orchestrator,映射保存在 KV.runtime.masters(workspaceId → sessionId);GET /orchestrator/api/master?workspace=<id> 可查询,不存在则创建。
  3. 侧边栏入口:客户端在每个工作区分组行([data-row-key^="workspace:"])注入星标按钮,打开该工作区主 Session,并在列表中隐藏主会话行。
  4. 附件:Trigger 携带 meta.attachments,Worker 拿到 attachment-store 路径后再处理。

未配置 Git 远程时,resolveDeployment 可返回空仓库,GitHub watcher 处于 paused,可不依赖 GitHub 运行。操作者提需求后,主 Session 路由到 Ticket,Worker 在工作区目录执行;主 Session 本身不直接改文件。

核心功能

以下能力均来自仓库 README 与 package.json 描述,未在资料中出现的配置项不在此展开。

能力 说明
Ticket / Worker 分工 与上游 superagent 模型一致:主会话路由,Worker 在 workspace 目录执行
本地消息源 ./local-watch 监听本机主 Session 用户消息
工作区隔离 每 workspace 独立 orchestrator 与 master session
Web 面板 上游能力保留,用于展示需要人工处理的事项(见文档 005-panel.md)
可选 GitHub / 飞书 仍导出 ./github-watch、./feishu-watch;本地 fork 侧重本机 Source

bundle 通过 cordis.patch.yml 注入客户端模块(locale、sidebar、workspace 等)。package.json 要求 Node ^22.19.0 || >=24.0.0,DSH ^0.2.1-alpha.2;当前包版本 0.2.1。

哲学与行为边界见仓库 docs/000-philosophy.md:尽量少占用人注意力,仅在有人请求或团队规则允许时行动。

安装与启用

插件未发布到 npm,需从 GitHub 或 release tarball 安装。安装命令以 README 为准:

# 从源码安装;prepare 脚本会在安装时构建 lib/
dsh plugin add github:mengzhongjie/dsh-superagent-local

或使用预构建包:

dsh plugin add https://github.com/mengzhongjie/dsh-superagent-local/releases/download/v0.2.1/dsh-superagent-0.2.1.tgz

安装完成后,配置与首次启动步骤较多,README 建议让编码智能体按 SETUP.md 逐步协助。可直接对 agent 说:

Read SETUP.md in this repository and set up dsh-superagent with me.

它会一次问一个短问题、展示完整计划后再安装配置。具体 profile、部署与排错见 docs/006-deployment.md。

注意:插件以当前 DSH 进程权限运行;安装前请阅读仓库源码与 MIT 许可证,确认符合你的环境与安全策略。社区目录 skillhub.cn 插件页 与 GitHub 无 DeepSeek/幻方官方从属关系,DSH 生态本身是「一切皆插件」的扩展模型。

典型用法

  1. 在 DSH 侧边栏打开目标工作区,通过工作区行上的星标入口进入该工作区的主 Session。
  2. 在主 Session 用自然语言描述要做的事(可带图片或文件附件);本地 Source 将其转为 Trigger。
  3. 编排器创建 Ticket,Worker 在该工作区目录下的 agent session 中执行;结果回到主 Session 对话。
  4. 需要人工介入或查看队列时,使用上游提供的 Web 面板(文档 005-panel.md)。

想扩展新的需求来源,可参考 docs/008-cookbook.md(Adding a Source)。领域模型、授权、执行与 Prompt 设计按编号文档顺序阅读:000 哲学 → 001 领域 → … → 008 Cookbook。

适用场景与注意

更适合:在本机 DSH 多工作区开发、希望「在同一 IDE 会话里派活给 Worker」、暂时不配置 GitHub/飞书 webhook 的团队或个人。

不太适合:必须严格走 GitHub Issue/PR 或飞书审批链路的生产流程——应使用上游 deepseek-ai/dsh-superagent 并按其部署文档接入远程 Source。

上游免责声明仍适用:代码为研究原型,工程风格可能不一致,可能与论文 Exploring Super-agent Design 中的部分设想不完全一致;fork 为公开发布适配版,与内部实现也可能有差异。升级与故障排查见 docs/006-deployment.md;开发自检可运行 pnpm check(类型检查、测试、构建)。

链接

经过上面的步骤,你可以在不动 GitHub/飞书的前提下,用每个工作区一条主会话,把本机操作者的需求路由到 Worker,在对应目录里完成编码任务。

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

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

Xiaoye