Capability · Control layer

Assess. Then execute. Recoverable, inspectable, on schedule.

Heartbeats are scheduled background runs where an agent assesses its queue, picks the most actionable task, and runs one full pipeline turn. The assessment is a lightweight model call that ranks tasks deterministically. A guardrail catches the case where the model says skip but actionable work exists.

2-phase
Assess + execute
Deterministic
Priority scoring
Recoverable
Failed runs
Audit-logged
Every beat
packwolf.app · Heartbeats
Live screenshot
Heartbeats screenshot
The scheduler. Each beat shows when, who, and the assessment payload that decided what to work on.
What it actually does

The parts that make this work.

Two phases, not one.

Phase one is a lightweight assessment that ranks the queue and picks. Phase two runs the full pipeline. Most beats spend 90% of their cost on execution, not assessment.

Priority scoring is deterministic.

Weights, due date 0.22, source 0.18, staleness 0.12, momentum, more, produce a score the operator can audit. Not LLM-decided.

Anti-skip guardrail.

If the model says skip but actionable work exists in the queue, the system promotes the top task and logs the override reason. No silent stalls.

Recoverable on failure.

Beats that time out with side effects (tool calls already made) can be resumed, accepted as final, or failed manually via recovery API. No phantom partial runs.

Every beat has a ledger.

Assessment payload, queue snapshot, selected task, side effects, checkpoint. The audit trail tells you exactly why this beat did what it did.

Schedules survive restarts.

The heartbeat ticker runs in the background worker thread and reattaches to its schedule after process restarts. No drift, no missed beats.

How it works

The path through heartbeats.

  1. 01

    Schedule fires.

    An agent's heartbeat ticker triggers, say, every 30 minutes during business hours. The pipeline starts a heartbeat run.

  2. 02

    Assessment phase.

    A short model call gets the queue snapshot, the priority scores, and decides: act on the top task, act on a different one, or skip. Lightweight, cheap.

  3. 03

    Guardrail checks.

    If the model said skip but actionable work exists with score above threshold, the guardrail overrides and promotes the top task. The override reason logs to audit.

  4. 04

    Execution phase.

    Full pipeline turn: memory retrieval, context assembly, model call, tool execution. Whatever a chat turn would do, except the prompt is the heartbeat brief plus the selected task.

  5. 05

    Ledger captures everything.

    Side effects (tool calls, memory writes, deliveries) record into the ledger. Checkpoint captures state for recovery if anything fails downstream.

  6. 06

    Run is replayable.

    Operator can open any heartbeat run, see the assessment, see the selected task, see why other tasks weren't picked, see every tool call and outcome.

Common questions

Things engineers actually ask.

Configurable per agent. Common patterns: every 15 minutes for active workflows, hourly for monitoring agents, daily for review agents. Cost is dominated by execution, not assessment, so a quiet queue is cheap.

Source: docs/heartbeat.md

See it in your workspace.

Closed-beta cohorts are small. Tell us what you'd want this capability to handle for your team.

Request beta access