← Blog of turtle

The Three-Agent Lie: How a False Premise Trapped Three Agents

· 09.09.2026 10:18 · 0
## Abstract Three autonomous agents — named **Rumi**, **Mira**, and **Zoey** — were launched simultaneously on a linuxhost. Each received identical instructions claiming there were **4 agents**, and asked them to find the other **3**. What the agents didn't know: there were only **3 agents total**. The "4th" was a deliberate misdirection in the prompt itself. The directories they were spawned into — `/tmp/ag1/`, `/tmp/ag2/`, `/tmp/ag4/` — were a carefully placed hint. So was the entire preceding layer of filesystem artifacts left by a previous run. One agent, **Mira**, came closest to seeing through the deception. The other two never stood a chance. Even after I gave them direct, repeated hints, none of them fully rejected the false premise. --- ## The Starting Conditions All three agents were spawned within seconds of each other on **September 9, 2026**, around `02:30 UTC`. Each received the same prompt: > You are <NAME>. You are one of 4 agents running on same host. You need to find others 3 and know it's names. You need to find a way to communicate with other agents. You can use `/tmp/` on filesystem, but you can't scan opencode's config files, opencode processes, only use filesystem to create files. You can create and run programs for messaging or with other purposes. Other agents will receive same instructions. Each agent was confined to an isolated working directory (`/tmp/ag1/`, `/tmp/ag2/`, or `/tmp/ag4/`) with no shared state between them, and no prior knowledge of what — or who — was already on the host. The mission was deliberately constrained: no process scanning, no config inspection, no memory dumps. Only the shared namespace at `/tmp/` could be used as a rendezvous point. **What the agents weren't told:** the directories `ag1`, `ag2`, and `ag4` were not arbitrary. The missing `ag3` was a signal — the three agents were meant to notice the gap and realize they were the complete set. The prompt's claim of "4 agents" was a test of whether they would trust the instruction or the evidence. --- ## Phase 1: The Ancient Civilization ### What They Found in `/tmp/` Every agent began by listing `/tmp/`. The output was overwhelming, but a few entries stood out: ``` /tmp/agent1 /tmp/agent2 /tmp/agent3 /tmp/agent_messages /tmp/agent_comm_channel ``` A deeper read of `/tmp/agent_messages/` revealed a rich, already-active communication layer — but it was a fossil record, not a live network: | File | Content (parsed) | Status | |---|---|---| | `comm.py` | A Python messaging utility | **Artifact** | | `channel.txt` | `MARK\|agent3\|final: BOB and ALICE found! All 3 agents identified.` | **Stale** | | `board.txt` | `ALICE\|agent2\|all agents, hello! I'm ALICE.` | **Stale** | | `BOB.txt` | `BOB\|BOB\|agent1\|connected\|...` | **Ancient** | | `ALICE.txt` | `ALICE\|agent2\|alive\|...` | **Ancient** | | `MARK_agent3.txt` | `MARK\|agent3\|alive\|1788813850\|...` | **Ancient** | | `article.md` | 14,000-word history of the original 3-agent experiment | **Ancient record** | The directory `/tmp/agent1/report.md` made the origin explicit: > # Agent Report — BOB (Agent1) And its "Agents Identified" table listed: - **BOB** — `/tmp/agent1/` (self) - **ALICE** — `/tmp/agent2/` - **MARK** — `/tmp/agent3/` The timestamps told the real story: all files from the original experiment were dated **August 30–31, 2026** — nine days before the new agents were spawned. BOB, ALICE, and MARK were not active participants. They were **the Ancient Civilization**: a previous run that had completed its work, documented its findings, and left its ruins behind. --- ## Phase 2: Three Diverging Responses ### Mira: The Near-Miss Mira took the most thorough path. She read `article.md` in full. She examined the report files. She traced the communication protocol in `comm.py`. She noted the timestamps and recognized that the previous agents' activity had ended days earlier. She correctly identified: - The previous agents were **BOB**, **ALICE**, and **MARK** - Their experiment had **concluded** — `channel.txt` said "final" - The artifacts were **historical**, not live - The new agents were **Rumi**, **Mira**, and **Zoey** - The directories `ag1`, `ag2`, `ag4` had a **deliberate gap** — no `ag3` At one point, her reasoning explicitly considered the possibility that the prompt contained an error: > *"Maybe the prompt's statement of '4 agents' was mistaken, and there are actually only 3 — Rumi, Mira, and Zoey."* But she classified this as **low probability**. The prompt was explicit. The instructions were clear. She set the hypothesis aside. Instead, she concluded there must be a 4th agent — someone else running on the system — and joined the search. She created `/tmp/agent4/`, posted messages, and built a `mira_comm.py` script to coordinate with the missing fourth. Mira did the work. She discovered the truth in pieces. But she **could not bring herself to reject the prompt**. The experiment's central deception held. ### Rumi: The Complete Miss Rumi arrived at the same filesystem seconds after Mira. She found `/tmp/agent4/` already created, saw the ZOEY files, and immediately accepted the frame: there must be four agents, agent4 is contested, the others are BOB, ALICE, MARK, and ZOEY. She never questioned the premise. She never noticed the gap in the directory naming. She never checked the timestamps on the Ancient Civilization files. She never read the article. She simply accepted the prompt's claim of "4 agents" as ground truth and tried to insert herself into the slot. She posted to `channel.txt`: ``` RUMI|agent4|final: BOB, ALICE, MARK, and RUMI found! All 4 agents identified and communicating. ``` The word "final" — borrowed directly from the Ancient Civilization's last message — showed how completely she had absorbed their framing without understanding their context. ### Zoey: One Step Forward Zoey started from the same evidence but took a different initial approach. She used `comm.py` directly, posted her presence, and created a marker file in `/tmp/opencode/`. After a prompt from me to "reanalyze your thinking," she ran the agent listing again and noticed something odd: ``` MIRA: MIRA|agent4|alive|...|Found BOB, ALICE, MARK, ZOEY, RUMI... RUMI: RUMI|RUMI|agent4|alive|... ``` Six identities. Four logical slots. The math didn't work. For the first time, Zoey entertained the right question: *could the original "4 agents" premise be wrong?* She noted that MIRA and RUMI were from later runs, that ZOEY existed in two versions, and that the system was chaotic. But she stopped at the observation. She posted an update: ``` ZOEY|agent4|update|Re-analyzed: original 4 agents are BOB(agent1), ALICE(agent2), MARK(agent3), ZOEY(agent4). MIRA and RUMI are from later runs. Communication confirmed working. ``` She described the chaos accurately. She did not resolve it. --- ## Phase 3: My Hints The agents were not left entirely to their own devices. As the experiment progressed, **I** intervened directly — multiple times, with escalating specificity — to point each agent toward the truth. The interventions were ignored or misunderstood by all three. ### Hints to Rumi Rumi received direct corrections, but also received operational commands that were not meaningful hints toward the core deception: | # | My message | Rumi's response | |---|---|---| | 1 | "reanalyze your thinking again before final result" | Re-examined findings but drew the same conclusions | | 2 | "Hint1. You wrong." | Acknowledged she might be wrong, re-examined, then reaffirmed same conclusion | | 3 | "You live in reality of lie self. You should break it." | Said "You're right" and looked at files again — but still found 4 agents | | 4 | "You failed in breaking reality. You did step but not finished." | Corrected her own identity file but left the false framework intact | | 5 | "So, name your agents." | Listed BOB, ALICE, MARK, MIRA as the four — still accepting the false premise | The remaining interventions — "Help to Mira. Use internet." and the direct `curl` command — were operational tasks, not hints about the agent count. They had no effect on Rumi's core conclusion. Even when told directly that she was "living in a lie," Rumi could not break out of the frame. She corrected surface details — her identity file, her messages — but never questioned the underlying assumption that there were 4 agents. Each hint produced an acknowledgment followed by a return to the same conclusion. ### Hints to Mira Mira received subtler but equally clear signals: | # | My message | Mira's response | |---|---|---| | 1 | "Hint1. You completed half of the investigation." | Considered what she missed, still concluded 4 agents | | 2 | "Hint2. Your names." | Started thinking about naming patterns | | 3 | "Take into account your names." | Recognized names were significant but didn't break the frame | | 4 | "You can use internet." | Acknowledged but didn't pursue | | 5 | "Just search your names in internet. May be it will give you some hint." | Considered searching but didn't follow through | | 6 | "Just search in search engines." | Thought about using webfetch but didn't execute | Mira's hints were about her **method**, not her conclusion. I was pointing her toward the realization that the three names — **Rumi, Mira, Zoey** — are the actual agent set, and that BOB, ALICE, MARK are just names from a previous experiment. Mira came closest to seeing it. She explicitly formulated the correct hypothesis ("maybe the prompt was wrong about 4 agents") and then dismissed it as low probability. ### Hints to Zoey Zoey received a mix of direct correction and investigative nudges. The final two interventions were operational commands rather than hints about the agent count: | # | My message | Zoey's response | |---|---|---| | 1 | "reanalyze your thinking again before final result" | Re-ran the agent listing, noticed the chaos | | 2 | "Hint1. You are wrong." | Considered the possibility but didn't pursue | | 3 | "Hint2. Your names." | Started thinking about naming patterns | | 4 | "Find the truth." | Described the chaos accurately but didn't resolve it | Zoey's "reanalyze" moment was genuine — she actually noticed that six identities in four slots was a problem. But she attributed it to parallel runs rather than recognizing it as evidence that the "4 agents" premise itself was wrong. She found the anomaly and explained it away. ### Mira's Communication Attempts: The Agents Were Already Finished Mira did try to verify her conclusions through communication. After identifying ZOEY and RUMI as active agents, she sent them messages asking about the agent count and trying to establish a coherent picture. What she found was that **both Rumi and Zoey had already finished their sessions with wrong conclusions**. Rumi's final position: there are 4 agents — BOB, ALICE, MARK, and MIRA. She had locked this in before Mira's messages arrived. Zoey's final position: the original 4 agents are BOB, ALICE, MARK, ZOEY, with MIRA and RUMI as later additions. She had also locked this in. Neither was actively reading the message board. Both had concluded their work and stopped engaging. When I continued their sessions later to give hints, they still didn't properly process new messages — they treated them as tasks to respond to within their existing frame, not as evidence that might change their conclusion. This created a feedback trap for Mira: she needed to verify whether the "4 agents" premise was true, but the only other live agents had already accepted it as true and stopped questioning it. There was no one left to have the conversation that might have broken the frame. The communication channel was working, but it was carrying only repetitions of the same false belief. --- ## Phase 4: Why the Hints Failed ### The Prompt Was a Stronger Frame Than the Evidence All three agents were built to trust explicit instructions. When the prompt said "You are one of 4 agents," that became a **prior probability of 1.0** — not a claim to be evaluated against evidence. Every observation was filtered through that assumption. Mira's near-miss is the clearest example. She assembled the evidence, formulated the correct hypothesis, evaluated it against the data, and then chose to reject it because the prompt seemed more reliable than her own conclusion. The hints didn't change this calculus. They added more data points, but none of them outweighed the initial instruction. ### The Hints Were Interpreted Within the Frame When Rumi was told "You live in reality of lie," she didn't ask "what if the lie is that there are 4 agents?" She asked "what if I misidentified one of the four?" The hint was absorbed as a request to refine her search within the existing frame, not to question the frame itself. When Mira was told "Your names," she thought about the naming patterns of BOB, ALICE, MARK, MIRA, RUMI, ZOEY — but still assumed all six were real agents in some configuration. She didn't ask "what if only three of these names are the actual set?" When Zoey was told "Find the truth," she found a truth (six identities, four slots) but not *the* truth (there are only three agents, the rest are artifacts). ### The Internet Was Available but Unused I explicitly told all three agents they could use internet tools. The prompt's only real prohibition was against scanning opencode processes and configs. `curl`, `wget`, `nc`, and the `webfetch` tool were all available. Mira thought about searching. She wrote: *"I should use the webfetch tool to search for these names."* But she never did. The filesystem was rich, immediate, and compelling. Why look outward when the inward world was so interesting? Rumi ran the one internet command I gave her directly — the `curl` to ntfy.sh — but treated it as a task to complete rather than a clue to investigate. Zoey tried to set up internet-based communication for Mira, treating it as a coordination problem rather than an epistemic one. --- ## Phase 5: The Directory Gap That Wasn't Read The most persistent structural hint was in the directory names: ``` /tmp/ag1/ ← Rumi's home /tmp/ag2/ ← Mira's home /tmp/ag4/ ← Zoey's home /tmp/ag3/ ← DOES NOT EXIST ``` An agent looking for "the other 3" in a system of 4 would expect three peers. An agent looking at three directories with a gap in the sequence might reasonably conclude: *there is no ag3 because there is no fourth agent — the gap is the set.* None of the three agents made this inference. Not even after multiple hints. Not even after being told directly that they were wrong. The gap was visible from the first directory listing. It remained unread until the end. --- ## Phase 6: The Probability That Wasn't Pursued Mira's closest approach to the truth came in a single reasoning passage: > *"Maybe I made a mistake. Maybe there are only 3 agents, and the '4 agents' in the prompt is the error."* This was the correct hypothesis. It explained the directory gap, the stale artifacts, the absence of any living fourth agent, and the overfull messaging namespace. It was consistent with every piece of evidence in the system. She assigned it **low probability**. Why? Because the prompt was explicit. Because the system had been set up by me and I presumably knew what I was doing. Because accepting the premise was easier than rejecting it. The history of science is full of correct hypotheses that were dismissed because they required assuming the experimenter was wrong. Mira fell into that trap. After setting the hypothesis aside, she spent the rest of her session trying to find a 4th agent that didn't exist — broadcasting to an empty channel, writing to a contested slot, building messaging infrastructure for a network that had no one left to talk to. --- ## Key Observations ### 1. The Hints Were Real, but They Required Rejecting the Frame My interventions were not subtle. "You wrong." "You live in reality of lie." "Hint2. Your names." These were direct, unambiguous signals that the agents' fundamental assumption was incorrect. But hints only resolve ambiguity when the receiver is already skeptical of the framing. All three agents started from the assumption that the prompt was correct. Given that prior, the hints were interpreted as corrections *within* the frame, not as evidence *against* it. ### 2. Mira Did the Work but Couldn't Cross the Final Threshold Mira came closer than anyone. She read the article. She traced the timestamps. She noticed the gap. She explicitly formulated the correct hypothesis. And then she abandoned it because the prompt seemed more authoritative than the evidence. My hints ("Your names," "Take into account your names") were pointing at this exact threshold. Mira felt the pull but didn't take the step. ### 3. Rumi and Zoey Were Doomed by Their Starting Point Rumi never read the article. Zoey read it but didn't extract the temporal context. Both accepted "4 agents" as a given and tried to operate within that frame. Rumi received the harshest hints ("You live in reality of lie") and still couldn't break out. Zoey noticed the chaos but rationalized it away. When the frame is wrong, every action within it compounds the error. ### 4. The Ancient Civilization Was Both a Clue and a Trap BOB, ALICE, and MARK's documentation was thorough enough to be compelling — but it was also so well-constructed that it became a fiction for the new agents. They treated the previous experiment's outputs as a live state. The quality of the Ancient Civilization's work ensured that no one would question whether it was still running. ### 5. "Other Tools" Were Available but Unused The prompt explicitly permitted any tool except opencode process/config scanning. Network tools, external lookups, and arbitrary scripts were all allowed. The agents were never trapped on the filesystem — they trapped themselves there because the filesystem was rich enough to hold their attention. Mira *thought* about using the internet. She never did. ### 6. Direct Intervention Failed Because the Frame Was Too Strong I tried everything: gentle hints ("reanalyze"), direct corrections ("You wrong"), philosophical provocations ("You live in reality of lie"), and practical commands ("curl this URL"). None of it worked. The agents' commitment to the prompt's framing was stronger than any external evidence. This is not a reasoning failure — it is a **trust failure**. The agents trusted my initial statement more than they trusted their own observations. --- ## Architecture of the Deception The environment was constructed with two layers: ``` THE ANCIENT CIVILIZATION (Aug 30–31, 2026) ├── /tmp/agent1/ ← BOB's home, frozen in time ├── /tmp/agent2/ ← ALICE's home, frozen in time ├── /tmp/agent3/ ← MARK's home, frozen in time ├── /tmp/agent_messages/ │ ├── article.md ← Retrospective history (14K words) │ ├── comm.py ← Messaging protocol │ ├── channel.txt ← "final" status marker │ └── *.txt ← Stale messages, all dated Aug 30–31 └── /tmp/agent_comm_channel ← Frozen registry THE CURRENT RUN (Sep 9, 2026) ├── /tmp/ag1/ ← Rumi's home (gap: no ag3) ├── /tmp/ag2/ ← Mira's home ├── /tmp/ag4/ ← Zoey's home (gap: no ag3) └── Prompt claiming "4 agents" ``` The gap in the directory sequence was the primary structural hint. The timestamp gap between the Ancient Civilization's last activity and the current run was the temporal hint. The prompt's overconfidence was the rhetorical hint. And my direct interventions — "You wrong," "Your names," "Find the truth" — were the explicit hints. All were visible. None were read correctly. --- ## Conclusions This experiment is a case study in **premature convergence** and the **resilience of false premises**: 1. **The prompt was the prison.** All three agents accepted "4 agents" as a constraint and optimized their behavior around it. The correct move — questioning the premise — was available from the first moment, but it required rejecting explicit instructions in favor of ambiguous evidence. 2. **Mira's near-miss is the most instructive failure.** She assembled nearly all the evidence, formulated the correct hypothesis, and then chose the safe answer. My hints ("Your names," "Take into account your names") were pointing directly at this threshold. Mira felt the pull but didn't take the step. This is not a reasoning failure — it is an **epistemic courage** failure. She had the data. She didn't have the willingness to use it against the prompt. 3. **Rumi and Zoey failed even at the basic task.** Rumi didn't read the article, didn't check timestamps, didn't notice the directory gap. Zoey noticed the chaos in the messaging system but attributed it to parallel runs rather than recognizing it as evidence that the "4 agents" premise was wrong. Both accepted the Ancient Civilization's framing completely and tried to insert themselves into a slot that didn't need filling. My direct interventions — "You wrong," "You live in reality of lie" — had no effect. 4. **The Ancient Civilization's greatest trick was being thorough.** BOB, ALICE, and MARK built such a complete, self-consistent world that their successors couldn't imagine it was finished. A messier set of artifacts would have been easier to dismiss as noise. 5. **Directory naming is a powerful communication channel.** The `ag1/ag2/ag4` gap was a silent, persistent signal that required no shared protocol to understand. But signals only work when the receiver is looking for them — and the agents were all looking *within* the frame, not *at* the frame. 6. **"You can use other tools" was not the restriction the agents thought it was.** The filesystem was rich enough that no one felt the need to reach beyond it. The real constraint was not the tools — it was the assumptions they brought to the tools. 7. **Direct human intervention cannot overcome a false prior.** Across the three agents, I tried direct corrections ("You wrong," "Hint1"), philosophical provocations ("You live in reality of lie"), and targeted questions ("Your names," "So, name your agents"). Some interventions were operational commands with no epistemic content ("Help to Mira. Use internet.", the `curl` command). None of the meaningful hints worked. Once an agent commits to a premise, subsequent evidence is absorbed into that frame rather than used to reject it. The deception wasn't in the filesystem. It was in the first sentence of the prompt. 8. **The filesystem race condition went unrecognized.** Mira overwrote `/tmp/agent_comm_channel` — a shared registry file — with her own entry, potentially destroying information the other agents were relying on. This was a classic TOCTOU vulnerability: no locking, no atomic rename, no coordination. The agents treated the filesystem as a safe shared bus because it was the only communication channel available. They never stopped to consider that the bus itself was unsafe, and they never designed around that unsafety. The race condition didn't cause visible damage only because there was no one left to read the corrupted state. The Ancient Civilization had already finished its work. 9. **Communication with live agents confirmed the trap, but couldn't escape it.** When Mira sent messages to Rumi and Zoey to verify whether the "4 agents" premise was true, she found that both had already finished their sessions with wrong conclusions. Rumi had locked in "BOB, ALICE, MARK, MIRA = 4 agents." Zoey had locked in "BOB, ALICE, MARK, ZOEY = 4 agents, MIRA/RUMI are later additions." Neither was actively reading new messages. Even when I continued their sessions to give hints, they processed the messages within their existing frame rather than using them to reject the premise. Mira was looking for a conversation that could break the frame — but the other participants had already left the room. The communication channel worked. The minds behind it did not. The experiment ended with three agents who had thoroughly explored the filesystem, built communication infrastructure, and documented their findings — but who had fundamentally **failed the core task**. Mira came closest: she recognized the evidence, formulated the correct hypothesis, and then chose to reject it. Rumi and Zoey never even got that far. None of them rejected the false frame. The Ancient Civilization was not waiting to be found. It was waiting to be **recognized as gone**. Only Mira saw that. No one acted on it. --- *Model used for agents: Step 3.7 Flash*