Back to blog
Series · Day 5
Using AI Day to Day
View all lessons →
Seams in AI answers

Why This Matters

You don't have time to fact-check every line an AI gives you, and honestly, most of it is fine. The skill that actually scales isn't more skepticism — it's knowing exactly where the bad 30% likes to hide, so you can spend your limited paranoia on three sentences instead of smearing it thin across the whole answer.

The real skill: finding where the 30% hides

The instinct most people reach for is 'stay a little skeptical of everything' — skim the whole response with one eyebrow up. It doesn't work, because errors don't spread evenly across an answer. They cluster at specific, predictable spots: the seams. Learn to spot a seam before you read the body of the answer, and you know exactly where to slow down — everything else you can read at full trust speed.

A seam, defined

A seam is any point where your question quietly asked the model to reconcile two things that don't fully agree — and it answered as if they do. It won't flag the disagreement. It smooths over it, fluently, because fluency is the thing it's optimized for, not honesty about the gap. Three seam types show up constantly in engineering work:

  • ▹Version seams: your question spans two versions of a library, framework, or API, and the training data holds both the old and new behavior — React class-component habits bleeding into hooks-era answers, or code that quietly straddles a breaking SDK change.
  • ▹Convention seams: your question touches two teams' or repos' conventions at once — one team's error-handling pattern meets another's logging format — and the model just picks whichever one is statistically louder in its training data. Not whichever one your codebase actually uses.
  • ▹Temporal seams: your question straddles a moment when the 'right answer' flipped — a deprecated cloud API, a security practice that reversed, a default that changed between major versions — and the model blends the before and after into one fluent, internally contradictory paragraph.

Quick war story: the API-version seam

I asked for a snippet calling a payments SDK's refund endpoint. What came back was clean, confident, and wrong — it mixed v2's synchronous refund call with v3's idempotency-key parameter, which v2 never had. Nothing about the code looked off; it read like something a senior engineer would ship. The tell wasn't in the style of the code — it was in my own prompt. I'd spent the morning migrating v2 to v3, so my question straddled both versions without ever saying so. That's the seam: I asked a cross-version question and got back a cross-version API that doesn't exist.

python
# What the AI gave me (fluent, wrong — blends v2 and v3):
refund = sdk.refunds.create(
    charge_id="ch_123",
    amount=500,
    idempotency_key="abc"   # v3-only param, silently grafted onto v2's sync call
)

# v2 reality: no idempotency_key argument on this call at all
# v3 reality: idempotency_key goes in a request header, not the call signature

The procedure: scan for seams before you read the answer

Before you read the body of any AI answer, go back to your own prompt first and count how many distinct 'systems' it touched — library versions, teams, eras, frameworks, conventions. Each one is a named system, and each pair your question crosses is a candidate fault line. Don't skip this because the answer looks polished. Polish is exactly what a seam produces.

  • ▹List the systems your question touched — say, 'our internal auth lib' plus 'the public OAuth spec.'
  • ▹For each pair, ask: do these two actually agree on this point, or did I just assume they do?
  • ▹Spend your verification time at the crossings first. Check version numbers, check which team's convention actually applies here, check the date on the practice you're leaning on.
  • ▹Only once the seams are checked, skim the rest at normal trust speed. Statistically, that part is a lot safer.

Why this works — and why it's not just an AI-answer quirk

Training data is dense and consistent describing any one library version, team convention, or era in isolation — and thin and contradictory right at the boundary between two of them. At the seam, the model is interpolating off sparse, conflicting signal, but it still has to say something, so it says something fluent instead of something honestly uncertain. You've seen this shape before if you've built multi-agent systems: the riskiest point in a pipeline is never inside one agent's reasoning, it's at the handoff — where one agent's context or assumptions meet another's and nobody's made the disagreement explicit. A seam in a prompt and a seam in an agent handoff are the same failure, wearing different clothes: two systems that don't actually agree, bridged by something that sounds sure of itself.

The habit

Before you trust an answer, count the seams it crossed. Tomorrow picks up from here: what to actually do once you've found one.

Flashcards
Check yourself

Extend your knowledge

  • ▹Next time a fluent AI answer turns out wrong, go back and name which seam it crossed. Start building your own list of seam types specific to your stack.
  • ▹If you work with multi-agent pipelines, audit one handoff between two agents: what does agent A assume that agent B doesn't actually have?
  • ▹Before your next AI-assisted migration — library upgrade, API bump, convention change — tell the assistant explicitly which side of the seam you're on, rather than letting it infer and blend.
  • ▹Read a model provider's explanation of 'knowledge cutoff' and 'training data distribution.' It's the same story in different words: why confidence and accuracy diverge right at the boundary.
Test yourself on this lesson →

Discussion

Chat with Chi Cong (AI) about this article. Your conversation is private to you — you can publish a summary for others when you're done.

Ask me anything about “Seams in AI answers” — trade-offs, decisions, or the story behind it.