Agentic Pattern Libraryby Vikas Goyal
← All patterns
27

Ambient Agents

Also known as: always-on agents, proactive agents, background agents, event-driven agents

Always-on agents watch event streams and act or alert without a prompt.

TrackAgentic systems FamilyRuntime & interop Maturity Horizon ChangesDecisionContext
01

Problem

Chat agents only work when someone asks. But much valuable work is noticing: a customer email that signals churn risk, a build that keeps failing, a contract renewal approaching, a commitment someone made in a meeting. People miss these because nobody is watching everything all the time.

  • Valuable signals arrive continuously across many systems.
  • Most events are noise and need no action.
  • Interrupting people too often destroys trust quickly.
  • Acting without a request needs stronger permission rules than chat.
02

Solution

Run the agent as a long-lived service subscribed to event streams such as email, calendar, tickets, code repos and CRM changes, plus scheduled triggers. Cheap reflexes filter each event for relevance. Relevant events update the agent’s memory and a ledger of goals and commitments. The agent then picks the right response by policy: do nothing, take a small allowed action, add an item to a daily digest, or interrupt with an alert. Every proactive action is explainable (“I did this because…”), and users tune what the agent watches and how often it speaks up.

03

Diagram

email calendar tickets CRM schedules Filterreflexes Memory+ ledger Policy do nothing small action daily digest alert · rare ~85% dropped every action explainable · user tunes what is watched

Most events are filtered out or batched into a digest. Interrupting someone is the rarest outcome, reserved for things that can't wait.

04

When to use

Use it when

  • Important signals are spread across many systems and arrive continuously
  • Missing a signal is costly (churn, outages, deadlines)
  • Users would welcome a daily digest of what changed
  • You have strong permission and audit controls in place

Avoid it when

  • Users can't easily control or silence the agent
  • The agent would need broad write access to be useful
  • Signals are rare enough that a scheduled report works fine
05

Trade-offs

Latency Reacts to events as they arrive
Cost Always running; filtering keeps it manageable
Complexity Event ingestion, memory, ledgers, policy, tuning
Reliability High value when tuned; noisy when not

Gains

  • Catches signals nobody would have noticed in time
  • Turns scattered events into one digest of what matters
  • Follow-ups and commitments stop falling through the cracks

Costs

  • Notification fatigue if thresholds are wrong
  • Broad read access raises privacy and security stakes
  • Hard to evaluate, because the value is in what didn't get missed
06

Worked example

Scenario
An always-on assistant for an account manager watches email, calendar, CRM and the support queue.
  1. Event streamReceives about 600 events on a typical day.
  2. Reflex filterDrops 520 as noise: newsletters, automated notifications and routine status changes.
  3. Memory + ledgerUpdates account notes from the remaining 80. Records a commitment from a meeting transcript: “send the pricing proposal to Acme by Friday.”
  4. DigestWednesday 8am digest: 2 new P1 tickets at Contoso, Fabrikam’s renewal in 30 days with usage down 22%, and the Acme proposal due in 2 days.
  5. AlertThursday 3pm interruption, the only one that week: “Acme proposal due tomorrow and not started. Want a first draft from last quarter’s version?”
07

Failure modes

FailureSymptomMitigation
Notification fatigueUsers mute the agent within a weekDigest by default; interrupt only for time-critical items; user-tunable
Creepy behaviorAgent surfaces personal or sensitive things unpromptedClear scopes on what's watched; explain why each item surfaced
Unsupervised actionsAgent acts on events in ways the user didn't expectBounded Autonomy plus approval for anything external
Stale ledgerReminds about commitments already doneClose items from completion events; ask when unsure