OK I found answer, basically tags are processed by classes that implements CompilerPassInterface compiler pass objects can be added in bunlde file (eg: Symfony\Bundle\FrameworkBundle\FrameworkBundle see method build)
CompilerPass have method process witch receives ContainerBuilder as argument.
ContainerBuilder has method: findTaggedServiceIds, witch can be used to get tagged services IDs, and do whatever you want with them.
To pass results to another service you have to define empty collection argument for it, and using ContainerBuilder replace this argument with found service IDs.
eg: Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\FormPass