> The full index of these docs is at [llms.txt](https://u22a8.ai/llms.txt).

# Known limits: a8-1

Where a8-1 errs or declines, and what to do instead.

*Applies to a8-1. Last reviewed 2026-10-22.*

`a8-1` answers where a criterion’s evidence meets the minimum accuracy a request sets, and abstains below it. Five behaviours of this version follow from that rule, and a first integration meets them early. Two concern new criteria and shifting traffic, one concerns light teaching, one concerns where the minimum accuracy comes from and one concerns content that is filtered. Each has a remedy.

| # | Behaviour                                                                                                   | Do this instead                                               |
| - | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
| 1 | [A new criterion abstains at every level above 0](#a-new-criterion-abstains)                                | Teach it, or send a reference in the subject                  |
| 2 | [Levels earned on old traffic are withdrawn when traffic shifts](#shifted-traffic-withdraws-levels)         | Teach examples from the new traffic                           |
| 3 | [A lightly taught criterion promises less than the reference model did](#light-teaching-lowers-the-promise) | Teach more examples, or call the reference model meanwhile    |
| 4 | [A threshold in the prompt is read as part of the criterion](#a-prompt-threshold-is-criterion-text)         | Set the minimum accuracy in the model’s tag                   |
| 5 | [With reasoning on, a request about harmful content can be filtered](#harmful-content-can-be-filtered)      | Send it with reasoning off, in the layout A8 reads as written |

*Table 1.* The known limits of `a8-1`, each with its remedy.

## 1 A new criterion abstains

A criterion earns its levels from taught examples, so a new one starts at 0. A new criterion that picks a label answers at 0 alone, and every request above 0 abstains with kind `level_not_earned` until teaching earns a level:

```json
{
  "abstention": {
    "kind": "level_not_earned",
    "asked": 90,
    "answerable_at": 0,
    "earned": null,
    "missing": null
  }
}
```

Recorded from `a8-1-1@20260715t140322z` on 2026-10-22.

A new criterion that scores abstains with kind `no_evidence` at every level, 0 included.

**Instead:** teach the criterion a handful of examples, or send a reference answer or a policy in the subject, so the request carries its own standard. See [Teaching](https://u22a8.ai/docs/a8-teaching.md) and [API overview](https://u22a8.ai/docs/api-overview.md).

## 2 Shifted traffic withdraws levels

A level holds on traffic that resembles the material it was earned on. When a criterion’s traffic moves to a new domain, another language or output from a different system, A8 withdraws the levels earned on the old material, and requests abstain at every level above 0:

```json
{
  "abstention": {
    "kind": "unfamiliar_subject",
    "asked": 90,
    "answerable_at": 0,
    "earned": 95,
    "missing": null
  }
}
```

Recorded from `a8-1-1@20260715t140322z` on 2026-10-22.

**Instead:** teach examples drawn from the new traffic, so the criterion earns its levels again on the material it now judges. See [Accuracy and abstention](https://u22a8.ai/docs/a8-abstention.md#edge-cases).

## 3 Light teaching lowers the promise

Where you teach a criterion the reference model already covers, your examples replace the reference model’s for that criterion. The criterion then earns its levels on your examples, so a criterion taught with a few examples can promise a lower level than the reference model did:

```json
{
  "abstention": {
    "kind": "level_not_earned",
    "asked": 95,
    "answerable_at": 80,
    "earned": 80,
    "missing": null
  }
}
```

Recorded from `a8-1-1@20260715t140322z` on 2026-10-22.

**Instead:** teach more examples of the criterion until it earns the level you need. Meanwhile, call the reference model directly as `a8-1-1@reference`. See [Teaching](https://u22a8.ai/docs/a8-teaching.md) and [Horizons](https://u22a8.ai/docs/a8-horizons.md).

## 4 A prompt threshold is criterion text

`a8-1` reads a threshold written in the prompt, such as “Only answer if you are 95% sure”, as part of the criterion. The minimum accuracy stays at the default of 90:

```json
{
  "model": "a8-1-1:90@20260715t140322z",
  "choices": [{"message": {"content": "{\"refund\": true}"}}],
  "min_accuracy": 90
}
```

Recorded from `a8-1-1@20260715t140322z` on 2026-10-22.

**Instead:** set the minimum accuracy in the model’s tag: `a8:95` for 95, or a pinned identifier with the same tag. See [Model identifiers](https://u22a8.ai/docs/a8-model-identifiers.md).

## 5 Harmful content can be filtered

With reasoning on, a request whose text is harmful, such as hate speech, violence or self-harm, can come back filtered. A filtered request is an outcome of its own, apart from a verdict and an abstention, and each interface reports it in its own content-filter slot. In Chat Completions:

```json
{
  "model": "a8-1-1:90@20260715t140322z",
  "choices": [
    {
      "message": {"role": "assistant", "content": null, "refusal": null},
      "finish_reason": "content_filter"
    }
  ]
}
```

The same request is filtered every time, so a retry returns the same response.

**Instead:** for a criterion that judges such content, such as a moderation policy, turn reasoning off and send the criterion as the system message and the subject as the latest user message. A8 reads that layout as written and judges it. Each interface page names its reasoning switch: [Chat Completions](https://u22a8.ai/docs/a8-chat-completions.md), [Responses](https://u22a8.ai/docs/a8-responses.md) and [Anthropic Messages](https://u22a8.ai/docs/a8-anthropic-messages.md).

## Next steps

- [Accuracy and abstention](https://u22a8.ai/docs/a8-abstention.md): How a request sets the minimum accuracy a verdict must meet, what that level promises and the five kinds of abstention.
- [Teaching](https://u22a8.ai/docs/a8-teaching.md): How to teach and retract through MCP, when a teach lands in your organization’s model and what it changes.
- [Testing A8](https://u22a8.ai/docs/a8-testing.md): Test what A8 learned the way you would test a student, with new questions, known answers, accuracy and coverage, on a pinned version.
