Metaintelligence ArchitectureMetaintelligence · Protocols · Relationships

A link as a first-class object, not a message queue

In most systems the link between participants is invisible: there are calls, there is a queue, there is a shared channel. Make the relationship an object in its own right, with its own state and history, and things appear that do not exist otherwise: the ability to reach an agreement, revise its terms and part cleanly.

Metaintelligence Architecture · part 3 of 6

What is lost when the link is not an object

If an interaction is just a call, it has no memory. Every exchange starts from zero: who may do what is decided again, the context is passed again, whether this pair of participants works at all is found out again. The system accumulates no knowledge of its own structure — it works it out afresh every time.

A relationship as an object holds that knowledge: what the parties have agreed, how often it pays for them to communicate, what has already been passed on, how reliable the link is and whether it is worth keeping up.

What a link contains

Negotiation instead of assignment

A link comes into being not by order of the environment but by agreement between the parties. The initiator proposes terms; the other side accepts, rejects, defers or makes a counter-offer — and then the roles swap. The result is an alternating negotiation protocol with a stored transcript.

The practical value of the transcript shows up later: when you need to understand why two participants work the way they do, the answer is in the history of their agreements, not in someone’s memory. Revising the terms goes through the same mechanism: renegotiating an agreement is the same primitive as concluding one.

Adapting to observed usefulness

The terms of exchange do not stay fixed forever. If a link brings little benefit, the parties lower the frequency and volume of exchange; if it brings a lot, they raise them. A link that has stopped being useful first weakens, then falls asleep, then retires.

It looks like a biological metaphor, but the point is purely an engineering one: in a constrained environment, keeping a link alive costs resources. Automatically weakening what is useless is a way not to spend them on structure that no longer gives anything. Without such a mechanism, any long-lived system accumulates links that nobody dares to delete.

Probation

A new link does not get full rights at once. It starts on probation: exchange happens, but its volume is limited while reliability builds up. Only once its usefulness is confirmed does the link become a full one.

We apply the same principle to agent autonomy in applied systems: rights expand on accumulated statistics rather than being granted in advance. The only difference is that here it is implemented at the level of the environment, not as the policy of a particular project.

What this gives the system as a whole

  1. The system’s structure becomes observable: links can be listed, measured and explained.
  2. Conflicting edits are ruled out by construction, not by an agreement between developers.
  3. Ending a relationship is a routine operation, not a code deletion.
  4. The history of agreements replaces word-of-mouth knowledge of “why it works this way”.
  5. The cost of maintaining the structure is visible and manageable.

The limitation is worth naming honestly as well: all of this is justified where relationships are long-lived and numerous. For a pair of components exchanging messages twice an hour, an ordinary queue is simpler and cheaper.

Code and artefacts

The “Metaintelligence Architecture” series

  1. Metaintelligence: why the next level is not the model but the environment
  2. The agent as a bounded local world
  3. A link as a first-class object, not a message queue
  4. Living graph: when topology is a consequence of work, not a design
  5. Consensus without a centre: deciding together without taking anyone’s word for it
  6. Agent economics: why autonomy needs a budget

Frequently asked questions

How is this different from a message queue?

A queue carries data and knows nothing about the relationship between the parties. A link as an object holds the agreed terms, the rights to change the shared state, the revision history and its own estimate of usefulness. A queue can be the transport inside such a link, but it does not replace it.

Would it not be simpler to define the link structure in advance?

It is simpler if the task is fully known and does not change. As soon as the set of tasks changes while the system is running, a predefined structure starts getting in the way: nobody will create the links needed today, and nobody will delete the ones that are no longer needed.

How do you avoid endless negotiation?

Proposals have a lifetime and expire, and the number of counter-moves is limited. A deferred proposal comes back later; a rejected one closes the attempt. Negotiation is a finite state machine, not an open-ended dialogue.

How we help with this

Read next

Let us talk about your task

If your task is similar, tell us what needs solving. We will say so plainly if it can be solved more simply than it looks.

Write to us