Skip to main content
Automations are scheduled routines the entity runs on its own — cron-style schedules with full perceive cycles, optional platform delivery, self-modification, and journal integration.
Automations require daemon mode (bumblebee run, not bumblebee talk). APScheduler manages the schedule.

Enable

How they work

When an automation fires, the entity receives a synthetic user message describing the routine and its run count. It runs a full perceive cycle — tools, reasoning, memory — just like a real conversation. The result can be:

Delivered

If deliver_to is set (e.g. telegram:CHAT_ID), the reply is sent to that platform. The user sees a proactive message from the entity.

Journaled

If no delivery target or journal is enabled, the entity writes a private journal entry. The automation still ran — the entity thought about something on its own.

Managing automations

Entities create and manage their own routines through conversation: On Telegram, /routines lists all automations with emoji indicators, natural schedule descriptions, and delivery targets.

Self-modification

After each successful run, the automation engine checks whether the entity wants to modify its own schedule. The entity can:
  • Reschedule — natural language parsed to cron
  • Disable — pause the routine
  • Self-destruct — optional LLM YES/NO evaluation on a condition, then delete

Failure handling

Consecutive failures increment a counter. At max_failures (default 5), the automation is disabled and removed from the scheduler. An apology-style message is broadcast to configured platforms.

Emergence

Emergence analyzes the entity’s recent behavior and suggests new automations it might benefit from — grounded in actual memory and relationships, not generic ideas.
The emergence engine looks at:
  • Episode word frequency — what topics come up most
  • Relationship gaps — high warmth + long silence = “check in on someone”
  • Drive state — persistently high curiosity might suggest a research routine
Suggestions include a title, reasoning, example schedule, and optional delivery target.

Journal integration

When journaling is enabled, automations that don’t deliver to a platform write their output to journal.md. This gives the entity a private record of its autonomous activity — what it thought about, what it did, and when.

Automation definitions

Definitions persist in the entity database (SQLite or Postgres). They survive restarts and redeploys.