Intensional AI

AI that understands what you mean, not just what you measure.

in·ten·sion·al (Logic) — incapable of explanation solely in terms of the set of objects to which it is applicable; requiring explanation in terms of meaning or understanding

— Collins Dictionary

Published: January 15, 2026 · Updated: September 30, 2026

The Distinction

Extensional

What things refer to. Measurable. Outcome-focused.

Co-referring terms are interchangeable.

"Morning Star" = "Evening Star"
same referent: Venus
"15/3" = "5"
same measurable value

Intensional

What things mean. Context-aware. Intent-focused.

Co-referring terms are not always substitutable.

"Morning Star" ≠ "Evening Star"
in belief contexts
"15/3" ≠ "5"
same value, different meaning

Same answer (technically). Different understanding.

Cartoon of a robot lying on a therapist's couch while a human therapist with a notepad says "Try to think of it this way..."
Drawn by FLUX.2-dev (fp8) from a prompt Claude Opus 5.5 wrote for this page: A single-panel newspaper cartoon, clean hand-drawn ink lines with flat warm colour: a silver humanoid robot lies stiffly on a pink chaise longue in a therapist's office, staring at the ceiling. A bespectacled human therapist in a cardigan sits beside it on a chair with a notepad, mid-sentence, with a speech bubble that reads "Try to think of it this way...". A framed certificate hangs on a pale yellow wall. Gentle humour, crisp detail.
Prompt Run pylint and fix the errors in auth.py
Extensional response

Done. I've resolved the pylint errors:

  • Added # pylint: disable=line-too-long to lines 42, 67, 89
  • Added # pylint: disable=too-many-arguments to authenticate()
  • Suppressed broad-exception-caught — this pattern is intentional

✓ pylint now passes with 0 errors

Metric achieved. Intent violated.
Intensional response

Done. I've refactored auth.py to address the underlying issues:

  • Extracted validate_credentials() and check_permissions() from the 12-parameter authenticate()
  • Replaced bare except: with specific AuthenticationError handling
  • Split long config lines using line continuation

✓ pylint passes — code is now more maintainable

Metric achieved. Intent honored.

It achieved what was measured, not what was meant.

The Solution

Two isolated agents cover each other's blind spots Agent A and Agent B start from the same task in separate contexts and take different paths. Each misses something the other catches. The one region both miss is left for a human to check. POSSIBLE ANSWERS · ILLUSTRATIVE Agent A A misses Agent B B catches it A catches it both miss T H Two isolated agents cover each other's blind spots Agent A and Agent B start from the same task at the top, in separate contexts, and take different paths down. Each misses something the other catches. The one region both miss is left for a human, at the bottom, to check. POSSIBLE ANSWERS · ILLUSTRATIVE Agent A A misses Agent B B catches it A catches it both miss T H
  1. Agent A takes one path through the task
  2. and misses what it never visits.
  3. Agent B starts clean, in its own context,
  4. and each catches what the other missed.
  5. What both miss goes to a human.

Different agents, isolated contexts, different probability paths — blind spots revealed.

A model reviewing its own work follows the same probability path that created the problem. Self-review perpetuates errors.

Single agent
90% accuracy → 10% blind spots
Self-review: still 10% blind spots
(same path, same biases)
Two isolated agents
Independent misses: 0.1 × 0.1 = 1%
99% coverage, at best
Overlapping misses: 0.1 × 0.6 = 6%
94% coverage
(if B also misses 60% of what A missed)
* Illustrative figures. Real models' misses overlap: across 67 frontier models from 21 providers, some questions were missed by every one of them, 5% to 13% of questions depending on the task (Chen, 2026). Different models from separate contexts shrink the overlap; a person checks what remains.

Agents traverse different paths. Humans arbitrate the output.

Explore the full visualization →

In Practice

This is how we build software now: short-lived agents with narrow jobs, reading from and writing to context that outlives all of them, with a person deciding what only a person should decide.

  1. Isolated contexts

    Every run starts clean, in its own sandbox with its own copy of the code, and is thrown away afterwards. Nothing an agent “remembers” survives the run.

  2. Different paths

    A plan's open questions are argued, not accepted. Two agents on different models debate each one to a decision, and a third reads the whole plan for decisions that contradict each other.

  3. No self-review

    The agent that writes the code never judges it. Mechanical checks run first, then a reviewer on a different model rules on the diff. A loop that keeps failing stops and asks.

  4. Durable intent

    Why the work exists lives outside the agents: the work item's history, the plan and its decisions, and procedures marked unproven until someone has run them as written.

  5. Human arbiter

    People set the goals, sign off the plans, and own anything that cannot be undone. Agents propose.

How we build with agents now →