前言¶
DeepSeek Harness (DSH) 的后台任务通常绑定在代理回合的生命周期上,回合结束任务即销毁。直接使用 shell 定时器无法实现“在相同对话中延迟唤醒代理”的功能。本插件通过宿主机级定时器与官方 agent.followup() 通道,解决了跨回合唤醒与定时阻塞的问题。
插件介绍¶
dsh-delay-tools 是 DeepSeek Harness 的一个工作流插件,提供两个核心工具:schedule_reminder 和 wait。前者用于在相同对话中延迟唤醒代理(智能体在等待时继续工作),后者用于阻塞当前回合直到倒计时结束。
安装¶
执行以下命令安装插件:
dsh plugin add github:keyiadiannao/dsh-delay-tools#master
功能说明¶
1. 延迟唤醒 (schedule_reminder)¶
调用此工具后,智能体在等待期间会继续处理其他任务。倒计时结束后,插件会通过 agent.followup() 将消息送回当前的对话上下文中。
- 多提醒支持:同一对话中可设置多个提醒,每个提醒有独立的
reminder_id。 - 不干扰对话:无论倒计时期间发生多少次对话交互,提醒都会在指定时间准时送达。
2. 定时门控 (wait)¶
此工具会阻塞当前回合,智能体直到倒计时结束后才会继续执行后续逻辑。
- 消息队列:在等待期间发送的消息会进入队列,倒计时结束后统一处理。
- 可中断:如果在等待期间点击停止按钮,等待会立即中断,智能体不会挂起等待剩余时间。
使用示例¶
调用 schedule_reminder¶
你可以要求智能体在 30 秒后提醒你喝水:
Call the
schedule_remindertool and remind me in 30 seconds to drink water.
智能体会返回预计触发时间。倒计时结束后,它会在同一对话中回复你。
调用 wait¶
如果需要等待一段时间再继续:
Call the
waittool for 30 seconds, then continue.
智能体会阻塞当前回合,30 秒后自动继续。
配置项¶
插件支持通过 YAML 配置调整默认延迟范围。以下为示例配置:
- id: dsh-delay-tools
config:
defaultDelayMs: 60000 # 默认延迟毫秒数
maxDelayMs: 3600000 # 单次延迟上限(1小时)
minDelayMs: 1000 # 单次延迟下限(防止瞬间重入)
注意事项¶
- 内存依赖:提醒仅存活于进程内存中。插件重载会取消所有待处理的提醒;DSH 主机重启也会取消所有待处理的提醒。
- 持久化:目前不提供持久化存储,重启会导致提醒丢失。
总结¶
该插件解决了 DSH 中跨回合定时任务的痛点,提供了基于宿主机级定时器的可靠唤醒机制。适用于需要“稍后提醒”或“定时冷却”的场景。