# Fleet internal reasoning format
Arriella fleet models support **Ollama native thinking** like enterprise models (Qwen3, DeepSeek-R1): clients toggle reasoning with API `think:true` / `think:false` or CLI `--think` / `--think=false`.
## Ollama native flow (preferred)
When `think:true`:
1. The Ollama template **opens** `/think` at generation time (the model must not repeat it).
2. The model writes a **scratchpad** inside the thinking channel — multi-step `[Step N] Input:/ Op:/ Output:/ Check:` chains for hard questions.
3. The model emits `/thinking end` on its own line.
4. The model writes the **plain user-facing answer** in `message.content`.
When `think:false`:
- Reply directly in `message.content` with no `/think`, `/thinking end`, `/answer`, or XML markers.
## Ascension (DeepSeek-R1 native)
Fourth core tier `arriella-ascension` uses DeepSeek-R1 distill markers:
```
scratchpad …
plain answer
```
Ollama template (`deepseek_native`) matches official `deepseek-r1`:
- `think:false` → injects empty `` so the model skips CoT
- `think:true` → model opens `` itself, then closes and answers
Bootstrap / catch-up: `scripts/fleet_ascension_catchup.py`
## Training targets
| Mode | Assistant `output` target |
|------|---------------------------|
| Think on (Ollama) | `{scratchpad}\n/thinking end\n{plain answer}` — **no leading `/think`** |
| Think on (HF legacy) | `/think\n…\n/thinking end\n/answer\n…\n/answer end` |
| Think off | Plain answer only (`chat_direct_anchor`) |
## Also accepted in eval
Older paths may emit `…` and `…`. Capability scoring grades the **answer** block only.
## Required behavior
1. Scratchpad lives **inside** the thinking channel when think is on — not in a separate broken channel.
2. Always emit `/thinking end` before the user-visible answer when think is on.
3. Use math only when numerical computation helps — not for open-ended writing.
4. Never leave refusal/think tags in the final answer body.
## Related tools
- Enable native templates: `scripts/enable_native_thinking_ollama.py`
- Prove think on/off: `scripts/prove_deep_think_ollama.py`
- Atlas proxy that strips think leakage: `scripts/atlas_ollama_proxy.py`
- Chat with think/vision: `scripts/fleet_chat.py`