Skip to content

Latest commit

 

History

History
35 lines (21 loc) · 1.46 KB

README.md

File metadata and controls

35 lines (21 loc) · 1.46 KB

Hermes

This is a POC project to understand how agents in a multi agent environment can interact with each other.

Current implementation defines an Agent Layer which rests on top of a Multiplexer Layer. The idea is pretty simple, an agent can be registered on the multiplexer and can then send messages to all other agents on the network.

image

Under the hood, the multiplexer uses the following architecture.

image

The aggregator function is invoked which puts up the messages on the multiplexer messsage bus (async. queue) when an agent makes contact, and the scheduler function which is running constantly consumes the messages put on message bus and sends them to the agents registered on the network.

An agent can be defined and registered on the multiplexer as follows

awesome_agent = Agent("awesome_agent")

await multiplexer.register(awesome_agent)

And finally the mutiplexer is to be run

await multiplexer.run()

A sample driver code is defined in main.py.

This idea can be evolved

From a broader perspective, this environment can be evolved to use multiple P2P hosts that use Hermes package (which under the hood will use sockets to make public remote connections) to run agents.