Skip to content

Initiative & Open Loops

Most of the time, the agent is reactive: you message, it responds. Initiative is the layer that lets the agent occasionally surface something on its own — a reminder, a follow-up, a review suggestion — under tight constraints.

The constraints are the point. The whole reason this is a separate, named layer with rules is so the agent can't drift into nagging or manipulative engagement loops.

What it can surface

Three categories of proactive surface:

TypeExample
Open-loop followup"You said you'd come back to the migration draft — still want to?" Anchored to a concrete prior commitment in conversation.
Today / context-anchored reminder"Mail has a draft you started this morning — want to finish it?" Anchored to Activity Recorder data.
Review prompt"I made these three edits to the file — quick review?" After the agent has done structural work.

Each surface comes with the specific anchor in metadata, visible to you. You can always see why the agent is asking.

What it cannot surface

Hard-no by the runtime, regardless of scenario pack:

  • Generic check-ins ("how's it going?")
  • "I missed you" / "you've been quiet" pressure
  • Unanchored prompts to engage
  • Prompts based on inferred emotional state
  • Prompts based on passive signals (typing speed, screen dwell, app-switching cadence)
  • Anything that uses guilt, debt, or "you owe me a response"

These are wired into the Hard Boundaries and the surface generator. The agent simply does not produce them.

How you configure initiative

Settings → Partner → Initiative:

SettingEffect
Master toggleInitiative on / off. Off → agent is purely reactive.
ChannelsWhere surfaces can appear (main window, sidebar, messaging bridges). Default: main window only.
Open-loop followupEnable the open-loop type specifically. Has a sub-toggle: "require explicit open loop" (only surfaces if you said something like "let me get back to this").
Today remindersEnable activity-anchored Today reminders. Requires Activity Recorder.
Frequency capsMaximum surfaces per day, per channel. Default low.
Quiet hoursTime windows where no initiative ever surfaces.

The defaults are deliberately conservative — initiative is opt-in, and even after opting in, individual channels are off until you turn them on.

Where surfaces appear

In the main window:

  • The Home view shows a "Today" / "Open Loops" panel with the current surfaces.
  • Each surface has the anchor visible ("you said this on Tuesday" with a link to the conversation).
  • Dismissing a surface is one click.

In messaging bridges:

  • Surfaces are scoped per channel. If you've enabled them for a Telegram chat, the agent may post a follow-up there.
  • They go through the approval flow (see Approval Flow). You can edit-and-send or cancel.

Auto-apply review

A separate sub-feature: when the agent has done a multi-step task, it can be configured to auto-apply a review pass (re-read its own work, point out issues, suggest fixes) before reporting back. This is reactive, not proactive — it happens inside the turn — but it's part of the Initiative settings because it changes how Ghast "shows up."

Transparency

Settings → Partner → Transparency shows a live readout: which initiative rules are active, recent surfaces, what's queued, what was dismissed. The same info is available to the agent via /api/partner-mode/status so the agent itself can answer "what are you set to do right now?" if you ask.