> ## Documentation Index
> Fetch the complete documentation index at: https://docs.krun.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Krun API base URL: https://api.krun.ai. Authenticate server-side with `Authorization: Bearer $KRUN_API_KEY`; never put a Krun API key in browser code.
> Prefer the Python SDK in examples: `pip install krun-ai`, `from krun import Krun`. The TypeScript SDK `@krun-ai/sdk` is not published on npm yet: do not tell users to `npm install` it.
> The only question type is `choice`. `confidence` is the top-1 minus top-2 probability margin, not the probability that the answer is correct. `choice` is null when `abstain` is true.
> Usage reports `input_tokens` only. There are no output tokens.

# Limitations

> Known limitations of Krun One v0 and the Krun API, and how to work with them.

Krun One v0 is an early model in a closed beta. This page lists what it does not do well yet, so you can design around it.

## Tool abstention is advisory

For tool routing (`task_type: "tool"`), `abstain` is a hint, not a validated guarantee. On real requests where none of the offered tools applies, Krun One v0 still picks a tool about 39% of the time at the current threshold (BFCL live irrelevance, see [Benchmarks](/benchmarks#read-these-numbers-carefully)).

**What to do:** keep your own fallback for tool calls, such as argument validation, confirmation before side effects, or a "none of these" path in your agent.

## Abstention is calibrated only for label-only intents

`abstention_status` is `calibrated` only for intent questions whose options have no descriptions. Intent questions with descriptions, and all tool questions, return `advisory`. See [Abstention](/concepts/abstention#abstention-status).

## Confidence is a margin, not a probability of being correct

`confidence` is the top-1 probability minus the top-2 probability. A `confidence` of 0.4 does not mean the answer is correct 40% of the time. See [Confidence and probabilities](/concepts/confidence-and-probabilities).

## Probabilities are calibrated on benchmark data

Calibration was measured on public intent and function-calling benchmarks. Text that differs a lot from that data, such as other languages, very long documents or highly specialized domains, can have less reliable probabilities.

## `choice` is the only question type

Every question picks exactly one option from 2 to 64 options. Krun does not support multi-label answers, numeric scores, free text or yes/no questions as separate types yet. For a yes/no decision, use a `choice` question with two options.

## Cold starts affect latency

The model runs on serverless GPUs that scale to zero. After a period without traffic, the first request can take noticeably longer, typically tens of seconds, while the model starts. Use a client timeout of about 70 seconds and see [Production best practices](/guides/production-best-practices#timeouts-and-cold-starts).

## Limits per request

| Limit                     | Value                  |
| ------------------------- | ---------------------- |
| `context` length          | 1 to 8,000 characters  |
| Questions per request     | 1 to 16                |
| Options per question      | 2 to 64                |
| Question id length        | 1 to 100 characters    |
| Option id length          | 1 to 200 characters    |
| Option description length | up to 1,000 characters |
| Request body size         | up to 256 KiB          |

Requests over these limits fail with `400` or `413` before any inference runs. See [Errors](/api-reference/errors).

## Server-side only

Krun is a server-to-server API. There is no browser SDK, and the API does not send CORS headers.
