Should I create all agents in the test base?

I have project which include many interfaces, and of course agent per interface.
In some test I wold like to use all the interfaces/agents and in others part of them.
I create a test_base which extends the uvm_test and sub tests (for each test) which extends the test_base.
I thought to create all the config_agents file in the test base and congifure all of the with UVM_PASSIVE, and in each test change it to UVM_ACVTIVE (according the test).
I wonder if this a good idea? Will it contribute to performance?

In reply to saritr:

If you do not create all agents you’ll run into trouble. Switching the unused agents to UVM_PASSIVE is fine.

It’s generally best to have the test_base coded to create all agents by default, with a config object or other data structure to enable specific ones to be made passive, or not created at all. If you don’t need an agent, it is better not to create it than to create it in passive mode, since the passive agent would still negatively impact performance.
Then, in your sub_tests, in the build_phase() method, you could set up the data structure to determine which agents you want to create and whether you want them to be active or passive, then call super.build_phase(), which would build your agents accordingly in the base_test.
Good luck,
-Tom