Thinking-Stufen (/think-Direktiven)

Was es bewirkt

  • Inline-Direktive in jedem eingehenden Nachrichtentext: /t <level>, /think:<level> oder /thinking <level>.
  • Stufen (Aliase): off | minimal | low | medium | high | xhigh | adaptive
    • minimal → “think”
    • low → “think hard”
    • medium → “think harder”
    • high → “ultrathink” (maximales Budget)
    • xhigh → “ultrathink+” (nur GPT-5.2 + Codex-Modelle)
    • adaptive → provider-verwaltetes adaptives Reasoning-Budget (unterstützt für Anthropic Claude 4.6 Modellfamilie)
    • x-high, x_high, extra-high, extra high und extra_high werden zu xhigh zugeordnet.
    • highest, max werden zu high zugeordnet.
  • Provider-Hinweise:
    • Anthropic Claude 4.6 Modelle verwenden standardmäßig adaptive, wenn keine explizite Thinking-Stufe gesetzt ist.
    • Z.AI (zai/*) unterstützt nur binäres Thinking (on/off). Jede nicht-off-Stufe wird als on behandelt (auf low abgebildet).
    • Moonshot (moonshot/*) bildet /think off auf thinking: { type: "disabled" } ab und jede nicht-off-Stufe auf thinking: { type: "enabled" }. Wenn Thinking aktiviert ist, akzeptiert Moonshot nur tool_choice auto|none; OpenClaw normalisiert inkompatible Werte auf auto.

Auflösungsreihenfolge

  1. Inline-Direktive in der Nachricht (gilt nur für diese Nachricht).
  2. Session-Override (gesetzt durch Senden einer reinen Direktiven-Nachricht).
  3. Globaler Standard (agents.defaults.thinkingDefault in der Config).
  4. Fallback: adaptive für Anthropic Claude 4.6 Modelle, low für andere reasoning-fähige Modelle, off ansonsten.

Session-Standard setzen

  • Sende eine Nachricht, die nur die Direktive enthält (Leerzeichen erlaubt), z.B. /think:medium oder /t high.
  • Das gilt für die aktuelle Session (standardmäßig pro Sender); wird gelöscht durch /think:off oder Session-Idle-Reset.
  • Eine Bestätigungsantwort wird gesendet (Thinking level set to high. / Thinking disabled.). Wenn die Stufe ungültig ist (z.B. /thinking big), wird der Befehl abgelehnt mit einem Hinweis und der Session-State bleibt unverändert.
  • Sende /think (oder /think:) ohne Argument, um die aktuelle Thinking-Stufe zu sehen.

Anwendung pro Agent

  • Eingebetteter Pi: Die aufgelöste Stufe wird an die In-Process Pi Agent-Runtime übergeben.

Fast-Modus (/fast)

  • Stufen: on|off.
  • Reine Direktiven-Nachricht schaltet einen Session-Fast-Mode-Override um und antwortet Fast mode enabled. / Fast mode disabled..
  • Sende /fast (oder /fast status) ohne Modus, um den aktuellen effektiven Fast-Mode-Status zu sehen.
  • OpenClaw löst den Fast-Modus in dieser Reihenfolge auf:
    1. Inline/direktiven-only /fast on|off
    2. Session-Override
    3. Pro-Modell-Config: agents.defaults.models["<provider>/<model>"].params.fastMode
    4. Fallback: off
  • Für openai/* wendet der Fast-Modus das OpenAI-Fast-Profil an: service_tier=priority wenn unterstützt, plus niedriges Reasoning-Effort und niedrige Text-Verbosity.
  • Für openai-codex/* wendet der Fast-Modus das gleiche Low-Latency-Profil auf Codex Responses an. OpenClaw hält einen gemeinsamen /fast-Toggle über beide Auth-Pfade.
  • Für direkte anthropic/* API-Key-Anfragen bildet der Fast-Modus auf Anthropic Service-Tiers ab: /fast on setzt service_tier=auto, /fast off setzt service_tier=standard_only.
  • Anthropic Fast-Modus ist nur API-Key. OpenClaw überspringt die Anthropic Service-Tier-Injektion für Claude Setup-Token / OAuth Auth und für Nicht-Anthropic-Proxy-Base-URLs.

Verbose-Direktiven (/verbose oder /v)

  • Stufen: on (minimal) | full | off (Standard).
  • Reine Direktiven-Nachricht schaltet Session-Verbose um und antwortet Verbose logging enabled. / Verbose logging disabled.; ungültige Stufen geben einen Hinweis zurück, ohne den State zu ändern.
  • /verbose off speichert einen expliziten Session-Override; lösche ihn über die Sessions-UI mit der Option inherit.
  • Inline-Direktive wirkt nur auf diese Nachricht; Session-/globale Defaults gelten ansonsten.
  • Sende /verbose (oder /verbose:) ohne Argument, um die aktuelle Verbose-Stufe zu sehen.
  • Wenn Verbose an ist, senden Agents, die strukturierte Tool-Ergebnisse ausgeben (Pi, andere JSON-Agents), jeden Tool-Call als eigene Metadata-Nachricht zurück, mit dem Präfix <emoji> <tool-name>: <arg> wenn verfügbar (Pfad/Befehl). Diese Tool-Zusammenfassungen werden gesendet, sobald jedes Tool startet (separate Blasen), nicht als Streaming-Deltas.
  • Tool-Fehlerübersichten bleiben im normalen Modus sichtbar, aber roher Fehlerdetail-Text wird nur eingeblendet, wenn Verbose on oder full ist.
  • Wenn Verbose full ist, werden Tool-Outputs auch nach Abschluss weitergeleitet (separate Blase, auf eine sichere Länge gekürzt). Wenn du /verbose on|full|off während eines laufenden Runs umschaltest, berücksichtigen nachfolgende Tool-Blasen die neue Einstellung.

Reasoning-Sichtbarkeit (/reasoning)

  • Stufen: on|off|stream.
  • Reine Direktiven-Nachricht schaltet um, ob Thinking-Blöcke in Antworten angezeigt werden.
  • Wenn aktiviert, wird das Reasoning als separate Nachricht mit dem Präfix Reasoning: gesendet.
  • stream (nur Telegram): streamt Reasoning in die Telegram-Draft-Blase während die Antwort generiert wird, sendet dann die finale Antwort ohne Reasoning.
  • Alias: /reason.
  • Sende /reasoning (oder /reasoning:) ohne Argument, um die aktuelle Reasoning-Stufe zu sehen.

Verwandt

Heartbeats

  • Der Heartbeat-Probe-Text ist der konfigurierte Heartbeat-Prompt (Standard: Read HEARTBEAT.md if it exists (workspace context). Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK.). Inline-Direktiven in einer Heartbeat-Nachricht werden wie üblich angewendet (aber vermeide es, Session-Defaults aus Heartbeats zu ändern).
  • Die Heartbeat-Zustellung umfasst standardmäßig nur den finalen Payload. Um auch die separate Reasoning:-Nachricht (wenn verfügbar) zu senden, setze agents.defaults.heartbeat.includeReasoning: true oder pro Agent agents.list[].heartbeat.includeReasoning: true.

Web-Chat-UI

  • Der Thinking-Selektor im Web-Chat spiegelt die gespeicherte Stufe der Session aus dem Inbound-Session-Store/Config beim Laden der Seite.
  • Die Auswahl einer anderen Stufe gilt nur für die nächste Nachricht (thinkingOnce); nach dem Senden springt der Selektor zurück auf die gespeicherte Session-Stufe.
  • Um den Session-Standard zu ändern, sende eine /think:<level>-Direktive (wie zuvor); der Selektor zeigt es nach dem nächsten Reload an.