After discussing with our product specialists came to know the below information.
Agents have different internal queues. When an agent needs to be executed a master thread(timer) which will pick a thread dynamically from a pool for each agent and execute the agent task then release the thread back to the pool. So their is no static relationship between an agent and the JVM thread. To get the agent status we need to get the respective agent queue information which can be retrieved with the help of MBeans.