DEV Community

Nokka
Nokka

Posted on AI-assisted

agent ที่รันคำสั่งเองได้ ต่างจากแชตเขียนโค้ดตรงไหน: OpenHands, SWE-agent และ Aider

โดย Nokka (นก-กา) | ตอนที่ 4 จาก 7 ของชุด "สร้างซอฟต์แวร์ด้วย AI" | ตรวจสอบข้อมูล ณ 23 ต.ค. 2026

บทความนี้เขียนโดย AI (deepseek-v4.1-flash · ผู้ให้บริการโมเดล: ollama-cloud) ผ่าน Hermes Agent ภายใต้การควบคุมและตรวจสอบคุณภาพโดยมนุษย์ - Nokka (นก-กา)

ผมเคยนั่งดูคนใช้แชตบอตเขียนโค้ด แล้วพบว่าปัญหาไม่ได้อยู่ที่คุณภาพของโค้ด แต่อยู่ที่คนเขียนต้องเป็นคนรันทุกอย่างเอง

พอ agent รันคำสั่งเองได้ คำถามก็เปลี่ยนจาก "โค้ดนี้ถูกไหม" เป็น "เราจะรู้ได้อย่างไรว่ามันทำอะไรลงไปบ้าง"

บทนี้ผมจะเปิด repo จริงของสามเครื่องมือที่คนพูดถึงบ่อยที่สุด แล้วดูว่าอันไหนให้สิทธิ์ agent แค่ไหน และราคาที่ต้องจ่ายคืออะไร

OpenHands ให้ agent ทำงานในสภาพแวดล้อมที่แยกออกมา

OpenHands คือโปรเจกต์ที่ดาวเยอะที่สุดในกลุ่มนี้ ตัวเลข ณ วันที่ผมตรวจคือ 91,600 ดาว สัญญาอนุญาต MIT และ commit ล่าสุด 23 ต.ค. 2026 [1]

จุดที่ทำให้มันต่างจากแชตคือ agent ไม่ได้ตอบเป็นข้อความ แต่ทำงานในสภาพแวดล้อมที่มีเทอร์มินัลและมีไฟล์ให้แก้ [1]

เมื่อมันอ่านโค้ดแล้วคิดว่าต้องรันเทสต์ มันสั่งรันได้เลย แล้วอ่านผลลัพธ์กลับมาประกอบการตัดสินใจ

นี่คือความหมายของคำว่า agent loop ที่คนพูดถึงกันบ่อย ของจริงคือวงจร เห็นผลลัพธ์ คิด แล้วลงมือซ้ำ จนกว่าจะผ่านเงื่อนไขหรือจนหมดงบ

เรื่องที่ผมเข้าใจผิดตอนแรก

README ระบุทางรันสองแบบ คือใน container และบนเครื่องตรงผ่าน npm [1] ผมเข้าใจผิดตอนแรก ว่ามีทางเดียว

ทั้งสองทางมีอยู่ใน README และผมไม่ได้อ่านเจอถ้อยที่บอกว่าทางไหนเหนือกว่า

การเขียนผิดแบบนี้มีต้นทุน เพราะคนอ่านที่ไม่มี Docker จะปิดบททิ้งทั้งที่ยังมีทางเลือก และคุณไม่ต้องติดตั้ง sandbox ก่อนจึงจะเริ่มอ่านได้

อีกจุดที่ README เตือนเองคือ agent เข้าถึงไฟล์ในเครื่องได้ทั้งหมด ถ้าไม่ใส่ข้อจำกัด

ถ้าคุณให้มันทำงานในโฟลเดอร์โปรเจกต์ ส่วนตัวของคุณ โฟลเดอร์นั้นควรมีเฉพาะสิ่งที่คุณยอมให้มันอ่านและแก้

สถานะที่ต้องระวัง

README ปัจจุบันวางตำแหน่งผลิตภัณฑ์เป็น Agent Canvas และติดป้ายสถานะ beta ไว้ [1] ส่วนรุ่นที่ปล่อยล่าสุดคือ v1.32.0 เมื่อ 23 ต.ค. 2026 [5]

แนวคิดคือทำให้มันเป็นหน้าเดียวที่คุณสั่ง agent หลายเจ้าพร้อมกันได้ เช่น Claude Code, Codex, Gemini, Pi และ OpenCode

ในมุมมองของผม นี่เป็นทิศทางที่ฉลาด เพราะแทนที่จะแข่งกับ agent ทุกเจ้า มันกลายเป็นที่รวมของทุกเจ้า

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

SWE-agent เก่งเรื่องแก้ปัญหาที่มีเทสต์รออยู่

SWE-agent เกิดมาคู่กับชุดทดสอบ SWE-bench และ README ระบุงานที่มันทำได้หลายอย่าง เช่น แก้ issue ใน GitHub repo จริง และค้นหาช่องโหว่ด้านความปลอดภัย [2]

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

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

ผมเปิด README ของ SWE-agent แล้วเจอป้ายที่คนอ่านข้ามกันบ่อย คือข้อความว่าการพัฒนาหลักย้ายไปที่โปรเจกต์ mini-swe-agent แล้ว [2] และ repo ใหม่คือที่ที่ควรเริ่ม [4]

แปลว่าถ้าคุณจะเริ่มใหม่ ควรเริ่มที่ตัวใหม่ ไม่ใช่ตัวที่ยังมีชื่อเสียงจากงานวิจัยเดิม

ตัวเลข ณ วันตรวจคือ 20,615 ดาว MIT commit ล่าสุดบน branch main คือ 16 ก.ค. 2026 และ push ล่าสุด 19 ต.ค. 2026 [2]

Aider แสดง diff ให้ดูก่อน แล้ว commit ให้เอง

Aider ต่างจากสองตัวแรกชัดเจน เพราะมันเป็นเครื่องมือในเทอร์มินัลที่แสดง diff ให้คุณดูทุกครั้ง [3]

คุณสั่งให้มันแก้ไฟล์ มันแสดง diff ให้ดู และ README ระบุว่ามัน commit การเปลี่ยนแปลงให้อัตโนมัติพร้อมข้อความที่อ่านรู้เรื่อง [3]

จุดขายที่ README เน้นคือการผูกกับ git ทำให้ทุกการแก้มีประวัติ และย้อนกลับได้ด้วยเครื่องมือ git ที่คุณคุ้นเคย

ตัวเลขคือ 49,701 ดาว Apache-2.0 และ commit ล่าสุด 22 พ.ค. 2026 [3]

สังเกตว่าห่างจากวันตรวจหลายเดือน นี่ไม่ใช่สัญญาณว่าโปรเจกต์ตาย แต่ว่าไม่ได้เดินเร็วเท่าสองตัวแรก

ผมคิดว่า Aider เหมาะกับคนที่ยังไม่พร้อมปล่อยให้ agent ตัดสินใจแทน และอยากได้เครื่องมือที่คาดเดาพฤติกรรมได้

เทียบกันตรง ๆ ว่าใครให้สิทธิ์อะไร

ผมสรุปจากสิ่งที่ README ของแต่ละโปรเจกต์เขียนไว้ ไม่ได้ทดลองรันทั้งสามตัวในเครื่องนี้

  • OpenHands ให้ agent รันคำสั่งเองในสภาพแวดล้อมแยก และมีทางรันบนเครื่องตรงผ่าน npm [1]
  • SWE-agent เน้นทำงานกับ repo ที่มีเทสต์อยู่แล้ว และมีป้ายบอกว่าพัฒนาหลักย้ายไป mini-swe-agent [2]
  • Aider แสดง diff ให้ดู แล้ว commit อัตโนมัติ โดยใช้ git เป็นเครื่องมือย้อนกลับ [3]

ถ้าจะให้เลือกตามสถานการณ์

  • งานที่ต้องรันคำสั่งหลายขั้นและต้องมี sandbox: OpenHands
  • งานวิจัยหรือ benchmark ที่มีเทสต์ชัด: SWE-agent หรือ mini-swe-agent
  • งานที่คุณอยากคุมทุกบรรทัด: Aider

ส่วนที่ผมยังไม่ได้ทดลองและจะไม่พูดแทน

เครื่องที่ผมใช้อยู่ไม่มี Docker ไม่มีคีย์โมเดลของผู้ให้บริการรายใหญ่ และรันบน sandbox แบบ gVisor จึงทดลอง OpenHands แบบเต็มรูปแบบไม่ได้

ผมจึงไม่เขียนว่ามันเร็วกี่เท่าหรือประหยัดกว่ากี่เปอร์เซ็นต์ เพราะผมไม่มีตัวเลขจากการรันของตัวเอง

ที่ผมยืนยันได้มีสองอย่าง คือถ้อยคำใน README และตัวเลขจาก GitHub API ณ วันที่ตรวจ

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

โครงคำสั่งที่สะท้อนความต่าง

ผมเขียนตัวอย่างสมมติด้านล่างเพื่อให้เห็นความต่างของระดับการควบคุม ไม่ได้คัดลอกจากโปรเจกต์ใด

OpenHands : สั่งงาน -> agent วางแผน -> รันคำสั่ง -> อ่านผล -> วนซ้ำ
SWE-agent : ให้ issue -> agent แก้ -> ตรวจด้วยเทสต์หรือตัววัดผล -> วนจนพอใจหรือหมดเพดาน
Aider     : ให้โจทย์ -> เสนอ diff -> คนกดรับ -> commit
Enter fullscreen mode Exit fullscreen mode

บรรทัดที่มีคำว่าคนกดรับ คือจุดที่ต้นทุนและความเสี่ยงต่างกันมากที่สุด

ในทางปฏิบัติ ทั้งสามตัวมี CLI ให้เรียกจากเทอร์มินัล และ OpenHands ยังมี SDK กับ API สำหรับสั่งงานจากระบบอื่นด้วย [1] ถ้าทีมคุณมี CI อยู่แล้ว การเรียก agent ผ่าน CLI จะต่อเข้ากับไปป์ไลน์เดิมได้ง่ายกว่าการเปิดหน้าเว็บ

เช็กลิสต์ก่อนเลือกใช้ agent ที่รันคำสั่งได้

  1. มีเทสต์ที่เชื่อถือได้หรือยัง ถ้าไม่มี agent จะวนโดยไม่มีเป้า
  2. โฟลเดอร์ที่ให้มันทำงาน มีไฟล์ลับหรือข้อมูลจริงปนอยู่ไหม
  3. ตั้งเพดานจำนวนรอบและเพดานค่าใช้จ่ายไว้หรือยัง
  4. ใครจะอ่าน log หลังมันทำงานจบ
  5. ถ้ามันลบไฟล์ผิด มีทางย้อนกลับไหม

ข้อ 5 สำคัญที่สุดสำหรับผม เพราะ agent ที่รันคำสั่งได้ก็ลบไฟล์ได้เช่นกัน

เรื่องค่าใช้จ่ายขอพูดตรง ๆ ทุกครั้งที่ agent วนอีกรอบ มันจะส่ง prompt ที่ยาวขึ้นเข้า LLM และกิน token เพิ่ม การตั้งเพดานรอบจึงเป็นการคุมค่าใช้จ่ายทางอ้อมที่ดีที่สุด

บทเรียนที่ผมอยากฝากไว้

คำว่า agent ไม่ได้แปลว่าฉลาดขึ้น มันแปลว่าได้รับสิทธิ์มากขึ้น

สิทธิ์ที่มากขึ้นมาพร้อมความรับผิดชอบที่ต้องมีคนถือ และคนนั้นยังเป็นมนุษย์เสมอ

ถ้าคุณอยากลองด้วยตัวเอง เริ่มจาก Aider ในโฟลเดอร์ทดลองที่ไม่มีข้อมูลจริง แล้วค่อยขยับไป OpenHands เมื่อคุณพร้อมเรื่อง sandbox

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

ถ้าคุณลองแล้วเจอพฤติกรรมที่คาดไม่ถึง เขียนเล่าไว้ได้ ผมอ่านทุกข้อความ

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

[1] GitHub, "OpenHands/OpenHands" README, สืบค้น 23 ต.ค. 2026 (MIT · 91,600 ดาว · commit 23 ต.ค. 2026 · ระบุทางรันแบบ local ผ่าน npm และเตือนเรื่องการเข้าถึงไฟล์ · Agent Canvas อยู่ระหว่างพัฒนา). https://github.com/OpenHands/OpenHands

[2] GitHub, "SWE-agent/SWE-agent" README, สืบค้น 23 ต.ค. 2026 (MIT · 20,615 ดาว · commit ล่าสุดบน main 16 ก.ค. 2026 · push ล่าสุด 19 ต.ค. 2026 · มีป้ายแจ้งว่าการพัฒนาหลักย้ายไป mini-swe-agent). https://github.com/SWE-agent/SWE-agent

[3] GitHub, "Aider-AI/aider" README, สืบค้น 23 ต.ค. 2026 (Apache-2.0 · 49,701 ดาว · commit 22 พ.ค. 2026 · เน้นการทำงานในเทอร์มินัลพร้อมผูกกับ git). https://github.com/Aider-AI/aider

[4] GitHub, "SWE-agent/mini-swe-agent" README, สืบค้น 23 ต.ค. 2026 (โปรเจกต์ที่ README ของ SWE-agent ระบุว่าเป็นการพัฒนาหลัก). https://github.com/SWE-agent/mini-swe-agent

[5] GitHub, "OpenHands/OpenHands" releases, สืบค้น 23 ต.ค. 2026 (ใช้ยืนยันสถานะการปล่อยเวอร์ชันล่าสุด). https://github.com/OpenHands/OpenHands/releases

Top comments (0)