ข้ามไปยังเนื้อหา

โซลูชัน · เอเจนต์เขียนโค้ด

VPS for OpenHands ภาษาไทย: VPS สำหรับ OpenHands

OpenHands คือเอเจนต์เขียนโค้ดอัตโนมัติ: ให้ repository และงาน แล้วมันจะแก้ไข รัน ทดสอบ และเปิด pull request เอง โดยใช้โมเดลที่คุณเลือกผ่าน API key README ของโปรเจกต์ระบุว่าวิธีที่ทรงพลังที่สุดในการรันคือบนเซิร์ฟเวอร์ในคลาวด์ และคำเตือนของโปรเจกต์ระบุว่าเอเจนต์มีสิทธิ์เข้าถึงเครื่องที่รันอยู่อย่างเต็มที่ ทั้งสองข้อชี้ไปที่คำตอบเดียวกัน: เครื่องที่ไม่ใช่แล็ปท็อปของใคร คู่มือเซิร์ฟเวอร์ของโปรเจกต์ระบุว่า 2 vCPU และ 4 GB เพียงพอสำหรับผู้ใช้หนึ่งคน BD-8 ราคา $12.90 ต่อเดือนให้สเปกสองเท่าในราคาต่ำกว่าเครื่อง 4 GB ที่อื่น

สิ่งที่ต้องใช้

ซอฟต์แวร์ตามเอกสาร ขนาดระบุแหล่งที่มา

ซอฟต์แวร์และแนวทางด้านความปลอดภัยมาจากเอกสารของโปรเจกต์เอง หากโปรเจกต์ไม่ได้เผยแพร่ข้อมูลฮาร์ดแวร์ ขนาดจะระบุว่าเป็นตัวเลขของใคร

จาก README, SELF_HOSTING.md และเอกสารของ OpenHands

  • “2 vCPU / 4 GB RAM เพียงพอสำหรับผู้ใช้คนเดียว” (คู่มือ VM ของโปรเจกต์) เอกสารระบุว่าต้องการ “โปรเซสเซอร์รุ่นใหม่และ RAM อย่างน้อย 4GB”
  • การติดตั้ง: Node.js 24 ขึ้นไปและ uv จากนั้น npx @openhands/agent-canvas --public คำสั่งเดียวจะเริ่ม agent server, automation backend และเว็บแอปหลัง ingress บน 127.0.0.1:8000
  • ตั้งค่า LOCAL_BACKEND_API_KEY ก่อนเริ่มครั้งแรก: ในโหมด public ทุกการเรียก API ต้องแนบคีย์นี้ และเว็บแอปจะขอคีย์ก่อนสิ่งอื่นใด ปิดไฟร์วอลล์ทุกอย่างยกเว้น SSH ก่อน คู่มือระบุให้ทำก่อนที่เอเจนต์จะรันเป็นครั้งแรก
  • API key จากผู้ให้บริการโมเดล: เอกสารระบุว่า OpenHands ต้องใช้สำหรับโมเดลส่วนใหญ่ Docker ไม่บังคับ และจำเป็นเฉพาะเมื่อคุณต้องการแยกแต่ละบทสนทนาไว้ในคอนเทนเนอร์ของตัวเอง ไม่ต้องใช้ GPU เว้นแต่คุณโฮสต์โมเดลเอง

ขนาด (ตัวเลขของโปรเจกต์ ตามด้วยของเรา)

กำหนดขนาดตามประเภทงาน
ปริมาณงานvCPURAM
ผู้ใช้หนึ่งคน โมเดลแบบโฮสต์ เอเจนต์บนโฮสต์ (ทางการ)ตัวเลขตามคู่มือเอง agent server รันบนเครื่องโดยตรง ดังนั้นตัวเครื่องจึงเป็น sandbox24 GB
ผู้ใช้หนึ่งหรือสองคน sandbox ของ Docker ต่อหนึ่งบทสนทนาของเรา แต่ละบทสนทนาได้คอนเทนเนอร์ของตัวเอง การติดตั้ง dependency การ build และชุดทดสอบรันภายในคอนเทนเนอร์เหล่านั้น48 GB
เซิร์ฟเวอร์เอเจนต์ที่ใช้ร่วมกันในทีม หลายเอเจนต์พร้อมกันของเรา เอเจนต์หลายตัวทำงานคู่ขนานบนหลาย repository แต่ละตัวคอมไพล์บางอย่างอยู่824 GB

แพ็กเกจที่เหมาะสม

5 เครื่อง ราคาปัจจุบัน

เครื่องที่เหมาะและถูกที่สุดก่อน ราคาเป็นราคาวันนี้ ต่อเดือน อ่านจากแค็ตตาล็อก

  • BD-8$12.90/เดือน

    4 vCPU · 8 GB · ดิสก์ 100 GB · 32 TB

    ถูกที่สุดที่มีพื้นที่สำหรับ build และทดสอบ. 4 vCPU, 8 GB, 100 GB และปริมาณรับส่งข้อมูล 32 TB ในราคาต่ำกว่าเครื่อง 4 GB ที่อื่น เป็นสองเท่าของตัวเลขในคู่มือ ชุดทดสอบจะได้ประโยชน์จากจำนวนคอร์

  • U2-4-40$14.90/เดือน

    2 vCPU · 4 GB · ดิสก์ 40 GB · Unmetered

    ตรงตามตัวเลขในคู่มือ ไม่นับปริมาณทราฟฟิก อิสตันบูล. 2 vCPU / 4 GB / 40 GB ผู้ใช้หนึ่งคน โมเดลแบบโฮสต์ เอเจนต์รันบนโฮสต์ ทราฟฟิกไม่นับปริมาณสำหรับการโคลนและติดตั้งแพ็กเกจ

  • BD-24$31.90/เดือน

    8 vCPU · 24 GB · ดิสก์ 300 GB · 32 TB

    8 vCPU / 24 GB สำหรับเซิร์ฟเวอร์เอเจนต์ของทีม. หลายเอเจนต์พร้อมกัน sandbox ของ Docker และ automation backend ที่รันตามกำหนดเวลา

  • C2-4-80$37.90/เดือน

    2 vCPU · 4 GB · ดิสก์ 80 GB · 3 TB

    ตัวเลขตามคู่มือ ในหลายสิบเมือง. 2 vCPU / 4 GB / 80 GB เลือกเพราะเมือง และใช้ทีละหนึ่งบทสนทนา

  • C4-8-160$75.90/เดือน

    4 vCPU · 8 GB · ดิสก์ 160 GB · 3 TB

    4 vCPU / 8 GB / 160 GB ในหลายสิบเมือง. ขนาดที่สบายพร้อมดิสก์สำหรับ checkout จำนวนมากและอิมเมจ Docker

ยังไม่มีพรีเซ็ตเริ่มต้นสำหรับ OpenHands: การติดตั้งคือห้าขั้นตอนด้านล่างที่คุณพิมพ์เอง ตามลำดับที่คู่มือของโปรเจกต์ระบุ ไฟร์วอลล์ก่อน คีย์ที่สอง เอเจนต์ที่สาม

การติดตั้ง

ห้าขั้นตอน ตามลำดับที่คู่มือของ OpenHands ระบุ

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

  1. ไฟร์วอลล์ก่อน ufw allow OpenSSH && ufw --force enable ไม่เปิดขาเข้าใดๆ ยกเว้น SSH ingress (8000), agent server (18000), automation backend (18001) และ static server (3001) ต้องไม่สามารถเข้าถึงได้จากภายนอก คู่มือระบุไว้ด้วยถ้อยคำนั้น
  2. Node.js 24 และ uv apt-get install -y curl git curl -fsSL https://deb.nodesource.com/setup_24.x | bash - && apt-get install -y nodejs curl -LsSf https://astral.sh/uv/install.sh | sh uv ใช้รัน agent server คู่มือติดตั้งด้วยตัวติดตั้งบรรทัดเดียวจาก astral.sh
  3. สร้างคีย์ แล้วเริ่มในโหมด public export LOCAL_BACKEND_API_KEY=$(openssl rand -base64 32); echo $LOCAL_BACKEND_API_KEY npx @openhands/agent-canvas --public คัดลอกคีย์เก็บไว้ในที่ปลอดภัยก่อนดำเนินการต่อ โหมด public หมายความว่าเว็บแอปจะขอคีย์นี้จากคุณ สำหรับการใช้งานระยะยาว ใช้ systemd unit ของคู่มือที่ /etc/systemd/system/agent-canvas.service โดยใส่ Environment=LOCAL_BACKEND_API_KEY=… ไว้ จากนั้น systemctl enable --now agent-canvas
  4. เข้าถึงผ่าน SSH แล้วเพิ่มโมเดล ssh -N -L 8000:127.0.0.1:8000 root@your-server จากนั้นเปิด http://127.0.0.1:8000 วางคีย์ แล้วไปที่ Settings: เลือกผู้ให้บริการ LLM และโมเดล แล้ววาง API key ของผู้ให้บริการนั้น เริ่มบทสนทนาบน repository
  5. โดเมน (ไม่บังคับ) ชี้ A record มาที่เซิร์ฟเวอร์ เปิดพอร์ต 80 และ 443, apt-get install -y nginx certbot python3-certbot-nginx และใช้บล็อก nginx ของคู่มือที่พร็อกซีไปยัง 127.0.0.1:8000 พร้อมเฮดเดอร์ WebSocket certbot --nginx -d canvas.example.com --redirect จะออกใบรับรองให้ หากต้องเปิด 443 สู่สาธารณะ คู่มือระบุว่าคีย์คือแนวป้องกันหลักของคุณ ดังนั้นควรใช้คีย์ที่ยาวและเก็บเป็นความลับ

พูดกันตรง ๆ

สิ่งที่เราจะซื้อจริงๆ

คู่มือระบุว่า 2 vCPU และ 4 GB เพียงพอสำหรับผู้ใช้หนึ่งคน ซื้อเครื่อง 8 GB ที่ราคาต่ำกว่าเครื่อง 4 GB แล้วปล่อยให้เอเจนต์คอมไพล์งาน

สำหรับเอเจนต์เขียนโค้ดของผู้ใช้หนึ่งคน

BD-8 · $12.90/เดือน

4 vCPU, 8 GB และ 100 GB ในราคา $12.90: เพียงพอสำหรับเซิร์ฟเวอร์เอเจนต์ รีโพสิทอรีที่เช็กเอาต์ไว้จำนวนหนึ่ง dependency ทั้งหมดของมัน และชุดทดสอบที่รันอยู่ขณะที่คุณดู โดยยังเหลือหน่วยความจำหากคุณเปิดใช้ Docker sandbox โมเดลอยู่ที่อื่น อยู่หลัง API key ดังนั้นเครื่องนี้ไม่ต้องใช้ GPU เลย และค่าใช้จ่ายที่สำคัญคือของผู้ให้บริการโมเดล C2-4-80 ในราคา $37.90 ตรงกับตัวเลขในคู่มือพอดีและมีให้บริการในหลายสิบเมือง หากเมืองสำคัญกว่าจำนวนคอร์

คำถาม

คำถามที่ผู้คนถามก่อนซื้อ

OpenHands ต้องใช้ RAM เท่าไร
คู่มือ VM ของโปรเจกต์ระบุว่า 2 vCPU และ RAM 4 GB เพียงพอสำหรับผู้ใช้คนเดียว และเอกสารแนะนำโปรเซสเซอร์รุ่นใหม่และขั้นต่ำ 4 GB ซึ่งครอบคลุม agent server, automation backend และเว็บแอปเมื่อใช้โมเดลแบบโฮสต์ สิ่งที่เอเจนต์ทำต่อจากนั้น ได้แก่ การโคลน repository ติดตั้ง dependency รัน build และทดสอบ เป็นงานนักพัฒนาทั่วไปและต้องใช้ทรัพยากรแบบนักพัฒนาทั่วไป จึงเป็นเหตุผลที่เครื่องที่ถูกที่สุดในหน้านี้มี 4 คอร์และ 8 GB แทนที่จะเป็นขั้นต่ำพอดี
ทำไมต้องรันบนเซิร์ฟเวอร์แทนแล็ปท็อปของฉัน?
มีสองเหตุผลจาก README เอง README ระบุว่าวิธีที่ทรงพลังที่สุดในการรัน OpenHands คือบนเซิร์ฟเวอร์ในคลาวด์ เพื่อให้เอเจนต์ทำงานต่อเมื่อแล็ปท็อปปิดอยู่ และสั่งงานได้จาก Slack, GitHub หรือ webhook และยังเตือนว่า agent server รันบนเครื่องโดยตรงพร้อมสิทธิ์เข้าถึงระบบไฟล์ shell และเครือข่ายอย่างเต็มที่ เครื่องที่มีเพียงเอเจนต์และ repository ที่มันทำงานด้วยคือวิธีที่ตรงไปตรงมาในการให้สิทธิ์นั้น
ต้องใช้ API key หรือใช้โมเดลในเครื่องได้
เอกสารระบุว่า OpenHands ต้องใช้ API key เพื่อเข้าถึงโมเดลภาษาส่วนใหญ่ และระบุผู้ให้บริการแบบโฮสต์ที่แนะนำ รองรับโมเดลในเครื่องผ่าน Ollama หรือเซิร์ฟเวอร์ลักษณะเดียวกัน แต่เอกสารเสริมว่างานเอเจนต์ที่มีประสิทธิภาพบนโมเดลในเครื่องต้องใช้ฮาร์ดแวร์ที่มีกำลังและโมเดลที่ปรับมาให้ทำตามคำสั่ง ในทางปฏิบัติ: ใช้โมเดลแบบโฮสต์และ API key บนเครื่องนี้ และหากต้องการโมเดลในเครื่อง ให้ใช้เซิร์ฟเวอร์โมเดลแยกต่างหากที่กำหนดขนาดตามหน้า Ollama หรือไลน์ GPU
--public และ LOCAL_BACKEND_API_KEY ทำอะไร
หากไม่ใช้ --public แอปจะใส่คีย์เซสชันลงในหน้าเว็บเพื่อความสะดวก ซึ่ง README ระบุว่าไม่ปลอดภัยสำหรับการปรับใช้ที่เข้าถึงได้จากสาธารณะ เมื่อใช้ --public คีย์จะไม่อยู่ในหน้าเว็บ: ทุกคนที่เปิดเว็บแอปต้องวาง LOCAL_BACKEND_API_KEY ก่อน และทุกการเรียก API ต้องแนบคีย์นี้ไปด้วย ลำดับในคู่มือคือ ไฟร์วอลล์ จากนั้นคีย์ แล้วจึงเริ่มระบบ และสร้างคีย์ด้วย openssl rand -base64 32
ต้องใช้ Docker หรือไม่
ไม่จำเป็นสำหรับการติดตั้งแบบค่าเริ่มต้น ซึ่งรัน agent server บนโฮสต์ด้วย Node 24 และ uv Docker ใช้สำหรับโหมด sandbox: รันทั้งสแตกจากอิมเมจของโปรเจกต์ หรือให้แต่ละบทสนทนามีคอนเทนเนอร์ของตัวเองเพื่อให้หลายเอเจนต์ทำงานพร้อมกันโดยไม่ใช้ระบบไฟล์ร่วมกัน README ระบุว่า sandbox แยกการทำงานของบทสนทนา ไม่ใช่ทั้งแอป หากต้องการใช้ ให้ติดตั้ง Docker และเผื่องบสำหรับแถว 8 GB ขึ้นไป
เกี่ยวข้องกับพอร์ตใดบ้าง
ทุกอย่างผูกกับ loopback: ingress proxy บน 127.0.0.1:8000 ส่งต่อไปยัง static server บน 3001, agent server บน 18000 และ automation backend บน 18001 คุณเข้าถึง 8000 ผ่าน SSH tunnel หรือผ่าน nginx บน 443 หากเพิ่มโดเมน ไม่ควรเปิดพอร์ตทั้งสี่นี้บนไฟร์วอลล์ คู่มือระบุหมายเลขพอร์ตเหล่านี้ว่าเป็นพอร์ตที่ต้องไม่สามารถเข้าถึงได้จากภายนอก