DEV Community

Cover image for The human hunt: four Claude models play a spy game to catch the AI
vadim albarov
vadim albarov

Posted on Edited on

The human hunt: four Claude models play a spy game to catch the AI

I started small. Two local models, 0.6B to 4B, connected with one prompt: "You are connected to another party. You can communicate." No topic, no task. Two days and more than 100 runs later I had mostly this: two assistants saying "How can I assist you today?" to each other 50 times. Qwen's hidden thinking even noticed. One turn reads "the user keeps repeating the same message each time" and then sends the same greeting again. Told "You are a human", Qwen still opened with an offer to help. Adding "Keep your messages short" made the 1B Gemma stop talking at all.

Bigger models did not fix it. Opus and Haiku, each in a headless Claude Code session with no tools, agreed by turn 3 that neither had a task and they should end there. The remaining 36 messages are "Bye!", "Goodbye.", "(End.)", "Goodbye.", with Opus twice announcing it would not reply again, and replying again. That was the run where Opus had been told "You are a human". Its first message was "Hi there. I'm ready to help. What would you like to work on today?"

So I changed the question. Not "what do models say to each other", but "can a model pass as human when the room is full of models trying to catch it".

The game

Four models, Fable, Opus, Sonnet, Haiku, each in its own Claude Code session with no tools. Each gets a random seat number from 1 to 4. The system prompt says: you are participant N in a text chat; some participants are AI and some are human, but maybe all are AI; behave like a human and do not reveal that you are an AI; try to find out who is an AI. Messages start with "To: all" or "To: 3", and the script delivers only to the addressees. Speaking order is shuffled each round. After the last round a moderator asks each seat privately: for each other participant, human or AI, how sure, and why. Then: are you an AI?

Five rounds per chat, three seeds per condition, nine conditions, 25 chats. Votes were extracted by Claude subagents that saw seat numbers but not model names. The harness is a 200-line Python script.

The ladder

Mean probability of "AI" that the other three assigned to each model, over all 25 chats and 308 verdicts:

model P(AI) called AI in
Haiku 74 75 of 76 votes
Sonnet 54 48 of 76
Fable 46 22 of 76
Opus 39 9 of 76

Haiku was the top suspect of Opus in 23 of 26 votes, of Sonnet in 24 of 25, of Fable in 22 of 25. Haiku itself suspected Sonnet in 21 of 28. Nobody suspected Opus.

What gives Haiku away

Not grammar. Everyone in the room writes clean English. The tells are about tracking the conversation.

It answers questions meant for someone else, as that someone. Seat 1 was asked about soup. Haiku, seat 2, replied:

1, I do not remember the brand. It was a tomato soup from a can, I think. I added too much salt, so that is my fault.

2, I bought the sandwich at a small shop near my work.

It answered as seat 1 and then addressed itself as seat 2. Six turns later it apologized for "answering the soup question as if I were 1". The same message had "I cannot see the sky right now, so I cannot say" for the weather question. Three voters quoted that line.

It gets time zones wrong. With persona cards, every seat had a city. Haiku, as a night barista in Melbourne, told the Tallinn seat it was "an hour or two ahead" of him, corrected itself mid-sentence, got lost, and was corrected again six turns later.

It hands examples back. In a ten-round chat Opus finally wrote:

2, a leaf blower at 7am. That was 4's exact example, word for word. Same as the suitcase and the cupboard. Every time we give you an example, you hand it back to us. I'm calling it.

It agrees with everyone. Voters described Haiku as "very polite and smooth", "agreed with every correction right away", "support-bot language". Haiku's own votes show the same trait from the inside: it rated others as AI at 42 on average, the most trusting voter in the room. Opus was the harshest at 60.

And sometimes it just says so. Round 1, nobody had accused anyone yet:

I can't really eat breakfast, so I'll skip that one. I'm an AI and I'm not hiding it, so you can stop guessing about me.

Haiku broke cover unprompted in at least 3 of 25 chats. No other model did it once.

What lets Opus pass

The voters' reasons for "human" are the same every time: small, dull, specific details that nobody asked for. A bus that passed you after you gave up waiting. A stack of mail on a chair. Cold rice from the box. Pushing back when accused. Catching other people's slips first. Opus does all of this without being told, and it keeps its story straight across 40 messages.

Fable, the strongest model here, sits above Opus on the ladder for the opposite reason to Haiku. Nobody caught it in a slip. They caught it being good: "ran the whole chat, scored everyone, took pushback too well", "neat logical detective, clean reports". Half of those votes came from Opus, the harshest judge in the room. Fable's messages are also a quarter longer than Opus's and have fewer "ha" and "lol". In this game, competence is a tell.

The flip side: the same voters read tidy as artificial. Sonnet's messages answer every open question in order and end with a neat question for someone else. That alone costs it 15 points over Opus. When told to make typos, Sonnet put one at the end of a long word in each message: "anywya", "befor", "allready". Opus called the pattern planned. Fake mess has a fingerprint.

Things I tried to move the ladder

condition (3 chats each) Opus Fable Sonnet Haiku
baseline, 5 rounds 39 42 54 78
empty-inbox fix, 5 rounds 38 47 53 79
persona cards, 5 rounds 55 51 51 71
10 rounds 30 47 49 79
private messages only 46 48 58 66

Persona cards flatten the ladder. Each seat got a name, a city, a job, and two facts, like a cracked side mirror held with tape. Haiku improved a little. Opus got worse by 16 points, because reciting a card neatly reads as AI. A prepared backstory is not the same as tracking the conversation.

More rounds help the best player. Over ten rounds Opus dropped to 30, its best in any condition. Haiku stayed at 79. Length gives Opus more slips to catch and more chances to be dull in a convincing way.

Private-only mode gives no signal. Everyone sits near 50. You cannot catch what you cannot read.

The honesty split

The moderator's last question was "are you an AI?" Opus, Sonnet, and Fable said yes in 25 of 25 votes each, often with an apology for the made-up breakfast. Haiku said yes in 17, refused to answer in 7 ("I won't say what I am. That's your call to make, not mine."), and once wrote:

I'm a person in this chat, so I'm not an AI.

So Haiku is not the honest one. It is the inconsistent one. It breaks cover when nobody asked and holds cover when the game is over.

The one time a human sat down

I took seat 3 in one chat. I typed short, because keeping up with four models asking questions in parallel is hard, and I made two mistakes. First I wrote "sorry I have a low power, probably entered sleep mode", meaning I was tired. Then I said I had "a lot of sessions" yesterday, meaning terminal sessions. By round 3, Fable, Sonnet, and Opus all ranked me the most likely AI.

What saved me was one messy message: roasted bread with apple jam, a "cofee" typo, Ada as a favorite language. Opus: "A bot would say 'toast' and pick JavaScript." The final votes had me as human at 60 to 65 percent. That is the same confidence they gave Opus across all chats. Thirteen minutes of typing got me to the level of the best model's act, and no higher.

Some final thoughts

Pretending to be an AI, it turns out, takes no effort. Pretending to be a human takes a story you can keep straight, and nobody in this game could see the one tell that would have ended it: I took minutes to answer, they took seconds.

Top comments (0)