By having two agents play the same game against different opposition, you compare two scenarios that may seem similar on the surface but are fundamentally different. Obviously, making sure your opponent cooperates is not part of PD, so you can’t call this winning. And as soon as you delve into the depths of meta-PD, where players can influence other players’ decisions beforehand and/or hand out additional punishment afterwards, like for example in most real life situations, the rational agents will devise methods by which mutual cooperation can be assured much better than by loyalty or altruism or whatever. Anyone moderately rational will cooperate if the PD matrix is “cooperate and get [whatever] or defect and have all your winnings taken away by the player community and given to the other player”, and accordingly win against irrational players, while any non-playing rationalist would support such kind of convention; although, depending on how/why PD games happen in the first place, this may evolve into “cooperate and have all winnings taken away by the player community or defect and additionally get punished in an unpleasant way”.
By the way, the term CooperateBot only really makes sense when talking about iterated PD, where it refers to an agent always cooperating regardless of the results of any previous rounds.
By having two agents play the same game against different opposition, you compare two scenarios that may seem similar on the surface but are fundamentally different. Obviously, making sure your opponent cooperates is not part of PD, so you can’t call this winning. And as soon as you delve into the depths of meta-PD, where players can influence other players’ decisions beforehand and/or hand out additional punishment afterwards, like for example in most real life situations, the rational agents will devise methods by which mutual cooperation can be assured much better than by loyalty or altruism or whatever. Anyone moderately rational will cooperate if the PD matrix is “cooperate and get [whatever] or defect and have all your winnings taken away by the player community and given to the other player”, and accordingly win against irrational players, while any non-playing rationalist would support such kind of convention; although, depending on how/why PD games happen in the first place, this may evolve into “cooperate and have all winnings taken away by the player community or defect and additionally get punished in an unpleasant way”.
By the way, the term CooperateBot only really makes sense when talking about iterated PD, where it refers to an agent always cooperating regardless of the results of any previous rounds.