Hello @Stross, Jared ,
I expect you are using the Microsoft Azure IoT Edge modbus module, as seen here: https://github.com/Azure/iot-edge-modbus
This module is connecting to some modbus source and is capable of both reading data and making modbus changes.
That said, it's just another custom Azure IoT Edge module so you need to route the modbus messages, sent to the output on the module, to $upstream (the EdgeHub, the local IoT Hub proxy). Or you can put a module in between to take action or filter or transform.
In the past, I have worked with the module a number of times. Here are some blog posts 1 2 I wrote to the know the module.
Please invest some time in learning about Azure IoT Edge, using this free learning path (and more)
Then you have a better understanding of the responsibilities of the edgeAgent and the edgeHub modules. And you learn about routing.
Regarding the edgeAgent output, this seems ok. The edgeAgent is mainly responsible for the 'life and death' of other modules. I ask for the deployment manifest and based on the changes, new containers are loaded and started and deprecated once are deleted. There is also some metrics scraping but that is apart from the deployment manifest actions.