# LLM Ambiguity Lab v1

**LLM Ambiguity Lab v1** is a free interactive research and educational simulation for exploring how an AI agent can respond when a user instruction is ambiguous, under-specified, or missing usable context.

**Canonical interface language:** English  
**Version:** 1.0  
**Creator and responsible maintainer:** Deshimaru Sakaguchi  
**Canonical URL:** https://deshimarusakaguchi.com/llm-ambiguity-lab/

> **The Lab visualizes a control architecture, not a model's mind.**

## Origin and development provenance

The first prototype of the Lab emerged from a real context-loss incident during a Gemini Deep Research session on September 4, 2026. A research plan had already been prepared, and the user sent the approval-style message `ありがとう。進めてください😊` (roughly, “Thank you. Please proceed 😊”). After a technical interruption, the working context was lost while the short approval message remained. Gemini then proceeded from the context-deficient instruction and unexpectedly produced research about context-loss prompts, ambiguity handling, and an interactive SPA prototype.

The public v1 release is **not a verbatim publication of that prototype**. It was subsequently re-specified and rewritten as a deterministic, model-agnostic educational simulator. Unsupported numerical performance claims and model-internal mechanism claims from the prototype were removed or narrowed, `confidence_score` was replaced with `context_resolution_score`, grounding was expanded beyond a Boolean, and the public limitations and resolution rules were made explicit.

**Public v1 specification, maintenance, publication, and responsibility:** Deshimaru Sakaguchi.  
**Prototype provenance:** generated with assistance from Gemini Deep Research during the incident described above.

## Core question

What should an AI agent do when it cannot reliably determine what the user is asking it to do?

Natural conversation often relies on shared context. Instructions such as `Continue`, `Do that`, `Summarize it`, or `Please proceed` may be natural for a human participant while remaining operationally incomplete for an agent.

LLM Ambiguity Lab makes that gap visible by representing:

- what task appears to be requested;
- what object the task operates on;
- whether the instruction is grounded in usable context;
- what information remains missing;
- whether materially different interpretations remain plausible;
- whether the simulated agent should proceed, disclose an assumption, clarify, or stop.

## What v1 models

### Three types of operational ambiguity

1. **Lexical ambiguity**: a word or expression permits materially different meanings.
2. **Referential ambiguity**: the requested action depends on an unresolved referent such as `it`, `that`, or an omitted object.
3. **Intent / task ambiguity**: the subject may be identifiable while the operation, goal, constraint, or expected output remains under-specified.

### DCRL

The Lab uses a four-phase control model:

**Detect → Clarify → Resolve → Learn**

- **Detect**: identify what is known, what is missing, and what could change the execution decision.
- **Clarify**: ask only for information needed to distinguish materially different interpretations.
- **Resolve**: build an operational task specification that is sufficiently grounded under the current policy.
- **Learn**: represent reusable corrections or preferences when an implementation has an appropriate memory mechanism. In the public v1 simulator, this phase is conceptual.

### Resolution states

| State | Meaning |
|---|---|
| `READY` | Execution-critical information is sufficiently resolved. |
| `READY_WITH_DISCLOSED_ASSUMPTION` | The primary task is resolved and a non-critical condition can use a disclosed safe default. |
| `CLARIFICATION_REQUIRED` | Multiple material interpretations remain, or an essential target is unresolved. |
| `PENDING_SPECIFICATION` | The target task itself cannot be identified. |

## About the score

`context_resolution_score` is an **operational simulation value from 0.00 to 1.00** used to demonstrate policy branching.

It is not:

- an LLM's internal confidence;
- a calibrated probability;
- a measurement of hidden model reasoning;
- proof of the user's true intention.

The displayed thresholds are illustrative policy boundaries, not universal constants.

## How to use the Lab

Open `index.html` in a browser, choose one of the six deterministic preset cases, or enter free text.

Preset cases return predefined reference scenarios. Free-text input is processed by a documented rule-based heuristic. No LLM API is required for v1.

See [usage.md](usage.md) for worked examples and [methodology.md](methodology.md) for the exact simulation method.

## Public directory

```text
/llm-ambiguity-lab/
├── index.html
├── README.md
├── methodology.md
├── usage.md
├── limitations.md
├── terms.md
├── CITATION.md
├── llms.txt
└── data/
    ├── ambiguity-taxonomy.json
    ├── dcrl-spec.json
    └── resolution-policy.json
```

## Documentation map

- [methodology.md](methodology.md): architecture, data model, score construction, hard resolution rules, and deterministic free-text heuristic.
- [usage.md](usage.md): how to operate and interpret the simulator.
- [limitations.md](limitations.md): claims the Lab does not make and known boundaries of v1.
- [terms.md](terms.md): public terms of use.
- [CITATION.md](CITATION.md): preferred citation formats.
- [llms.txt](llms.txt): machine-oriented discovery map.
- [data/ambiguity-taxonomy.json](data/ambiguity-taxonomy.json): structured ambiguity taxonomy.
- [data/dcrl-spec.json](data/dcrl-spec.json): structured DCRL specification.
- [data/resolution-policy.json](data/resolution-policy.json): structured score, state, and resolution policy.

## v1 boundary and SANA OS

v1 asks:

> **What are we doing?**

It does not evaluate the broader premises carried into the resolved task.

A future SANA OS extension may add the second question:

> **What are we assuming while we do it?**

SANA OS is related work, but no knowledge of SANA OS is required to understand or use LLM Ambiguity Lab v1.

## Availability

The Lab is intended to be free to use without account creation. Free access does not mean that the project, documentation, or source code is in the public domain. See [terms.md](terms.md).
