I had a huge post all typed out, but the forum ate it. Damn.
Yeah, first way is to design smarter conspec-recognition systems, recipriocity, offspring-checking, defence, poison canni-'marking' etc. into the bots.
The problem is that at an individual-selevtion, level, cannibiotism really is better than playing nice. Cannis can feed with impunity on their meek, unconditionally-cooperating kin, and this represents a huge individual advantage for a bot.
From an evolutionary standpoint, there are two solutions to this:
(1) Raising the priority of gene-level selection. Cannis, the selfish individualists they are, are poor at passing on their genes due to their disdvantageous habit of eating their offspring. By (for example) using a massive ramping age cost that prevents bots from living indefinitely, there is a selection pressure to pass your genes forward and safeguard your offspring rather than eating them. This mechanism has been proposed as a way that cooperation could have evolved in real life (advocated by Richard Dawkins), and is especially relevant when it comes to eusocial reproductive systems and kin-selection etc.
(2) Group-level selection. This mechanism has also been proposed to explain altruism and cooperation in the real world (Gould, I think (?) was a fan of this view). If you've got a situation where individuals must cooperate against an external threat, cooperation is favoured or the whole group goes bust. Pack-bots, territory-forming bots, antbots etc. where there are a plurality of groups in competition for limited resources favours the evolution of cooperation (and complex cooperation strategies). There has got to be a situation where bots' survival depends on others in its group. A load of individuals with a set of conspec-recognition codes wouldn't cut it.