Tools

Tingkat berpikir

Fungsinya

  • Direktif inline dalam isi masuk apa pun: /t <level>, /think:<level>, atau /thinking <level>.
  • Level (alias): off | minimal | low | medium | high | xhigh | adaptive | max
    • minimal → "think"
    • low → "think hard"
    • medium → "think harder"
    • high → "ultrathink" (anggaran maksimum)
    • xhigh → "ultrathink+" (model GPT-5.2+ dan Codex, ditambah upaya Anthropic Claude Opus 4.7)
    • adaptive → pemikiran adaptif yang dikelola penyedia (didukung untuk Claude 4.6 di Anthropic/Bedrock, Anthropic Claude Opus 4.7, dan pemikiran dinamis Google Gemini)
    • max → penalaran maksimum penyedia (Anthropic Claude Opus 4.7; Ollama memetakan ini ke upaya think native tertingginya)
    • x-high, x_high, extra-high, extra high, dan extra_high dipetakan ke xhigh.
    • highest dipetakan ke high.
  • Catatan penyedia:
    • Menu dan pemilih pemikiran digerakkan oleh profil penyedia. Plugin penyedia mendeklarasikan kumpulan level yang tepat untuk model yang dipilih, termasuk label seperti on biner.
    • adaptive, xhigh, dan max hanya ditampilkan untuk profil penyedia/model yang mendukungnya. Direktif yang diketik untuk level yang tidak didukung ditolak dengan opsi valid model tersebut.
    • Level tidak didukung yang sudah tersimpan dipetakan ulang berdasarkan peringkat profil penyedia. adaptive mundur ke medium pada model non-adaptif, sementara xhigh dan max mundur ke level non-off terbesar yang didukung untuk model yang dipilih.
    • Model Anthropic Claude 4.6 secara default memakai adaptive ketika tidak ada level pemikiran eksplisit yang ditetapkan.
    • Anthropic Claude Opus 4.7 tidak secara default memakai pemikiran adaptif. Default upaya API-nya tetap dimiliki penyedia kecuali Anda menetapkan level pemikiran secara eksplisit.
    • Anthropic Claude Opus 4.7 memetakan /think xhigh ke pemikiran adaptif ditambah output_config.effort: "xhigh", karena /think adalah direktif pemikiran dan xhigh adalah pengaturan upaya Opus 4.7.
    • Anthropic Claude Opus 4.7 juga mengekspos /think max; ini dipetakan ke jalur upaya maksimum yang sama yang dimiliki penyedia.
    • Model Direct DeepSeek V4 mengekspos /think xhigh|max; keduanya dipetakan ke DeepSeek reasoning_effort: "max" sementara level non-off yang lebih rendah dipetakan ke high.
    • Model DeepSeek V4 yang dirutekan OpenRouter mengekspos /think xhigh dan mengirim nilai reasoning_effort yang didukung OpenRouter. Override max tersimpan mundur ke xhigh.
    • Model Ollama yang mendukung pemikiran mengekspos /think low|medium|high|max; max dipetakan ke think: "high" native karena API native Ollama menerima string upaya low, medium, dan high.
    • Model OpenAI GPT memetakan /think melalui dukungan upaya Responses API khusus model. /think off mengirim reasoning.effort: "none" hanya ketika model target mendukungnya; jika tidak, OpenClaw menghilangkan payload penalaran yang dinonaktifkan alih-alih mengirim nilai yang tidak didukung.
    • Entri katalog kustom yang kompatibel dengan OpenAI dapat memilih masuk ke /think xhigh dengan menetapkan models.providers.<provider>.models[].compat.supportedReasoningEfforts agar menyertakan "xhigh". Ini memakai metadata kompatibilitas yang sama yang memetakan payload upaya penalaran OpenAI keluar, sehingga menu, validasi sesi, CLI agen, dan llm-task selaras dengan perilaku transport.
    • Referensi OpenRouter Hunter Alpha terkonfigurasi yang usang melewati injeksi penalaran proxy karena rute yang sudah dihentikan itu dapat mengembalikan teks jawaban final melalui kolom penalaran.
    • Google Gemini memetakan /think adaptive ke pemikiran dinamis milik penyedia Gemini. Permintaan Gemini 3 menghilangkan thinkingLevel tetap, sementara permintaan Gemini 2.5 mengirim thinkingBudget: -1; level tetap tetap dipetakan ke thinkingLevel atau anggaran Gemini terdekat untuk keluarga model tersebut.
    • MiniMax (minimax/*) pada jalur streaming yang kompatibel dengan Anthropic secara default memakai thinking: { type: "disabled" } kecuali Anda menetapkan pemikiran secara eksplisit di parameter model atau parameter permintaan. Ini menghindari delta reasoning_content yang bocor dari format stream Anthropic non-native MiniMax.
    • Z.AI (zai/*) hanya mendukung pemikiran biner (on/off). Level non-off apa pun diperlakukan sebagai on (dipetakan ke low).
    • Moonshot (moonshot/*) memetakan /think off ke thinking: { type: "disabled" } dan level non-off apa pun ke thinking: { type: "enabled" }. Ketika pemikiran diaktifkan, Moonshot hanya menerima tool_choice auto|none; OpenClaw menormalkan nilai yang tidak kompatibel ke auto.

Urutan resolusi

  1. Direktif inline pada pesan (hanya berlaku untuk pesan tersebut).
  2. Override sesi (ditetapkan dengan mengirim pesan yang hanya berisi direktif).
  3. Default per agen (agents.list[].thinkingDefault dalam konfigurasi).
  4. Default global (agents.defaults.thinkingDefault dalam konfigurasi).
  5. Fallback: default yang dideklarasikan penyedia saat tersedia; jika tidak, model yang mendukung penalaran diselesaikan ke medium atau level non-off terdekat yang didukung untuk model tersebut, dan model non-penalaran tetap off.

Menetapkan default sesi

  • Kirim pesan yang hanya berisi direktif (spasi kosong diperbolehkan), misalnya /think:medium atau /t high.
  • Itu melekat untuk sesi saat ini (defaultnya per pengirim); dibersihkan oleh /think:off atau reset menganggur sesi.
  • Balasan konfirmasi dikirim (Thinking level set to high. / Thinking disabled.). Jika level tidak valid (misalnya /thinking big), perintah ditolak dengan petunjuk dan status sesi dibiarkan tidak berubah.
  • Kirim /think (atau /think:) tanpa argumen untuk melihat level pemikiran saat ini.

Penerapan oleh agen

  • Pi tertanam: level yang diselesaikan diteruskan ke runtime agen Pi dalam proses.
  • Backend Claude CLI: level non-off diteruskan ke Claude Code sebagai --effort saat memakai claude-cli; lihat backend CLI.

Mode cepat (/fast)

  • Level: on|off.
  • Pesan yang hanya berisi direktif mengalihkan override mode cepat sesi dan membalas Fast mode enabled. / Fast mode disabled..
  • Kirim /fast (atau /fast status) tanpa mode untuk melihat status mode cepat efektif saat ini.
  • OpenClaw menyelesaikan mode cepat dalam urutan ini:
    1. /fast on|off inline/hanya-direktif
    2. Override sesi
    3. Default per agen (agents.list[].fastModeDefault)
    4. Konfigurasi per model: agents.defaults.models["<provider>/<model>"].params.fastMode
    5. Fallback: off
  • Untuk openai/*, mode cepat dipetakan ke pemrosesan prioritas OpenAI dengan mengirim service_tier=priority pada permintaan Responses yang didukung.
  • Untuk openai-codex/*, mode cepat mengirim flag service_tier=priority yang sama pada Responses Codex. OpenClaw mempertahankan satu toggle /fast bersama di kedua jalur autentikasi.
  • Untuk permintaan publik langsung anthropic/*, termasuk traffic terautentikasi OAuth yang dikirim ke api.anthropic.com, mode cepat dipetakan ke tingkat layanan Anthropic: /fast on menetapkan service_tier=auto, /fast off menetapkan service_tier=standard_only.
  • Untuk minimax/* pada jalur yang kompatibel dengan Anthropic, /fast on (atau params.fastMode: true) menulis ulang MiniMax-M2.7 menjadi MiniMax-M2.7-highspeed.
  • Parameter model Anthropic serviceTier / service_tier eksplisit mengoverride default mode cepat ketika keduanya ditetapkan. OpenClaw tetap melewati injeksi tingkat layanan Anthropic untuk URL basis proxy non-Anthropic.
  • /status menampilkan Fast hanya ketika mode cepat diaktifkan.

Direktif verbose (/verbose atau /v)

  • Level: on (minimal) | full | off (default).
  • Pesan yang hanya berisi direktif mengalihkan verbose sesi dan membalas Verbose logging enabled. / Verbose logging disabled.; level tidak valid mengembalikan petunjuk tanpa mengubah status.
  • /verbose off menyimpan override sesi eksplisit; bersihkan melalui UI Sessions dengan memilih inherit.
  • Direktif inline hanya memengaruhi pesan tersebut; default sesi/global berlaku selain itu.
  • Kirim /verbose (atau /verbose:) tanpa argumen untuk melihat level verbose saat ini.
  • Ketika verbose aktif, agen yang memancarkan hasil alat terstruktur (Pi, agen JSON lain) mengirim setiap panggilan alat kembali sebagai pesan khusus metadata tersendiri, diawali dengan <emoji> <tool-name>: <arg> saat tersedia. Ringkasan alat ini dikirim segera setelah setiap alat dimulai (gelembung terpisah), bukan sebagai delta streaming.
  • Ringkasan kegagalan alat tetap terlihat dalam mode normal, tetapi sufiks detail kesalahan mentah disembunyikan kecuali verbose adalah on atau full.
  • Ketika verbose adalah full, keluaran alat juga diteruskan setelah selesai (gelembung terpisah, dipotong ke panjang aman). Jika Anda mengalihkan /verbose on|full|off saat sebuah eksekusi masih berjalan, gelembung alat berikutnya mengikuti pengaturan baru.
  • agents.defaults.toolProgressDetail mengontrol bentuk ringkasan alat /verbose dan baris alat draf progres. Gunakan "explain" (default) untuk label manusia ringkas seperti 🛠️ Exec: checking JS syntax; gunakan "raw" saat Anda juga ingin perintah/detail mentah ditambahkan untuk debugging. agents.list[].toolProgressDetail per agen mengoverride default.
    • explain: 🛠️ Exec: check JS syntax for /tmp/app.js
    • raw: 🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js

Direktif trace Plugin (/trace)

  • Level: on | off (default).
  • Pesan yang hanya berisi direktif mengalihkan output trace Plugin sesi dan membalas Plugin trace enabled. / Plugin trace disabled..
  • Direktif inline hanya memengaruhi pesan tersebut; default sesi/global berlaku selain itu.
  • Kirim /trace (atau /trace:) tanpa argumen untuk melihat level trace saat ini.
  • /trace lebih sempit daripada /verbose: ini hanya mengekspos baris trace/debug milik Plugin seperti ringkasan debug Active Memory.
  • Baris trace dapat muncul di /status dan sebagai pesan diagnostik lanjutan setelah balasan asisten normal.

Visibilitas penalaran (/reasoning)

  • Level: on|off|stream.
  • Pesan yang hanya berisi direktif mengalihkan apakah blok pemikiran ditampilkan dalam balasan.
  • Saat diaktifkan, penalaran dikirim sebagai pesan terpisah yang diawali dengan Reasoning:.
  • stream (hanya Telegram): men-stream penalaran ke gelembung draf Telegram saat balasan sedang dibuat, lalu mengirim jawaban final tanpa penalaran.
  • Alias: /reason.
  • Kirim /reasoning (atau /reasoning:) tanpa argumen untuk melihat level penalaran saat ini.
  • Urutan resolusi: direktif inline, lalu override sesi, lalu default per agen (agents.list[].reasoningDefault), lalu fallback (off).

Tag penalaran model lokal yang salah bentuk ditangani secara konservatif. Blok <think>...</think> tertutup tetap disembunyikan pada balasan normal, dan penalaran tidak tertutup setelah teks yang sudah terlihat juga disembunyikan. Jika balasan sepenuhnya dibungkus dalam satu tag pembuka tidak tertutup dan jika tidak begitu akan dikirim sebagai teks kosong, OpenClaw menghapus tag pembuka yang salah bentuk dan mengirim teks sisanya.

Terkait

Heartbeat

  • Isi probe Heartbeat adalah prompt Heartbeat terkonfigurasi (default: 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.). Direktif inline dalam pesan Heartbeat berlaku seperti biasa (tetapi hindari mengubah default sesi dari Heartbeat).
  • Pengiriman Heartbeat secara default hanya ke payload final. Untuk juga mengirim pesan Reasoning: terpisah (saat tersedia), tetapkan agents.defaults.heartbeat.includeReasoning: true atau agents.list[].heartbeat.includeReasoning: true per agen.

UI chat web

  • Pemilih pemikiran chat web mencerminkan level tersimpan sesi dari penyimpanan/konfigurasi sesi masuk saat halaman dimuat.
  • Memilih level lain langsung menulis override sesi melalui sessions.patch; ini tidak menunggu pengiriman berikutnya dan bukan override sekali pakai thinkingOnce.
  • Opsi pertama selalu Default (<resolved level>), tempat default yang diselesaikan berasal dari profil pemikiran penyedia model sesi aktif ditambah logika fallback yang sama yang digunakan /status dan session_status.
  • Pemilih memakai thinkingLevels yang dikembalikan oleh baris/default sesi Gateway, dengan thinkingOptions dipertahankan sebagai daftar label legacy. UI browser tidak menyimpan daftar regex penyedianya sendiri; Plugin memiliki kumpulan level khusus model.
  • /think:<level> tetap berfungsi dan memperbarui level sesi tersimpan yang sama, sehingga direktif chat dan pemilih tetap sinkron.

Profil penyedia

  • Plugin penyedia dapat mengekspos resolveThinkingProfile(ctx) untuk menentukan level yang didukung model dan default-nya.
  • Plugin penyedia yang memproksi model Claude sebaiknya menggunakan ulang resolveClaudeThinkingProfile(modelId) dari openclaw/plugin-sdk/provider-model-shared agar katalog Anthropic langsung dan proksi tetap selaras.
  • Setiap level profil memiliki id kanonis tersimpan (off, minimal, low, medium, high, xhigh, adaptive, atau max) dan dapat menyertakan label tampilan. Penyedia biner menggunakan { id: "low", label: "on" }.
  • Plugin alat yang perlu memvalidasi override thinking eksplisit sebaiknya menggunakan api.runtime.agent.resolveThinkingPolicy({ provider, model }) plus api.runtime.agent.normalizeThinkingLevel(...); mereka sebaiknya tidak menyimpan daftar level penyedia/model sendiri.
  • Plugin alat dengan akses ke metadata model kustom yang dikonfigurasi dapat meneruskan catalog ke resolveThinkingPolicy sehingga opt-in compat.supportedReasoningEfforts tercermin dalam validasi sisi plugin.
  • Hook lama yang dipublikasikan (supportsXHighThinking, isBinaryThinking, dan resolveDefaultThinkingLevel) tetap ada sebagai adapter kompatibilitas, tetapi kumpulan level kustom baru sebaiknya menggunakan resolveThinkingProfile.
  • Baris/default Gateway mengekspos thinkingLevels, thinkingOptions, dan thinkingDefault agar klien ACP/obrolan merender id dan label profil yang sama dengan yang digunakan validasi runtime.