Extended Thinking

Aura supports extended thinking/reasoning, allowing models to reason before responding.

Thinking Levels

Level Description
off / false No thinking — direct response
on / true Enable thinking at the default level (medium)
low Minimal reasoning
medium Moderate reasoning
high Maximum reasoning effort

Set per-agent in the agent frontmatter via model.think.

Controls

Method Description
/think [level] or /effort Set thinking level (off, on, low, medium, high)
Ctrl+R Toggle thinking off ↔ on (true)
Ctrl+E Cycle all levels (off → on → low → medium → high → off)
--think flag Set starting level from CLI

Thinking Display

Thinking blocks are rendered in faint gray in the TUI. Toggle visibility:

  • /verbose command
  • Ctrl+T keybinding

Prior Turn Handling

Each agent configures how thinking blocks from prior conversation turns are handled:

Mode Description
"" (default) Keep thinking blocks as-is in history
"strip" Strip thinking from older messages that exceed the token threshold
"rewrite" Condense older thinking via a dedicated agent or self-rewrite

Set in agent frontmatter: thinking: "strip"

Both strip and rewrite respect configurable thresholds in features/thinking.yaml:

thinking:
  agent: Thinking        # dedicated agent for rewriting
  prompt: ""             # named prompt for self-rewrite (overrides agent)
  keep_last: 5           # recent messages whose thinking is preserved
  token_threshold: 300   # minimum tokens for a block to be affected
  • keep_last — the N most recent messages always keep their thinking blocks unchanged.
  • token_threshold — blocks below this threshold are left alone (small thinking blocks are cheap to keep).
  • prompt — when set, uses the current agent’s model with a named system prompt instead of delegating to a separate agent. Mirrors compaction’s self-compact pattern.

Agent resolution follows the same three-tier pattern as compaction:

  1. prompt: set → self-rewrite with current model
  2. agent: set → use dedicated Thinking agent
  3. Neither → use pre-built thinking agent (error if nil)

Both modes mutate the builder in place — what the LLM sees is what gets saved to sessions and shown in /export.

If thinking: rewrite is configured and the agent or prompt cannot be resolved, it fails with an error. No silent fallback to stripping.


Back to top

Copyright © 2026 idelchi. Distributed under the MIT License.