# Performative Message

> Type every inter-agent message by communicative intent (request, inform, propose, accept, refuse) so receivers can dispatch on act type without an extra classification call.

- **Category**: Agentic AI
- **Subcategory**: Multi-Agent
- **Canonical URL**: https://designpattern.fyi/patterns/performative_message/

---

## Description
**Intent**: Type inter-agent messages by communicative intent (request, inform, propose, accept, refuse, query) rather than by free-form prose, so receivers can dispatch on act type.
**Context**: Multi-agent systems default to free-form natural language between agents — agent A writes a paragraph that agent B reads as a paragraph. The communicative act is implicit in the text, requiring an extra classification step to determine "is this a request? a proposal? an answer?"
**Solution**: Define a small fixed set of performatives — request, inform, propose, accept, refuse, query, agree, cancel — drawn from the KQML/FIPA-ACL tradition. Every inter-agent message carries an explicit performative plus the act content. Receivers dispatch on performative. Protocol state machines (negotiation, query-then-answer, contract-net) become enforceable because the transitions are typed. Free-form natural language remains the content payload; the typing is a metadata layer.



## Use Cases
- Multi-agent communication has recognisable communicative acts (requests, proposals, answers).
- Protocols (negotiation, query, contract-net) run between agents and need enforced state transitions.
- Receivers benefit from typed dispatch without an additional classification model call.






## Trade-offs


### Advantages

- Receivers can dispatch on type without burning a model call to classify intent.

- Protocol state machines are enforceable — invalid transitions can be rejected at the envelope level.

- Audit and orchestration tools have typed events to reason over.




### Considerations & Drawbacks

- Choosing the correct performative is one more output the model can get wrong.

- Performative vocabulary can drift or fragment across teams without active schema governance.

- Type-checking adds a small overhead on each message exchange.







---
**Reference**: [Original Source](https://www.agentpatternscatalog.org/patterns/inter-agent-communication/)

