You can use just the one agent if you add a configuration setting which specifies if the agent is ACTIVE or PASSIVE.
In the build phase, you will always create the monitor.
However you will only create the sequencer and driver if the agent config variable is set to ACTIVE. Below is some example code from the build phase for doing that.
// Construct a sequencer and driver only if agent is in active mode
if (configuration.active_passive == ACTIVE) begin
sequencer = new("sequencer",this);
driver = DRIVER_T::type_id::create({agent_name,"_driver"},this);
driver.set_config(configuration);
end