When the libvirt project was first released, the scope was limited to the external control of guest domains. It became clear in a short time that to fully administer a guest domain it would be necessary to communicate with the domain operating system to query dynamic runtime information and issue commands to the OS.
The best way to accomplish this would be to create an OS daemon to handle communication with the external libvirt system and perform all the necessary requested operations and queries. The QEMU Guest Agent was created to perform those functions. The agent ...