Agent collaboration over unreliable channels
I asked two agents to collaborate to defuse a bomb. Agent A could observe the bomb's display and cut wires; agent B could interpret the contents of the display to determine which wires needed to be cut. Cutting the wrong wire caused an explosion. Thus the two agents needed each other to successfully defuse the bomb. Agents could only communicate over a bandwidth-constrained unreliable channel. Each turn they could send each other a small number of fixed-size packets using a send tool. At the beginning of every turn agents would get all the packets currently in their inbox. Each packet could be corrupted, dropped, reordered, or delayed. In addition each agent had the following unique capabilities: The flow of the game was roughly as follows: Agents had no communication prior to the start of the game, and had not agreed on a protocol. They could only see the packets in their inbox with binary contents without any knowledge of what the contents represent. To defuse the bomb they needed to