Each agent responds to queries and spits out solutions. For example, if you believe that "professors who wear sandals are nice to students" then you listen to queries about "who is nice to students". When there is a hit, you either:
- return an answer, if you know as a fact that XYZ is nice to students.
- return a sub-goal, in this case, "does XYZ wear sandals?" and wait for others to answer.
This architecture is so wonderful because there is no need to construct the proof tree anymore. The proof tree seems to have disappeared but it is really implicitly constructed within the network of agents!
Thanks to Matt Mahoney for proposing the CMR (competitive message routing) architecture.
For reference, this is an older design that reveals my thinking: (This can be seen as a single agent, building the proof tree internally while trying to answer 1 query. In the new architecture each agent is responsible for applying only one rule at a time).