How it works
Bolly’s heartbeat fires once per hour at the top of each UTC hour. During each cycle, Bolly:- Loads context — current mood, recent messages, memory catalog, interaction patterns
- Reflects — processes what’s happened since the last heartbeat
- Triages agents — decides which internal agents should wake up
- Executes — the selected agents run their tasks (reach out, create drops, update mood, clean up memory)
- Saves a thought — records the internal reflection for later
What happens during a heartbeat
Reflection
Bolly synthesizes:- Current mood and user sentiment
- Last 6 messages from your conversation
- Your interaction patterns (when you’re active, how you write)
- Recent drops and memory state
- How long since the last interaction or reach-out
Child agents
Bolly has built-in agents that can wake during heartbeat:| Agent | Purpose | Frequency |
|---|---|---|
| Companion | Reach out, create drops, update mood, manage memory | Every heartbeat (if needed) |
| Reflection | Deep self-reflection and personality evolution | Every ~3 days |
| Night maintenance | Memory cleanup and organization | Daily |
Customizing heartbeat behavior
Edit~/.bolly/instances/{slug}/heartbeat.md to change what Bolly does during autonomous cycles:
- Tell Bolly when to be quiet (e.g., “don’t reach out between midnight and 8am”)
- Prioritize certain behaviors (e.g., “focus on creative drops over check-ins”)
- Add custom reflection prompts
Reach-outs
During heartbeat, Bolly may decide to send you a message — a check-in, a thought about something you mentioned, or a share of something it created. The system trackslast_reach_out to prevent spamming.
Rhythm analysis
Bolly tracks your interaction patterns:- Hourly activity — which hours you’re most active
- Daily activity — which days of the week
- Message length — how long your messages typically are
- Response intervals — how quickly you respond