Tools
ระดับการคิด
สิ่งที่ทำ
- คำสั่งแบบอินไลน์ในเนื้อหาขาเข้าใดๆ:
/t <level>,/think:<level>, หรือ/thinking <level> - ระดับ (นามแฝง):
off | minimal | low | medium | high | xhigh | adaptive | max- minimal → "คิด"
- low → "คิดอย่างจริงจัง"
- medium → "คิดให้หนักขึ้น"
- high → "ultrathink" (งบสูงสุด)
- xhigh → "ultrathink+" (โมเดล GPT-5.2+ และ Codex รวมถึงระดับ effort ของ Anthropic Claude Opus 4.7)
- adaptive → การคิดแบบปรับตัวที่จัดการโดยผู้ให้บริการ (รองรับสำหรับ Claude 4.6 บน Anthropic/Bedrock, Anthropic Claude Opus 4.7 และ Google Gemini dynamic thinking)
- max → provider max reasoning (Anthropic Claude Opus 4.7; Ollama จับคู่ค่านี้กับ
thinkeffort แบบเนทีฟสูงสุด) x-high,x_high,extra-high,extra high, และextra_highจับคู่กับxhighhighestจับคู่กับhigh
- หมายเหตุของผู้ให้บริการ:
- เมนูและตัวเลือกการคิดขับเคลื่อนโดยโปรไฟล์ผู้ให้บริการ Provider plugins ประกาศชุดระดับที่แน่นอนสำหรับโมเดลที่เลือก รวมถึงป้ายกำกับเช่น binary
on adaptive,xhigh, และmaxจะแสดงเฉพาะสำหรับโปรไฟล์ผู้ให้บริการ/โมเดลที่รองรับเท่านั้น คำสั่งที่พิมพ์สำหรับระดับที่ไม่รองรับจะถูกปฏิเสธพร้อมตัวเลือกที่ถูกต้องของโมเดลนั้น- ระดับที่ไม่รองรับซึ่งถูกจัดเก็บไว้เดิมจะถูกจับคู่ใหม่ตามอันดับโปรไฟล์ผู้ให้บริการ
adaptiveจะถอยกลับเป็นmediumบนโมเดลที่ไม่รองรับ adaptive ส่วนxhighและmaxจะถอยกลับเป็นระดับ non-off ที่รองรับสูงสุดสำหรับโมเดลที่เลือก - โมเดล Anthropic Claude 4.6 ใช้ค่าเริ่มต้นเป็น
adaptiveเมื่อไม่ได้ตั้งค่าระดับการคิดไว้อย่างชัดเจน - Anthropic Claude Opus 4.7 ไม่ได้ใช้ค่าเริ่มต้นเป็น adaptive thinking ค่าเริ่มต้น API effort ของมันยังคงเป็นของผู้ให้บริการ เว้นแต่คุณตั้งค่าระดับการคิดไว้อย่างชัดเจน
- Anthropic Claude Opus 4.7 จับคู่
/think xhighกับ adaptive thinking พร้อมoutput_config.effort: "xhigh"เพราะ/thinkเป็นคำสั่งการคิด และxhighเป็นการตั้งค่า effort ของ Opus 4.7 - Anthropic Claude Opus 4.7 ยังเปิดเผย
/think max; ค่านี้จับคู่กับเส้นทาง max effort ที่ผู้ให้บริการเป็นเจ้าของเดียวกัน - โมเดล Direct DeepSeek V4 เปิดเผย
/think xhigh|max; ทั้งสองจับคู่กับ DeepSeekreasoning_effort: "max"ขณะที่ระดับ non-off ที่ต่ำกว่าจะจับคู่กับhigh - โมเดล DeepSeek V4 ที่ส่งผ่าน OpenRouter เปิดเผย
/think xhighและส่งค่าreasoning_effortที่ OpenRouter รองรับ ค่าทับซ้อนmaxที่จัดเก็บไว้จะถอยกลับเป็นxhigh - โมเดล Ollama ที่รองรับการคิดเปิดเผย
/think low|medium|high|max;maxจับคู่กับthink: "high"แบบเนทีฟ เพราะ API เนทีฟของ Ollama รับสตริง effortlow,medium, และhigh - โมเดล OpenAI GPT จับคู่
/thinkผ่านการรองรับ effort เฉพาะโมเดลของ Responses API/think offส่งreasoning.effort: "none"เฉพาะเมื่อโมเดลเป้าหมายรองรับเท่านั้น; ไม่เช่นนั้น OpenClaw จะละเว้น payload การให้เหตุผลที่ปิดใช้งานแทนการส่งค่าที่ไม่รองรับ - รายการแค็ตตาล็อกที่เข้ากันได้กับ OpenAI แบบกำหนดเองสามารถเลือกเปิดใช้
/think xhighได้โดยตั้งค่าmodels.providers.<provider>.models[].compat.supportedReasoningEffortsให้รวม"xhigh"การทำงานนี้ใช้ metadata ความเข้ากันได้เดียวกันที่จับคู่ payload outbound OpenAI reasoning effort ดังนั้นเมนู การตรวจสอบ session, agent CLI และllm-taskจึงสอดคล้องกับพฤติกรรม transport - refs ของ OpenRouter Hunter Alpha ที่ตั้งค่าไว้แต่ล้าสมัยจะข้าม proxy reasoning injection เพราะ route ที่เลิกใช้แล้วนั้นอาจส่งข้อความคำตอบสุดท้ายผ่านฟิลด์ reasoning ได้
- Google Gemini จับคู่
/think adaptiveกับ dynamic thinking ที่ผู้ให้บริการของ Gemini เป็นเจ้าของ คำขอ Gemini 3 จะละเว้นthinkingLevelแบบคงที่ ขณะที่คำขอ Gemini 2.5 ส่งthinkingBudget: -1; ระดับคงที่ยังคงจับคู่กับthinkingLevelหรือ budget ของ Gemini ที่ใกล้ที่สุดสำหรับตระกูลโมเดลนั้น - MiniMax (
minimax/*) บนเส้นทางสตรีมมิงที่เข้ากันได้กับ Anthropic ใช้ค่าเริ่มต้นเป็นthinking: { type: "disabled" }เว้นแต่คุณตั้งค่า thinking ใน model params หรือ request params อย่างชัดเจน การทำเช่นนี้หลีกเลี่ยงเดลตาreasoning_contentที่รั่วจากรูปแบบ Anthropic stream ที่ไม่ใช่เนทีฟของ MiniMax - Z.AI (
zai/*) รองรับเฉพาะ binary thinking (on/off) ระดับใดๆ ที่ไม่ใช่offจะถือเป็นon(จับคู่กับlow) - Moonshot (
moonshot/*) จับคู่/think offกับthinking: { type: "disabled" }และระดับใดๆ ที่ไม่ใช่offกับthinking: { type: "enabled" }เมื่อเปิดใช้ thinking แล้ว Moonshot รับเฉพาะtool_choiceauto|none; OpenClaw จะทำให้ค่าที่เข้ากันไม่ได้เป็นauto
- เมนูและตัวเลือกการคิดขับเคลื่อนโดยโปรไฟล์ผู้ให้บริการ Provider plugins ประกาศชุดระดับที่แน่นอนสำหรับโมเดลที่เลือก รวมถึงป้ายกำกับเช่น binary
ลำดับการแก้ไขค่า
- คำสั่งแบบอินไลน์บนข้อความ (ใช้กับข้อความนั้นเท่านั้น)
- การทับค่า session (ตั้งค่าโดยส่งข้อความที่มีเฉพาะคำสั่ง)
- ค่าเริ่มต้นต่อ agent (
agents.list[].thinkingDefaultใน config) - ค่าเริ่มต้นส่วนกลาง (
agents.defaults.thinkingDefaultใน config) - ค่าถอยกลับ: ค่าเริ่มต้นที่ผู้ให้บริการประกาศเมื่อมี; ไม่เช่นนั้นโมเดลที่รองรับ reasoning จะแก้ค่าเป็น
mediumหรือระดับ non-offที่รองรับใกล้ที่สุดสำหรับโมเดลนั้น และโมเดลที่ไม่รองรับ reasoning จะคงเป็นoff
การตั้งค่า session default
- ส่งข้อความที่เป็นคำสั่ง เท่านั้น (อนุญาต whitespace) เช่น
/think:mediumหรือ/t high - ค่านั้นจะคงอยู่สำหรับ session ปัจจุบัน (ค่าเริ่มต้นต่อผู้ส่ง); ล้างด้วย
/think:offหรือการรีเซ็ตเมื่อ session idle - มีการส่งข้อความยืนยัน (
Thinking level set to high./Thinking disabled.) หากระดับไม่ถูกต้อง (เช่น/thinking big) คำสั่งจะถูกปฏิเสธพร้อมคำแนะนำและสถานะ session จะไม่เปลี่ยนแปลง - ส่ง
/think(หรือ/think:) โดยไม่มีอาร์กิวเมนต์เพื่อดูระดับการคิดปัจจุบัน
การใช้งานตาม agent
- Pi แบบฝังตัว: ระดับที่แก้ค่าแล้วจะถูกส่งให้ runtime ของ Pi agent ใน process
- Claude CLI backend: ระดับที่ไม่ใช่ off จะถูกส่งให้ Claude Code เป็น
--effortเมื่อใช้claude-cli; ดู CLI backends
โหมดเร็ว (/fast)
- ระดับ:
on|off - ข้อความที่มีเฉพาะคำสั่งจะสลับการทับค่า fast-mode ของ session และตอบกลับ
Fast mode enabled./Fast mode disabled. - ส่ง
/fast(หรือ/fast status) โดยไม่มีโหมดเพื่อดูสถานะ fast-mode ที่มีผลอยู่ปัจจุบัน - OpenClaw แก้ค่า fast mode ตามลำดับนี้:
- Inline/directive-only
/fast on|off - การทับค่า session
- ค่าเริ่มต้นต่อ agent (
agents.list[].fastModeDefault) - config ต่อโมเดล:
agents.defaults.models["<provider>/<model>"].params.fastMode - ค่าถอยกลับ:
off
- Inline/directive-only
- สำหรับ
openai/*, fast mode จับคู่กับ OpenAI priority processing โดยส่งservice_tier=priorityบนคำขอ Responses ที่รองรับ - สำหรับ
openai-codex/*, fast mode ส่งแฟล็กservice_tier=priorityเดียวกันบน Codex Responses OpenClaw คงตัวสลับ/fastร่วมกันหนึ่งตัวสำหรับ auth path ทั้งสอง - สำหรับคำขอ public
anthropic/*โดยตรง รวมถึงทราฟฟิกที่ยืนยันตัวตนด้วย OAuth ซึ่งส่งไปยังapi.anthropic.com, fast mode จับคู่กับ service tiers ของ Anthropic:/fast onตั้งค่าservice_tier=auto,/fast offตั้งค่าservice_tier=standard_only - สำหรับ
minimax/*บนเส้นทางที่เข้ากันได้กับ Anthropic,/fast on(หรือparams.fastMode: true) เขียนMiniMax-M2.7ใหม่เป็นMiniMax-M2.7-highspeed - model params ของ Anthropic
serviceTier/service_tierที่ตั้งไว้อย่างชัดเจนจะทับค่าเริ่มต้นของ fast-mode เมื่อทั้งสองถูกตั้งค่า OpenClaw ยังคงข้ามการฉีด service-tier ของ Anthropic สำหรับ proxy base URLs ที่ไม่ใช่ Anthropic /statusแสดงFastเฉพาะเมื่อเปิดใช้ fast mode
คำสั่ง verbose (/verbose หรือ /v)
- ระดับ:
on(น้อยที่สุด) |full|off(ค่าเริ่มต้น) - ข้อความที่มีเฉพาะคำสั่งจะสลับ verbose ของ session และตอบกลับ
Verbose logging enabled./Verbose logging disabled.; ระดับที่ไม่ถูกต้องจะส่งคำแนะนำกลับโดยไม่เปลี่ยนสถานะ /verbose offจัดเก็บการทับค่า session อย่างชัดเจน; ล้างผ่าน Sessions UI โดยเลือกinherit- คำสั่งแบบอินไลน์มีผลเฉพาะกับข้อความนั้น; ค่าเริ่มต้นของ session/global จะใช้ในกรณีอื่น
- ส่ง
/verbose(หรือ/verbose:) โดยไม่มีอาร์กิวเมนต์เพื่อดูระดับ verbose ปัจจุบัน - เมื่อเปิด verbose, agents ที่ปล่อยผลลัพธ์ tool แบบมีโครงสร้าง (Pi, JSON agents อื่นๆ) จะส่งแต่ละ tool call กลับเป็นข้อความ metadata-only ของตัวเอง โดยขึ้นต้นด้วย
<emoji> <tool-name>: <arg>เมื่อมี สรุป tool เหล่านี้จะถูกส่งทันทีที่แต่ละ tool เริ่มทำงาน (เป็น bubble แยก) ไม่ใช่ streaming deltas - สรุปความล้มเหลวของ tool ยังคงมองเห็นได้ในโหมดปกติ แต่ suffix รายละเอียดข้อผิดพลาดดิบจะถูกซ่อน เว้นแต่ verbose เป็น
onหรือfull - เมื่อ verbose เป็น
full, output ของ tool จะถูกส่งต่อหลังจบงานด้วย (bubble แยก ตัดให้เหลือความยาวที่ปลอดภัย) หากคุณสลับ/verbose on|full|offขณะที่ run กำลังทำงานอยู่ bubble ของ tool ถัดไปจะเคารพการตั้งค่าใหม่ agents.defaults.toolProgressDetailควบคุมรูปแบบของสรุป tool/verboseและบรรทัด tool ใน progress-draft ใช้"explain"(ค่าเริ่มต้น) สำหรับป้ายกำกับมนุษย์ที่กะทัดรัด เช่น🛠️ Exec: checking JS syntax; ใช้"raw"เมื่อคุณต้องการให้แนบคำสั่ง/รายละเอียดดิบสำหรับการ debug ด้วยagents.list[].toolProgressDetailต่อ agent จะทับค่าเริ่มต้นexplain:🛠️ Exec: check JS syntax for /tmp/app.jsraw:🛠️ Exec: check JS syntax for /tmp/app.js, node --check /tmp/app.js
คำสั่ง Plugin trace (/trace)
- ระดับ:
on|off(ค่าเริ่มต้น) - ข้อความที่มีเฉพาะคำสั่งจะสลับ output ของ session plugin trace และตอบกลับ
Plugin trace enabled./Plugin trace disabled. - คำสั่งแบบอินไลน์มีผลเฉพาะกับข้อความนั้น; ค่าเริ่มต้นของ session/global จะใช้ในกรณีอื่น
- ส่ง
/trace(หรือ/trace:) โดยไม่มีอาร์กิวเมนต์เพื่อดูระดับ trace ปัจจุบัน /traceแคบกว่า/verbose: เปิดเผยเฉพาะบรรทัด trace/debug ที่ Plugin เป็นเจ้าของ เช่น สรุป debug ของ Active Memory- บรรทัด trace สามารถปรากฏใน
/statusและเป็นข้อความวินิจฉัยตามหลังหลังจากคำตอบปกติของ assistant
การมองเห็น reasoning (/reasoning)
- ระดับ:
on|off|stream - ข้อความที่มีเฉพาะคำสั่งจะสลับว่าจะแสดง thinking blocks ในคำตอบหรือไม่
- เมื่อเปิดใช้ reasoning จะถูกส่งเป็น ข้อความแยกต่างหาก โดยขึ้นต้นด้วย
Reasoning: stream(เฉพาะ Telegram): สตรีม reasoning ลงใน draft bubble ของ Telegram ระหว่างที่กำลังสร้างคำตอบ แล้วส่งคำตอบสุดท้ายโดยไม่มี reasoning- นามแฝง:
/reason - ส่ง
/reasoning(หรือ/reasoning:) โดยไม่มีอาร์กิวเมนต์เพื่อดูระดับ reasoning ปัจจุบัน - ลำดับการแก้ไขค่า: คำสั่งแบบอินไลน์ จากนั้นการทับค่า session จากนั้นค่าเริ่มต้นต่อ agent (
agents.list[].reasoningDefault) จากนั้นค่าถอยกลับ (off)
แท็ก reasoning ของ local-model ที่ผิดรูปแบบจะถูกจัดการอย่างระมัดระวัง บล็อก <think>...</think> ที่ปิดแล้วจะยังคงถูกซ่อนในคำตอบปกติ และ reasoning ที่ไม่ได้ปิดหลังข้อความที่มองเห็นแล้วก็จะถูกซ่อนด้วยเช่นกัน หากคำตอบถูกครอบทั้งหมดด้วยแท็กเปิดที่ไม่ได้ปิดเพียงแท็กเดียว และมิฉะนั้นจะส่งเป็นข้อความว่าง OpenClaw จะลบแท็กเปิดที่ผิดรูปแบบและส่งข้อความที่เหลือ
ที่เกี่ยวข้อง
- เอกสารโหมด Elevated อยู่ที่ Elevated mode
Heartbeats
- เนื้อหา Heartbeat probe คือ prompt heartbeat ที่ตั้งค่าไว้ (ค่าเริ่มต้น:
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.) คำสั่งแบบอินไลน์ในข้อความ heartbeat จะใช้ตามปกติ (แต่หลีกเลี่ยงการเปลี่ยนค่าเริ่มต้น session จาก heartbeats) - การส่ง Heartbeat ใช้ค่าเริ่มต้นเป็น payload สุดท้ายเท่านั้น หากต้องการส่งข้อความ
Reasoning:แยกด้วย (เมื่อมี) ให้ตั้งค่าagents.defaults.heartbeat.includeReasoning: trueหรือagents.list[].heartbeat.includeReasoning: trueต่อ agent
UI เว็บแชต
- ตัวเลือก thinking ในเว็บแชตจะสะท้อนระดับที่จัดเก็บไว้ของเซสชันจาก session store/config ขาเข้าเมื่อหน้าโหลด
- การเลือกระดับอื่นจะเขียนการ override ของเซสชันทันทีผ่าน
sessions.patch; จะไม่รอการส่งครั้งถัดไป และไม่ใช่การ override แบบครั้งเดียวด้วยthinkingOnce - ตัวเลือกแรกเป็นตัวเลือกล้างการ override เสมอ โดยจะแสดง
Inherited: <resolved level>เมื่อเซสชันสืบทอดค่าเริ่มต้นที่มีผลซึ่งไม่ใช่ off หรือแสดงOffเมื่อ thinking ที่สืบทอดมาถูกปิดใช้งาน - ตัวเลือกในตัวเลือกที่ระบุชัดเจนจะถูกติดป้ายว่าเป็นการ override พร้อมคงป้ายกำกับของผู้ให้บริการไว้เมื่อมีอยู่ (เช่น
Override: maximumสำหรับตัวเลือกmaxที่ผู้ให้บริการติดป้ายกำกับไว้) - ตัวเลือกใช้
thinkingLevelsที่ส่งคืนโดยแถว/ค่าเริ่มต้นของเซสชัน Gateway โดยคงthinkingOptionsไว้เป็นรายการป้ายกำกับแบบ legacy UI ของเบราว์เซอร์จะไม่เก็บรายการ regex ของผู้ให้บริการเอง; Plugin เป็นเจ้าของชุดระดับเฉพาะโมเดล /think:<level>ยังคงทำงานและอัปเดตระดับเซสชันที่จัดเก็บเดียวกัน ดังนั้น directive ของแชตและตัวเลือกจึงซิงก์กันอยู่เสมอ
โปรไฟล์ผู้ให้บริการ
- Plugin ของผู้ให้บริการสามารถเปิดเผย
resolveThinkingProfile(ctx)เพื่อกำหนดระดับที่โมเดลรองรับและค่าเริ่มต้น - Plugin ของผู้ให้บริการที่พร็อกซีโมเดล Claude ควรใช้
resolveClaudeThinkingProfile(modelId)จากopenclaw/plugin-sdk/provider-model-sharedซ้ำ เพื่อให้แค็ตตาล็อก Anthropic โดยตรงและแค็ตตาล็อกพร็อกซีสอดคล้องกัน - แต่ละระดับของโปรไฟล์มี
idแบบ canonical ที่จัดเก็บไว้ (off,minimal,low,medium,high,xhigh,adaptiveหรือmax) และอาจมีlabelสำหรับแสดงผล ผู้ให้บริการแบบไบนารีใช้{ id: "low", label: "on" } - Tool Plugin ที่จำเป็นต้องตรวจสอบการ override thinking ที่ระบุชัดเจนควรใช้
api.runtime.agent.resolveThinkingPolicy({ provider, model })ร่วมกับapi.runtime.agent.normalizeThinkingLevel(...); ไม่ควรเก็บรายการระดับของผู้ให้บริการ/โมเดลเอง - Tool Plugin ที่เข้าถึง metadata ของโมเดลแบบกำหนดเองที่ตั้งค่าไว้ได้ สามารถส่ง
catalogเข้าไปในresolveThinkingPolicyเพื่อให้ opt-in ของcompat.supportedReasoningEffortsสะท้อนในการตรวจสอบฝั่ง Plugin - hook แบบ legacy ที่เผยแพร่แล้ว (
supportsXHighThinking,isBinaryThinkingและresolveDefaultThinkingLevel) ยังคงเป็น adapter เพื่อความเข้ากันได้ แต่ชุดระดับแบบกำหนดเองใหม่ควรใช้resolveThinkingProfile - แถว/ค่าเริ่มต้นของ Gateway เปิดเผย
thinkingLevels,thinkingOptionsและthinkingDefaultเพื่อให้ไคลเอนต์ ACP/แชตแสดงผล id และป้ายกำกับโปรไฟล์เดียวกับที่การตรวจสอบ runtime ใช้