การรัน Local Coding Agent บน Mac Mini
ผมใช้ local coding agent สำหรับงานที่มีความเสี่ยงต่ำ โดยมันสามารถจัดการการแก้ไขไฟล์, การแก้ไขเทสต์ (test fixes) และการตรวจสอบการ build นอกจากนี้ยังเขียน Playwright tests, รีวิวโค้ด และรันการ deploy ได้อีกด้วย
การตั้งค่านี้รันบน Mac Mini M4 พร้อม RAM 24 GB ผมไม่ได้ใช้ cloud APIs สำหรับงานเขียนโค้ด แต่จะใช้โมเดลบน cloud ราคาถูกเฉพาะสำหรับการวางแผน (planning) และการกำหนดเส้นทาง (routing) เท่านั้น ส่วนการแก้ไขไฟล์จริง ๆ จะใช้ coding agent ที่ชื่อว่า Pi ซึ่งเชื่อมต่อกับ oMLX ซึ่งเป็น local LLM server
การตั้งค่านี้สามารถใช้งานร่วมกับ agent ใดก็ได้ที่ใช้ OpenAI-compatible API คุณสามารถใช้ Claude Code หรือ Codex ร่วมกับ oMLX server ตัวเดียวกันนี้ได้
ผมใช้โมเดลสองตัวและสลับกันตามลักษณะงาน ข้อจำกัดของ RAM 24 GB ทำให้ผมไม่สามารถรันทั้งสองตัวพร้อมกันได้
- โมเดลเขียนโค้ดหลัก: ระดับ 9B ที่ความเร็ว 20 tokens ต่อวินาที
- โมเดลความเร็วสูง: ระดับ 4B ที่ความเร็ว 27 tokens ต่อวินาที สำหรับการแก้ไขงานด่วน
มีสคริปต์สำหรับสลับโมเดล (swap script) โดยจะย้ายโมเดลหนึ่งออกและนำอีกโมเดลหนึ่งเข้ามาแทนที่ กระบวนการนี้ใช้เวลาเพียง 5 วินาที
Agent สามารถทำงานเหล่านี้ได้:
- แก้ไขไฟล์และทำ refactoring
- เขียนและแก้ไขเทสต์
- ตรวจสอบการ build
- รีวิวโค้ด
- อัปเดตเอกสาร (documentation)
- รันการ deploy
ผมใช้ RPC mode สำหรับงานที่มีความซับซ้อนมากกว่าการเขียนโค้ดเพียงบรรทัดเดียว โดยชั้น orchestration จะเขียน prompt และ Pi จะเป็นผู้ดำเนินการ
ผมใช้เครื่องมือเหล่านี้เพื่อเพิ่มประสิทธิภาพ:
- pix-optimizer: บีบอัด tokens และลบ boilerplate ออก
- context-mode: กำหนดเส้นทางงานใน workspace และจัดการการเรียกใช้ tool
- pi-subagents: รันงานแบบขนาน (parallel)
- pi-workflow-engine: จัดการลำดับงานแบบหลายขั้นตอน (multi-step)
- pi-mcp-adapter: เชื่อมต่อกับเครื่องมือภายนอกผ่าน MCP
กฎสำคัญสำหรับการตั้งค่านี้:
- โหลดโมเดลเพียงครั้งละหนึ่งตัวเพื่อหลีกเลี่ยงข้อผิดพลาดด้านหน่วยความจำ (memory errors)
- ปิด thinking mode เพื่อรักษาความเร็ว
- อย่าส่งประวัติการแชท (chat history) ทั้งหมดไปใน prompt มิฉะนั้นโมเดลจะ crash
- ใช้ RPC mode สำหรับงานที่มีความซับซ้อนเพื่อข้ามการควบคุมความปลอดภัย (safety controls)
- หากการร้องขอครั้งแรกหมดเวลา (timeout) หลังจากสลับโมเดล ให้ลองส่งคำขอใหม่อีกครั้ง
Setup script:
curl -fsSL https://workswithagents.dev/static/setup-local-llm-pi.sh | sh
Source: https://dev.to/vystartasv/running-a-local-coding-agent-on-a-mac-mini-the-actual-setup-47bo
Optional learning community: https://t.me/GyaanSetuAi