หนึ่งในจุดเด่นที่สุดของโมเดล Claude รุ่นใหม่ของเราคือความสามารถในการตอบสนองต่อระดับ effort โดยไม่ทำให้ prompt cache ใน Claude Code พัง แต่ผมก็ได้รับคำถามจากผู้ใช้มากมายเกี่ยวกับเรื่องนี้ จริงๆ แล้ว effort คืออะไร และควรใช้ระดับไหนตอนไหน? ทำไมเราถึงต้องมี effort ด้วย?
เพื่อตอบคำถามเหล่านี้ ผมจึงตัดสินใจเจาะลึกผล evals และทำการทดสอบ effort ด้วยตัวเองในงานทั่วไปต่างๆ
หมายเหตุ: คุณสามารถดูไดอะแกรมแบบอินเทอร์แอคทีฟและคำอธิบายเพิ่มเติมสำหรับโพสต์นี้ได้ที่ https://claude.dev/blog/spending-your-effort/
ในภาพรวม ผมพบว่า effort เป็นวิธีที่ยอดเยี่ยมในการปรับว่าอยากให้ Claude ตรวจสอบและทดสอบ edge case มากแค่ไหน รวมถึงให้มันใช้วิจารณญาณของตัวเองมากน้อยเพียงใด
การใช้ effort ที่สูงขึ้นให้ผลลัพธ์ที่ดีกว่าในงานที่การตรวจสอบและการทดสอบ edge case มีประโยชน์ เช่น งานด้านฮาร์ดแวร์, code review และความปลอดภัย
แต่ effort ระดับ low และ medium นั้นเหมาะสุดๆ สำหรับการทำงานให้เสร็จอย่างรวดเร็วและคอยติดตามความคืบหน้าร่วมกับ Claude ไปตลอดทาง
สำหรับงานวิศวกรรมซอฟต์แวร์ทั่วไป ตอนนี้ผมใช้วิธีการวนลูปโดยให้โมเดลสัมภาษณ์ผมก่อน จากนั้นจึงสั่งให้ลงมือทำด้วย effort ระดับ low/medium, ตรวจทานสิ่งที่มันสร้างขึ้นมา แล้วค่อยรันการตรวจสอบด้วย effort ระดับ high
Effort คืออะไร?
ในภาพรวม effort คือการบอกโมเดลคร่าวๆ ว่าคุณต้องการให้มันใช้พลังประมวลผลกับงานนั้นมากน้อยแค่ไหน ซึ่งค่อนข้างเกี่ยวข้องกับการประเมินความยากของงานที่คุณมีอยู่ในใจ
ลองคิดแบบนี้ ถ้ามีคนขอให้คุณทำอะไรสักอย่างต่อเนื่อง 12 ชั่วโมง คุณคงคิดว่าเขาแค่อยากให้คุณลุยทำให้เสร็จและพยายามอย่างเต็มที่ แต่ถ้ามีคนขอให้งานเดิมเสร็จใน 1 ชั่วโมง คุณคงพยายามส่งเวอร์ชันที่ดีที่สุดที่ตอบโจทย์ให้เขาก่อน แล้วค่อยๆ ปรับแก้กันต่อไป
หรือคุณอาจจะท้วงกลับไปเลยว่างานนี้ต้องใช้เวลา อย่างน้อย 3 ชั่วโมง แล้วก็ลงมือทำ 3 ชั่วโมงเพื่อส่งมอบงาน
คุณควรมองเรื่อง effort ในลักษณะเดียวกัน Claude จะพยายามทำงานของคุณอย่างสมเหตุสมผลเสมอ แต่ยิ่งใช้ effort สูง Claude ก็จะยิ่งลงมือตัดสินใจและตรวจสอบด้วยตัวเองมากขึ้น
กราฟ Effort
กราฟ effort ของ Fable 5.1 และ Opus 5.5 ดีที่สุดเท่าที่เราเคยมีมา ในแต่ละระดับจะมีทั้งคะแนน benchmark และจำนวน token ที่ใช้เพิ่มขึ้น ด้านล่างคือกราฟคะแนน Terminal Bench 3.0 แยกตามระดับ effort ซึ่งวัดจากการรัน eval ของผมสำหรับโพสต์นี้

แต่ในทางปฏิบัติหมายความว่าอย่างไร? เพื่อหาคำตอบ ผมได้ลองทำงานหลายอย่างในระดับ effort ต่างๆ และนั่งวิเคราะห์ผล benchmark อย่างละเอียด
การสร้างงานด้วย effort
วิธีที่ดีที่สุดในการทำความเข้าใจการทำงานของโมเดลคือการทดลอง ผมลองสั่งงานเดิมๆ ในระดับ effort ต่างๆ บน Opus 5.5 เพื่อดูว่ามันจะจัดการงานอย่างไร ผมทดสอบกับงานหลากหลายประเภท แต่จะขอยกตัวอย่างง่ายๆ ไม่กี่กรณีมาให้เห็นภาพ
งานสร้างที่มีรายละเอียดไม่ชัดเจน
ถ้าผมบอกให้ Claude “สร้างแอปติดตามการออกกำลังกายส่วนตัว” ระดับ effort จะเปลี่ยนความสมบูรณ์ของแอปไปอย่างสิ้นเชิง และยังทำให้ Claude ต้องตัดสินใจเลือกเองมากขึ้นระหว่างทางด้วย ที่ระดับ low แอปฟิตเนสจะเป็นแค่บันทึกข้อมูลกับกราฟธรรมดาๆ แต่พอใช้ effort สูงขึ้น แอปก็จะซับซ้อนและมีรายละเอียดมากขึ้น และที่ระดับ max จะมี heat chart เพิ่มเข้ามาด้วย

ถ้าผมอยากได้ฐานง่ายๆ ไว้ต่อยอด ระดับ low ก็เอาอยู่ แต่ถ้าอยากได้ผลงานที่ดีที่สุดของ Claude แบบรวดเดียวจบ ต้องใช้ระดับ max
งานออกแบบที่กำหนดรายละเอียดไว้บ้างแล้ว
แล้วถ้าเป็นงานที่มีรายละเอียดพอสมควร แต่ผมอยากลองสำรวจไอเดียร่วมกับ Claude ล่ะ? ตัวอย่างเช่น ผมลองขอให้มันออกแบบเมนู /config ใน Claude Code ใหม่ ทุกครั้งที่รันจะได้แนวคิดใกล้เคียงกัน คือใช้ระบบเมนูย่อยและปรับปรุงการค้นหาให้ดีขึ้น
ที่ระดับ low (ซึ่งใช้เวลา 1 นาที) ผมได้สเก็ตช์แบบอินเทอร์แอคทีฟที่สื่อไอเดียได้ แต่หน้าตาไม่ค่อยเหมือน Claude Code เท่าไหร่
ส่วนที่ระดับ max (ซึ่งใช้เวลา 28 นาที) ผมได้ mockup ที่หน้าตาเหมือน Claude Code มาก พร้อมกับขั้นตอนการใช้งาน (walkthrough) สำหรับ flow ต่างๆ อีกเพียบ
ถ้าเป้าหมายของผมคือการค่อยๆ ปรับแก้และให้ feedback ระดับ low จะไปถึงจุดนั้นได้เร็วกว่ามาก แต่ระดับ max ให้ผลงานที่ขัดเกลามาอย่างดีตั้งแต่แรกเริ่มเลย สำหรับงานนี้โดยเฉพาะ ผมคิดว่าชอบใช้ระดับ low มากกว่า เพราะช่วยให้เข้าใจวิสัยทัศน์ของ Claude ได้ดีกว่า

งานสร้างที่กำหนดรายละเอียดไว้ชัดเจนมาก
แล้วถ้าผมป้อนรายละเอียดให้ Claude เยอะๆ ล่ะ? ผมลองให้ Claude สัมภาษณ์ผมอย่างละเอียดเกี่ยวกับแอปฟิตเนส แล้วนำ spec นั้นไปให้โมเดลต่างๆ สร้างในระดับ effort ที่ต่างกัน
ผมพบว่าเมื่อมี spec ชัดเจน โมเดลจะทำงานออกมาคล้ายกันมากขึ้น ผมได้ดีไซน์ที่หน้าตาใกล้เคียงกันและมีวิธีการ implement คล้ายกัน แต่มีรายละเอียดปลีกย่อยต่างกัน โดยที่ระดับ max Claude จะใช้เวลาเพิ่มอีกนิดเพื่อลดทอนรายละเอียดบางอย่างให้เรียบง่ายขึ้น

สรุปประเด็นสำคัญ
สำหรับงานวิศวกรรมซอฟต์แวร์ทั่วไป โดยเฉพาะการพัฒนาฟีเจอร์ใหม่ ระดับ effort ที่เลือกใช้ขึ้นอยู่กับว่าผมอยากเข้าไปมีส่วนร่วมมากแค่ไหน ระดับ low ช่วยให้ Claude ตอบกลับพร้อมจุดเริ่มต้นได้อย่างรวดเร็ว ส่วนระดับที่สูงขึ้นจะทำชิ้นงานได้เยอะกว่า แต่ก็หมายความว่ามันจะตั้งข้อสันนิษฐานแทนผมมากขึ้นด้วย
ลูปที่ผมใช้แล้วได้ผลดีมากสำหรับการพัฒนาฟีเจอร์คือ:
- ป้อน spec ให้ Claude แล้วขอให้มันสัมภาษณ์ผมในจุดที่ยังขาดรายละเอียด
- สั่ง implement ด้วยระดับ low
- ตรวจทานเพื่อให้แน่ใจว่ามันเข้าใจแก่นของงานถูกต้อง แล้ววนปรับแก้ด้วยระดับ low ตามความจำเป็น
- ตรวจสอบและทดสอบด้วยระดับ high
ระดับ effort ส่งผลต่อผลลัพธ์ในงานยากอย่างไร
แน่นอนว่าตัวอย่างข้างต้นเป็นแค่ของเล่นง่ายๆ ที่ Claude ทำได้อยู่แล้ว แต่ถ้าเป็นกรณีที่เส้นแบ่งระหว่างการทำได้กับทำไม่ได้อยู่ที่ระดับ effort ล่ะ?
การจะหางานยากๆ แบบนี้ได้ คุณต้องไปดูที่ benchmark ผมเลยเจาะลึกตัวที่ผมชอบอย่าง Terminal Bench 3 ซึ่งเป็น benchmark ที่รวบรวมมาจากชุมชน
โจทย์ใน Terminal-Bench 3.0 แบ่งออกเป็นหมวดหมู่กว้างๆ ได้เช่น ความปลอดภัย, ฮาร์ดแวร์, ML, วิทยาศาสตร์, ซอฟต์แวร์, operations และสื่อ คุณสามารถดูโจทย์ทั้งหมดได้ที่นี่: https://github.com/harbor-framework/terminal-bench/releases/tag/v3.0.0 โจทย์เหล่านี้มาจากชุมชน ดังนั้นใครก็ร่วมส่งเข้าไปได้
คุ้มค่าที่จะลองอ่านดูเพื่อให้เห็นภาพว่าโมเดลเหล่านี้ต้องเจอโจทย์แบบไหน ผมเองยังแปลกใจกับขอบเขตและความทะเยอทะยานของหลายๆ งาน มันซับซ้อนกว่างานทั่วไปที่ผมเจอเยอะมาก
ตัวอย่างเช่น บางงานประกอบด้วย:
- ฮาร์ดแวร์ (retro-console-soc): สร้างเกมคอนโซล 8-bit ด้วย Verilog ที่ใส่ใน FPGA ขนาดเล็กได้และเรนเดอร์ test ROM ออกมา
- วิทยาศาสตร์ (takens-embedding-lean): พิสูจน์ทฤษฎีบท Takens’ embedding อย่างเป็นทางการใน Lean 4
- ML (mp-checkpoint-consolidation): รวม checkpoint แบบ mixture-of-experts 16 shards เข้าเป็นไฟล์เดียวที่ให้ค่า logits ตรงกับ reference
- Operations (intrastat-meldung): ดำเนินการยื่นรายงานสถิติการค้า EU ประจำเดือนของบริษัทตั้งแต่ต้นจนจบ
- สื่อ (layout-config-recreation): สร้างภาพโปสเตอร์กลับมาเป็นไฟล์ layout ที่แก้ไขได้
ระดับ effort ที่สูงขึ้นช่วยได้เมื่อมี edge case เยอะ
ข้อสรุปหลักของผมจากการอ่านผล Terminal Bench 3 คือ effort ระดับสูงเหมาะกับงานที่มี edge case ซ่อนอยู่มาก
ตัวอย่างที่เห็นชัดคือ html-js-filter ซึ่งเป็นโจทย์ Terminal-Bench 3.0 ที่ให้สร้าง HTML sanitizer เพื่อตัดทุกช่องทางที่อาจใช้แอบฝัง JavaScript ลงในหน้าเว็บ Fable 5.1 ทำคะแนนจาก 1/5 ที่ระดับ low ขึ้นมาเป็น 5/5 ที่ระดับ xhigh
การลองทำที่ระดับ low โดยทั่วไปใช้เวลาประมาณ 2 นาที แต่ละครั้งจะเขียน filter เสร็จในรวดเดียว แล้วทดสอบกับหน้าเว็บที่เขียนขึ้นเองแค่หน้าเดียว
ส่วนการรันที่ระดับ high ใช้เวลาประมาณ 33 นาที ในการรันที่ผมตามดู มันจะตรวจทานร่างแรกของตัวเองแบบจับผิด, อ่าน source code ของ parser ที่ติดตั้งไว้เพื่อหาบั๊ก, รัน test case สะอาดๆ หลายรอบจนกว่า output จะตรงกับ input, รันชุดทดสอบ XSS มาตรฐาน และสุดท้ายก็เขียน random-document fuzzer ขึ้นมา
สำหรับงานที่มี edge case จุกจิกอย่าง HTML sanitizer การทุ่ม effort เพิ่มขนาดนี้ถือว่าคุ้มค่ามาก การใช้ token มากขึ้นเพื่อความรอบคอบยังสมเหตุสมผลกับงานซับซ้อนที่ต้องการคุณภาพระดับ production เช่น การปรับแต่งประสิทธิภาพ หรือ security review
แต่คุณไม่จำเป็นต้องใช้ effort ระดับนี้กับทุกงาน
แผนภูมิด้านล่างแสดงผล Terminal-Bench 3.0 ทั้งหมดและสาเหตุที่ทำไม่ผ่าน แยกตามโมเดลและระดับ effort โดยรวมแล้ว การเพิ่ม effort มักช่วยลดความล้มเหลวจากการตกหล่น edge case (บล็อกสีม่วง) แต่ไม่ได้ช่วยในกรณีที่โมเดลเลือกแนวทางผิดตั้งแต่แรก (บล็อกสีน้ำเงิน)

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

เพื่อให้เห็นภาพ ผมเลือกโจทย์จากหลายหมวดใน Terminal Bench 3.0 ที่ Opus 5.5 ทำไม่ผ่านที่ระดับ low แต่สำเร็จที่ระดับ high มาให้ดู ซึ่งส่วนใหญ่เป็นเพราะมันยอมทดสอบและจัดการกับ edge case:
mvcc-lsm-compaction: โจทย์ Terminal-Bench 3.0 ที่ให้แก้บั๊ก storage-engine จากรายงาน crash โดยห้ามทำให้ compaction พัง Opus 5.5 ทำคะแนนจาก 0/5 ที่ระดับ low ขึ้นมาเป็น 4/5 ที่ระดับ xhigh
ที่ระดับ low (ประมาณนาทีละครั้ง) Claude จะแก้โค้ดก่อนที่จะ build หรือรัน reproducer และไม่ตรวจสอบด้วยว่าเทสต์ใหม่ที่เขียนมาจะเจอบั๊กเดิมได้จริงไหม
ที่ระดับ xhigh (ประมาณ 11 นาที) Claude จะจำลอง crash ขึ้นมาก่อน เขียน randomized test เทียบกับ reference ที่ไม่ทำ compaction เลย และเช็คว่าเทสต์ของมัน fail เมื่อใช้โค้ดที่แก้ยังไม่เสร็จ
cli-2ph-simple: เป็นโจทย์ Terminal-Bench 3.0 ที่ให้สร้าง CLI linear-program solver ด้วย Python Opus 5.5 ทำคะแนนจาก 0/5 ที่ระดับ low ขึ้นมาเป็น 5/5 ที่ระดับ high
การลองที่ระดับ low จะเขียน solver เสร็จในรวดเดียว ทดสอบกับโจทย์เล็กๆ ไม่กี่ข้อ แล้วหยุดที่ประมาณ 10k tokens ในข้อความสุดท้าย Claude เตือนว่ามันอาจจะช้าถ้าเจอโจทย์ใหญ่ แต่ก็ไม่ได้ทดสอบดู
ส่วนการลองที่ระดับ high Claude จะทดสอบ solver ของมันกับโจทย์สุ่มโดยเทียบกับ brute-force solver อีกตัว จากนั้นจับเวลากับโจทย์ที่ใหญ่ขึ้น เจอเคสที่ใช้เวลานานเกินไปหรือพัง แล้วก็กลับมาปรับอัลกอริทึมการค้นหาใหม่
gsea-proteomics: โจทย์ Terminal-Bench 3.0 ที่ให้ทำ gene set enrichment analysis (GSEA) กับข้อมูล proteomics เพื่อหาว่าในแปดวิธีรักษา วิธีไหนให้ผลคล้ายเนื้อเยื่อเป้าหมาย Opus 5.5 ทำคะแนนจาก 0/5 ที่ระดับ low ขึ้นมาเป็น 4/5 ที่ระดับ high
ที่ระดับ low Claude เลือกวิธีเตรียมข้อมูลที่ฟังดูสมเหตุสมผลมาหนึ่งวิธี รันการวิเคราะห์ด้วยวิธีนั้น แล้วรายงานผลเลย
ที่ระดับ high Claude ลองเตรียมข้อมูลสองวิธี สังเกตเห็นว่ารายการวิธีรักษาที่มีนัยสำคัญเปลี่ยนไป จึงเจาะลึกหาสาเหตุก่อนจะเลือกวิธีที่ถูกต้อง
ถ้ามีผู้ใช้อยู่ในลูป Claude อาจจะถามผู้ใช้เรื่องการตั้งค่าโจทย์ แต่เมื่อไม่มีผู้ใช้คอยกำกับ การใช้ effort ระดับ high จะได้ผลดีกว่า
ควรใช้ effort ระดับไหนใน Claude Code
นี่คือกฎง่ายๆ ของผมในการเลือกระดับ effort:
- Low: เมื่อต้องการคำตอบเร็วๆ และอยากมีส่วนร่วมไปด้วย เช่น ระดมไอเดีย, สเก็ตช์งาน, แก้ไขเล็กน้อย
- Medium: สำหรับงานวิศวกรรมซอฟต์แวร์ทั่วไปส่วนใหญ่ เช่น การสร้างฟีเจอร์ใหม่
- High: สำหรับงานที่การตรวจสอบเป็นเรื่องสำคัญหรือมี edge case เยอะ เช่น การแก้บั๊กใน brownfield codebase
- Max: เมื่ออยากให้ Claude ทำงานด้วยตัวเองอย่างอิสระเพื่อแก้ปัญหาที่ยาก เช่น การสร้างและตรวจสอบแอปตั้งแต่ต้นจนจบ หรือการหาช่องโหว่ด้านความปลอดภัยในซอฟต์แวร์ที่สำคัญ

ลองปรับระดับ effort ของ Opus 5.5 และ Fable 5.1 ให้เหมาะกับงานของคุณ หรือแม้แต่ปรับกลางวงสนทนาโดยใช้คำสั่ง /effort ใน Claude Code แล้วบอกผมด้วยนะว่าตรงกับสัญชาตญาณของคุณไหม





