Hmm, there should be some kind of a master server that would collect the AI files (or, maybe let's call them "souls") from anyone wanting to submit them, and give them away to anyone that would request them. Let's say there's a master server M, and clients A, B and C which are the AI behind the bots, connecting to game server G. \A played for a while with a few "real" players and found that it was good enough to not get killed all the time, so it sent a copy of its soul to M. Now that B and C are also connecting to G, they can request a new, random soul from M. M sent them A's soul. Now that all three (A,B,C) are playing, the evolution of their souls would go in different ways. Each of them would submit their result to M after a while.
Now, M would need to check if the clients aren't sending "soul spam" somehow... Maybe each time a client receives a soul, when it gives back an evolved one, it would also return some info about the rating of the one it received before? That way, M would see which souls seem to be the best, and give away only the best ones. And master servers could exchange souls as well. Decentralized evolution :P
As of the format of the file, converting between a tree and a lisp-like thing with parentheses should be very easy, and also Lisp thing would be very human readable. The protocol for exchanging the files... It should be easy to come up with one: you request a soul, you get a soul and an unique identifier, so you can later vote whether it was good or not. Or, you connect, send an identifier you got previously, your rating, and the results of your evolution.
Of course, in this scheme, A, B, C, G and maybe even M could be one program as well.
I just feel like... It's another great idea that will get buried as soon as I get another one. = very soon.