Subconscious Loop
A background task evaluation and execution system. On a periodic tick, it loads a list of user-defined and system tasks, reads the current state of your workspace, decides what to do about each one, and either acts autonomously or escalates to you for approval.
Think of it as the agent's idle thread: the part that keeps thinking after you've stopped typing.
How a tick works
┌─────────────────────────────────────────────────────────┐
│ Heartbeat │
│ (sleeps a few minutes between ticks) │
└──────────────────────┬──────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────┐
│ Subconscious Engine │
│ │
│ 1. Load due tasks │
│ 2. Mark each one in-progress │
│ 3. Build a situation report (memory + workspace) │
│ 4. Evaluate every task with the local model │
│ 5. Execute the decision (act / noop / escalate) │
│ 6. Write the outcome back to the activity log │
└─────────────────────────────────────────────────────────┘
Each tick is independent. If a tick is still running when the next one starts, the new tick takes over and the old one's in-progress entries are marked cancelled. Ticks never stack.
Task types
System tasks
Seeded automatically when the engine starts. Cannot be deleted, only disabled:
- Check connected skills for errors or disconnections
- Review new memory updates for actionable items
- Monitor system health
User tasks
Anything you add manually from the UI:
- "Check urgent emails" (read-only)
- "Send daily summary to Slack" (write intent)
- "Summarize Notion updates" (read-only)
Decisions
For every due task, the local model returns one of three decisions:
| Decision | Meaning |
|---|---|
| Skip | Nothing relevant right now |
| Act | Something relevant found, execute the task |
| Escalate | Needs deeper reasoning, hand off to the cloud agent |
Two models, one loop
| Stage | Where it runs | Why |
|---|---|---|
| Per-task evaluation (every tick) | Local model (Ollama) | Free, no rate limit, fine on-device |
| Tool-using execution (send, post, …) | Cloud agent | Tools, larger context, retries on rate-limit |
| Analysis mode for escalated reads | Cloud agent (read-only) | Deeper reasoning when the local model defers |
Approval gate
Approval is only required when the agent wants to take a write action that you didn't explicitly ask for.
Configuration
The loop is configurable in the desktop app:
- Enable / disable. Turn the entire background loop on or off.
- Tick interval. How often a tick fires. Defaults to 5 minutes.
- Inference. Whether the local model evaluates tasks each tick.
- Context budget. How much of the workspace situation report can be passed in at once.
In the UI
Lives under Intelligence → Subconscious:
- Status bar. Task count, total ticks, last tick time, failure counter.
- Active Tasks. System tasks and your own tasks.
- Approval Needed. Amber cards for pending escalations.
- Activity Log. Chronological feed of every task evaluation.
- Run Now. Manually trigger a tick.
See also
- Memory Tree - What the situation report reads from.
- Auto-fetch from Integrations - How the workspace stays fresh between ticks.
- Local AI - The on-device model that powers evaluation.