dsh-assistant:一个把委派、权限和上下文管理交给父代理的 DSH 聊天代理

前言

DeepSeek Harness 的生态理念是「一切皆插件」,agent 类插件也因此很常见。但多数 agent 插件的交互方式仍是「用户点一下,插件跑一下」:长任务会阻塞当前对话,worker 的中间过程把上下文占满,工具权限边界也比较模糊。

下面介绍的 dsh-assistant 换了一种结构。它由 StarsHarryZhu 维护,以 npm 包 @starsharryzhu/dsh-assistant 分发,版本 0.2.1(本篇按抓取时的仓库与 package.json 核对)。核心思路是:对话里只保留一个轻量的「父代理」,真正干活的交给后台 worker 子代理,由父代理统一管理它们的上下文、模型、工作区和权限。下面按架构、能力、安装、配置、限制的顺序说明。

这是什么

一句话定位:这是一个面向 DeepSeek Harness Desktop 的通用聊天代理(general-purpose chat agent),把「用户操作每个工具」换成「父代理规划、委派、审批」。

  • 维护方:StarsHarryZhu(package.json 的 author 字段署名为 Starfield)。
  • 许可证:MIT,Copyright (c) 2026 Starfield。
  • 语言:TypeScript。
  • 依赖运行时:DeepSeek Harness Desktop >=0.2.1-rc.5 <0.3.0。只支持桌面端,网页版和其他宿主不支持。
  • 仓库现状:截至抓取时 GitHub 仓库 StarsHarryZhu/dsh-assistant 没有 description,star 数为 0、fork 数为 0,创建于 2026-11-03。功能描述以 README 为准。

架构:父代理 + worker 子代理

README 把插件描述为「两个隐藏的 agent preset + 一个可见的对话」。实际结构分四块。

1、父代理(router)。它就是聊天窗口里的那个代理:和你对话、用固定文件上的窄工具记简单事实、其余事情用 delegate 交给 worker。它没有通用文件写入、shell、web 或官方 subagent 工具,所以不会因为某个任务卡死,随时可以接你的下一条消息。

2、Workers。worker 挂在自己的 preset 上,持有真正干活的工具集。每个 worker 有独立的 cwd,只能改自己的子工作区(外加临时目录);要改别处必须发 request_write_access,由父代理应答。

3、父代理作为管理者。它从你启用的模型里给 worker 选模型和推理力度,把你的请求按你的原话转述过去,不轮询进度,只回报结果、决策或失败。worker 的上下文不进入对话;父代理自己的上下文按可配置比例自动压缩,默认 50%。

4、权限与隔离。默认允许工作区内写入,越界自动拒绝。父代理自动批准「与任务匹配的区内工作」,破坏性或含糊的改动只问一句自然语言,不弹模态框。每个 assistant 可以单独设成只读、工作区写入或完全访问。隔离是双向的:父代理的记录工具只存在于两个隐藏 preset 里,其他插件的全局工具也不会进这两个 preset,本插件自身的工具也不会出现在普通会话中。

核心能力

以下条目均来自 README。

  • 侧边栏有一行入口,打开最近一个 assistant 的对话;不同 assistant 之间切换对话标题,也可以创建新的(需要名称、称呼、工作区)。
  • 每个 assistant 对应一条长对话,自动压缩上下文。
  • 每个对话可以分别选模型和推理力度,另有 worker 模型多选列表。
  • 工作区里以纯文本文件保存记录:日程 ddl.md、清单、备忘录、日志、profile、persona、项目。密码、卡号、身份证号不会被记录。
  • 日程带提醒和 /ddl 周视图,每天早上一份日报,另有 watchdog 看门狗。
  • 心跳代替定时任务:assistant 每小时自动醒一次,到期事项精确到分钟唤醒,也可以自己设定下次唤醒。空闲心跳是否调用模型是一个设置项。
  • 静默时间分日常和临时两类。静默时段内的提醒挪到前一天晚上或次日早上,其他微信消息等时段结束再回;assistant 只在你要求时改这些设置。
  • profile 里有自己的时区,由你所说的位置和日程推算,不看设备时区。
  • DeepSeek 账户余额提醒,措辞可配置。
  • 微信由子插件 im-robot 提供:扫码绑定,assistant 自我介绍;之后在微信里就是同一条对话。assistant 对每条回复决定是否同时发微信,你在哪个入口最后说话,需要看到的内容就发到哪。你发的图、文件、语音、视频会显示在对话里,并存到工作区的 IM/WeChat/(默认 30 天,可调,设 0 表示不保留);处理前 assistant 会把文件复制一份出去。回复会把文本拆成短消息发送。

安装与启用

要求 DeepSeek Harness Desktop 版本在 >=0.2.1-rc.5 <0.3.0 区间内,且只支持 Desktop。

装法有两种:在 DSH Desktop 的 Plugins 页面安装,或者命令行:

dsh plugin --profile desktop add @starsharryzhu/dsh-assistant

这条命令会同时装上两个子插件 @starsharryzhu/complete-subagent(委派工具、worker 模型选择、写权限申请)和 @starsharryzhu/im-robot(微信桥)。两个子插件在 dependencies 里固定为精确版本,只挂载在两个隐藏 preset 内部;如果单独安装其中一个,自带的那份会自动关掉。

配置项:Plugins 页与每个 assistant 的 Settings

分两层。

Plugins 页(所有 assistant 共享):

1、worker 模型列表。
2、上下文压缩比例。
3、余额提醒的阈值和检查间隔。
4、提醒文案。
5、persona 和 profile 的长度上限。

每个 assistant 的 Settings 标签页:

1、名称和称呼。
2、提醒提前量、日报时间。
3、心跳间隔和空闲唤醒。
4、静默时间。
5、watchdog 超时。
6、微信开关和消息长度。

设置页的「Shared settings」按钮可以打开 Plugins 页那套共享配置。数字类字段可以直接清空重填,离开字段时会对值做校正。

典型用法

README 没有给端到端示例脚本,下面这些是从能力描述能直接落地的用法。

1、首次创建 assistant:在侧边栏入口新建,填名称、称呼和工作区。之后这条对话就是它长期运行的上下文。

2、日常记录:直接让 assistant 记日程或备忘,它写到工作区的 ddl.md 等文件里,你不用自己维护文件结构。到期前靠心跳和提醒通知。

3、查看一周安排:在对话里用 /ddl 打开周视图。

4、委派长任务:把任务描述发给 assistant,父代理会用 delegate 交给后台 worker,期间父代理仍可接受你的下一条消息。worker 需要改工作区外的文件时,父代理会代为提问并等你确认。

5、绑定微信:用 im-robot 提供的二维码扫码绑定,随后 assistant 会自我介绍。绑定后从微信发消息到同一个对话;assistant 按条决定是否同时把回复发回微信。

已知限制

README 的 Known limits 一节列出了这些约束,照录如下。

  • 侧边栏的全文本搜索仍能找到 assistant 的对话。
  • 应用关闭或电脑休眠时心跳停止;恢复后会补上仍然待办的事项。
  • 应用会保留对话中显示过的每张图片和文件的副本,即使 IM/WeChat/ 已删除原文件。
  • 只隔离工具;其他插件注入的全局 prompt 上下文不做过滤。
  • assistant 还不能向微信发送图片或文件。语音仍是原始 SILK 音频,文字形式用微信转写的文本代替。
  • worker 不能修改工作区之外的任何内容;在 DSH 0.2.1-rc.5 上,审批通过的路径只覆盖 write/edit 工具,不覆盖 shell 命令。
  • 只在 macOS 上用 Desktop 0.2.1-rc.5 和 0.2.2-rc.1 验证过,其他系统未测试。

另有一条路线图:下一步是父代理的单窗口自我管理——在同一个对话里处理它自己的上下文、模型选择和长跑任务,减少交接与人工监督。目前尚未实现。

适用场景与注意

适合这几类人:

1、想在 DSH 里跑「长线陪伴型」agent、而不是一问一答工具的开发者;愿意接受「父代理替你管理 worker」这种更自主的模式。
2、需要微信入口同步接收提醒和汇报的人,im-robot 已经做了收发两侧。
3、关注权限边界的人,插件提供了工作区隔离和逐 assistant 的访问级别。

同时需要注意:

1、插件按当前 DSH 进程的权限运行。README 未说明它是否以沙箱或降级权限运行;安装前应先读源码,确认工具调用路径与文件访问范围是否符合你的预期。
2、许可证是 MIT,但包内含子插件,且 files 里带了 cordis.patch.yml 和 THIRD_PARTY_NOTICES.md,涉及第三方组件,建议一并查看。
3、网页版和其他宿主不在支持范围内,务必先确认 Desktop 版本区间。
4、场景描述和功能要点应以最新版 README 为准,本篇基于抓取时(2026-11-07)的仓库与 README 内容。

结尾

dsh-assistant 的价值在于把委派、权限审批和上下文压缩交给父代理统一处理,让对话窗口保持轻量,同时给 worker 提供受控的工作区。当前版本在委派、工作区隔离、自动压缩、日程提醒、心跳与微信接入上已经可用,父代理的单窗口自我管理是后续路线。

查看目录页:https://www.skillhub.cn/plugins/StarsHarryZhu/dsh-assistant
源码与 README:https://github.com/StarsHarryZhu/dsh-assistant

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

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

小夜