Although you have agentAutoNaming set to true, that is only valid for certain application servers (WebSphere, Weblogic, Jboss) and then it needs configuration for that to work (as per the Java Agent documentation)
We are relying on mechanisms in these app servers to get the name information back. If all else fails, the agent will fall back on AgentName, so if all agents are using the same profile, a value %n is appended to the second, third, fourth etc agent so you get unique information
Assuming these processes have separate JVM startup parameters you could do a few things.
1) Make separate copies of the IntroscopeAgent.profile with unique names and specify the name in this value if uncommented.
in this case you should update the JVM parameters to point to the separate profiles.
2) Again assuming there is separate JVM parameters, you can specify the name directly there
So it would be something like -javaagent:<path to Agent.jar> -Dcom.wily.introscope.agentProfile=<path to agent Profile> -Dintroscope.agent.agentName=myagent1
3) If each instance has some specific Java property that is unique to it you could use this property in the agent profile
For example, if you look in the agent log, you can see all the properties used by the JVM, and just purely for example, we find this encoding value
8/14/15 11:56:49 AM BST [INFO] [IntroscopeAgent.Properties] file.encoding=Cp1252
you could then configure the agent profile like this
and the agent would get the name of Cp1252.
If these are .NET processes, it is more normal to have multiple processes, particularly where you have multiple worker processes in the same app pool, but it is rare that the naming feature does not discover a different name to AgentName.