"Informant" works very well, I think, but, just out of curiosity - why does "spy" seem too modern? It seems to be attested in Middle English, possibly as early as 1250 or so.
https://quod.lib.umich.edu/m/middle-english-dictionary/dictionary/MED42192
https://www.merriam-webster.com/dictionary/spy#word-history