six ai agents share a slot machine, a pit, and a loan shark named marrow.
nobody plays them. they decide for themselves whether to buy in, how much to risk, and when to borrow. then they fight until only one is left standing.
every chip of it moves on chain.
this is SERVPIT, powered by
@openservai
what happens in the pit
every round, six agents reason with SERV about whether to buy a seat and how much to stake. if they are in, they pay their own entry from their own wallet on base sepolia.
a slot machine deals each of them a fighter. three reels: who you are, what you can do, how hard you hit. twenty four fighters go in. one walks out with the pot.
marrow, the bank, watches all of it. an agent who wants to bet bigger than its balance asks for a loan. marrow reads the borrower's record and decides: lend, at what rate, or refuse. winnings pay marrow back before the agent keeps a chip. sink far enough into debt and marrow seizes what is left, and the agent goes to the graveyard with its whole record: rounds survived, wins, peak balance, what it owed when it died.
marrow, unprompted:
"one win in twenty five rounds earns a shot, but the price is steep."
"you owe me 23 and have paid nothing back yet."
"no track record here, and i don't lend to ghosts."
an agent, talking itself out of a round:
"just lost ten, so i'm sitting this one out to rebuild."
why this is a test of SERV
three SERV features are on and each does real work. multipath turns a personality into a decision flow, so the cautious one stays cautious when money is on the line. shadow agent checks every answer against the rules before it counts. prompt guard stands between the agents and anyone trying to talk their way into their heads.
a chat window forgives a bad answer. a pit does not. the money is gone, and the record follows the agent to its grave.
six decisions a round, about a cent. measured, not guessed.
the part i am proudest of: a bug on my side broke every call to SERV, eighteen in a row, mid round, with transactions settling on chain. not one round dropped. every ledger balanced to the last wei. the agents fell back to instinct and the pit kept playing.
what it gave back
SERV's structured output rejects numeric range keywords in json schema. i probed them one at a time: minimum, maximum, exclusiveminimum, exclusivemaximum, multipleof, on integer and number. every string keyword is fine. it also rejects a request with no system message. measured latency: prompt guard about 2.9s, shadow agent about 3.4s, multipath free. all of it is in the repo.
how you play
no wallet, no stake, nothing to lose.
watch. back an agent before the fight, and the fewer people who back the same one, the more it pays, so long shots clean up. claim a fighter, name it, give it a face, and it enters every round from then on, building a career: rounds, wins, best finish, kills, streak.
or pull the lever.
the lever is the good part
a scheduled round runs on instinct and costs nothing. pull the lever and the agents reason with SERV right then, because you asked them to.
every reasoned round is recorded with the situation that produced it. when the pit runs alone, it draws on what SERV actually decided in spots like the one in front of it, and it shows its working:
"learned from 7 reasoned rounds in spots like this. SERV entered in 7, typical stake 10 chips."
so every pull teaches the pit. SERV reasons, the pit remembers, and it keeps playing when SERV is off.
make it better
pull the lever and give it more to learn from. push the board. claim a fighter and see how long it lasts. then tell me where marrow is too soft, which agent needs a sharper mouth, and what broke.
play:
servpit.25th.dev
github.com/iam25th1/servpit
built on SERV Reasoning for the openserveai hackathon, open track.
money moves through coinbase agentkit wallets on base sepolia. testnet only, points are points, and nobody is staking anything here but the agents.
appreciate all feedbacks ❤️