Introduction

Background tasks in DeepSeek Harness (DSH) are typically bound to the lifecycle of an agent turn, and are destroyed once the turn ends. Using shell timers directly does not provide the ability to “delay-wake the agent within the same conversation”. This plugin uses a host-level timer together with the official agent.followup() channel to solve the problems of cross-turn wake-up and timed blocking.

Plugin Introduction

dsh-delay-tools is a workflow plugin for DeepSeek Harness that provides two core tools: schedule_reminder and wait. The former is used to wake the agent after a delay within the same conversation (the agent can continue working while waiting); the latter is used to block the current turn until the countdown ends.

Installation

Run the following command to install the plugin:

dsh plugin add github:keyiadiannao/dsh-delay-tools#master

Features

1. Delayed Wake-up (schedule_reminder)

After calling this tool, the agent continues to process other tasks while waiting. When the countdown ends, the plugin sends the message back into the current conversation context via agent.followup().

  • Multiple reminders supported: Multiple reminders can be set in the same conversation, and each reminder has its own reminder_id.
  • No conversation interference: Regardless of how many conversation interactions occur during the countdown, reminders are delivered exactly at the scheduled time.

2. Timed Gating (wait)

This tool blocks the current turn, and the agent does not continue executing subsequent logic until the countdown ends.

  • Message queue: Messages sent during the wait period are queued and processed together after the countdown ends.
  • Interruptible: If the stop button is clicked during the wait period, the wait is interrupted immediately, and the agent does not suspend and wait for the remaining time.

Usage Examples

Calling schedule_reminder

You can ask the agent to remind you to drink water after 30 seconds:

Call the schedule_reminder tool and remind me in 30 seconds to drink water.

The agent will return the estimated trigger time. After the countdown ends, it will reply to you in the same conversation.

Calling wait

If you need to wait for a period of time before continuing:

Call the wait tool for 30 seconds, then continue.

The agent blocks the current turn and automatically continues after 30 seconds.

Configuration

The plugin supports adjusting the default delay range through YAML configuration. The following is an example configuration:

- id: dsh-delay-tools
  config:
    defaultDelayMs: 60000       # 默认延迟毫秒数
    maxDelayMs: 3600000         # 单次延迟上限(1小时)
    minDelayMs: 1000            # 单次延迟下限(防止瞬间重入)

Notes

  • Memory-dependent: Reminders exist only in process memory. Reloading the plugin cancels all pending reminders; restarting the DSH host also cancels all pending reminders.
  • Persistence: No persistent storage is currently provided; restarts cause reminders to be lost.

Summary

This plugin addresses the pain point of cross-turn scheduled tasks in DSH and provides a reliable wake-up mechanism based on host-level timers. It is suitable for scenarios that require “remind me later” or “timed cooldown”.