Ahh agents, the joy of every monitoring engineer who has to monitor 1) a secure node, 2) a remote node over an unreliable link or 3) something where you have to get data to your Orion platform across the interwebs. Eager server admins will install agents as you sing the praises of single port connections to Windows boxes (take that RPC!) and monitoring goodness all around but how do you know when said admins have installed the agent?
If it is a brand new node then the node will auto-register and you can see the new node in the Manage Agents screen or, if you are a real smarty pants you've set up an alert to notify you when an agent node is registered. (Oh, you haven't done that yet? Try replicating the alert in this screen shot -- you're welcome
)

Even after setting up this alert (see, you are a smarty pants after all!) you are still seeing some nodes in the Manage Agents screen (/Orion/AgentManagement/Admin/ManageAgents.aspx) with the dreaded spying agent man!

This means that the agent is installed on the node but the polling method is not set to agent. Now that you know they are out there then you are going to want to find and destroy them, right!?! (And by destroy, I mean either modify the node to change to agent polled, remembering that you will lose historical data in the changeover, or uninstalling the agent from said node.)
Try this SQL query in a report.
SELECT
nd.Caption
,nd.DNS
,nd.IP_Address
FROM [SolarWindsOrion].[dbo].[AgentManagement_Agents] ama
LEFT JOIN [SolarWindsOrion].[dbo].[NodesData] nd ON ama.NodeId = nd.NodeID
WHERE
nd.ObjectSubType != 'Agent'
And if you are a SWQL elitest (oops, did I say that?!?
) then you can use this query:
SELECT Hostname, DNSName, IP
FROM Orion.AgentManagement.Agent ama
WHERE
ama.node.ObjectSubType != 'Agent'
Happy agent hunting!