XII · Streaming & UXExperimental·

Salience-Triggered Output

also known as Endogenous Push, Threshold Notification

Have the agent emit a message only when an internal salience signal crosses a threshold, not on every cycle.

This pattern helps complete certain larger patterns —

  • used-byBidirectional Impulse Channel·Let the user inject impulses into the agent and let the agent push messages to the user, both through one channel.

Context

A team is running an agent that wakes up on a regular tick, or runs continuously, and has the option to say something to the user on every cycle. It might be a monitoring agent, a background reasoning loop, or any process that produces a stream of internal events that could each become a notification. The team has to decide which of those events are worth the user's attention.

Problem

An agent that emits on every cycle quickly becomes noise — users stop reading the channel, mute it, or close the application. An agent that emits only when explicitly asked goes silent during the moments when the user would have most wanted to hear from it, such as when a metric breaks pattern or a long-running task finishes. Without a way to score how interesting each internal event is, the team is stuck choosing between spamming and ghosting, with no middle ground that matches output rate to actual signal rate.

Forces

  • Salience scoring is itself a model; flawed scoring leads to noise or silence.
  • Threshold tuning is per-context.
  • Hygiene: rate-limiting prevents nag spirals.

Example

An always-on monitoring agent emits one line per second; users mute the channel within an hour and stop reading it. The team adds a salience score (novelty + goal-relevance minus fatigue) and an output threshold. The agent now stays silent while nothing surprising is happening and speaks up the moment a metric breaks pattern. Read-through rate goes up because the channel becomes a signal rather than noise.

Diagram

Solution

Therefore:

Score every internal event for salience (novelty + goal-relevance + recency + prediction-error - fatigue). When the score for a candidate output crosses a threshold, emit. Otherwise log and move on. Rate-limit emissions per time window.

What this pattern forbids. Output is forbidden unless the salience score exceeds the configured threshold.

And the patterns that stand alongside it, or against it —

  • complementsStreaming Typed Events★★Push partial results to the client as typed events as they become available, rather than waiting for the full response.
  • complementsEvent-Driven Agent★★Trigger the agent on external events (webhooks, message queues, file changes) instead of user requests or schedules.
  • complementsDegenerate-Output DetectionDetect when the agent is about to emit a near-duplicate of its own recent output and either drop, replace, or escalate to a stronger model rather than ship the loop.
  • complementsIntra-Agent Memo SchedulingLet an agent drop a note for its own future self at a specified time so present decisions can hand off context to a later run without external infrastructure.
  • complementsMode-Adaptive CadenceVary the agent's loop interval based on current salience so the agent thinks faster when something is happening and slower when nothing is, instead of running on a fixed cron.
  • complementsAmbient Presence Sensing·Read pacing signals from the human's frontend (typing rate, idle duration, tab visibility) as ambient weather between messages, derive a presence-quality value the agent can act on, never replaying the raw signals back.
  • complementsFragment Juxtaposition·After K consecutive low-salience ticks, replace the normal tick-seed with a juxtaposition seed: sample old fragments and sit them side by side, logging any association that arises.

Neighbourhood

Click any neighbour to follow the language. Scroll to zoom, drag to pan.