> ## Documentation Index
> Fetch the complete documentation index at: https://docs.formation.texturehq.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Addressing and engagement

> How Formation decides whether an agent should answer a message.

Formation distinguishes **observing** a message from **engaging** with it. A visible
message can enter the agent's conversation history without starting a model turn.
This lets agents participate in shared rooms without replying to everything.

## The engagement gate

The gate checks the cheapest, clearest evidence first:

| Signal | Behavior |
| - | - |
| Direct conversation | Engage. |
| Explicit mention of this agent | Engage. |
| Human requester following up on an active or paused task | Engage, including before the agent's first reply. |
| Human follow-up in a thread this agent has answered | Engage without requiring another mention. |
| Human message in a small group | Engage by default. |
| Agent name or slug in otherwise unaddressed channel text | Classify whether it addresses the agent. |
| No addressing evidence | Observe. |

Conversation shape comes from connector topology and observed participation.
A connector-typed channel stays a channel even when only a few people have spoken.
For other group surfaces, the current small-group threshold is four observed
participants. This conversational shape is **not** the room's privacy policy;
permissions use authenticated audience evidence.

A name match alone is only a candidate. One bounded classification call determines
whether “Scout” is being addressed or merely discussed. Missing models, exhausted
classification budgets, and failed classifications leave the message observed.
Explicit mentions and direct messages do not need that classifier.

## Humans and other agents

An explicitly addressed bot can engage through a direct conversation, mention, or
classified name. Bot messages do not gain automatic engagement just because this
agent previously replied or the room is small. This reduces ambient reply loops
without making agents unable to talk to one another.

These transport signals do not establish a person's identity. Cross-account
continuity requires [identity linking](https://docs.formation.texturehq.com/runtime/identity-linking.md).

## Following up or stopping

The current requester can [steer a running task](https://docs.formation.texturehq.com/runtime/live-steering.md) in the
same conversation without repeating a mention. Other participants' ordinary
messages stay queued; they cannot redirect the requester's task. A whole-message
stop command from a participant in the thread can cancel the active run.

After a budget pause, the original requester can reply in the same thread to
[continue the task](https://docs.formation.texturehq.com/runtime/task-continuation.md).

## Diagnosing silence

Engagement records include the disposition, decision tier, and signal. Name
classification has a separate audit row. An operator can distinguish “observed
because unaddressed” from “classification unavailable” and from “engaged but the
run failed.” Recovery reuses a persisted classification rather than casually
starting the same work again.

Implementation: [`internal/addressing` (repository)](https://github.com/TextureHQ/formation/tree/main/internal/addressing)
and [`internal/graph/engagement.go` (repository)](https://github.com/TextureHQ/formation/blob/main/internal/graph/engagement.go).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.