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:
- The agent schedules a sleep via life_sleep;
- If a message arrives during sleep, the user event real-time listener immediately cancels the timer, and the message is delivered instantly;
- 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;
- 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:
- The plugin runs with the permissions of the current dsh process; check the source code and license (this project is MIT) before installing.
- The official method only provides manual git clone and build; there are no commands like
dsh plugin addin the documentation, so do not concatenate installation commands based on the name. incidentPathanddataDirdefault 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