When I talk about executing a sequence on an agent, I mean on its sequencer.
In the body of seq2 you would need code like:
// VSeq syncing Agent1 with Agent2
// In a loop:
seqa.start(env.m_agt1.m_sqr);
if(seqa.seq_item.value == condition) begin
seqb.start(env.m_agt.m_sqr);
end
Where the seqa body would look like this:
task body;
QVIP_item_of_interest seq_item = QVIP_item_of_interest::type_id::create("seq_item");
start_item(seq_item);
// Maybe some randomization or conditioning
finish_item(seq_item);
endtask
The seq_item object handle will still be available within the seqa object.