Autonomous Agents

An autonomous agent is a self-paced loop: the agent runs one cycle, decides on its own when to wake up next, carries its state forward across every wake, and stops itself when the objective is met (or runs until you stop it). It is one of the two flagship capabilities in Aura Workshop — the other is Multi-Agent. Reach for an autonomous agent when a single task isn't enough because the work needs to happen over time: iterate until something is true, or keep watching something and act only when it changes.

The core idea. Instead of one long run that blocks until it finishes, an autonomous agent breaks work into short cycles. Each cycle does a bit, proposes when to wake up next, and re-arms itself as a scheduled row. Because every next wake is a persisted schedule, loops are restart-safe — closing the app (for the local-daemon or container runtimes) never loses the schedule.

How a loop works

A loop alternates between two states: armed (a scheduled wake is pending) and running a cycle. When the wake fires, the agent loads the state it saved last time, runs a single cycle of work, decides whether it is done, and — if not — picks a next-wake delay and re-arms itself. Nothing runs continuously; the agent only exists during a cycle and while it's waiting between cycles.

armed ──(wake fires)──▶ run one cycle ──▶ done?
   ▲                                        │
   │                          no ┌──────────┴──────────┐ yes
   └──── arm next wake ◀── pick next-wake delay      stop
         (persisted)         (clamped 5m–24h)     (achieved / cap)

Every next wake is armed as its own scheduled row, so the loop's progress lives in durable storage rather than in memory. A restart of the app or daemon resumes the loop cleanly from where it left off — the pending wake is still on the schedule.

Goal vs. monitor

Every autonomous agent is one of two kinds. The kind decides what makes the loop stop on its own.

KindWhat it's forStops when
Goal "Keep working until X is true." The agent iterates toward an objective. A verifier confirms the objective is achieved — or the max-cycles cap is reached, or the token budget / end date runs out, or you Stop.
Monitor "Watch this and act when something changes." The agent runs on a cadence, taking action only when a condition trips. Never on its own. Runs until you Stop, an end date passes, or a token budget is exhausted. The max-cycles cap is ignored for monitors.

For a goal loop, each cycle ends with a verification step: an LLM verifier judges the result against the objective's success criteria and only ends the loop when it is confident the goal is met. A monitor loop skips that gate and simply re-arms — it is designed to run indefinitely.

Execution modes

A cycle can be executed by one agent or spread across several. The mode sets how wide each cycle runs:

ModeHow the cycle runs
SingleOne agent runs the whole cycle. The simplest and most common mode.
Fan-outThe cycle fans across multiple participants working in parallel, then a synthesizer merges their results into the cycle's outcome. Bounded by the max-fan-out guardrail.
TeamThe cycle runs a team definition as a nested workflow, then synthesizes the team's output.

The mode is chosen once for the loop; every cycle uses it. Fan-out and team let a single wake do a lot of parallel work — for example, surveying many sources at once — before deciding whether to continue.

Inside a cycle

Each time the loop wakes, one cycle runs these steps in order:

  1. Load state — the agent reads the loop state it saved on the previous cycle, so it remembers what it has already done and learned.
  2. Build the cycle brief — the objective plus the carried-forward state become the prompt for this cycle.
  3. Execute — the agent runs the cycle in its chosen mode (single, fan-out, or team).
  4. Verify (goal loops) — the verifier checks the result against the objective; monitor loops skip this and always continue.
  5. Check caps — max cycles, token budget, and end date are evaluated; a reason is recorded if any cap is reached.
  6. Decide the next wake — if the loop isn't done, the agent proposes a next-wake delay (and can mark itself done); Aura clamps the delay to the safe window and arms the next scheduled wake.

The agent controls its own cadence and its own completion — it can say "wake me in 15 minutes" or "wake me in 6 hours," and it can declare itself finished — but always within the guardrails below.

Guardrails

Autonomy is bounded. Aura clamps and caps every loop so a runaway or misbehaving agent can't spin forever or burn an unbounded amount of tokens.

GuardrailBehaviourDefault
Interval clampThe agent's proposed next-wake delay is clamped to a safe window. The form takes minutes; anything outside the window is pulled back in.5 min – 24 h (default 30 min)
Max cyclesA hard safety cap on how many cycles a goal loop may run. Ignored for monitor loops.50
Token budgetAn optional ceiling that spans the whole task tree (including fan-out children). 0 means unlimited.0 (unlimited)
Max fan-outCaps how wide a single cycle can parallelize in fan-out / team modes.8
End dateAn optional hard stop — the loop ends the first cycle at or after this date.none

After every cycle Aura records a cap reason, so when a loop stops you can see exactly why — verified achieved, cycle cap reached, budget exhausted, end date passed, or an explicit Stop.

Two entry points

There are two ways to create an autonomous agent, for two different needs.

Composer "Auto" mode

In the Dashboard composer, cycle the mode button to Auto (the four modes are Execute → Plan → Goal → Auto). Type your objective and run. The agent runs its first cycle, picks a next-wake time, and either stops itself (goal) or keeps watching (monitor). Auto tasks show live loop status cards in the transcript so you can watch each cycle, and they survive app restarts because each next wake is a scheduled row. This is the fast path for a one-off autonomous run. See Workspace & Tasks for the composer and the other three modes.

Automation → Autonomous Agents

For a managed, named agent you can start, stop, and inspect, open Automation → Autonomous Agents. Here you define the loop up front:

  • a name and an objective,
  • a kind — goal or monitor,
  • an optional model and project folder,
  • the default interval, and (for goal loops) max cycles,
  • and a runtime (see below).

Create & Start arms the loop. Each agent card shows its status (running / waiting / done / failed), and Inspect opens the underlying task's live transcript so you can watch its cycles. This panel lives alongside the other Automation triggers (schedules, listeners, webhooks, slash commands).

Running headless on the daemon

When you create an agent in the Automation panel, you choose where the loop runs:

RuntimeBehaviour
Locally (this app)Cycles run in the desktop app; the loop stops when the app closes.
Local daemon (headless)The loop is handed to the local aura-daemon and keeps running after you close the desktop app.
In a container agentThe loop is pushed into a deployed container's daemon and runs there headlessly. Stop and Delete forward to the container.

On a daemon, the scheduler picks up armed loops the same way it fires any other schedule (with an atomic claim so two competing daemon containers can't double-fire a wake). This is what makes an autonomous agent a true background worker: deploy it once and it iterates or watches on its own, with no app window open. See Deployment & Security for the daemon and remote-deployment flow.

Restart-safe by design. Because the entire loop state and the next wake live in durable storage — not in a running process — a daemon restart, a redeploy, or a machine reboot resumes the loop from its last cycle rather than losing it.

Examples

  • Monitor"Every 15 minutes, check the error dashboard; if the error rate exceeds 2%, summarize the top 3 failing endpoints and post to #ops." Runs forever on a cadence, acting only when the threshold trips.
  • Goal"Get the flaky integration test suite to pass 10 runs in a row; keep iterating on fixes until then." Iterates cycle after cycle, stopping the moment the verifier confirms the objective — or when a guardrail cap is hit.

Next: compare autonomous agents with Multi-Agent runs, wire them into Automation triggers, or read how they run in Deployment & Security.