Historically, the Varnish Agent has been developed in close relation with Varnish. As the API changed throughout time, so was the need to update the agent in this regards.
Today, the agent has three implementations. The very first one has been written in Perl and has addressed Varnish while still in its rather early stages. This implementation is quite old and disregarded, therefore the current implementations which are in use today are the two below:
The 4.X implementation is the most popular one, it is open-source and has the widest spread of usage. It has been developed in C and compatible with Varnish 4.X version.
The 6.X implementation is a newer implementation and its main driver was to bypass the dependency towards a specific Varnish version. This has been written in Golang and it is a closed source implementation. This version is far more friendly in terms of compatibility and it works with older Varnish versions such 5.X and 4.X
Regardless of the chosen implementation, the VAC will work with any of the two. Both implementations respect the rest interface that the VAC requires.