7 คะแนน โดย GN⁺ 2026-01-29 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • เบราว์เซอร์ที่เรนเดอร์ HTML และ CSS ได้ ถูกสร้างขึ้นโดยคนเพียงหนึ่งคนกับ LLM เอเจนต์หนึ่งตัวด้วย Rust ภายในเวลาแค่ 3 วัน
  • โปรเจกต์นี้เสร็จสมบูรณ์ด้วยโค้ด ราว 20,150 บรรทัด และมีฟังก์ชันพื้นฐานอย่างการเลื่อนหน้า, ปุ่มย้อนกลับ และโหมด headless
  • ออกแบบให้ทำงานได้บน Windows, macOS และ Linux โดยไม่ใช้ไลบรารี Rust ภายนอก
  • กระบวนการพัฒนาดำเนินไปในรูปแบบ การทำงานร่วมกับ Codex เอเจนต์ โดยมนุษย์รับหน้าที่ประสานงานและตรวจสอบ ส่วนเอเจนต์เป็นผู้เขียนโค้ด
  • ท้ายที่สุด นี่เป็นกรณีศึกษาที่แสดงให้เห็นว่า การจับคู่ ‘คนหนึ่งคน + เอเจนต์หนึ่งตัว’ มีประสิทธิภาพกว่าการใช้หลายเอเจนต์

ภาพรวมของโปรเจกต์

  • เป้าหมายคือการสร้าง เบราว์เซอร์พื้นฐานที่สามารถเรนเดอร์ HTML และ CSS ได้ ขึ้นมาใหม่ทั้งหมด
    • ไม่รองรับ JavaScript
    • ผู้พัฒนาเริ่มต้นจาก “ทำเอาสนุก” และทำงานร่วมกับ LLM เอเจนต์ (Codex)
  • ตั้งเงื่อนไขไว้ว่า ต้องเสร็จภายใน 3 วัน, ห้ามพึ่งพา Rust dependency ภายนอก, และ ต้องรองรับ 3 ระบบปฏิบัติการหลัก
  • เบราว์เซอร์มี เรนเดอริงเอนจินของตัวเอง พร้อมฟีเจอร์จับภาพหน้าจอ, การคลิกลิงก์ และการทดสอบแบบ regression

Day 1 – การพัฒนาเริ่มต้น

  • เริ่มจากการเรนเดอร์ “Hello World” แล้วเพิ่ม การจัดการแท็กซ้อนกัน และ ฟังก์ชันจับภาพหน้าจอ
  • กำหนดสเปก HTML/CSS และเพิ่มฟังก์ชันเปรียบเทียบภาพสำหรับ การทดสอบ E2E
  • ภายในวันเดียวไปถึงระดับที่สามารถ ดึงเว็บไซต์ด้วย X11 และ cURL แล้วเรนเดอร์ได้
    • โค้ดเบสมีประมาณ 7,500 บรรทัด และทุกไฟล์มีขนาดไม่เกิน 1,000 บรรทัด

Day 2 – ขยายฟังก์ชัน

  • เพิ่มโหมด --headless เพื่อแก้ปัญหาหน้าต่างถูกเปิดขึ้นระหว่างการทดสอบ
  • ปรับปรุง การปรับขนาดหน้าต่าง, ความเข้ากันได้, ประสิทธิภาพ และการเรนเดอร์ฟอนต์
  • เวิร์กโฟลว์คือการแชร์ภาพหน้าจอของเว็บไซต์ แล้วให้ Codex สร้างผลลัพธ์นั้นขึ้นมาใหม่
    • โค้ดส่วนใหญ่เขียนโดยเอเจนต์ ส่วนมนุษย์รับหน้าที่ตรวจทานและอนุมัติ

Day 3~4 – ทำให้เสร็จสมบูรณ์และรองรับข้ามแพลตฟอร์ม

  • เพิ่มฟังก์ชันสำคัญของเบราว์เซอร์ เช่น การเลื่อนหน้า, debug log, ปุ่มย้อนกลับ
  • รองรับ macOS และ Windows พร้อมผ่านการทดสอบ
  • เสร็จสิ้น การรวม CI และรีลีสบิลด์ โดยใช้เวลาพัฒนารวมประมาณ 72 ชั่วโมง

ผลลัพธ์และสถิติโค้ด

  • โค้ดเบสสุดท้ายมีขนาด ราว 20,150 บรรทัด ใน 72 ไฟล์
  • ไฟล์หลักประกอบด้วยโมดูลอย่าง layout, style, platform, browser เป็นต้น
  • Cargo.lock ว่างเปล่า หมายความว่าสามารถรันได้แบบอิสระเต็มรูปแบบโดยไม่ต้องใช้ Rust package ภายนอก
  • สามารถดาวน์โหลด ไบนารีที่สร้างด้วย CI และซอร์สโค้ด ได้โดยตรงจาก GitHub

บทเรียนสำคัญ

  • การจับคู่คนหนึ่งคน + เอเจนต์หนึ่งตัว มีประสิทธิภาพมากกว่าการใช้เอเจนต์นับพันตัว
  • เอเจนต์เดี่ยวสามารถทำงานกับโค้ดเบสเดียวเป็นเวลานานและสร้างความคืบหน้าที่จับต้องได้
  • มีความเป็นไปได้ที่จะขยายสู่รูปแบบที่หลายคนต่างมีเอเจนต์ของตัวเอง
  • การชะลอความเร็วลงกลับอาจนำไปสู่ผลลัพธ์ที่เร็วกว่าและดีกว่า
  • บทบาทของมนุษย์ที่ควบคุมเอเจนต์ อาจสำคัญกว่าการออกแบบระบบเสียอีก
  • โดยสรุป กรณีนี้แสดงให้เห็นว่า สำหรับคำถามที่ว่า “ถ้าใส่หลายเอเจนต์เข้าไป การพัฒนาจะเร็วขึ้นไหม?”
    การทำงานร่วมกันระหว่างมนุษย์หนึ่งคนกับเอเจนต์หนึ่งตัวอาจเป็นแนวทางที่ใช้งานได้จริงและมีประสิทธิภาพมากกว่า

4 ความคิดเห็น

 
pkj3186 2026-01-29

ผม/ฉันอาจจะไม่ค่อยรู้เท่าไหร่ เลยสงสัยว่าที่ในความเห็นบน Hacker News พูดถึง บล็อกของ simon กันบ่อย ๆ นี่ มันเป็นบล็อกเกี่ยวกับอะไรกันเหรอครับ/คะ...?

 
laeyoung 2026-01-29

เหตุผลที่โพสต์บล็อกของ Simon Willison ถูกพูดถึงบน Hacker News บ่อยมาก น่าจะเป็นเพราะ

  1. เขาน่าจะมีเหตุผลที่ทำให้เขาเขียนบทความเกี่ยวกับ AI ได้ดี รวดเร็ว และออกมาเยอะมาก อีกอย่าง การวาด “นกกระทุงขี่จักรยาน” ที่มักใช้กันเวลาเทสต์ประสิทธิภาพ AI ก็ดูเหมือนว่าลุงคนนี้จะเป็นคนทำก่อนด้วย (https://simonwillison.net/search/?q=pelican)
  2. เขาเป็นคนสร้าง Django เลยมีชื่อเสียงเป็นที่รู้จักอยู่แล้วด้วยครับ
 
qyurila 2026-01-29

น่าจะเป็นบล็อกที่ได้อันดับ 1 ในบรรดา บล็อกที่ได้รับความนิยมมากที่สุดบน Hacker News ในปี 2025 เลยครับ ทั้งชื่อเสียงก็มีอยู่แล้ว และจำนวนบทความที่เผยแพร่ก็เยอะมากด้วย ดังนั้นในมุมของผู้ใช้ Hacker News ทั่วไป มันจึงน่าจะเป็นบล็อกที่ถูกเข้าไปดูบ่อยที่สุด และเลยถูกมองเป็นตัวชี้วัดไปโดยธรรมชาติ

 
GN⁺ 2026-01-29
ความคิดเห็นบน Hacker News
  • คิดว่านี่เป็นเดโมเบราว์เซอร์ที่สร้างโค้ดได้ดีกว่า FastRender ของ Cursor มาก
    มันเล็กกว่ามาก อยู่ที่ราว 20,000 บรรทัดของ Rust ใช้ เฉพาะไลบรารีของระบบ สำหรับการเรนเดอร์ภาพและข้อความ และโค้ดก็อ่านง่าย
    ตัวอย่างเช่น ถ้าดู โค้ด implementation ของ flexbox ก็จะเห็นว่าชัดเจน
    เขายังโพสต์ ภาพหน้าจอ ที่เรนเดอร์บล็อกของฉัน ซึ่งจัดการ CSS gradient และไอคอน SVG ได้ดี แต่ล้มเหลวกับ PNG
    เดิมทีฉันคิดว่าเบราว์เซอร์เรนเดอร์ HTML+CSS เป็นโจทย์ที่เหมาะอย่างยิ่งสำหรับการสาธิตเอเจนต์แบบขนาน แต่ก็น่าทึ่งที่แค่ coding agent ตัวเดียวก็ทำได้

    • ในมุมมองวิศวกรรม ฉันคิดว่าการออกแบบนี้ สมบูรณ์กว่า เบราว์เซอร์ของ Cursor มาก
      สิ่งสำคัญไม่ใช่แค่ใช้โทเคนเยอะ แต่คือการ ใช้งานเอเจนต์อย่างมีประสิทธิภาพ
      ฉันเองก็เคยสร้างโปรเจ็กต์หลายอันแล้วปล่อยทิ้งไว้หลายวันเหมือนกัน เพราะเอเจนต์ทำแค่ตามที่สั่งโดยไม่มีฟีดแบ็ก ถ้าเริ่มไปผิดทางก็ยิ่งขุดหลุมลึกกว่าเดิม
    • ผมมองว่าความร่วมมือระหว่างมนุษย์กับเอเจนต์คือ ความต่างที่ชี้ขาด
      ต่อให้ Claude หลงไปคนละทาง ถ้ามี โครงสร้างเอเจนต์ ที่ถูกต้องก็ยังดึงกลับมาได้
      ตอนนี้ผมกำลังทดลองแยกเอเจนต์เป็นผู้ประเมิน นักวิจัย และผู้ลงมือทำ
      ให้มันขยายการทดสอบตามคะแนนหรือสืบหาสาเหตุที่ล้มเหลว และถ้าไม่มีการปรับปรุงก็ทิ้ง commit นั้นไป
      โครงสร้างแบบนี้เอื้อต่อ การควบคุมคุณภาพโค้ด มากกว่าเยอะ
      ในยุคที่โค้ดมีต้นทุนต่ำและทิ้งได้ เวิร์กโฟลว์เองก็ต้องเปลี่ยนไป
    • น่าประทับใจที่ embedding-shapes ลงมือทำสิ่งนี้ขึ้นมาด้วยตัวเองโดยตรง
      มันให้ความรู้สึกเหมือนเรื่อง ‘David vs Goliath’ ที่ 1 คน + 1 เอเจนต์เอาชนะเบราว์เซอร์มูลค่า 5 ล้านดอลลาร์และ 1.6 ล้าน LOC ได้
      AI ก็ยังคงเป็น กล่องดำ อยู่ดี ทุกคนยังอยู่ในช่วงทดลองและหาทิศทางกันไป
      ปี 2026 เพิ่งผ่านไปแค่เดือนเดียว น่าสนใจว่าเราจะได้เห็นการทดลองอะไรอีกต่อจากนี้
      น่าจะสนุกถ้า Simon รีวิวเธรดทำนายปี 2026 ของ HN เป็นระยะๆ
  • เขาตั้งกติกาว่าจะให้เวลาจำกัด 3 วัน และต้องรองรับ X11/Windows/macOS โดย ไม่ใช้ Rust third-party crate ใช้แค่ไลบรารีพื้นฐานของ OS
    สุดท้ายทำเสร็จที่ประมาณ 20,000 LOC โดยในนั้น 14,000 บรรทัดเป็นเอนจิน และ 6,000 บรรทัดเป็นโค้ดรองรับแพลตฟอร์ม
    มีการเปิดเผย ซอร์สโค้ดและไบนารี แล้ว

    • ตอนที่ผมเคยมีส่วนร่วมกับ KHTML/konqueror เมื่อ 20 ปีก่อน แค่ทำการเรนเดอร์พื้นฐานก็ใช้เวลาหลายเดือนแล้ว
      ตอนนี้มี machine-readable test suite เลยทำงานได้มีประสิทธิภาพกว่ามาก
      เมื่อก่อนพฤติกรรมของ IE แทบจะเป็นมาตรฐานโดยพฤตินัย แต่ตอนนี้กูเกิล แอปเปิล และอีกหลายเจ้ามีส่วนร่วมในการทำมาตรฐาน จึงดีขึ้นมาก
    • อยากรู้ว่าใช้โมเดลอะไร และ ค่าใช้จ่ายด้านโทเคน เท่าไร
    • ข้อจำกัดที่ตั้งไว้ยอดเยี่ยมมาก
  • นอกเหนือจากฟีเจอร์แล้ว ผมสงสัยเรื่อง การตรวจสอบความปลอดภัย ของโค้ดเบสแบบนี้
    Rust น่าจะช่วยได้ แต่ก็ไม่แน่ใจว่าการรับประกันของภาษาเพียงอย่างเดียวจะเพียงพอไหม

    • ไม่ได้คำนึงถึงความปลอดภัยเลย ถ้าเปิดเว็บไซต์อะไรก็ได้โดยไม่มี sandbox ก็อันตราย
      Rust ป้องกันได้แค่ข้อผิดพลาดหน่วยความจำพื้นฐาน แต่ไม่ได้กันเรื่องอย่างการเข้าถึงไฟล์ในเครื่อง
      ถึงจะไม่มี JS engine เลยทำให้ data exfiltration ยาก แต่ถ้าตรวจสอบจริงจังก็น่าจะเจอ ช่องโหว่ร้ายแรง หลายจุด
  • ชุมชนรอ browserBench กันมานาน และดีใจที่ในที่สุดก็เริ่มต้นเสียที
    เบราว์เซอร์เป็นหนึ่งในซอฟต์แวร์ที่ซับซ้อนที่สุด ดังนั้นความพยายามแบบนี้จะกลายเป็น จุดอ้างอิงสำหรับประเมินขีดจำกัด ได้

  • ยังนึกภาพไม่ออกว่าจะสร้างเบราว์เซอร์ด้วย 20,000 บรรทัดได้อย่างไร
    แค่ zlib ก็ 12,000 บรรทัดแล้ว เลยรู้สึกเหมือนน่าจะมีอะไรขาดหายไป
    เลยสงสัยว่ามันแค่เรียกใช้การเรนเดอร์ของ OS หรือเปล่า

    • บน Linux มันลิงก์กับ ไลบรารีแบบไดนามิก 78 ตัว สำหรับ X11, glib, ฟอร์แมตกราฟิก, การเข้ารหัส และอื่นๆ
    • ไม่มี Rust dependency แต่ใช้เฟรมเวิร์กพื้นฐานของ OS
      README ระบุไว้อย่างชัดเจนว่าใช้ไลบรารีใดบ้าง
  • ผมลองรันดูแล้ว การเรนเดอร์ค่อนข้าง สับสน
    สีลิงก์กับขีดเส้นใต้ไม่สม่ำเสมอ และบน Windows ปุ่มย้อนกลับก็ไม่ทำงาน
    ถึงอย่างนั้นก็ยังเรนเดอร์หน้าแรกของ HN หรือบล็อกของ Simon ได้ค่อนข้างดี

    • เบราว์เซอร์นี้ไม่ใช่ผลิตภัณฑ์อิสระ แต่เป็น โปรเจ็กต์ตอบโต้ ต่อ บทความ scaling-agents ของ Cursor
      เป้าหมายคือทำฟังก์ชันใกล้เคียงกันแต่ใช้ LOC น้อยกว่า
      มันไม่มีสไตล์ชีตเริ่มต้น สีลิงก์เลยไม่สม่ำเสมอ
      บน Windows 11 ปุ่มย้อนกลับทำงานได้ ถ้าคุณใช้ Windows 10 นั่นอาจเป็นสาเหตุก็ได้
  • ดูเหมือนว่าการเรนเดอร์บล็อกของ Simon จะกลายเป็น เป้าหมายตัวแทน ของเบราว์เซอร์ AI ไปแล้ว
    แต่ตอนนี้มันยังใกล้เคียงกับ renderer มากกว่าจะเป็นเบราว์เซอร์จริง
    ถ้า AI ไปช่วย เติมเต็ม implementation ของ API ในโปรเจ็กต์อย่าง Servo น่าจะน่าประทับใจกว่า

    • เห็นด้วย อันนี้ยังไม่ถึงขั้นเรียกว่าเบราว์เซอร์ เรนเดอร์แม้แต่ HTML พื้นฐานก็ยังไม่ดี และล่มบ่อย
      ถึงอย่างนั้นก็ยังดีกว่าความพยายามของ Cursor และอย่างน้อยคำว่า “คอมไพล์ได้” ก็ถือเป็นความก้าวหน้าขั้นต่ำ
  • สงสัยว่าถ้าทำคนเดียวจะใช้เวลานานแค่ไหน
    ถ้าอยากเข้าใจความช่วยเหลือจากเอเจนต์ ก็ต้องรู้ว่าในคู่มือที่ให้มันไปนั้นมี ความเชี่ยวชาญเชิงลึก แค่ไหน

    • ถ้าทำคนเดียวน่าจะเป็นไปไม่ได้
      ผมรู้ Rust แต่ไม่รู้ X11 หรือ macOS, Windows API เลย คงเริ่มต้นได้ยากด้วยซ้ำ
      แต่ผมมีประสบการณ์เยอะด้านการทดสอบ อินฟรา และการออกแบบ ซึ่งช่วยมากในการทำงานร่วมกับเอเจนต์
    • ลองคำนวณด้วย เครื่องมือ sloccount แล้ว
      โปรเจ็กต์นี้ตามเกณฑ์ปี 2000 ประเมินได้ที่ 4.58 คน-ปี, 610,000 ดอลลาร์
      ส่วนตามเกณฑ์ปี 2025 อยู่ที่ประมาณ 5.6 ปี, 1.38 ล้านดอลลาร์
  • สิ่งที่ทำให้บทความนี้น่าสนใจไม่ใช่ผลลัพธ์ แต่คือ กระบวนการสร้างและข้อจำกัดที่ตั้งไว้
    บทความส่วนใหญ่มักโฟกัสที่ผลงานหรือผู้เขียน แต่อันนี้ให้ มุมมองเชิงกระบวนการ ที่น่าสนใจ

    • ผมก็เป็นคนหนึ่งที่เคยเขียนเกี่ยวกับ Cursor และยิ่งนานวันก็ยิ่งไม่เข้าใจคำจำกัดความของ “ความสำเร็จ” ของพวกเขา
      เลยรู้สึกว่าการสำรวจว่าจริงๆ แล้วส่วนไหนยาก และกระบวนการไหนที่ผิดพลาด น่าจะมีความหมายมากกว่า
  • เป็นงานที่น่าประทับใจ
    สงสัยว่าถ้าจะทำ Accessibility โดยไม่พึ่ง Rust dependency ต้องทำอย่างไร
    Windows/macOS ทำได้ผ่าน UI Automation และ NSAccessibility แต่บน X11 มีทางเลือกคือ

    1. ทำ AT-SPI ใหม่ผ่าน D-Bus
    2. ใช้ D-Bus C library ที่มีอยู่
    3. ใช้ GTK หรือ Qt