I am preparing an enviornment for ALU using UVM. I have prapared a driver, monitor and sequencer in one agent and only a monitor in another agent. 1)Is that necessary to create a passive agent always? 2)If the answer is 'no', then how can I use the only

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