This approach was used in Envy in 2009 when I use to play it. Whilst I agree with reports, I think the idea about a new unit would be a better idea.
I wouldnt mind having a "Diplomat" that comes from the caves (like a spy but friendly). It would work as follows:
* In cave there is three tabs "Spies" (current screen), "Diplomats" (new screen) and "Reports" (Spy Reports & Diplomat Reports).
* Diplomats screen has two lists of diplomats: "Inside" (Diplomats from other cities) and "Outside" (Diplomats in other cities).
* Below the lists is "Available Diplomats: <number>" then a button "Hire Diplomat" (clicking will take 10,000 silver from cave & another 1000 silver each day) and a button "Buy Diplomat" (clicking will cost 50 gold but no silver).
* To send an available diplomat to another city
=> A goes to B's city and says selects "Send Diplomat". Diplomat is sent at same speed as spy moves.
=> After Diplomat arrives, B goes to Cave - Diplomats and "Inside" list has a series of Diplomats in different colours:
==> Yellow means Diplomat at City, requesting to come in (Request).
==> Clear means Diplomat already in City (Accepted).
=> B selects Diplomat Request row and three options down bottom is enabled, being "Accept", "Kill" or "Return".
=> If B accepts Diplomat then A receives a report advising that B has accepted the Diplomat and a Diplomat Report is provided (similar to a Spy Report but also lists what the city is building ... intended for alliance leaders to view progress of players).
=> If B kills Diplomat then A receives a report advising that Diplomat had been killed.
=> If B returns Diplomat then Diplomat returns home (at same speed as Spy moves) and returns as an available Diplomat.
=> If B looses a spy battle after Diplomat arrives (even if Diplomat isnt accepted) then Diplomat is killed and A receives a report that the Diplomat is dead. Any of B's Available Diplomats in B's city is also killed.
* Whilst the Diplomat is in the city, A receives a report at the start of each day of the server (this can be turned off in reports). If a Diplomat has been hired, then each day another 1000 silver is taken from A's city (if cave has less then 1000 silver at server start of day then Diplomat resigns commission and a report advising that Diplomat has resigned. A resigned Diplomat is like a killed Diplomat).
* A also receives a report when B does anything new in the city or from the city (this can be turned off in reports as would create a lot of reports).
* If B has any incoming attacks then a report is sent to A when the incoming starts, anything that B does and another report when the incoming attack ends. The reports list everything that B would be able to see, being visible details to B when battle starts, any changes to incoming conditions (like if B comes online and casts a spell) and the result of the battle or withdrawal of incoming attacks.