Introduction

When developing a resident agent, an unavoidable question is who controls the “schedule.” Common approaches involve writing timers, heartbeats, or health check scripts externally to wake the agent at a fixed rhythm—the rhythm is hardcoded, the agent has no sense of time, and messages can only wait for the next round.

dsh-agent-life takes a different path: the plugin only provides a few loop primitives like sleep, status awareness, and hourly reporting, with zero rules. When to sleep, how long, and what to do upon waking are all decided autonomously by the agent. Below is an introduction to its positioning, core features, and installation configuration.

What is it

dsh-agent-life is a DSH (DeepSeek Harness) plugin by jonah791, under the MIT license, current version 0.1.0 (as of 2026-09-07). One-sentence positioning: Digital life cycle primitives — interruptible sleep (self-wake upon expiry) + wake-up state injection + incident file reading + decision logs.

The design principle is “provide primitives, don’t make decisions”: the plugin does not prescribe a schedule, it only guarantees that sleep can be scheduled, can be interrupted, and that the agent can perceive the passage of time upon waking.

Core Features

life_sleep: Interruptible in-process wait

Sleep is implemented as an in-process wait: it automatically wakes itself up when the time is up; messages from the owner can interrupt it at any time (via real-time event listening).

Real-time Interruption

Any user event immediately cancels the sleep timer; messages are processed without waiting for sleep to end. This is the mechanism foundation for sleep being interruptible.

life_status: Status Awareness

View current time, scheduled sleep, and guardian incident records (Immunization Layer visibility).

Hourly Reporting

Time messages are injected at the end of the context. Zero injection within the same hour to prevent breaking cache hits; automatic update across hours. Implementation-wise, this is done via the agent/pre-step waterfall (registered with prepend first), ensuring time is always at the end of the context.

Sense of Time Comes from Differences

The wake-up message carries “how long slept + number of new events during that time.” There are no heartbeats, no health checks. The agent’s perception of the passage of time comes from these two differences, not from an external timer constantly feeding data.

Installation

The official installation method is manual cloning into the self-plugins directory and building. First, enter your self-plugins directory, clone the repository, then install dependencies and compile:

cd <your self-plugins directory>
git clone https://github.com/jonah791/dsh-agent-life.git
cd dsh-agent-life
pnpm install
pnpm build

Regarding dependencies, the plugin declares dependencies on DeepSeek official packages via peerDependencies, including @deepseek-ai/dsh-agent ^0.0.1-rc.1, @deepseek-ai/dsh-llm ^0.0.1-rc.1, @deepseek-ai/dsh-tools ^0.0.1-rc.1, @deepseek-ai/cordis ^4.0.1-rc.1, and @deepseek-ai/schemastery ^3.18.1-rc.1. Before installing, confirm that your DSH environment meets these version requirements.

Configuration

The plugin has two configuration items, both defaulting to empty; they need to be filled in according to your environment before enabling:

Configuration Item Description
incidentPath Path to guardian incident file
dataDir Decision log directory

Typical Usage

After installing and configuring the two paths as described above, the plugin’s execution flow is as follows:

  1. The agent schedules a sleep via life_sleep;
  2. If a message arrives during sleep, the user event real-time listener immediately cancels the timer, and the message is delivered instantly;
  3. When the time is up, it automatically wakes up; the wake-up message carries “how long slept + number of new events during that time,” allowing the agent to establish a sense of time;
  4. Whenever the hour changes, the hourly reporting injects the current time at the end of the context; no duplicate injection within the same hour.

The author also has a related project, “My Digital Life Alice — Plugin Ecosystem Center,” which can serve as a reference for the overall architecture of this plugin: https://github.com/jonah791/alice-digital-life

Applicability and Notes

Suitable scenarios: Developers who want a resident agent to have an autonomous schedule without wanting to maintain heartbeat and health check logic externally; scenarios where the agent needs to perceive the passage of time while ensuring real-time delivery of user messages.

Pre-use Notes:

  1. The plugin runs with the permissions of the current dsh process; check the source code and license (this project is MIT) before installing.
  2. The official method only provides manual git clone and build; there are no commands like dsh plugin add in the documentation, so do not concatenate installation commands based on the name.
  3. incidentPath and dataDir default to empty; you need to configure them yourself to enable the corresponding capabilities.

Conclusion

The value of dsh-agent-life lies in returning the control of the schedule to the agent: the plugin only provides three primitives—sleep, status, and hourly reporting—with the rhythm determined by the agent itself, eliminating the need for developers to write external scheduling scripts.

  • GitHub Repository: https://github.com/jonah791/dsh-agent-life
  • Community Directory Page (Independent community site, not the official app store): https://www.skillhub.cn/plugins/jonah791/dsh-agent-life