A challenging problem for designers of agent societies is the problem of providing for public goods (Hardin 1968). Public goods are social benefits that can be accessed by individuals irrespective of their personal contributions. The dilemma for an individual agent is whether to be a contributor or to be an exploiter (enjoy benefits without contributing proportionately). It has been shown that selfish actions on the part of agents in a society can lead to ineffective social systems. In this paper, we evolve agent societies which are able to "solve" the dilemma. In one set of experiments, a genetic algorithm (GA) based approach is used to evolve agent societies that are faced with the Bracss’ paradox (Irvine 1993). In another scenario, agent groups adapt to effectively utilize a pair of resources. Encouraged by this initial explorations, we plan to investigate another variation of the GA that uses less global information than the current approach.