Well, throwing precedant and coding difficulty to the wind for the moment...
1. Representatively, viruses should be bots with like 1 body, or something else. Basically very, very small bots.
2. These bots cannot: feed or reproduce. Maybe can't do some other things. In exchange, they get charged very little, and can remain dormant for a long time. Maybe they are self motile, maybe not.
3. Other bots can feed from these viral bots. This isn't terribly realistic, (viruses in RL are way too small for bacteria to detect (baring something to the contrary from shvarz).
4. Virus bots must contact another bot for transmission. That is, a collision. Slime would still protect against this infection, but each bot selects a slime "phase" (that the slimy bot sets, so it can be dynamic, following a pattern, or set to accept nothing, or set to a constant value) that allows these viral bots with the correct phase to enter (since these viral bots can also be used to carry useful information).
5. These viral bots, upon infecting a cell, get to insert their DNA into the host, as well as set certain memory locations to certain values upon entry. Thus these viral bots can carry any sort of information.
So bots can use these viral bots to communicate with each other. Viral genes will need to code for any maneuvering they're going to do as a virus (like hunting down cells to infect. Maybe being motile requires a reserve of energy... I dunno).
The viral DNA would execute like regular bot DNA.