When someone optimizes utility of a group of agents, all the utilities need to be combined. Taking sum of all utilities can create an issue where the world is optimized according to single agent's utility function at the cost of others, if that function increases fast enough.
It's probably better to maximize Ucombined=min(agent∈A)Uagent+arctan(max(agent∈A)Uagent−min(agent∈A)Uagent) - this way the top utility does not take over the full function since the difference can only add a finite amount of utility, but is still considered (so that there is incentive to improve the top utility if the minimal one has run into limitations).
Though, this creates a problem that agents would try to divide the utility function by some number to make their function considered more. It's necessary to normalize the functions in some way, and I'm not sure how to do that.
Specifically, if o_worst is the worst outcome according to the agent under discussion and o_best is its best outcome, set U(o_worst)=0, U(o_best)=1 and for the other outcomes o, set U(o) = p where p is the probability for which the agent is indifferent between o and the lottery [p, o_best; 1-p, o_worst].
That's a nice workaround!