2.4 KiB
2.4 KiB
Thinking Levels (/think directives)
What it does
- Inline directive in any inbound body:
/t <level>,/think:<level>, or/thinking <level>. - Levels (aliases):
off | minimal | low | medium | high- minimal → “think”
- low → “think hard”
- medium → “think harder”
- high → “ultrathink” (max budget)
highest,maxmap tohigh.
Resolution order
- Inline directive on the message (applies only to that message).
- Session override (set by sending a directive-only message).
- Global default (
inbound.reply.thinkingDefaultin config). - Fallback: off.
Setting a session default
- Send a message that is only the directive (whitespace allowed), e.g.
/think:mediumor/t high. - That sticks for the current session (per-sender by default); cleared by
/think:offor session idle reset. - Confirmation reply is sent (
Thinking level set to high./Thinking disabled.). If the level is invalid (e.g./thinking big), the command is rejected with a hint and the session state is left unchanged.
Application by agent
- Pi/Tau: injects
--thinking <level>(skipped foroff). Other agent paths have been removed.
Verbose directives (/verbose or /v)
- Levels:
on|fulloroff(default). - Directive-only message toggles session verbose and replies
Verbose logging enabled./Verbose logging disabled.; invalid levels return a hint without changing state. - Inline directive affects only that message; session/global defaults apply otherwise.
- When verbose is on, agents that emit structured tool results (Pi/Tau, other JSON agents) send each tool result back as its own metadata-only message, prefixed with
[🛠️ <tool-name> <arg>]when available (path/command); the tool output itself is not forwarded.
Heartbeats
- Heartbeat probe body is
HEARTBEAT /think:high, so it always asks for max thinking on the probe. Inline directive wins; session/global defaults are used only when no directive is present.
Web chat UI
- The web chat thinking selector mirrors the session's stored level from the inbound session store/config when the page loads.
- Picking another level applies only to the next message (
thinkingOnce); after sending, the selector snaps back to the stored session level. - To change the session default, send a
/think:<level>directive (as before); the selector will reflect it after the next reload.