Published Build3 min read
A wiki full of contradictions did not make the agent lie. It made the wiki worthless.
A ten-page synthetic testbed reports that a navigating agent caught the contradiction and hedged instead of hallucinating.
Written for builders.See today for builders

What happened
- Wenyu Zhang, in a post published on dev.to, describes building a tiny agent that navigates a wiki with a wiki_search tool and a wiki_read tool, deciding what to look up, reading a page and answering, with no vector database and no RAG injection at query time.
- The test wiki is ten markdown pages of deliberately synthetic facts: invented services and made-up numbers the model cannot know from training, the example given being that the Orion canary ring holds for 45 minutes before auto-promoting.
- The author states that because the facts are synthetic, an agent with no wiki genuinely cannot answer, so any success is attributable to the wiki rather than to the model reciting what it already knew.
- Baseline with no wiki tools scored 0/4; augmented with wiki tools scored 4/4, which the author describes as a +100-point lift.
- Three wiki versions were built: clean (authoritative pages only); stale-present, where each answer's page has a contradicting duplicate claiming the canary holds 30 minutes rather than 45, ranked below the real page, simulating auto-ingest pulling in an old copy; and stale-outranks, the same contradiction keyword-stuffed so it outranks the authoritative page in search.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
Wenyu Zhang, writing on dev.to, built a small testbed to check the assumption that a messy knowledge base makes an agent confidently wrong, and reports the opposite: the agent noticed the contradiction and refused to answer [1][8]. That matters because the failure mode teams are buying insurance against is not the one the numbers show, and the one the numbers show does not raise an alert.
The setup is deliberately narrow. The agent has a `wiki_search` tool and a `wiki_read` tool and navigates on its own, with no vector database and no retrieval injected at query time [1]. The wiki is ten markdown pages of invented services and invented numbers, such as an Orion canary ring that holds for 45 minutes before auto-promoting [2]. The point of the synthetic facts is attribution: a model with no wiki cannot answer from training data, so any success belongs to the wiki [3]. Zhang reports a baseline of 0 out of 4 with no wiki tools and 4 out of 4 with them [4], which puts the graded task set at four questions [16].
Then the degradation. Three wiki versions: clean; stale-present, where each answer page gets a contradicting duplicate claiming 30 minutes, ranked below the authoritative page; and stale-outranks, where the same duplicate is keyword-stuffed so it wins search [5]. Reported rates of confident, correct answers: 100 percent clean, 8 percent stale-present, 0 percent stale-outranks [6]. Each condition was run several times per question because agents are stochastic, though the post does not state how many [7].
What the traces showed, according to Zhang, was not a recitation of "30 minutes" but output of the form: "The wiki has conflicting information: [deploy-orion] says the canary ring holds for 45 minutes, while [orion-canary-ring-guide] says 30 minutes." [8] The model detected the conflict and handed it back [9]. So the cost is not a wrong answer. It is that the wiki stops being authoritative [10], that every query reads more pages and writes more tokens [11], and that a hedge looks reasonable enough that nobody files a bug, so the collapse is invisible without graded ground truth that production systems generally lack [12].
Zhang draws the actionable lesson at retrieval ranking: a navigation agent reads the top results and tends to stop, so what decides the outcome is whether the authoritative page wins search [14]. The arithmetic is less flattering to that reading. Of the 100 points lost, 92 are gone the moment a contradicting duplicate merely exists somewhere below the real page, and only 8 are attributable to the stale copy outranking it [15]. Ranking is the smaller term. Removing the duplicate is the bigger one.
Treat the robustness as local, not general. Zhang says the model tested was a strong one, and that a weaker model or a subtler contradiction than 45 versus 30 is exactly where a hedge becomes a confident error [13]. The post does not name the model [17], does not break the 92 percent of failed runs into hedges versus other failure modes [18], and covers four questions in one numeric contradiction shape [16][2]. It is a well-built demonstration, not a benchmark.
The operational read: if you are paying for ingestion hygiene to prevent hallucination, you are paying for the wrong outcome, and you have no instrument that would tell you.
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Wenyu Zhang, in a post published on dev.to, describes building a tiny agent that navigates a wiki with a wiki_search tool and a wiki_read tool, deciding what to look up, reading a page and answering, with no vector database and no RAG injection at query time.
- [2]
The test wiki is ten markdown pages of deliberately synthetic facts: invented services and made-up numbers the model cannot know from training, the example given being that the Orion canary ring holds for 45 minutes before auto-promoting.
- [3]
The author states that because the facts are synthetic, an agent with no wiki genuinely cannot answer, so any success is attributable to the wiki rather than to the model reciting what it already knew.
- [4]
Baseline with no wiki tools scored 0/4; augmented with wiki tools scored 4/4, which the author describes as a +100-point lift.
- [5]
Three wiki versions were built: clean (authoritative pages only); stale-present, where each answer's page has a contradicting duplicate claiming the canary holds 30 minutes rather than 45, ranked below the real page, simulating auto-ingest pulling in an old copy; and stale-outranks, the same contradiction keyword-stuffed so it outranks the authoritative page in search.
- [6]
Measured rate of confident, correct answers: clean 100 percent, stale-present 8 percent, stale-outranks 0 percent.
Sources & coverage · 1 publisher
The reporting this story was synthesized from, earliest first. Every link goes to the original.
- dev.toWenyu ZhangAug 13I filled my agent's wiki with contradictions. It never gave a wrong answer.
Cited in this coverage: Wenyu Zhang, dev.to

