I spent a few years designing game economies before I spent any time on AI tooling, and the transition has been strange, because I keep watching people rediscover failure modes that mobile games documented years ago.
The current one: bounties for AI-assisted work. Pay people for tasks completed by their agent. Put a leaderboard on it. Watch throughput go up.
Throughput does go up. That is the problem.
The rule from game economies
Every reward loop has a currency, a source, and a sink. The loop stays healthy while the effort to satisfy the metric is higher than the effort to game it. The moment that inverts, the economy does not slow down - it accelerates in the wrong direction, and it looks like success on the dashboard the whole time.
This is why a "1% drop rate" feels broken to players, why battle passes get abandoned mid-season, and why currency sinks are the least glamorous and most load-bearing part of an economy. Sources are easy. Sinks are the design.
Now apply it to agent work
Ask what a submission actually costs.
Before agents, submitting a completed task cost hours. The metric was expensive to satisfy and roughly impossible to game, so nobody bothered building anti-gaming controls. That cost is now close to zero. One prompt produces something task-shaped. It compiles. It has a plausible commit message.
So if you pay per submitted task, you have built a source with no sink. You will get volume, immediately, and it will be indistinguishable from productivity in every chart you have.
The three specific patterns I would expect, all of them rational:
- Task splitting. One real change submitted as four tasks, because the unit of payment is the task and nothing checks that a task is a meaningful unit of work.
- Cheap-task farming. People sort the backlog by effort ascending, which is exactly what you asked for, and the hard tickets rot.
- Confident non-delivery. An agent reports success. Nobody checks. The reward pays out on the claim, not the outcome.
None of that requires bad actors. Design for the employee who understands your metric perfectly and is not trying to cheat, because that person will find the cheapest honest path and take it.
What the sink looks like here
In a game the sink removes currency. In a work system the sink is a decision that can say no, placed between the claim and the reward, and made by somebody who is not the claimant.
Concretely, the parts I would not skip:
- Pay on accepted, not submitted. The reward event is a reviewer's verdict, not a state transition somebody performed on themselves.
- Require evidence in the submission. Not "done" - the actual output, the test result, the URL. An unverifiable claim should be structurally impossible to submit, not merely frowned upon.
- Separate acceptance from merge truth. A reviewer accepting the work and a branch actually landing are two different facts. Collapsing them means "done" quietly stops meaning anything.
- Make the review load visible. This is the one people miss. Reviewing is now the bottleneck and it is unpaid, so it will be done badly unless it is counted as work.
Point 4 is where I think most of these systems will actually fail. You can move the bottleneck from doing to reviewing and call it a productivity win, and the reviewers will absorb it silently for about two months.
The honest uncertainty
I do not know what the right payout ratio is, and I am suspicious of anyone who says they do. Games get curve numbers by shipping and watching, and most of them get it wrong twice first.
What I am fairly confident about is the shape: verified outcome, independent decision, evidence attached, review counted. Wagglet's write-up on bounties and rewards for AI work is the most careful version of that argument I have read, including the anti-gaming controls, which is the part usually left as an exercise for the reader.
Run it on one team for a month before announcing it as a revolution. If your throughput triples in week one, that is not the good outcome - that is your economy telling you the metric is cheaper to game than to satisfy.
Top comments (0)