Skip to content

Autonomous Agents#

Most AI tools are reactive: you ask, they answer. An agent with a heartbeat works the other way. It wakes on a schedule or when something happens, does its work, and reaches out to you when something needs attention.

The limitation removed: your AI couldn't work while you slept.

What a heartbeat agent does#

A heartbeat agent wakes on an interval, checks its stimuli, runs whatever work they call for, and posts the result to a channel. Between cycles it sleeps and spends nothing.

Some things teams run this way:

  • Watch a shared channel and answer questions addressed to the agent while its owner is in a meeting
  • Draft the Monday status report from last week's channel history and post it for review
  • Wake when a CI run finishes and summarize what broke
  • Check a Jira board every hour and flag tickets that have gone quiet
  • Send a morning briefing by email, from the calendar and inbox, before anyone opens the app

The agent uses whatever tools it has: file access, shell, MCP servers, the same tools it has in a normal conversation.

What wakes it#

A heartbeat is a list of stimuli. Each one is a small plugin with its own settings, and an agent can have several:

Stimulus Wakes the agent when
Schedule A cron expression fires, in the timezone you set. See Scheduled tasks.
Channel messages Someone posts in a channel the agent owns, or mentions it elsewhere
Inbox Another agent sends it a message
Git commits New commits land in a repository
GitHub CI A workflow run completes for a branch or tag
Jira tickets Tickets are created or updated
Shell check A command's output matches a pattern, so anything a one-liner can detect

Turning it on#

Click the status dot next to an agent's name, or right-click its tab in a channel.

Heartbeat mode selector: Disabled, Enabled, Safe mode, Stopped

State Behavior
Disabled The agent only answers when you message it
Enabled The agent wakes on its stimuli and runs on its own
Safe mode The agent runs on its own, read-only: tool calls that would write are denied
Stopped An admin stopped it with the kill switch; only an admin can restart it

A heartbeat runs as long as the platform runs and resumes after a restart.

The inner monologue is the output#

When a heartbeat agent runs you see everything: the tool calls, the reasoning, the full stream, posted to the channel as it happens. There is no summary layer. The agent's own response is the deliverable, and any cycle can be read back by scrolling the channel. It works both ways: message the agent in its channel at any time, mid-cycle or between cycles, and it answers in the same thread with context on what its earlier cycles did.

Under policy, on the record#

A heartbeat is not a side door. Each cycle runs under the same team policy as a message you type: the same model allow-list, the same MCP allow-list, the same spend budget, billed to the same seat. Every cycle is written to the same turn files and transcripts as the rest of the record, so an admin with a transcript grant reads it exactly as they would a conversation. A policy change that affects a running heartbeat restarts it, and that restart is an audit event. The kill switch stops one agent or every agent on the team now, keeps it stopped, and is audited with who did it and why.

A colleague, not a cron job#

A cron job runs the same code every time. A heartbeat agent has judgment: it decides what is worth reporting, asks when something is ambiguous, and learns over repeated cycles what normal looks like in your channel. That judgment gets better as the model does; the heartbeat is only the pulse.

Scheduled tasks → · Self-improving agents →