前言¶
DSH 的 Agent 模型本质上是请求-响应过程。一旦回合结束,Agent 进入休眠状态,没有内置的计时器或进程监听机制。当需要执行长任务(如下载大文件、编译、等待服务启动)时,任务完成后 Agent 不会自动醒来汇报,用户必须主动询问。
dsh-proactive 作为一个 DSH 插件,解决了这个问题。它在 Agent 回合结束后充当“守夜人”的角色,在条件满足时注入消息并唤醒 Agent,使其主动汇报任务完成情况。
定位¶
这是一个工作流类插件,由开发者 mili1360 维护。核心价值是在 Agent 回合结束后自动唤醒 Agent 报告长任务完成状态。
核心功能¶
- 自动唤醒:在 Agent 回合结束后,通过注入消息唤醒 Agent。
- 多种触发器:支持文件稳定、进程退出、端口开启、定时等多种监控方式。
- 消息注入:使用
agent.steer()注入指令,机制同dsh-subagent向父代理汇报。 - 消息重试:支持
repeatSeconds配置,对持续变化的文件(如日志)进行持续监控。 - 隐蔽通知:默认不渲染为用户气泡(
source.kind=plugin),用户只会看到 Agent 的回复。
安装与启用¶
安装此插件只需一条命令:
dsh plugin add --profile web github:mili1360/dsh-proactive
安装完成后,必须重启 DSH 进程才能使插件生效。
典型用法¶
-
场景示例:
用户:“fetch that 20 GB thing and tell me when it’s done”
Agent(开始下载 -> 回合结束 -> 休眠)
…数小时后…
插件(检测到文件大小停止变化 -> 注入消息 -> 唤醒 Agent)
Agent:“Done — 20.3 GB, and I verified the checksum against the published one.” -
配置步骤:
- 在配置中添加
watch.example.json文件。 - 将配置项添加到
dsh.profile.bundles数组中。 - 插件启动定时器,按设定间隔检查触发条件。
- 在配置中添加
适用场景与注意¶
-
依赖与兼容性:
该插件依赖@deepseek-ai/dsh-llm包。目前仅支持 DSH0.1.0-rc.7(自定义构建版本)。 -
消息渲染:
插件源消息默认不在 UI 渲染(source.kind=plugin),Agent 主动汇报时体验更自然。若需要渲染为用户气泡,需显式设置sourceKind: 'user'。 -
会话选择:
当未指定sessionId时,插件会唤醒最近活跃的会话。如果指定的会话不存在,该条目会被跳过并保持待命状态。
总结¶
对于需要处理长时间后台任务的场景,该插件填补了 Agent 休眠期间的状态同步空白。你可以通过 社区目录 查看更多详情,或在 GitHub 查看源码与文档。