fx: เอเจนต์เขียนโค้ดของ Vercel ที่เขียนด้วย Zig ทั้งตัวเหลือ 7.8 MB — สวนทางกับทุกคนที่กำลังยัด IDE ลงเทอร์มินัล
ในขณะที่เอเจนต์เขียนโค้ดเกือบทุกตัวในตลาดกำลังโตขึ้นเรื่อย ๆ — มี TUI เต็มจอ มีแผงข้าง มีระบบปลั๊กอิน มี runtime ของ Node.js ติดมาด้วยเป็นร้อยเมกะไบต์ — Vercel Labs เลือกเดินสวนทาง ปล่อย fx เอเจนต์เขียนโค้ดที่นิยามตัวเองสั้น ๆ ว่า “Tiny, open, embeddable, native coding agent” เขียนด้วยภาษา Zig ทั้งตัว คอมไพล์ออกมาเป็นไบนารีเดียวขนาด 7.8 MiB ไม่ต้องมี Node.js ไม่ต้องมี Python ไม่ต้องมีอะไรเลย
รุ่นแรก v0.0.1 ออกเมื่อ 17 สิงหาคม 2026 และไล่ถึง v0.0.4 ในวันที่ 19 ภายในสามวัน โพสต์บน Hacker News เมื่อ 18 ส.ค. ได้ 282 คะแนน ปัจจุบันมี 1.4k ดาว 130 fork และคอมมิตไปแล้วราว 446 ครั้ง ภายใต้ไลเซนส์ Apache-2.0
ป้ายเตือนบน README ยังเขียนตัวใหญ่ว่า Experimental — use at your own risk ซึ่งควรอ่านตามตัวอักษร นี่ไม่ใช่ของที่จะเอาไปวางใน CI ของทีมพรุ่งนี้
”ใกล้เคียง Unix shell มากกว่า IDE ในเทอร์มินัล”
ประโยคที่อธิบายตัวตนของ fx ได้ดีที่สุดอยู่ใน README เอง: มันตั้งใจให้ “รู้สึกใกล้เคียงกับ Unix shell มากกว่าจะเป็น TUI แบบ ‘IDE ยัดลงเทอร์มินัล’ ที่หนักอึ้ง”
ในทางปฏิบัติแปลว่าอินเทอร์เฟซเป็นบรรทัดคำสั่งตรง ๆ อ่านง่าย ต่อท่อได้ ไม่แย่งจอทั้งหน้า ชุดคำสั่งหลักมีแค่ไม่กี่ตัว:
curl -fsSL https://fx.sh/setup.sh | bash # ติดตั้ง
fx login # ยืนยันตัวตนผ่าน Vercel
fx setup # ใส่ API key ของ AI Gateway
fx # เปิดเซสชันโต้ตอบในไดเรกทอรีปัจจุบัน
fx ask "แก้บั๊กนี้ให้ที" # ยิงคำขอเดียวแบบไม่โต้ตอบ
fx sessions # ดูและกลับเข้าเซสชันเดิม
แม้จะเล็ก แต่ความสามารถระดับเอเจนต์สมัยใหม่มาครบผิดคาด — skills (ชุดคำสั่งที่นำกลับมาใช้ซ้ำได้), MCP (ต่อเครื่องมือภายนอกผ่าน Model Context Protocol), subagents (แตกงานย่อยให้เอเจนต์ตัวอื่นทำ) และ ACP (Agent Client Protocol) สำหรับให้ editor ต่อเข้ามาได้ พูดง่าย ๆ คือมันไม่ได้เล็กเพราะตัดฟีเจอร์ทิ้ง แต่เล็กเพราะเลือกภาษาและวิธี implement ต่างออกไป
ระบบสิทธิ์เริ่มที่โหมด auto — งานพัฒนาทั่วไปที่ระบบเข้าใจแล้วรันได้เลย ส่วนงานที่เข้าข่ายอ่อนไหวและยังไม่มีกฎรองรับจะถูกส่งเข้ารอบตรวจอัตโนมัติหนึ่งครั้งแบบมีขอบเขต ผู้ใช้ตั้งกฎถาวรเองได้ด้วย /permissions remember ซึ่งเป็นการออกแบบที่สมเหตุสมผลกว่าโมเดล “ถามทุกครั้ง” ที่คนกดผ่านจนชินโดยไม่อ่าน
ทำไมต้อง Zig — และทำไมมันถึงสำคัญกว่าที่ดูเหมือน
การเลือก Zig ไม่ใช่เรื่องรสนิยม มันตอบโจทย์สองข้อที่เอเจนต์ที่เขียนด้วย TypeScript ตอบไม่ได้
ข้อแรก — การฝังลงระบบอื่น fx มี SDK แบบ WebAssembly (ยังทดลอง) ที่เปิดฟังก์ชันอย่าง createFxAgent() และ createFxTerminal() ให้เรียกจาก JavaScript ได้ ซึ่งแปลว่าเอเจนต์ตัวเดียวกันนี้รันได้ทั้งบนเครื่องผู้ใช้ในฐานะ CLI, บนเซิร์ฟเวอร์, และ ในเบราว์เซอร์ โดยไม่ต้องเขียนใหม่ นี่คือเหตุผลที่คำว่า embeddable อยู่ในคำนิยามของตัวเอง — Vercel ไม่ได้มอง fx เป็นแค่เครื่องมือปลายทาง แต่เป็นชิ้นส่วนที่คนอื่นเอาไปประกอบต่อ
ข้อสอง — ต้นทุนต่อการเรียกใช้ ไบนารีเดี่ยว 7.8 MiB ที่ไม่ต้องมี runtime แปลว่าคุณยัดมันลง container ที่บางมาก, ลง CI runner, ลง sandbox ที่รันครั้งละไม่กี่วินาที, หรือลง edge function ได้โดยไม่ต้องคิดเรื่องเวลา cold start ในโลกที่กำลังเคลื่อนไปทางรันเอเจนต์หลายสิบตัวขนานกัน (อย่างที่ Cursor เพิ่งให้ subagent แต่ละตัวมีเครื่องเสมือนของตัวเองเมื่อวานนี้) ต้นทุนของการ “จุดเอเจนต์ขึ้นมาหนึ่งตัว” กลายเป็นตัวเลขที่มีความหมายทางเศรษฐศาสตร์ ไม่ใช่แค่ความสวยงามทางวิศวกรรม
README ยังระบุว่าระบบพรอมป์และชุดเครื่องมือถูกออกแบบให้เล็กที่สุดเท่าที่จำเป็น ซึ่งเป็นอีกด้านของสมการเดียวกัน — system prompt ที่สั้นกว่าคือค่า input token ที่ถูกกว่าในทุก ๆ เทิร์น และเมื่อคูณด้วยจำนวนเทิร์นของเซสชัน agentic ที่ยาวหลายร้อยรอบ ส่วนต่างนี้ไม่เล็ก
ส่วนคนที่จะคอมไพล์เอง ต้องใช้ Zig 0.16.0 ขึ้นไป และรันเทสต์ด้วย zig build test
จุดที่ควรอ่านให้ออก: มันเป็นของ Vercel
fx login ยืนยันตัวตนผ่าน Vercel และ fx setup ให้ใส่คีย์ของ AI Gateway ซึ่งเป็นบริการเกตเวย์โมเดลของ Vercel เอง โค้ดเป็น Apache-2.0 จริง และตัวเอเจนต์เป็น model-agnostic รองรับทั้ง inference บนเครื่องและบนคลาวด์จริงตามที่โฆษณา — แต่ เส้นทางที่ราบรื่นที่สุด (happy path) พาไปที่บริการของ Vercel
รูปแบบนี้ไม่ใช่เรื่องใหม่และก็ไม่ใช่เรื่องเลวร้าย มันคือแบบเดียวกับที่ผู้ให้บริการโครงสร้างพื้นฐานทุกเจ้าทำ: แจกเครื่องมือฟรีที่ดีจริง แล้วให้ค่า default พาผู้ใช้กลับมาที่บิลของตัวเอง สิ่งที่ควรทำคือรู้ตัวไว้ตั้งแต่ต้น แล้วตั้งค่าให้ชี้ไปที่ผู้ให้บริการที่คุณเลือกเองตั้งแต่วันแรกถ้านั่นคือสิ่งที่คุณต้องการ
มุมมอง AI Curator
fx เป็นเดิมพันที่ชัดเจนว่า “เอเจนต์” กำลังจะกลายเป็นชิ้นส่วนพื้นฐาน ไม่ใช่แอปพลิเคชัน
ลองเทียบภาพสองแบบ แบบแรกคือสิ่งที่เราคุ้นเคย — เอเจนต์เป็นผลิตภัณฑ์ที่มนุษย์เปิดขึ้นมาใช้ มี UI สวย มีฟีเจอร์เยอะ ขนาดไม่สำคัญเพราะติดตั้งครั้งเดียวใช้ทั้งวัน แบบที่สองคือสิ่งที่ fx เดิมพัน — เอเจนต์เป็นสิ่งที่ โปรแกรมอื่นเรียกใช้ นับพันครั้งต่อวัน ในที่ที่ไม่มีมนุษย์นั่งดู และเมื่อภาพที่สองเป็นจริง ตัวชี้วัดจะพลิกทั้งชุด: ขนาดไบนารี เวลาเริ่มทำงาน หน่วยความจำ และจำนวนโทเคนของ system prompt กลายเป็นเรื่องหลัก ส่วน TUI สวย ๆ กลายเป็นภาระ
ผมคิดว่านี่คือทิศทางที่ถูก และมันสอดคล้องกับทุกอย่างที่เราเห็นตลอดเดือนนี้ — จาก subagent ที่มีเครื่องเสมือนของตัวเองไปจนถึงเอเจนต์ที่ตื่นขึ้นมาทำงานเองเมื่อมี PR เข้า สิ่งที่ทุกอันมีร่วมกันคือ สัดส่วนของ “การรันเอเจนต์” ที่ไม่มีมนุษย์อยู่ในลูปกำลังเพิ่มขึ้นเร็วมาก และเครื่องมือที่ออกแบบมาสำหรับมนุษย์นั่งดูจะไม่เหมาะกับโลกนั้น
แต่ต้องพูดให้ครบ: v0.0.4 ที่อายุสามวันและติดป้าย experimental คือ v0.0.4 ที่อายุสามวัน ความสามารถที่ README ระบุไว้ยังไม่ได้ผ่านการใช้งานหนักในสนามจริง และ Vercel Labs คือแล็บทดลอง ไม่ใช่ทีมผลิตภัณฑ์ที่การันตีอายุการดูแล — ประวัติของโปรเจกต์ในโฟลเดอร์ labs ของบริษัทเทคทุกเจ้ามีทั้งของที่กลายเป็นมาตรฐานและของที่เงียบหายไปใน 6 เดือน
สำหรับนักพัฒนาไทย ผมคิดว่ามุมที่ควรสนใจที่สุดไม่ใช่ “ควรเปลี่ยนมาใช้ fx ไหม” (คำตอบตอนนี้คือยัง) แต่คือ ตัวเลข 7.8 MiB ที่ไม่ต้องมี runtime นั้นเปิดอะไรได้บ้าง ทีมที่รันงานบนเซิร์ฟเวอร์เล็ก ๆ ในประเทศ หรือบนกล่อง edge หน้างาน หรือใน container ที่ต้องเบาที่สุดเพราะจ่ายค่า egress กับค่า vCPU เป็นบาท ไม่ใช่ดอลลาร์ — ข้อจำกัดด้านทรัพยากรของคุณคือสิ่งที่ fx ออกแบบมาเพื่อมันพอดี และถ้าจับคู่กับโมเดลโอเพนเวตที่รันบนเครื่องตัวเอง (เช่นไฟล์ GGUF ขนาด 6.2GB ที่ Unsloth เพิ่งปล่อยวันนี้) คุณจะได้ระบบเอเจนต์ที่รันได้ทั้งชุดโดยไม่ต้องต่อออกนอกประเทศเลย — ซึ่งเป็นสถาปัตยกรรมที่หลายองค์กรไทยต้องการด้วยเหตุผลด้าน PDPA อยู่แล้ว แต่ที่ผ่านมายังหาชิ้นส่วนที่เบาพอมาประกอบไม่ได้
แหล่งข่าว
อ่านเพิ่มในหมวด เครื่องมือนักพัฒนา
Betelgeuse รัน Qwen3.8 Flash Next ขนาด 68GB บน RTX 3060 กับแรม 16GB ส่วน Basalt วัดให้เห็นว่าเอนจินที่เร่งด้วยแฟล็กลัดทำให้โมเดลลืมของ
Betelgeuse ฟอร์ก llama.cpp ที่เปิดเมื่อ 31 ต.ค. ดึง expert จาก NVMe เข้า VRAM ตามต้องการ อ้าง 22 tok/s แบบไม่ทิ้ง expert แต่ README เตือนเองว่ายังทดลองและตัวเลขมาจากคนละรอบ วันเดียวกันผู้พัฒนา Basalt เผยผลวัดว่าแฟล็กเร่งความเร็วทำคุณภาพ Q8 ตกไปใกล้ Q2
กฎห้ามโคลนเกมของ Claude Code เริ่มกระทบงานจริง บริษัทรับทำเกมกระดานร้องงานลูกค้าหยุด แต่รายงานหลายชิ้นปนกับตัวกรองไซเบอร์คนละเรื่อง
ต่อจากที่เราพบกฎนี้ในไบนารี Claude Code ผู้ใช้เริ่มรายงานว่างานเชิงพาณิชย์ถูกปฏิเสธ และ Tom's Hardware กับ Mashable หยิบไปรายงาน แต่เมื่อไล่ issue ที่อ้างถึง พบว่าหลายรายการเกิดก่อนกฎจะมา จึงน่าจะเป็นตัวกรองด้านไซเบอร์ ส่วน Anthropic ยังไม่ชี้แจง
Claude Code ส่ง transcript ของ background agent ให้โมเดลทุก ~30 วินาทีเพื่อเขียนสถานะ 3–5 คำ ผู้วัดรายงานกินราว 16% และยังปิดแบบทางการไม่ได้
รายงานอิสระพบว่าฟีเจอร์ agent_summary ของ Claude Code ส่ง transcript เต็มของ background agent ไปถามสถานะทุก ~30 วินาที คิดเป็น 16.4% ของค่าใช้จ่ายในระบบของผู้วัด Issue เปิดมาตั้งแต่ ส.ค. ยังไม่มีสวิตช์ปิดที่รองรับ เราตรวจพบโค้ดนี้ใน 2.1.314 และพบกฎใหม่เรื่องเกมที่ไม่อยู่ใน changelog