เมื่อใช้ AI agent ทำงานนานขึ้น ความต้องการมักไม่ได้จบที่ให้ตอบเก่งขึ้น แต่อยู่ที่การมองเห็นว่ากำลังทำอะไร และปรับการทำงานให้เข้ากับวิธีของเรา บทความ Getting started with Claude Code mods เสนอวิธีคิดนี้ผ่านส่วนขยายขนาดเล็กที่สังเกตเหตุการณ์ แทรกพฤติกรรม และเพิ่มหน้าจอได้ บทความนี้ชวนสำรวจว่า mods ช่วยตอบคำถามระหว่างทำงานอย่างไร และมีขอบเขตใดที่ควรเข้าใจก่อนใช้งาน
สรุปสำหรับผู้บริหาร
- Claude Code Mods ทำให้ส่วนขยายสังเกตเหตุการณ์ เปลี่ยนพฤติกรรม และวาด UI ภายใน session ได้
- Token Weather ช่วยประกอบการตัดสินใจเมื่อ session สะสมข้อมูลจากการอ่านไฟล์หลายชุด
- Blast Radius ช่วยตรวจผลกระทบก่อนยืนยันคำสั่ง ส่วน Replay Theater ช่วยทบทวนการแก้ไฟล์หลังจบ turn
- ส่วนขยายที่ช่วยตรวจคำสั่งไม่ใช่สิ่งทดแทน permission rules หรือมาตรการจำกัดสิทธิ์
- เริ่มจากความต้องการจริงและความสามารถที่มีอยู่แล้ว ไม่จำเป็นต้องสร้างส่วนขยายเพียงเพราะทำได้
Mods เปลี่ยนอะไรจากการตั้งค่าทั่วไป
การตั้งค่าช่วยเลือกพฤติกรรมที่โปรแกรมเตรียมไว้ให้ ส่วน mods ในบทความเปิดโอกาสให้เราเพิ่มพฤติกรรมเข้าไปในจังหวะที่โปรแกรมทำงาน เช่น ก่อนเรียก tool หลังจบ turn หรือเมื่อกำลังวาดส่วนหนึ่งของหน้าจอ โมดูลเขียนด้วย JavaScript หรือ TypeScript และบรรจุอยู่ใน plugin
แกนของระบบคือ hook ที่เรียงต่อกันคล้าย middleware ส่วนขยายหนึ่งรับเหตุการณ์ แล้วเลือกว่าจะส่งต่อให้ส่วนขยายถัดไปและการทำงานปกติของ Claude หรือจะตอบเอง แนวทางที่บทความแบ่งไว้มีสามแบบ
| วิธี | ความหมายใน Claude Code Mods | ตัวอย่างการใช้งาน |
|---|---|---|
| Observe | ปล่อยให้เหตุการณ์ทำงาน แล้วสังเกตข้อมูลหรือผลลัพธ์ | เก็บประวัติการแก้ไฟล์หรืออ่านสถานะหลังจบ turn |
| Rewrite | เปลี่ยนข้อมูลของเหตุการณ์ก่อนส่งต่อ | ปรับคำสั่งให้เหมาะกับกติกาที่กำหนด |
| Answer | ตอบเหตุการณ์เองโดยไม่ส่งต่อ | ปฏิเสธ tool call หรือให้บริการคำสั่งของส่วนขยาย |
รายละเอียดนี้อ้างอิงจาก คำอธิบายการทำงานของ mods ในบทความต้นทาง โดยแต่ละ hook ต้องเลือกให้ชัดว่าจะสังเกต ส่งต่อข้อมูลที่เปลี่ยนแล้ว หรือรับหน้าที่ตอบเอง
ความต่างจาก settings hooks ก็สำคัญ บทความอธิบายว่า settings hook เรียก shell command สำหรับแต่ละเหตุการณ์และส่ง JSON ผ่าน stdin/stdout ส่วน mod โหลดอยู่ใน session สามารถเก็บ state และวาด UI ที่เปลี่ยนตามเหตุการณ์ได้ หากต้องการเพียงรันสคริปต์เมื่อเกิดเหตุการณ์ อาจไม่ต้องใช้ mod แต่หากต้องการ panel ที่มีข้อมูลต่อเนื่องหรือรับการตัดสินใจจากผู้ใช้ mods เป็นจุดต่อยอดที่บทความออกแบบไว้รองรับ
Token Weather: รู้จังหวะจัดระเบียบ session ก่อนอ่านข้อมูลเพิ่ม
context window คือพื้นที่ข้อมูลที่โมเดลใช้ประกอบการตอบในแต่ละครั้ง งานที่ให้ Claude อ่านไฟล์หลายชุด ต่อด้วยเอกสารและผลทดสอบ จึงมีเหตุให้ผู้ใช้สนใจว่าพื้นที่นี้ถูกใช้ไปเพียงใด Token Weather แสดงข้อมูลนี้หลังแต่ละ turn โดยมีทั้งระดับการใช้งาน จำนวน tokens ประวัติ และส่วนต่างจาก turn ก่อน ตามตัวอย่างใน บทความต้นทาง
สถานการณ์ตัวอย่างเพื่ออธิบายประโยชน์: คุณให้ Claude ไล่ทำความเข้าใจระบบ login แล้วอ่านเส้นทาง API, middleware และ tests ต่อเนื่องกัน หากเห็นว่าการอ่านไฟล์ชุดล่าสุดทำให้ context เพิ่มขึ้นมาก ข้อมูลนี้ช่วยให้เลือกได้ว่าจะอ่านต่อแบบเจาะจง หรือให้ Claude สรุปสิ่งที่พบและคำถามที่เหลือก่อนเปลี่ยนไปทำอีกเรื่อง นี่เป็นการใช้สถานะประกอบการตัดสินใจ ไม่ใช่ให้กราฟตัดสินแทนผู้ใช้
ประวัติช่วยตอบคำถามที่ตัวเลขปัจจุบันเพียงอย่างเดียวตอบไม่ได้ เช่น context ค่อย ๆ เพิ่มขึ้นหรือเพิ่งเพิ่มมากจาก turn ล่าสุด หากจำนวนลดลง ก็ต้องดูเหตุการณ์ประกอบก่อนตีความ ไม่ควรสรุปเองว่า agent ลืมข้อมูลหรือทำงานผิดเพียงเพราะกราฟเปลี่ยน
ประโยชน์จึงอยู่ที่การเห็นต้นทุนด้านพื้นที่ข้อมูลระหว่างทำงาน ไม่ใช่การเพิ่ม context window ให้โมเดล และระดับสภาพอากาศในตัวอย่างก็ไม่ใช่คะแนนความแม่นยำของคำตอบ งานสั้นที่ใช้ข้อมูลน้อยอาจไม่ต้องมี panel เพิ่ม ส่วนงานสำรวจ codebase ยาว ๆ มีเหตุผลมากกว่าที่จะลองใช้
Blast Radius: เปลี่ยนการกดอนุมัติให้เป็นการตัดสินใจที่มีข้อมูล
การเห็นคำสั่งไม่ได้หมายความว่าเข้าใจผลกระทบเสมอไป ตัวอย่าง Blast Radius หยุด Bash call บางประเภท เช่น git reset --hard, git clean หรือ force push แล้วรวบรวมข้อมูลประกอบก่อนให้เลือก Proceed หรือ Cancel จุดต่างจากการถามเพียงว่าอนุญาตหรือไม่ คือผู้ใช้มีข้อมูลว่าคำสั่งนั้นอาจกระทบอะไร ตาม คำอธิบาย Blast Radius
สถานการณ์ตัวอย่างเพื่ออธิบายประโยชน์: Claude เสนอทำความสะอาด working tree หลัง build แต่คุณยังมีไฟล์ทดลองที่ไม่ได้ติดตามด้วย Git รายงานจาก git clean -n ช่วยให้ตรวจรายการที่อาจถูกลบก่อนยืนยัน แทนที่จะต้องจำเองว่าไฟล์ใดเป็นผลลัพธ์ชั่วคราวและไฟล์ใดยังต้องเก็บ
ตัวอย่างในบทความยังใช้ข้อมูลจากคำสั่งอย่าง git status --porcelain และ git log HEAD..origin/main รวมถึงข้อมูล migration เพื่อประกอบรายงาน แต่ไม่ควรตีความว่าทุกคำสั่งมี dry-run หรือทุกผลกระทบคำนวณได้ครบ สิ่งที่รายงานได้ขึ้นอยู่กับประเภทคำสั่งและการตรวจที่ mod เขียนไว้
ในทางปฏิบัติส่วนขยายลักษณะนี้เหมาะกับจังหวะที่มีโอกาสสูญเสียข้อมูลหรือเปลี่ยนสถานะสำคัญ ไม่ควรเพิ่มคำถามยืนยันให้ทุกคำสั่งจนผู้ใช้กดผ่านเป็นนิสัย หากยกเลิก ควรมีเหตุผลกลับไปให้ Claude เข้าใจว่าต้องเปลี่ยนวิธีทำงานอย่างไร อย่างไรก็ตาม ความช่วยเหลือนี้ยังเป็นชั้นอธิบายผลกระทบ ไม่ใช่สิ่งทดแทน permission rules
Replay Theater: ตรวจเส้นทางการแก้ไข ไม่ใช่อ่านเพียงคำสรุป
เมื่อ Claude แก้หลายไฟล์ใน turn เดียว คำสรุปท้าย turn ช่วยบอกภาพรวม แต่ไม่ได้แสดงรายละเอียดทุกบรรทัด Replay Theater ในบทความบันทึก Edit และ Write พร้อมข้อมูลก่อนและหลัง แล้วเปิดให้เดินดู diff ทีละขั้นด้วย /replay หรือปุ่มที่ตัวอย่างกำหนดไว้ มันเป็นตัวสังเกต ไม่ได้บล็อกหรือเปลี่ยนการแก้ไฟล์
สถานการณ์ตัวอย่างเพื่ออธิบายประโยชน์: คุณขอให้ Claude แก้ validation ของ API และเพิ่ม tests ที่เกี่ยวข้อง เมื่อจบ turn คุณเปิด replay เพื่อดูว่าการแก้ implementation กับ tests สอดคล้องกันหรือไม่ มีการเปลี่ยนไฟล์นอกขอบเขตหรือไม่ และมีบรรทัดสำคัญที่คำสรุปไม่ได้กล่าวถึงหรือไม่ เหตุการณ์นี้เป็นตัวอย่างการใช้งาน ไม่ใช่ผลทดสอบที่ผู้เขียนวัดมาแล้ว
การดูเป็นลำดับยังช่วยทำความเข้าใจกรณีไฟล์เดียวถูกแก้หลายครั้ง ส่วน Git diff เหมาะกับดูผลต่างสุดท้ายที่จะส่งต่อ ทั้งสองมุมจึงตอบคำถามต่างกัน และควรใช้ร่วมกับการรันทดสอบ ไม่ใช่ถือว่าการอ่าน replay เท่ากับตรวจความถูกต้องของโปรแกรมครบแล้ว
ต้องแยก replay ออกจาก undo ด้วย ตัวอย่างใน บทความต้นทาง อธิบายการดูประวัติการแก้ของ turn ล่าสุด ไม่ได้อ้างว่าเป็นระบบ rollback หรือประวัติถาวรครบทุกการแก้ไขของ repository
ควรเริ่มจากความต้องการแบบไหน
ตารางนี้เป็นข้อเสนอของผู้เขียนจากคุณสมบัติในบทความต้นทาง ไม่ใช่ผล benchmark ว่าส่วนขยายใดเร็วหรือดีกว่าอีกส่วนหนึ่ง
| ปัญหาที่เกิดซ้ำระหว่างใช้ Claude Code | แนวทางที่ควรพิจารณา | สิ่งที่ใช้ตรวจว่ามีประโยชน์จริง |
|---|---|---|
| อ่านข้อมูลต่อเนื่องจนไม่แน่ใจสถานะของ session | Token Weather หรือสถานะแบบเดิมที่มีอยู่ | ข้อมูลช่วยเลือกอ่านต่อหรือจัดสรุปได้หรือไม่ |
| เห็นคำสั่งเสี่ยงแต่ไม่เข้าใจผลกระทบก่อนอนุมัติ | Blast Radius ร่วมกับ permission rules | รายงานบอกสิ่งที่จะกระทบและยกเลิกได้ถูกต้องหรือไม่ |
| Claude แก้หลายจุดจนตรวจตามคำสรุปไม่สะดวก | Replay Theater ร่วมกับ Git diff และ tests | ตรวจพบการแก้นอกขอบเขตหรือจุดที่ต้องทบทวนได้หรือไม่ |
| ต้องการเพียงคำแนะนำหรือขั้นตอนซ้ำ ๆ | ใช้ instructions, skills หรือ slash commands ก่อน | ทำงานได้โดยไม่ต้องเพิ่ม code ที่ดักเหตุการณ์หรือไม่ |
เริ่มจากปัญหาหนึ่งข้อและส่วนขยายหนึ่งตัวจะทำให้ประเมินได้ง่ายกว่าเปิดหลายตัวพร้อมกัน หากส่วนขยายไม่ช่วยให้ตัดสินใจหรือตรวจงานดีขึ้น ก็ไม่มีเหตุผลต้องเก็บไว้เพียงเพราะหน้าจอดูน่าสนใจ
เริ่มทดลองกับ Claude Code อย่างไรโดยไม่ขยายงานเกินจำเป็น
บทความต้นทางระบุว่าตัวอย่างต้องใช้ Claude Code รุ่น 2.1.287 หรือใหม่กว่า และ API อาจเปลี่ยนได้ ข้อกำหนดนี้เป็นของบทความต้นทาง ไม่ใช่ผลยืนยันเวอร์ชันบนเครื่องของผู้อ่าน ก่อนทดลองให้ตรวจรุ่นที่ติดตั้งและอ่าน type declarations ที่ระบบสร้างให้
claude --version
วิธีเริ่มที่บทความเสนอคือบอก Claude ว่าต้องการเห็นอะไร แล้วให้ช่วยสร้าง mod ไม่จำเป็นต้องเริ่มจากเขียน middleware เอง ตัวอย่างคำขอต่อไปนี้ดัดแปลงจาก Token Weather เพื่อเน้นส่วนขยายแบบสังเกตการณ์ก่อน
สร้าง Claude Code mod ชื่อ token-weather สำหรับ session นี้
แสดงระดับการใช้ context, tokens ที่ใช้เทียบกับ context window
และแนวโน้มจาก turn ล่าสุดในแถบเหนือ prompt
อัปเดตหลังจบแต่ละ turn และเก็บประวัติให้ไม่หายเมื่อ hot reload
ให้ mod สังเกตและแสดงข้อมูลเท่านั้น ไม่เปลี่ยนหรือบล็อก tool calls
ตรวจ plugin และเพิ่ม test ที่ควบคุมค่า usage เพื่อทดสอบการอัปเดตหน้าจอ
ตามบทความ Claude จะขอเปิด hot reload สำหรับ session และส่วนขยายที่สร้างด้วยทางลัดนี้ยังเป็นของชั่วคราว หากต้องการใช้ต่อ ต้องเก็บโฟลเดอร์และติดตั้งตามขั้นตอน plugin อย่าเข้าใจว่าการเห็น panel ใน session หนึ่งหมายถึงติดตั้งถาวรแล้ว
หากมีโฟลเดอร์ token-weather ที่เตรียมไว้ สามารถตรวจและเปิด session ทดลองตามคำสั่งในบทความได้ คำสั่งต่อไปนี้เป็นแนวทางจากต้นฉบับ ไม่ใช่ผลการรันของผู้เขียนบทความนี้
claude plugin validate ./token-weather
claude plugin test ./token-weather
claude --plugin-dir ./token-weather
validate ใช้ตรวจโครงสร้างและการใช้ API ส่วน test ในตัวอย่างควบคุมค่า usage แล้วตรวจข้อความและการวาดใหม่ของ UI จึงต้องแยกจากการใช้งานจริงด้วย ผู้อ่านควรตรวจด้วยว่า panel ปรากฏ อัปเดต และอยู่ร่วมกับหน้าจออื่นได้บน terminal ของตนเอง ก่อนใช้ส่วนขยายที่แทรกการตัดสินใจควรทดลองใน repository ที่ไม่มีข้อมูลสำคัญและตรวจโค้ดจากผู้เผยแพร่ก่อนเสมอ
รายละเอียดเล็ก ๆ ที่ทำให้ส่วนขยายใช้งานได้ต่อเนื่อง
บทความต้นทางแนะนำให้เก็บข้อมูลที่ต้องอยู่ต่อเมื่อ hot reload ใน $.state แทนตัวแปรระดับโมดูล เพราะการโหลดโมดูลใหม่ทำให้ตัวแปรเริ่มต้นอีกครั้ง สำหรับ Token Weather ประวัติที่สะสมไว้จึงต้องอยู่ใน state ที่ host ดูแล หากต้องการให้ประวัติไม่หายระหว่างปรับส่วนขยาย
การเพิ่มหน้าจอก็ควรอยู่ร่วมกับหน้าจอเดิมได้ ตัวอย่าง Token Weather ส่งต่อการวาดให้ระบบเมื่อไม่มีข้อมูล หรือเมื่อพื้นที่นั้นถูกใช้โดยแบบสำรวจ และพิจารณาความกว้างจริงของพื้นที่ก่อนแสดงกราฟกับแนวโน้ม รายละเอียดเหล่านี้จาก ตัวอย่างและข้อแนะนำในบทความต้นทาง แสดงว่าส่วนขยายที่ดีไม่ได้มีหน้าที่แสดงข้อมูลอย่างเดียว แต่ต้องรู้ด้วยว่าเมื่อใดควรหลีกทาง
ขอบเขตที่ควรเข้าใจก่อนใช้งาน
อีกข้อที่ไม่ควรมองข้ามคือ trust model บทความอธิบายว่าโมดูล mods ทำงานใน sandbox โดยไม่มี DOM หรือ Node และเรียกความสามารถภายนอกผ่าน API ที่จัดให้ ข้อเท็จจริงนี้ไม่ได้หมายความว่าส่วนขยายไม่มีผลต่อการทำงาน เพราะ API ยังเปิดให้เรียก process และแทรกพฤติกรรมได้ ผู้ใช้จึงควรตรวจว่ามันเข้าถึงอะไรและเปลี่ยนการทำงานส่วนใดก่อนติดตั้ง
สิ่งที่ตรวจแล้ว และสิ่งที่ยังไม่ได้ทดลอง
บทความนี้สรุปแนวคิดและพฤติกรรมจากบทความต้นทางที่เปิดอ่าน ไม่ใช่รายงานผลทดสอบส่วนขยายทั้งสามด้วยตนเอง คำอธิบาย Token Weather, Blast Radius และ Replay Theater จึงเป็นการอ้างอิงตัวอย่างของผู้เขียนต้นทาง ไม่ใช่หลักฐานว่าผู้เขียนบทความนี้ได้ทดลองครบทุกกรณีแล้ว
บทความต้นทางระบุว่า API อาจเปลี่ยนระหว่างรุ่น และให้ใช้ type declarations ที่ Claude Code สร้างให้เป็นข้อมูลอ้างอิงของรุ่นที่ใช้งาน ก่อนนำตัวอย่างไปใช้จริงจึงควรตรวจ API กับเวอร์ชันของตนเอง รวมถึงทดสอบการ reload การแสดงผล และเหตุการณ์ที่ส่วนขยายติดตาม
สรุปชวนใช้
สิ่งที่น่าเรียนรู้จาก Claude Code Mods ไม่ใช่การเพิ่มส่วนขยายให้ได้มากที่สุด แต่เป็นการเริ่มจากคำถามเล็ก ๆ ที่เกิดระหว่างทำงาน: เราต้องเห็นสถานะอะไร ต้องเข้าใจความเสี่ยงตรงไหน และต้องตรวจหลักฐานอะไรหลัง agent ทำงานเสร็จ
หากความสามารถเดิมตอบคำถามได้อยู่แล้ว ให้ใช้ของเดิมก่อน หากมีช่องว่างที่ชัดเจน จึงค่อยสร้างส่วนขยายที่เล็กที่สุดและตรวจได้ว่าช่วยงานจริง คุณค่าของ mods จึงไม่ได้อยู่ที่ความซับซ้อนของส่วนขยาย แต่อยู่ที่การทำให้การทำงานของ agent เข้าใจง่ายขึ้นและเข้ากับวิธีทำงานของผู้ใช้