Communication between two agents in an env

Thank you for those pointers Tom.
I guess,I cant use the second method that you suggested .I’m using QVIP agent, and I’m not sure if it is a good practice to extend the QVIP driver.
I can use the analysis ports provided to the QVIP agent1 which sends the transaction to agent2. I need to check if there is an export provided in the QVIP agent(which I need for agent2).
Once I get the information from agent1 to agent2,agent2 has to decide which sequence to be called.But how will the agent2 sequence have information from its export.Because a sequence is an “object” and not a “component”,I’m unable to determine how the packet info,that it received from agent1 ap, can be passed from agent2 export to its sequence.
If I were using a “virtual sequencer” in between agents, it would have been easy for me because a “sequencer” is a component.But I’m using a “virtual seq” as recommended in the cookbook.
One other way that I can think of is,creating another component(my_component) in my env with a analysis_fifo. agent1.ap is connected to the my_component.analysis fifo.export. In my agent2 sequence,I will access this component with hierarchy uvm_top.my_component.I still need to figure out how to access my_component from agent2 seq but I think there is way to do it via uvm_top