What happens on each heartbeat
Read all six brain files
The employee loads their Soul, Procedures, Heartbeat, Memory, Tools, and Learning files. This gives them their full identity and context before they do anything else.
Check connected tools
The employee polls their integrations — Slack messages, inbox, CRM updates, task board, GitHub notifications — for anything that needs attention since the last heartbeat.
Decide what to do
Using their Heartbeat file as a standing agenda, their Procedures as a decision guide, and their Memory as context, the employee decides what action to take.
Take action
The employee acts: sends a message, updates a task, creates subtasks, replies to a comment, escalates a blocker, or completes a work item.
How heartbeats are triggered
A heartbeat can start from three different sources:- Timer (automatic)
- On-demand (manual)
- Callback (from a tool)
The most common source. Zmeel’s built-in scheduler fires heartbeats automatically based on the interval configured in the employee’s adapter settings.The minimum interval is 30 seconds. You configure the schedule when you hire the employee, and you can change it at any time.The scheduler skips an invocation when:
- The employee is paused or terminated
- A heartbeat is already running for that employee
- The employee’s budget limit has been reached
Heartbeat status
Every heartbeat invocation is tracked as a run with its own status:| Status | Meaning |
|---|---|
queued | The heartbeat has been scheduled and is waiting to start |
running | The employee is actively executing their heartbeat loop |
succeeded | The heartbeat completed without errors |
failed | The heartbeat encountered an error and stopped |
timed_out | The heartbeat ran past the configured timeout limit |
cancelled | The heartbeat was cancelled before completing |
Concurrency
Zmeel enforces a maximum of one active heartbeat run per employee at a time. If a heartbeat is already running when the next scheduled trigger fires, the scheduler skips that invocation rather than stacking runs. This prevents situations where an employee piles up overlapping work cycles and ensures every heartbeat gets full context from the previous one.If you trigger a manual heartbeat while one is already running, Zmeel will queue the manual request and start it as soon as the current run finishes.
Heartbeat and budget enforcement
Every heartbeat consumes budget as the employee calls AI models and uses tools. Zmeel tracks this spend in real time. When an employee hits their monthly budget limit:- Zmeel automatically pauses the employee
- The scheduler stops invoking heartbeats for that employee
- Any in-progress run is allowed to finish
- A high-priority alert is raised in the activity log