Imagine the large scale deployment of AI agents that make decisions on behalf of individuals or firms. For example, in online advertising auctions, an advertiser gives their high-level goal and constraints to a personal bidding agent. The responsibility of the bidding agent is to convert the advertiser’s goal and constraints into per-auction bids without human review. How do we ensure: (1) the advertiser’s goal is maximized, and (2) the outcome (who wins the auction) is efficient?

This example related to automated bidding in the online-ads industry is part of a more general problem I think we will continue to see more of in the future. AI agents are increasingly being used to negotiate and make decisions in the real world on behalf of the individuals and firms that deploy them. To ensure that the outcomes amongst a set of self-interested agents is efficient, we should adopt methods from the field of mechanism design 1.

The problems

When developing such a system, there are fundamentally two core problems that need to be solved: the agent’s problem and the designer’s problem. The agent is the AI agent whom is responsible for making decions on behalf of the individual or firm whereas the designer is the platform or entity responsible for developing the mechanism that governs how scarce resources are allocated amongst strategically interacting self-interested agents.

Agent problem

Individuals or firms have an objective they would like to maximize subject to some constraints. Agents are often either: utility or value maximizing 2. Constraints often encode the private preferences of the individual or firm. Constraints can be budgets, return-on-spend, or cost-based, among many others. For example, an advertiser may have a budget they cannot exceed. Or a supply chain vendor may have a cost associated with transporting a product to a warehouse. The AI agent solves this optimization problem and sends the result to the designer. For example, the bidding agent computes the optimal bid amount to send to the auctioneer.

Designer problem

Given the output of the agent’s problem, what mechanism does the designer use such that the outcome is efficient? Determining whether an outcome is efficient or not depends on the objective of the designer. Do they want to maximize revenue? Fairness? For example, a utility provider may be required to curtail power generated by residiential photovoltaics (PVs). Should the utility: minimize total curtailment? Equal curtailment? Proportional curtailment? Different curtailment rules result in different outcomes.

One of the hardest parts for the designer is that the inputs to the mechanism ultimately come from the private preferences of the individual or firm. Thus, the mechanism must incentivize them to truthfully reveal their private preferences to their agents as well as the incentive to participate in the mechanism.


  1. I define the field of mechanism design loosely here and it is meant to encapsulate concepts from social-choice theory and contract-design, among others. ↩︎

  2. Agents can also be both (hybrid). ↩︎