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.
Intent & 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.
Real-world Use Case
- 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.
Source
📌 TL;DR
Tag every inter-agent message with its communicative intent — request, propose, accept, refuse — so receivers dispatch on type and protocol state machines become enforceable.
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.
Disadvantages
- 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.