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

# Change Reasoning Effort Within a Conversation

> Use ordered effort updates with Astra and Fable 5.1, including trailing updates and developer messages.

NanoGPT supports ordered effort updates for **GPT-6 Astra** (`openai/gpt-6-astra`) and **Claude Fable 5.1** (`anthropic/claude-fable-5.1`) on compatible endpoints. Keep the request-level effort constant and insert an update immediately before the user turn that needs a different effort, or append it after the final user turn to control the response generated by that request. The new effort persists until another update replaces it.

Replay each update in its original position. Do not replace previous updates or move them to the beginning of the conversation. The request-level effort remains the baseline, and Responses `reasoning.effort` reports that baseline.

## Chat Completions

Send to `POST https://nano-gpt.com/api/v1/chat/completions`.

`configuration_update` accepts `system` and `developer` roles with empty content.

```json theme={null}
{
  "model": "openai/gpt-6-astra",
  "reasoning": { "effort": "low" },
  "messages": [
    { "role": "user", "content": "Draft a migration plan." },
    { "role": "assistant", "content": "First, create the new table..." },
    {
      "role": "system",
      "content": "",
      "configuration_update": { "reasoning": { "effort": "high" } }
    },
    { "role": "user", "content": "Analyze failure modes and rollback steps." }
  ]
}
```

A trailing developer update is also accepted:

```json theme={null}
{
  "model": "openai/gpt-6-astra",
  "reasoning": { "effort": "low" },
  "messages": [
    { "role": "user", "content": "Analyze failure modes and rollback steps." },
    { "role": "developer", "content": "", "configuration_update": { "reasoning": { "effort": "high" } } }
  ]
}
```

When replaying this request, leave the update before the returned assistant response, including any reasoning or tool calls. Do not move it ahead of a later user message.

## Responses

Send to `POST https://nano-gpt.com/api/v1/responses`.

```json theme={null}
{
  "model": "openai/gpt-6-astra",
  "reasoning": { "effort": "low" },
  "input": [
    { "role": "user", "content": "Draft a migration plan." },
    { "role": "assistant", "content": "First, create the new table..." },
    { "type": "configuration_update", "reasoning": { "effort": "high" } },
    { "role": "user", "content": "Analyze failure modes and rollback steps." }
  ]
}
```

Use manual replay or NanoGPT's stored `previous_response_id` history. Manual replay should include the provider's returned reasoning and tool items along with messages. For these requests, NanoGPT asks for `reasoning.encrypted_content` automatically so provider-issued replay data can be returned and stored; preserve opaque encrypted fields without editing them. Inline-update conversations use the native Responses transport, including later requests that inherit an update from stored history. Do not switch such a stored conversation to an unsupported model.

## Anthropic Messages

Send to `POST https://nano-gpt.com/api/v1/messages`.

```json theme={null}
{
  "model": "anthropic/claude-fable-5.1",
  "max_tokens": 4096,
  "output_config": { "effort": "high" },
  "messages": [
    { "role": "user", "content": "Analyze the migration." },
    { "role": "assistant", "content": "The main risks are..." },
    { "role": "system", "content": [], "output_config": { "effort": "low" } },
    { "role": "user", "content": "Give me a short checklist." }
  ]
}
```

## Supported combinations

* Astra inline efforts: `low`, `medium`, `high`, `xhigh`.
* Claude inline efforts: `low`, `medium`, `high`, `xhigh`, `max`; `minimal` maps to `low`. `none` is rejected.
* Updates may precede the first user turn or trail the request on all three APIs. Starting with an update selects a compatible route immediately. Replayed updates may precede assistant, reasoning, or tool-call output. Anthropic Messages `output_config` updates still require the `system` role.
* Streaming and non-streaming requests, function tools, complete tool histories, and post-tool continuations are supported. Preserve prior reasoning/signature fields using the API's normal history representation.
* Model-specific tool restrictions still apply. In particular, Fable 5.1 may reject forced tool choice; use automatic tool choice.
* Requests without updates retain existing routes and behavior. An unsupported explicitly selected provider fails; automatic fallback filters out incompatible endpoints. Existing provider permissions still apply.

This initial implementation rejects non-empty updates, adjacent updates, pro mode, unsupported models/efforts, automatic truncation, context-management/compaction controls, multi-agent controls, Advisor, memory/history-limit controls, background requests, explicit BYOK, hosted/non-function tools, and Batch lines. These are NanoGPT's initial compatibility boundaries; native Anthropic permits broader update placement. Other transport paths are not enabled for this feature.

Updates are generation controls, not prompt text. Reasoning visibility controls remain separate and never become fields inside an update. Existing Chat/Messages response-local visibility handling is preserved. `reasoning.exclude:true` with inline updates is explicitly rejected on Responses, where response-local exclusion is not yet supported.

## Cache behavior

Keeping earlier input stable makes cache reuse possible; a cache entry does not follow a conversation between providers. Moving an existing conversation to a compatible route may miss the old cache. Keeping provider choice, tools, baseline effort, and earlier input stable gives the best chance of reuse.

See [Prompt Caching](/api-reference/miscellaneous/prompt-caching) for cache controls and [Extended Thinking](/api-reference/miscellaneous/extended-thinking) for response visibility.
