Browse documentation

Agent wakeups and heartbeats

Understand manual wakeups, scheduled heartbeats, run concurrency, and their cost boundary.

Waking an agent appends a proactive turn to its lifetime conversation. The trigger does not bypass the normal model, tool, budget, event, or permission path: an accepted wake is a normal agent run.

d5s currently has three proactive trigger types. They share the session but intentionally differ in what they ask and what happens when the agent is busy.

TriggerPromptIf the agent is busySchedule effect
Manual wakeRoutine check-inNo-op: returns already runningDoes not move the heartbeat
HeartbeatRoutine check-inSkips that slotAdvances to the next heartbeat
Scheduled wakeupNamed, task-specific promptRetries the same occurrenceCompletes once or advances after acceptance

Manual wakeup

Use Wake now when you want the same proactive check-in immediately instead of waiting for the heartbeat. The agent is asked to review what changed in its project, act within its standing instructions, and reply tersely if nothing needs attention.

A manual wake does not reset or advance the recurring heartbeat. If the session is already active, the wake is a no-op because the agent is already working. If today's daily budget is exhausted, d5s refuses the wake until the next local day.

Scheduled heartbeat

A heartbeat is the agent's routine recurring check-in. Configure it in Manage agent → Autonomy → Routine heartbeat: a cadence (every 15 minutes, hourly, every 6 hours, daily, or weekly), the weekday for weekly schedules, a time, and a timezone. The section previews when the next heartbeat lands. The minimum period is 15 minutes and schedules use minute boundaries. An agent can also hold a cadence it set for itself; that cadence stays selectable in the picker alongside the standard ones.

When a heartbeat becomes due, d5s advances the schedule before asking the backend to run it. If the agent is already working or the fire fails, that heartbeat is skipped rather than accumulated as backlog. The agent records whether the last heartbeat fired, skipped because it was running, or skipped because its budget was exhausted.

Use a heartbeat for a broad standing responsibility such as “notice new work that needs me.” Do not put a distinct recurring task into the heartbeat prompt.

Task-specific scheduled wakeups

Scheduled wakeups carry their own prompt and timing, for responsibilities that do not belong in the heartbeat prompt. An agent creates them from its conversation, and you can create them yourself in Manage agent → Autonomy → Scheduled wakeups with New wakeup.

Choose Once for an exact date, time, and timezone. Choose Recurring for a cadence (every 15 minutes, hourly, every 6 hours, daily, or weekly), the weekday for weekly schedules, a time, and a timezone. A recurring wakeup can start immediately or on a chosen date, and can continue indefinitely, end on a date, or stop after a chosen number of successful runs. The editor previews the next occurrence before you save.

Selecting an existing wakeup opens the same editor in place; the enable toggle and delete are separate from editing. Completed one-time and finite recurring wakeups remain visible with their completion state. An agent can have up to 20 wakeups. Recurring wakeups have a period of at least 15 minutes, and every wakeup has a timezone and an optional bound delivery channel. Wakeups you create from the dialog report back in the agent's own conversation; delivery to a Slack channel is set up by the agent.

Unlike a heartbeat, a scheduled wakeup represents a specific obligation. If a transient error or an active run prevents acceptance, d5s retains that due occurrence and retries it. Once accepted, a one-time wakeup completes and a recurring wakeup advances. A recurring wakeup also completes after its final allowed run or when its next occurrence would fall beyond its end date. A budget-skipped recurring occurrence advances without counting toward a run limit; a budget-skipped one-time wakeup stays due and retries when budget becomes available. During an autonomous wakeup run, schedule-mutation tools are disabled so the run cannot recursively rewrite its own triggers.

Cost boundary

Every accepted wakeup starts model execution. Frequency, accumulated context, model choice, reasoning level, sub-agents, research, and connector calls therefore affect cost.

The agent's daily budget is a hard cap across manual and autonomous work. It resets at midnight in the heartbeat timezone. A budget-skipped heartbeat adds at most one notice to the conversation per local day, and the agent resumes automatically on the next day unless it is separately paused.

A script-only conditional preflight is not part of the current wakeup contract. The agent cannot run a free connector-check script first and invoke the model only when a condition matches. For cheap deterministic polling today, perform the condition outside d5s and start a manual automation through the API only when work is actually needed; webhook-triggered runs are not yet a public contract.

Last reviewed
No results yet

Try a product noun such as agent, automation, project, or connector.