กลับไปที่บล็อก

AI สำหรับผู้เริ่มต้นคู่มือ

Reasoning effort และ thinking tokens: ทำไมการคิดจึงมีค่าใช้จ่ายสูงขึ้น

Thinking tokens ถูกคิดค่าใช้จ่ายเป็นเอาต์พุต ระดับ effort หมายถึงอะไร ควรใส่ max_tokens เท่าไรเพื่อไม่ให้คำตอบถูกตัด และวิธีประมาณบิล

โดย CheapTokens Teamเผยแพร่เมื่อ ใช้เวลาอ่าน 7 นาที

การ์ดแชท: ทำไมคำตอบหนึ่งบรรทัดมีค่าใช้จ่ายสูงจัง? เพราะโมเดลคิดก่อน และการคิดถูกคิดค่าใช้จ่ายเป็นเอาต์พุต
ในหน้านี้
  1. โมเดลทำอะไรก่อนตอบ
  2. Effort: ปุ่มปรับการคิด
  3. กับดักคำตอบว่าง: การคิดนับรวมใน max_tokens
  4. การให้เหตุผลยาวส่งผลต่อบิลอย่างไร
  5. effort ไหนสำหรับงานไหน
  6. การย้ายคำขอเก่า: ข้อผิดพลาด 400
  7. เอเจนต์และแชทยาว: เลือกระดับหนึ่งแล้วคงไว้
  8. ลองกับคำขอของคุณเอง

คำขอของคุณเป็นคำถามข้อเท็จจริงข้อเดียว คำตอบมีสามบรรทัด ตัวนับเอาต์พุตบอกว่าใช้หลายพันโทเคน นั่นไม่ใช่บั๊ก: ก่อนตอบ โมเดลจำนวนมากคิดในสมุดทดในที่ซ่อนอยู่ และ โทเคนการคิดเหล่านั้นถูกคิดค่าใช้จ่ายเป็นโทเคนเอาต์พุต การตั้งค่า effort เป็นตัวกำหนดว่าจะมีการคิดมากน้อยแค่ไหน และ max_tokens ต้องเผื่อที่ไว้ให้มัน ไม่งั้นคุณจะได้คำตอบที่ถูกตัดหรือว่างเปล่า

โมเดลทำอะไรก่อนตอบ#

ลองนึกถึงการสอบ คุณเขียนคำตอบได้เลย หรือจะทดในกระดาษทดก่อนหนึ่งหน้าก็ได้ การทดมักให้ผลลัพธ์ที่ดีกว่ากับโจทย์ยาก แต่กระดาษไม่ฟรี การให้เหตุผลก็คือการทดนั้น และมันถูกนับเป็น โทเคน เหมือนอย่างอื่น

เอกสาร extended-thinking ของ Anthropic (ตรวจสอบเมื่อ 23 ตุลาคม 2026) ระบุว่าโทเคนการคิดเป็นส่วนหนึ่งของโทเคนเอาต์พุตที่ถูกคิดค่าใช้จ่าย และการตอบกลับจะบอกจำนวนให้: usage.output_tokens_details.thinking_tokens สมมติว่าคำตอบกลับมามีบล็อก usage แบบนี้ (ตัวเลขตัวอย่าง):

json
"usage": {
  "input_tokens": 480,
  "output_tokens": 2150,
  "output_tokens_details": { "thinking_tokens": 1900 }
}

คุณถูกคิดค่าใช้จ่ายสำหรับโทเคนเอาต์พุต 2,150 โทเคน การคิดใช้ไป 1,900 โทเคน ดังนั้นข้อความที่คุณอ่านจริงคือ 2,150 − 1,900 = 250 โทเคน เช่นเดียวกันแม้ข้อความการคิดจะไม่ถูกส่งกลับมาให้คุณ: มันยังนับอยู่ ถ้าคุณอยากให้อธิบายความต่างระหว่างอินพุตและเอาต์พุตก่อน เริ่มที่ โทเคนอินพุตกับเอาต์พุต

Effort: ปุ่มปรับการคิด#

ใน API ของ Claude ปุ่มนี้คือ output_config.effort หน้า effort ของ Anthropic (ตรวจสอบเมื่อ 23 ตุลาคม 2026) ระบุห้าระดับ: low, medium, high, xhigh, max มีสามรายละเอียดที่สำคัญสำหรับผู้เริ่มต้น:

  • มันมีผลกับโทเคนเอาต์พุตทุกตัว ไม่ใช่แค่การคิด: ข้อความ การเรียกเครื่องมือ และการคิดรวมกัน
  • มันเป็นสัญญาณเชิงพฤติกรรม ไม่ใช่งบประมาณที่เข้มงวด effort ต่ำหมายถึงโทเคนน้อยลงแลกกับความสามารถที่ลดลง; ที่ effort ต่ำ Claude อาจข้ามการคิดไปเลยกับโจทย์ง่าย ๆ
  • ค่าเริ่มต้นคือ medium บน Claude Opus 5.5 และ Claude Haiku 5.5 และ high บนโมเดลอื่นส่วนใหญ่ที่รองรับพารามิเตอร์นี้ การตั้งค่าเริ่มต้นอย่างชัดเจนก็เหมือนกับการไม่ใส่

ระดับถูกปรับเทียบใหม่ต่อโมเดล ดังนั้น high บนโมเดลหนึ่งไม่ใช่ปริมาณการคิดเท่ากับ high บนอีกโมเดล และไม่ใช่ทุกโมเดลที่รับทุกระดับ ในวิดีโอที่เผยแพร่ชิ้นหนึ่ง มีคนรันทุกระดับ effort ของ Claude Opus 5.5 บนงาน motion-graphics งานเดียวกันและเปรียบเทียบภาพ มันเป็นวิธีที่ดีในการดูว่าการคิดที่มากขึ้นให้อะไร มันจะไม่บอกบิลของคุณ เพราะงานของคุณไม่ใช่งานของเขา

คำขอสำหรับคำถามง่าย ๆ โดยลด effort ลง:

json
{
  "model": "claude-opus-5-5",
  "max_tokens": 4000,
  "output_config": { "effort": "low" },
  "messages": [
    { "role": "user", "content": "What is the capital of Australia?" }
  ]
}

กับดักคำตอบว่าง: การคิดนับรวมใน max_tokens#

นี่คือจุดที่ผิดพลาด คุณคาดหวังคำตอบสองประโยค จึงตั้ง max_tokens เป็น 300 โมเดลเริ่มคิด ใช้ 300 ไปกับสมุดทด ชนขีดจำกัดแล้วหยุด คุณได้คำตอบว่างหรือประโยคที่จบกลางคำ และ stop reason บอกว่า max_tokens

เอกสารระบุชัดเจน: max_tokens เป็นขีดจำกัดแข็งของเอาต์พุตทั้งหมด การคิดบวกข้อความตอบกลับ และการคิดนับแม้เนื้อหาจะไม่ถูกส่งกลับ ที่ effort high ขึ้นไป Anthropic แนะนำให้ตั้งค่าสูง

ในทางปฏิบัติ:

  1. เอาความยาวของคำตอบที่คุณต้องการ
  2. เผื่อที่ให้การคิดอย่างมากมาย สองสามพันโทเคนเป็นจุดเริ่มต้นที่สมเหตุสมผลสำหรับอะไรก็ตามที่สูงกว่า low
  3. ตรวจสอบ stop reason หลังรันครั้งแรก ๆ ถ้ามันยังบอก max_tokens ให้เพิ่มขีดจำกัด ถ้าคำตอบสมบูรณ์ คุณลดได้

การถูกตัดเอง พร้อมกับ finish_reason และ context window ครอบคลุมใน ทำไมคำตอบ AI หยุดกลางประโยค

การให้เหตุผลยาวส่งผลต่อบิลอย่างไร#

สมมติคุณรันบอทซัพพอร์ตที่มีตั๋ว 2,000 ใบต่อวัน ตั๋วแต่ละใบมีอินพุตประมาณ 500 โทเคน คำตอบสั้นตรงไปตรงมาประมาณ 400 โทเคนเอาต์พุต ตั๋วเดียวกันกับการให้เหตุผลซ่อนยาว ๆ ประมาณ 4,000 โทเคนเอาต์พุต นั่นเป็นสมมติฐานสำหรับตัวอย่าง; สำหรับตัวเลขของคุณเองดู คำขอหนึ่งครั้งใช้กี่โทเคน

ต่อวันนั่นคือ 2,000 × 500 = 1,000,000 โทเคนอินพุต และอย่างใดอย่างหนึ่ง 2,000 × 400 = 800,000 โทเคนเอาต์พุต หรือ 2,000 × 4,000 = 8,000,000 โทเคนเอาต์พุต ผู้อ่านตั๋วเห็นสองบรรทัดเหมือนกันไม่ว่าจะแบบไหน สิ่งเดียวที่เปลี่ยนคือปริมาณเอาต์พุต และเอาต์พุตคือด้านที่การให้เหตุผลทำให้พองขึ้น

ค่าใช้จ่ายรายวันของบอทซัพพอร์ต, อินพุต 1,000,000 โทเคน, คำตอบสั้นเทียบกับการให้เหตุผลยาว (ราคาสด)
  • MiniMax-M2.7, การให้เหตุผลยาว (เอาต์พุต 8,000,000)$1.25
  • DeepSeek-V4-Flash, การให้เหตุผลยาว (เอาต์พุต 8,000,000)$0.815
  • MiniMax-M2.7, คำตอบสั้น (เอาต์พุต 800,000)$0.17
  • DeepSeek-V4-Flash, คำตอบสั้น (เอาต์พุต 800,000)$0.095

การคำนวณเหมือนกันบนโมเดลใดก็ตามที่คิดค่าใช้จ่ายการให้เหตุผลซ่อน: โทเคนเอาต์พุต × ราคาเอาต์พุต สำหรับ DeepSeek-V4-Flash ราคานั้นคือ $0.10 ต่อ 1M โทเคนเอาต์พุต และด้านเอาต์พุตของมันถูกกว่าราคาอ้างอิงของ OpenRouter มันยังตอบได้ถึง 32,768 โทเคนต่อครั้งด้วย context 380K ดังนั้น max_tokens ขนาดใหญ่จึงพอดี ราคาคงที่ต่อโมเดล ไม่มีช่วง peak และตารางข้างบนคำนวณใหม่จากรายการราคาสด ราคาทั้งหมดอยู่ใน หน้าราคา; หน้า DeepSeek มีรายละเอียดโมเดล

นี่คือคำขอให้คุณส่งเอง มันเป็นงานสรุปธรรมดา คุณจึงไม่ต้องใช้การให้เหตุผลยาว และขีดจำกัดเผื่อที่ไว้มากมาย:

bash
curl https://api.cheaptokens.dev/v1/chat/completions \
  -H "Authorization: Bearer $CHEAPTOKENS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-ai/DeepSeek-V4-Flash-0731",
    "max_tokens": 2000,
    "messages": [
      {"role": "user", "content": "Summarize in one sentence: A token is a small piece of text that a model reads and writes, and APIs bill by the token."}
    ]
  }'

ในการตอบกลับ usage.completion_tokens คือสิ่งที่คุณจ่ายในด้านเอาต์พุต และ finish_reason ควรเป็น stop ถ้ามันบอก length แสดงว่าขีดจำกัดตัดคำตอบ การขอคีย์และการเรียกครั้งแรก: เอกสาร

effort ไหนสำหรับงานไหน#

  • ข้อเท็จจริง สรุปหนึ่งบรรทัด ป้ายกำกับ effort ต่ำสุด นี่คือกรณีจากตอนต้นบทความ: คุณไม่ต้องใช้กระดาษทด
  • งานเขียนทั่วไป คำอธิบายสั้น ๆ การแก้ไขง่าย ๆ ค่าเริ่มต้นของโมเดล เปลี่ยนเฉพาะหลังจากคุณเห็นว่าคำตอบมีค่าใช้จ่ายเท่าไร
  • บั๊กที่ซับซ้อน แผนหลายขั้นตอน โจทย์คณิต high หรือสูงกว่า และ max_tokens ขนาดใหญ่ ที่นี่การคิดเพิ่มคือประเด็น

เมื่อไม่แน่ใจ ให้รันพรอมป์เดียวกันที่สองระดับ เปรียบเทียบคำตอบ และเปรียบเทียบ output_tokens ถ้าคำตอบที่ถูกกว่าให้ผลดีเท่ากัน คุณก็ได้ระดับของคุณแล้ว

การย้ายคำขอเก่า: ข้อผิดพลาด 400#

โค้ดเก่าควบคุมการคิดด้วยงบประมาณโทเคน บน Claude 4.7 และโมเดลใหม่กว่า (Opus 5.5, Sonnet 5.5, Haiku 5.5, Fable 5.1) รูปแบบนั้นถูกปฏิเสธด้วยข้อผิดพลาด 400 คุณเปลี่ยนไปใช้ adaptive thinking และตั้งความลึกด้วย effort:

json
// before: returns 400 on newer models
"thinking": { "type": "enabled", "budget_tokens": 8000 }

// after
"thinking": { "type": "adaptive" },
"output_config": { "effort": "medium" }
งบประมาณการคิดแบบเก่าทางซ้าย, adaptive thinking พร้อม effort ทางขวา
คำขอเดียวกันก่อนและหลังการย้าย ตามเอกสารของ Anthropic ตรวจสอบเมื่อ 23 ตุลาคม 2026

กับดักอีกอย่าง: บน Opus 5.5 adaptive thinking เปิดอยู่เสมอ และ thinking: { "type": "disabled" } คืนค่า 400 ทุกระดับ effort Haiku 5.5 อนุญาตให้ปิดการคิดที่ effort high หรือต่ำกว่า ถ้าคุณต้องการคิดน้อยลงบน Opus 5.5 ให้ลด effort แทนที่จะปิดมัน

เอเจนต์และแชทยาว: เลือกระดับหนึ่งแล้วคงไว้#

ถ้าพรอมป์ของคุณถูกแคช การเปลี่ยน effort ระดับบนสุดระหว่างคำขอจะทำให้ cache breakpoint สำหรับบทสนทนานั้นใช้ไม่ได้ สำหรับลูปเอเจนต์หรือแชทยาว ให้เลือกระดับหนึ่งไว้ล่วงหน้า บางโมเดลมี per-message effort ในเบต้าที่รักษาแคชไว้ ซึ่งน่าลองดูเมื่อพื้นฐานเข้าที่แล้ว แชทยาวมีตัวขับค่าใช้จ่ายตัวที่สอง ครอบคลุมใน ทำไมแชทยาวมีค่าใช้จ่ายสูงขึ้น

ลองกับคำขอของคุณเอง#

  1. ส่งพรอมป์จริงของคุณหนึ่งครั้งและอ่าน usage: มีโทเคนเอาต์พุตกี่ตัว และกี่ตัวเป็นการคิด
  2. ลด effort ลงหนึ่งขั้นแล้วส่งอีกครั้ง เปรียบเทียบคำตอบและจำนวน
  3. ตั้ง max_tokens เป็นคำตอบที่คุณต้องการบวกที่เผื่อสำหรับการคิด และตรวจสอบ stop reason

จากนั้นใส่จำนวนโทเคนของคุณเองลงในตารางราคาสดบน หน้าราคา แล้วคุณจะได้ประมาณการรายเดือน