---
read_when:
    - การปรับการแยกวิเคราะห์หรือค่าเริ่มต้นของคำสั่งระดับการคิด โหมดเร็ว หรือโหมดละเอียด
summary: ไวยากรณ์คำสั่งสำหรับ /think, /fast, /verbose, /trace และการมองเห็นการให้เหตุผล
title: ระดับการคิด
x-i18n:
    generated_at: "2026-04-23T13:58:14Z"
    model: gpt-5.4
    provider: openai
    source_hash: 4efe899f7b47244745a105583b3239effa7975fadd06bd7bcad6327afcc91207
    source_path: tools/thinking.md
    workflow: 15
---

# ระดับการคิด (/think directives)

## สิ่งที่ทำ

- คำสั่งแบบอินไลน์ในเนื้อหาขาเข้าข้อความใดก็ได้: `/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)
  - max → การให้เหตุผลระดับสูงสุดของผู้ให้บริการ (ปัจจุบันคือ Anthropic Claude Opus 4.7)
  - `x-high`, `x_high`, `extra-high`, `extra high` และ `extra_high` จะถูกแมปเป็น `xhigh`.
  - `highest` จะถูกแมปเป็น `high`.
- หมายเหตุของผู้ให้บริการ:
  - เมนูและตัวเลือกการคิดขับเคลื่อนโดยโปรไฟล์ของผู้ให้บริการ ปลั๊กอินผู้ให้บริการจะประกาศชุดระดับที่แน่นอนสำหรับโมเดลที่เลือก รวมถึงป้ายกำกับอย่างเช่น `on` แบบไบนารี
  - `adaptive`, `xhigh` และ `max` จะแสดงเฉพาะกับโปรไฟล์ผู้ให้บริการ/โมเดลที่รองรับเท่านั้น คำสั่งที่พิมพ์ระบุระดับที่ไม่รองรับจะถูกปฏิเสธพร้อมตัวเลือกที่ใช้ได้ของโมเดลนั้น
  - ระดับที่ไม่รองรับซึ่งจัดเก็บไว้อยู่แล้วจะถูกแมปใหม่ตามลำดับอันดับของโปรไฟล์ผู้ให้บริการ `adaptive` จะย้อนกลับไปเป็น `medium` บนโมเดลที่ไม่รองรับ adaptive ส่วน `xhigh` และ `max` จะย้อนกลับไปเป็นระดับที่ไม่ใช่ `off` สูงสุดที่รองรับสำหรับโมเดลที่เลือก
  - โมเดล Anthropic Claude 4.6 ใช้ค่าเริ่มต้นเป็น `adaptive` เมื่อไม่ได้ตั้งระดับการคิดอย่างชัดเจน
  - Anthropic Claude Opus 4.7 ไม่ได้ใช้การคิดแบบ adaptive เป็นค่าเริ่มต้น ค่า effort เริ่มต้นของ API ยังเป็นของผู้ให้บริการ เว้นแต่คุณจะตั้งระดับการคิดอย่างชัดเจน
  - Anthropic Claude Opus 4.7 แมป `/think xhigh` เป็นการคิดแบบ adaptive บวกกับ `output_config.effort: "xhigh"` เพราะ `/think` เป็นคำสั่งการคิด และ `xhigh` คือค่าระดับ effort ของ Opus 4.7
  - Anthropic Claude Opus 4.7 ยังรองรับ `/think max`; โดยแมปไปยังเส้นทาง effort สูงสุดแบบเดียวกันที่ผู้ให้บริการเป็นผู้กำหนด
  - โมเดล OpenAI GPT แมป `/think` ผ่านการรองรับ effort ของ Responses API เฉพาะแต่ละโมเดล `/think off` จะส่ง `reasoning.effort: "none"` เฉพาะเมื่อโมเดลเป้าหมายรองรับเท่านั้น มิฉะนั้น OpenClaw จะไม่ส่งเพย์โหลดปิดการให้เหตุผล แทนการส่งค่าที่ไม่รองรับ
  - MiniMax (`minimax/*`) บนเส้นทางสตรีมที่เข้ากันได้กับ Anthropic ใช้ค่าเริ่มต้นเป็น `thinking: { type: "disabled" }` เว้นแต่คุณจะตั้งค่าการคิดอย่างชัดเจนในพารามิเตอร์ของโมเดลหรือพารามิเตอร์คำขอ เพื่อหลีกเลี่ยง `reasoning_content` delta ที่รั่วออกมาจากรูปแบบสตรีม Anthropic ที่ไม่ใช่แบบเนทีฟของ MiniMax
  - Z.AI (`zai/*`) รองรับเฉพาะการคิดแบบไบนารี (`on`/`off`) ระดับใดก็ตามที่ไม่ใช่ `off` จะถือเป็น `on` (แมปเป็น `low`)
  - Moonshot (`moonshot/*`) แมป `/think off` เป็น `thinking: { type: "disabled" }` และแมประดับใดก็ตามที่ไม่ใช่ `off` เป็น `thinking: { type: "enabled" }` เมื่อเปิดการคิด Moonshot จะยอมรับ `tool_choice` ได้เฉพาะ `auto|none`; OpenClaw จะปรับค่าที่ไม่เข้ากันให้เป็น `auto`

## ลำดับการตัดสินใจ

1. คำสั่งอินไลน์บนข้อความ (มีผลกับข้อความนั้นเท่านั้น)
2. การแทนที่ระดับเซสชัน (ตั้งโดยการส่งข้อความที่มีแต่คำสั่ง)
3. ค่าเริ่มต้นต่อเอเจนต์ (`agents.list[].thinkingDefault` ใน config)
4. ค่าเริ่มต้นส่วนกลาง (`agents.defaults.thinkingDefault` ใน config)
5. การย้อนกลับ: ค่าเริ่มต้นที่ผู้ให้บริการประกาศไว้หากมี มิฉะนั้นโมเดลที่รองรับการให้เหตุผลจะใช้ `medium` หรือระดับที่ไม่ใช่ `off` ที่ใกล้เคียงที่สุดซึ่งโมเดลนั้นรองรับ และโมเดลที่ไม่รองรับการให้เหตุผลจะคงเป็น `off`

## การตั้งค่าเริ่มต้นของเซสชัน

- ส่งข้อความที่เป็น **คำสั่งเท่านั้น** (อนุญาตให้มีช่องว่างได้) เช่น `/think:medium` หรือ `/t high`
- ค่านี้จะคงอยู่สำหรับเซสชันปัจจุบัน (เป็นต่อผู้ส่งโดยค่าเริ่มต้น); ล้างได้ด้วย `/think:off` หรือเมื่อเซสชันว่างจนถูกรีเซ็ต
- ระบบจะส่งข้อความยืนยัน (`ตั้งค่าระดับการคิดเป็น high แล้ว` / `ปิดการคิดแล้ว`) หากระดับไม่ถูกต้อง (เช่น `/thinking big`) คำสั่งจะถูกปฏิเสธพร้อมคำแนะนำ และสถานะเซสชันจะไม่เปลี่ยนแปลง
- ส่ง `/think` (หรือ `/think:`) โดยไม่ระบุอาร์กิวเมนต์เพื่อดูระดับการคิดปัจจุบัน

## การนำไปใช้ตามเอเจนต์

- **Pi แบบฝังตัว**: ระดับที่ตัดสินแล้วจะถูกส่งไปยังรันไทม์เอเจนต์ Pi ภายในโปรเซส

## โหมดเร็ว (/fast)

- ระดับ: `on|off`
- ข้อความที่เป็นคำสั่งเท่านั้นจะสลับการแทนที่โหมดเร็วของเซสชันและตอบกลับ `เปิดโหมดเร็วแล้ว` / `ปิดโหมดเร็วแล้ว`
- ส่ง `/fast` (หรือ `/fast status`) โดยไม่ระบุโหมดเพื่อดูสถานะโหมดเร็วที่มีผลจริงในปัจจุบัน
- OpenClaw ตัดสินโหมดเร็วตามลำดับนี้:
  1. `/fast on|off` แบบอินไลน์/คำสั่งเท่านั้น
  2. การแทนที่ระดับเซสชัน
  3. ค่าเริ่มต้นต่อเอเจนต์ (`agents.list[].fastModeDefault`)
  4. config ต่อโมเดล: `agents.defaults.models["<provider>/<model>"].params.fastMode`
  5. การย้อนกลับ: `off`
- สำหรับ `openai/*`, โหมดเร็วจะถูกแมปเป็นการประมวลผลแบบ priority ของ OpenAI โดยส่ง `service_tier=priority` บนคำขอ Responses ที่รองรับ
- สำหรับ `openai-codex/*`, โหมดเร็วจะส่งแฟล็ก `service_tier=priority` เดียวกันบน Codex Responses OpenClaw ใช้สวิตช์ `/fast` ร่วมกันตัวเดียวระหว่างทั้งสองเส้นทางการยืนยันตัวตน
- สำหรับคำขอ `anthropic/*` สาธารณะแบบตรง รวมถึงทราฟฟิกที่ยืนยันตัวตนด้วย OAuth ซึ่งส่งไปยัง `api.anthropic.com`, โหมดเร็วจะถูกแมปเป็น Anthropic service tier: `/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`
- พารามิเตอร์โมเดล Anthropic แบบชัดเจน `serviceTier` / `service_tier` จะมีความสำคัญเหนือกว่าค่าเริ่มต้นของโหมดเร็วเมื่อกำหนดทั้งคู่ OpenClaw ยังจะข้ามการแทรก service tier ของ Anthropic สำหรับ base URL ของพร็อกซีที่ไม่ใช่ Anthropic
- `/status` จะแสดง `Fast` เฉพาะเมื่อเปิดโหมดเร็ว

## คำสั่งโหมดละเอียด (/verbose หรือ /v)

- ระดับ: `on` (ขั้นต่ำ) | `full` | `off` (ค่าเริ่มต้น)
- ข้อความที่เป็นคำสั่งเท่านั้นจะสลับ verbose ของเซสชันและตอบกลับ `เปิดการบันทึกแบบละเอียดแล้ว` / `ปิดการบันทึกแบบละเอียดแล้ว`; ระดับที่ไม่ถูกต้องจะคืนคำแนะนำโดยไม่เปลี่ยนสถานะ
- `/verbose off` จะจัดเก็บการแทนที่ระดับเซสชันแบบชัดเจน; ล้างได้ผ่าน UI ของ Sessions โดยเลือก `inherit`
- คำสั่งอินไลน์มีผลกับข้อความนั้นเท่านั้น; ในกรณีอื่นจะใช้ค่าเริ่มต้นระดับเซสชัน/ส่วนกลาง
- ส่ง `/verbose` (หรือ `/verbose:`) โดยไม่ระบุอาร์กิวเมนต์เพื่อดูระดับ verbose ปัจจุบัน
- เมื่อเปิด verbose เอเจนต์ที่ปล่อยผลลัพธ์เครื่องมือแบบมีโครงสร้าง (Pi, เอเจนต์ JSON อื่น ๆ) จะส่งการเรียกใช้เครื่องมือแต่ละครั้งกลับมาเป็นข้อความแบบ metadata-only ของตัวเอง โดยมีคำนำหน้าเป็น `<emoji> <tool-name>: <arg>` เมื่อมีข้อมูล (path/command) สรุปเครื่องมือเหล่านี้จะถูกส่งทันทีที่แต่ละเครื่องมือเริ่มทำงาน (เป็นบับเบิลแยก) ไม่ใช่เป็น streaming delta
- สรุปความล้มเหลวของเครื่องมือยังคงมองเห็นได้ในโหมดปกติ แต่ส่วนต่อท้ายรายละเอียดข้อผิดพลาดดิบจะถูกซ่อน เว้นแต่ verbose จะเป็น `on` หรือ `full`
- เมื่อ verbose เป็น `full` เอาต์พุตของเครื่องมือจะถูกส่งต่อหลังเสร็จสิ้นด้วย (บับเบิลแยก ตัดทอนให้มีความยาวที่ปลอดภัย) หากคุณสลับ `/verbose on|full|off` ระหว่างที่งานกำลังรันอยู่ บับเบิลเครื่องมือถัดไปจะใช้การตั้งค่าใหม่

## คำสั่งติดตาม Plugin (/trace)

- ระดับ: `on` | `off` (ค่าเริ่มต้น)
- ข้อความที่เป็นคำสั่งเท่านั้นจะสลับเอาต์พุตการติดตาม Plugin ของเซสชันและตอบกลับ `เปิดการติดตาม Plugin แล้ว` / `ปิดการติดตาม Plugin แล้ว`
- คำสั่งอินไลน์มีผลกับข้อความนั้นเท่านั้น; ในกรณีอื่นจะใช้ค่าเริ่มต้นระดับเซสชัน/ส่วนกลาง
- ส่ง `/trace` (หรือ `/trace:`) โดยไม่ระบุอาร์กิวเมนต์เพื่อดูระดับ trace ปัจจุบัน
- `/trace` แคบกว่า `/verbose`: มันจะแสดงเฉพาะบรรทัด trace/debug ที่เป็นของ Plugin เช่น สรุปดีบักของ Active Memory
- บรรทัด trace อาจปรากฏใน `/status` และเป็นข้อความวินิจฉัยติดตามหลังจากคำตอบปกติของผู้ช่วย

## การมองเห็นการให้เหตุผล (/reasoning)

- ระดับ: `on|off|stream`
- ข้อความที่เป็นคำสั่งเท่านั้นจะสลับว่าจะแสดงบล็อกการคิดในคำตอบหรือไม่
- เมื่อเปิดใช้งาน การให้เหตุผลจะถูกส่งเป็น **ข้อความแยกต่างหาก** ที่ขึ้นต้นด้วย `Reasoning:`
- `stream` (Telegram เท่านั้น): สตรีมการให้เหตุผลเข้าไปในบับเบิลร่างของ Telegram ระหว่างที่กำลังสร้างคำตอบ จากนั้นจึงส่งคำตอบสุดท้ายโดยไม่มีการให้เหตุผล
- ชื่อเรียกแทน: `/reason`
- ส่ง `/reasoning` (หรือ `/reasoning:`) โดยไม่ระบุอาร์กิวเมนต์เพื่อดูระดับการให้เหตุผลปัจจุบัน
- ลำดับการตัดสินใจ: คำสั่งอินไลน์ จากนั้นการแทนที่ระดับเซสชัน จากนั้นค่าเริ่มต้นต่อเอเจนต์ (`agents.list[].reasoningDefault`) จากนั้นการย้อนกลับ (`off`)

## ที่เกี่ยวข้อง

- เอกสารโหมดยกระดับอยู่ที่ [Elevated mode](/th/tools/elevated)

## Heartbeats

- เนื้อหาคำขอของ Heartbeat คือพรอมป์ต์ 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 จะมีผลตามปกติ (แต่ควรหลีกเลี่ยงการเปลี่ยนค่าเริ่มต้นของเซสชันจาก heartbeat)
- การส่ง Heartbeat ใช้ค่าเริ่มต้นเป็นเพย์โหลดสุดท้ายเท่านั้น หากต้องการส่งข้อความ `Reasoning:` แยกต่างหากด้วย (เมื่อมี) ให้ตั้งค่า `agents.defaults.heartbeat.includeReasoning: true` หรือ `agents.list[].heartbeat.includeReasoning: true` ต่อเอเจนต์

## UI เว็บแชต

- ตัวเลือกระดับการคิดของเว็บแชตจะสะท้อนระดับที่จัดเก็บไว้ของเซสชันจาก session store/config ขาเข้าเมื่อหน้าโหลด
- การเลือกระดับอื่นจะเขียนการแทนที่ระดับเซสชันทันทีผ่าน `sessions.patch`; ไม่รอการส่งครั้งถัดไปและไม่ใช่การแทนที่ `thinkingOnce` แบบครั้งเดียว
- ตัวเลือกแรกจะเป็น `Default (<resolved level>)` เสมอ โดยค่าเริ่มต้นที่ตัดสินแล้วมาจากโปรไฟล์การคิดของผู้ให้บริการของโมเดลเซสชันที่ใช้งานอยู่ บวกกับตรรกะการย้อนกลับแบบเดียวกับที่ `/status` และ `session_status` ใช้
- ตัวเลือกนี้ใช้ `thinkingOptions` ที่ส่งกลับโดยแถว session ของ Gateway UI บนเบราว์เซอร์จะไม่เก็บรายการ regex ของผู้ให้บริการไว้เอง ปลั๊กอินเป็นเจ้าของชุดระดับเฉพาะโมเดล
- `/think:<level>` ยังใช้งานได้และจะอัปเดตระดับเซสชันที่จัดเก็บไว้ตัวเดียวกัน ดังนั้นคำสั่งในแชตและตัวเลือกจะซิงก์กัน

## โปรไฟล์ผู้ให้บริการ

- ปลั๊กอินผู้ให้บริการสามารถเปิดเผย `resolveThinkingProfile(ctx)` เพื่อกำหนดระดับและค่าเริ่มต้นที่โมเดลรองรับ
- แต่ละระดับในโปรไฟล์มี `id` ตามรูปแบบมาตรฐานที่จัดเก็บไว้ (`off`, `minimal`, `low`, `medium`, `high`, `xhigh`, `adaptive` หรือ `max`) และอาจมี `label` สำหรับแสดงผล ผู้ให้บริการแบบไบนารีใช้ `{ id: "low", label: "on" }`
- hook แบบดั้งเดิมที่เผยแพร่อยู่ (`supportsXHighThinking`, `isBinaryThinking` และ `resolveDefaultThinkingLevel`) ยังคงอยู่เป็นตัวแปลงเพื่อความเข้ากันได้ แต่ชุดระดับแบบกำหนดเองใหม่ควรใช้ `resolveThinkingProfile`
- แถว Gateway เปิดเผย `thinkingOptions` และ `thinkingDefault` เพื่อให้ไคลเอนต์ ACP/แชตแสดงผลโปรไฟล์เดียวกันกับที่ใช้ในการตรวจสอบความถูกต้องขณะรันไทม์
