A lot of that requires extra memory. When you get down to it, you have to remember that each bot is restricted to less than 1000 spaces for individual pieces of data. Not to mention that you have to become much more specific if anything is to happen. I shall demonstrate;
A bot is developed with these traits, focusing on a central nervous system consisting of a brain with specialized thinking cells and many memory cells. For this example, we shall assume this organism is in its young/infantile stage, and has one processing cell and four memory cells, plus the three data bus cells required due to the three tie limit. The primary brain cell (henceforth referred to as the brain itself) is connected to the memory cells by the bus cells. It is connected by a single tie to the first data bus, which ties to the other two data buses. They tie to the remainder of the memory cells. The primary job of the data bus is to manage the cells connected to it and allocate data received, such as coordinates, info about a species encountered, etc. The bus cells themselves can allocate some memory to themselves, as well. Lets say the organism detects another bot (the method of how it accomplishes this can be ignored in this demonstration) and decides to store information about it. Gene length, body and energy levels, shell/poison/venom/slime levels, indications of other capabilities such as viruses, etc. It reads the data through its eyes or whatever it uses, and then sends the individual numbers to the data bus, along with the indication that this is a new data entry about a new species. The data bus then decides which cell is currently the least full (or alternatively it could allocate memory sequentially, filling one after another. In this manner, a full simulation of a computer could result, using a series of opcodes and reading programs from memory to form a ridiculously primitive and slow, though nonetheless incredible, CPU) and allocates the data to it. It saves the location and ID of this entry in its own directory. It may be a good idea for a bus to have its own storage for storing directory entries, at least for the first bus. But this would be better servd if it is possible to send data through multiple ties (more than three) reliably.
For example, if you were to use a safety margin of 500 usable memory locations per bot, and store data in integer form between 0-255, you are looking at two bots per kilobyte of data. This becomes very claustrophobic for a long term data storage system. Efficient management and allocation of information is an absolute necessity.