Reuse of Agent in top level testing

I’ve builf a UVM environment for a certain DUT and it works fine, monitoring outputs and producing reports, etc.
This DUT is part of a bigger design that has multiple blocks. I want to use the agent made for the DUT to monitor it in the top level design.
I’ve tried binding the VIF of the dut with the top level internal signals and setting the VIF in the config database so that the agent can get it but this produced and error, I could only do one of the things either bind the VIF or instantiate it and set it in the config data base.

What could be a solution to this and if anyone know a video, an article or a tutorial on something similar that would be appreciated.
Thanks in advance.

In reply to Battawi:

From your description I understand the virtual interface the agent was defined is now in the internals of your toplevel DUT. In this case it makes no sense to use this agent as an active agent because you would try to drive internal signals. This does not work and it is useless and risky. But you can use your agent as a passive one to monitor the internal nodes.
Using the bind is an appropriate means to connect this passive agent.

In reply to chr_sue:

I do want to use the agent in passive mode and i did bind the vif, the issue is i can’t set the vif in the config db so that the agent can get it, the vif is connected to the wanted dut signals but the agent can’t monitor it

In reply to Battawi:

The bind-construct does not require a setting of the interface using the config_db.