Agents are generally for connecting to devices/services from the manager not the other way around.
There is the AbstractTcpServerAgent that can be used as a base for creating a concrete implementation of a TCP server for allowing devices to connect and you then define how to process the data using Netty handlers.
As Rich mentioned, agents are usually considered to be services that they themselves connect to (outside) servers.
What you have essentially done in your TCP Agent is to point it to localhost:29050 as a client, not open up port 29050 to the internet and allow devices to connect there. There is currently no way (through the UI) to directly create a TCP service that opens up a port for other devices to connect to.
As Rich also mentioned, you would need to implement a AbstractTcpServerAgent in the OpenRemote code, that encodes and decodes your data as it’s coming in, and there, you would customize the behavior of that connection to your needs. If you do decide to implement your own Agent, make sure to consult the OpenRemote documentation and the various agents in the main OpenRemote repository.