ในที่สุดสิ่งที่ทุกคนรอคอยก็มาถึง! Ralph TUI, Ralph Loop แบบเห็นภาพ
ในที่สุดสิ่งที่ทุกคนรอคอยก็มาถึง! Ralph TUI, Ralph Loop แบบเห็นภาพ
ก่อนหน้านี้ฉันเคยเขียนบทช่วยสอนเกี่ยวกับ ralph-loop เพื่อนๆ หลายคนลองทำตามแล้วให้ผลตอบรับที่ค่อนข้างตรงกัน: มันส์มาก Claude Code สามารถรันได้นานเสียที แต่บางครั้งสังเกตดูเหมือนมันจะไม่ขยับไปไหนเลย ก็อดสงสัยไม่ได้ว่า "ตกลงมันกำลังเดินหน้า หรือว่าวนอยู่ที่เดิมกันแน่?"
นั่นคือเหตุผลที่ฉันวุ่นอยู่กับ ralph-tui ในช่วงนี้

ralph-tui ไม่ได้บังคับให้ใช้ Claude Code แต่มันสืบทอดและพัฒนาแก่นแท้ของ ralph loop และทำให้การทำงานและการดำเนินการของงานเป็นไปอย่างเห็นภาพ ซึ่งช่วยลดอุปสรรคในการทำให้โมเดลขนาดใหญ่ทำงานได้เป็นเวลานาน คุณสามารถเชื่อมต่อกับ agent อื่น โมเดลอื่น โมเดลในประเทศ โมเดลราคาถูก หรือโมเดลที่คุณสามารถรันได้อย่างต่อเนื่อง เมื่อมี ralph-tui สำหรับคนธรรมดาอย่างเรา มันมีความหมายไม่น้อยไปกว่าการเปลี่ยนจากเกียร์ธรรมดาเป็นเกียร์อัตโนมัติพร้อมระบบควบคุมความเร็วคงที่
ตกลงแล้วมันคืออะไรกันแน่?
คุณสามารถเข้าใจ ralph-tui ว่าเป็น "ตัวจัดลำดับการวนรอบของ AI coding agent" แต่มันไม่ได้พอใจแค่ "รันได้" แต่มันใส่ใจมากกว่าว่า "คุณมองเห็น ควบคุม และกู้คืนได้"
วิธีการทำงานพื้นฐานของมันเรียบง่าย:
- คุณให้งานจำนวนหนึ่งแก่มัน (อาจมาจาก PRD หรือจากระบบงานอื่น)
- มันเลือกงานที่มีลำดับความสำคัญสูงสุด
- สร้าง prompt
- เรียก agent ให้ดำเนินการ
- ตัดสินว่างานนี้ถือว่าเสร็จสิ้นหรือไม่
- เขียนสถานะ
- รอบต่อไปดำเนินการต่อ
ประเด็นสำคัญคือ: คุณสามารถเห็นทุกสิ่งนี้ได้ในเทอร์มินัล และสามารถหยุดหรือเข้าควบคุมได้ตลอดเวลา ทางการยังระบุตำแหน่งของมันอย่างตรงไปตรงมา: ตัวจัดระเบียบ agent loop พร้อม TUI แบบโต้ตอบ และรองรับ TUI / headless / remote
ทำไมฉันถึงบอกว่ามันเหมาะกับการ "รันระยะยาว" มากกว่า?
ปัญหาที่ใหญ่ที่สุดของการรัน loop ด้วยสคริปต์ ไม่ใช่การรันไม่ได้ แต่เป็นการที่คุณไม่รู้ว่ามันรันไปถึงไหนแล้ว
คุณเห็นบันทึก (log) อัปเดตอย่างรวดเร็ว พัดลมก็หมุนอย่างมีความสุข แต่คุณไม่มั่นใจ:
- มันกำลังแก้ไข bug เดิมซ้ำๆ หรือเปล่า?
- มันกำลังแก้ไขโค้ดส่วนเดิมซ้ำไปซ้ำมาแล้วแก้ไขกลับไปกลับมาหรือเปล่า?
- มันเสร็จแล้ว แต่ยังไม่ออกหรือเปล่า?
- มันติดอยู่กับการทดสอบบางอย่างและวนลูปไม่รู้จบหรือเปล่า?

วิธีแก้ปัญหาของ ralph-tui นั้น "เป็นวิศวกรรม" มาก:
- มีแนวคิด session สถานะจะถูกบันทึกลงดิสก์ (.ralph-tui/session.json)
- สามารถกู้คืนและรันต่อได้เมื่อเกิดข้อผิดพลาด (crash recovery)
- มีกลไกการล็อก เพื่อหลีกเลี่ยงการเปิดหลายอินสแตนซ์และทำให้ไดเรกทอรีเละเทะ
- ยังสามารถรัน headless ใน CI หรือแม้แต่เปิด listener จากระยะไกลและเชื่อมต่อ TUI จากเครื่อง
กล่าวโดยสรุป: มันเหมือน "คุณกำลังดูแลคนงานที่เขียนโค้ดได้" มากกว่า "คุณกำลังจ้องสคริปต์ที่ทำงานผิดปกติ"
วิธีการติดตั้ง
ralph-tui ชุดนี้อยู่ในระบบนิเวศ Bun/TypeScript การติดตั้งจึงค่อนข้างง่าย ทางการก็มีหน้าการติดตั้งให้ด้วย
ตรวจสอบก่อนว่าเครื่องของคุณมี bun:
bun --version จากนั้นติดตั้ง ralph-tui (ฉันจะให้วิธีการติดตั้งทั่วไป ที่เหลือให้ดูตามหน้าการติดตั้งอย่างเป็นทางการ):
bun add -g ralph-tui หลังจากติดตั้งเสร็จแล้วให้ตรวจสอบ:
ralph-tui --help หากคุณเป็น Node และไม่อยากยุ่งกับ bun ก็ได้:
npm i -g ralph-tui
อย่าเพิ่งทำอะไรใหญ่โต ลองรันวงจรปิดที่เล็กที่สุดก่อน
ฉันแนะนำว่าครั้งแรกที่ใช้ อย่าเพิ่งทำอะไรอย่าง "ปรับโครงสร้าง repo ทั้งหมด" สิ่งที่คุณต้องทำคือ: ทำให้มันรันงานเล็กๆ ที่ยอมรับได้สำเร็จ
การเริ่มต้น
เปิดไดเรกทอรีใดก็ได้:
mkdir ralph-tui-demo && cd ralph-tui-demo ralph-tui setup สิ่งนี้จะเข้าสู่กระบวนการตัวช่วยสร้างแบบโต้ตอบ พูดง่ายๆ ก็คือ "ติดตั้ง ralph-tui ใน repo ของคุณ" มันจะ:- ตรวจจับ agents ที่ติดตั้งบนเครื่องของคุณโดยอัตโนมัติ (เช่น Claude Code, OpenCode เป็นต้น)
- สร้างไฟล์กำหนดค่าในโปรเจ็กต์: .ralph-tui/config.toml
- ติดตั้ง skills ที่เกี่ยวข้องกับการสร้าง PRD/การแปลงงาน (คุณไม่ต้องเสียเวลาทำเองในภายหลัง)
คำแนะนำส่วนตัว: อย่าขี้เกียจในการเริ่มต้นครั้งแรก ต้องรัน setup ให้เสร็จ
สร้าง PRD ของโปรเจ็กต์
หลังจากรัน setup เสร็จ ขั้นตอนต่อไปคือส่วนที่สำคัญที่สุดในบทช่วยสอนอย่างเป็นทางการ และเหมาะที่สุดสำหรับการเขียนเป็น demo ในบัญชีสาธารณะ: create-prd
คำสั่ง ralph-tui create-prd --chat จะเข้าสู่กระบวนการสนทนา มันจะถามคำถามเกี่ยวกับเป้าหมายของความต้องการ ขอบเขต และเกณฑ์การยอมรับ เหมือนกับผู้จัดการผลิตภัณฑ์ หลังจากถามเสร็จแล้ว มันจะสร้างสองสิ่งในโปรเจ็กต์โดยตรง (นี่คือประเด็นสำคัญ):
- ไฟล์ markdown ของ PRD: ./tasks/prd-feature.md
- ไฟล์งานที่สามารถดำเนินการได้โดยตรง: ./prd.json
ในขั้นตอนนี้ คุณถึงจะเข้าสู่ "วงจรมาตรฐาน" ของ ralph-tui อย่างแท้จริง:
ความต้องการ (PRD) → งาน (prd.json) → การดำเนินการ (run)
เริ่มต้นการ run
เมื่อมี prd.json แล้ว การ run ก็เป็นไปตามธรรมชาติ:
ralph-tui run --prd ./prd.json คุณจะเห็น TUI เริ่มทำงาน และเริ่ม loop: เลือกงาน → ดำเนินการ → ตัดสินว่าเสร็จสิ้น → เขียนสถานะ → สิ้นสุดหรือรอบถัดไป
ในการรันครั้งแรก ฉันขอแนะนำอย่างยิ่งให้เพิ่มขีดจำกัดการวนซ้ำก่อน เพื่อขังมันไว้ในกรง:
ralph-tui run --prd ./prd.json --iterations 5 หลังจากรันเสร็จแล้ว ให้ตรวจสอบการเปลี่ยนแปลง รันการทดสอบ และดูว่า PRD และงานเป็นไปตามที่คาดไว้หรือไม่ เมื่อยืนยันว่าเส้นทางนี้ใช้งานได้แล้ว ค่อยปล่อย iterations และไปที่ headless/remote นี่คือจังหวะที่น่าเชื่อถือ
ในเวลานี้ คุณจะสามารถยืนยันได้ว่า: loop นี้ทำงานได้จริง
จะเลือกรุ่น/Agent อย่างไร? ความจริงเกี่ยวกับการประหยัดเงิน
ฉันรู้ว่าสิ่งที่หลายคนกังวลมากที่สุดคือ: "ฉันไม่ต้องใช้ Claude Code ได้ไหม? ฉันสามารถใช้โมเดลที่ถูกกว่าได้ไหม?"
คำตอบคือ: ได้
ralph-tui รองรับการระบุ agent และ model (มีตัวอย่างในเอกสาร run อย่างเป็นทางการ)
เช่น ใช้ Claude Opus:
ralph-tui run --prd ./prd.json --agent claude --model opus แต่บอกตามตรง ฉันจะไม่ใช้ Opus เพื่อทำงานประเภท "เติมการทดสอบ แก้ไข lint" เพราะมันแพงเกินไป นิสัยของฉันคือการแบ่งชั้น:
- โมเดลราคาถูก: รันงานซ้ำๆ จำนวนมาก (เติมการทดสอบ เติมคำอธิบาย แก้ไขรูปแบบ เพิ่มขอบเขต)
- โมเดลราคาแพง: ปรากฏตัวเฉพาะในจุดสำคัญ (การปรับสถาปัตยกรรม, bug ที่แก้ไขยาก, ตรรกะหลัก)
หากคุณเป็นนักพัฒนาทั่วไป แนวคิดนี้สำคัญยิ่งกว่า เพราะคุณไม่ได้มีงบประมาณของบริษัทใหญ่ คุณต้องทำให้ต้นทุนสามารถควบคุมได้ เพื่อให้คุณสามารถรันได้นาน
ต้องการความสะดวกสบายมากขึ้นหรือไม่? มอบหมายให้ agent เขียน "PRD"
ralph-tui มีการออกแบบที่ฉันชอบ: รองรับ skills (พูดง่ายๆ คือชุดคำสั่งเสริมของ agent)
วิธีการติดตั้งอย่างเป็นทางการคือใช้ add-skill:
bunx add-skill subsy/ralph-tui --all หรือติดตั้งให้กับ agent ที่ระบุ เช่น claude-code:
bunx add-skill subsy/ralph-tui -a claude-code -g -y หลังจากติดตั้งแล้ว คุณสามารถใช้ slash command ในการสนทนาของ agent ได้:
/ralph-tui-prd /ralph-tui-create-json /ralph-tui-create-beads สิ่งนี้คล้ายกับการติดตั้งปลั๊กอินใน IDE แต่ปลั๊กอินนี้มีไว้สำหรับ agent ความหมายของมันคือการลดเวลาในการ "ขนส่งความต้องการด้วยตนเอง" ทำให้ความต้องการ → งาน → การดำเนินการ เหมือนสายการผลิตมากขึ้น
เมื่อไหร่ควรใช้? เมื่อไหร่ไม่ควรใช้?ฉันไม่ค่อยชอบเรื่องเล่าที่ว่า "ทุกอย่างสามารถทำได้ด้วย AI" เพราะมันง่ายต่อการทำให้คนเข้าใจผิด เครื่องมือก็คือเครื่องมือ มันมีค่าเมื่ออยู่ในสถานการณ์ที่เหมาะสม
สถานการณ์ที่เหมาะกับการใช้ ralph-tui
คุณมีงานประเภทนี้มากมาย:
- เพิ่มการทดสอบ (โดยเฉพาะโครงการเก่า)
- แก้ไข lint / format
- ปรับโครงสร้างทีละน้อย (รวมโค้ดที่ซ้ำกัน)
- เพิ่มประเภทข้อมูลจำนวนมาก, เพิ่มขอบเขต
- แยกความต้องการแล้วค่อยๆ ดำเนินการตามคิวงาน
งานเหล่านี้มีจุดร่วมกันคือ: มีงานเยอะ, ทำซ้ำสูง, ตรวจสอบได้, สามารถดำเนินการซ้ำๆ ได้
สถานการณ์ที่ไม่เหมาะกับการใช้ ralph-tui อย่างหนัก
สิ่งที่คุณกำลังทำคือสิ่งเหล่านี้:
- ปรับโครงสร้างครั้งใหญ่แบบครั้งเดียว, มาตรฐานการยอมรับไม่ชัดเจน
- ความต้องการนั้นคลุมเครือ, อาศัยความรู้ที่ซ่อนอยู่ในหัวของคุณ
- ต้องการการสื่อสาร/ยืนยันข้ามทีมจำนวนมาก
- ต้องการให้คุณตัดสินใจเกี่ยวกับผลิตภัณฑ์
สำหรับงานประเภทนี้ agent loop จะขยายความสับสนเท่านั้น
มันแตกต่างจาก ralph-loop (ralph-claude-code) อย่างไร?
ralph-claude-code เหมือนกับ "ส่วนเสริมการขับขี่อัตโนมัติของ Claude Code" มากกว่า: สคริปต์ดึงมันขึ้นมา, รันลูป, การตรวจจับการออก, การจำกัดอัตรา, ตัวตัดวงจร ทั้งหมดนี้ได้รับการสนับสนุน คุณต้องการ "ความเร็ว" มันก็จะเร็ว
ralph-tui เหมือนกับ "คอนโซลควบคุมทางวิศวกรรมของ agent loop" มากกว่า: มันไม่ได้เชื่อมติดกับโมเดลใดโมเดลหนึ่ง, หรือระบบงานใดระบบหนึ่ง สิ่งที่มันต้องการแก้ไขคือปัญหาทางวิศวกรรมเหล่านี้: "รันในระยะยาว, สังเกตได้, ควบคุมได้, กู้คืนได้, ควบคุมจากระยะไกลได้"
ดังนั้นคุณถามฉันว่าจะเลือกอะไร?
- คุณเป็นผู้ใช้ Claude Code อยู่แล้ว, ต้องการให้มันทำงานอย่างรวดเร็ว → ralph-claude-code
- คุณต้องการเชื่อมต่อโมเดลที่แตกต่างกัน, ต้องการประหยัดเงิน, ต้องการจัดการ loop เป็นบริการ → ralph-tui
สุดท้าย: อย่าปล่อยให้มันใช้คลังของคุณเป็นห้องปฏิบัติการ
ฉันมีกฎเหล็กสองสามข้อสำหรับการรัน agent loop ของตัวเอง, เขียนไว้ที่นี่เพื่อให้คุณทำตาม, โอกาสที่จะเกิดข้อผิดพลาดจะน้อยลงมาก:
- รันบน branch, อย่าเล่นบน main
- ครั้งแรกที่รันให้เพิ่ม --iterations เสมอ, ยืนยันทีละน้อยก่อนว่ามันจะไม่บ้า
- งานต้องตรวจสอบได้: ไม่ว่าจะรันการทดสอบได้, หรือรัน lint ได้, หรือเปรียบเทียบไฟล์เอาต์พุตได้
- คุณต้องเรียนรู้ที่จะหยุด: เมื่อเห็นว่ามันเริ่มวนเป็นวงกลม, การหยุดชั่วคราวฉลาดกว่าการเผาเงินต่อไป
- โมเดลราคาถูกทำงานหยาบ, โมเดลราคาแพงทำงานสำคัญ: ต้นทุนมาจากการดำเนินการ, ไม่ใช่จากการอธิษฐานที่อยู่โปรเจกต์: https://github.com/subsy/ralph-tui





