คุณต้องการเอเจนต์ AI ที่คุณสามารถส่งข้อความจากโทรศัพท์ได้ ตัวที่ยังคงทำงานต่อไปหลังจากที่คุณปิดแล็ปท็อป และกลับมาทำงานเองหลังจากรีบูตเครื่องหรือไม่? Hermes Agent ทำสิ่งนี้ได้: มันทำงานเป็นเกตเวย์ที่คุณคุยผ่าน Telegram และเมื่อคุณตั้งค่ามันอย่างถูกต้อง มันจะรีสตาร์ทตัวเองหลังจากที่ระบบล่มหรือไฟดับ
ฉันสร้างระบบเดียวกันนี้บนเครื่องสองเครื่อง คือ VPS ราคาถูกบนคลาวด์ และ Mac Mini บนโต๊ะทำงานของฉัน เพื่อที่ฉันจะได้เขียนขั้นตอนทั้งหมดโดยไม่ข้ามอะไรเลย มันเป็นเส้นทางเดียว สิ่งที่เปลี่ยนไปตามเครื่องมีเพียงสองจุดที่คุณพิมพ์คำสั่ง: คำสั่งติดตั้ง และส่วนที่ทำให้เกตเวย์ทำงานต่อเนื่อง ทุกอย่างที่อยู่ระหว่างกลางนั้นเหมือนกันทุกประการ
ทุกอย่างด้านล่างนี้รันบนฮาร์ดแวร์ของฉันเอง เส้นทาง Linux คือ Hetzner CX23 (x86, 2 vCPU, 4GB RAM, 40GB disk) บน Ubuntu 24.04.4 LTS ส่วนเส้นทาง Mac คือ Mac Mini M4 บน macOS 15 ทั้งคู่รัน Hermes Agent v0.16.0
สิ่งที่คุณจะได้เมื่อทำเสร็จ
- ติดตั้ง Hermes Agent แล้ว ทำงานในฐานะผู้ใช้ทั่วไป ไม่ใช่ root
- บอท Telegram ที่คุณส่งข้อความจากโทรศัพท์ได้ ล็อกให้เฉพาะบัญชีคุณเท่านั้น
- เกตเวย์ทำงานเป็นบริการที่มีการจัดการ ดังนั้นมันจะกลับมาทำงานหลังจากระบบล่มหรือรีบูต
- บน VPS จะเป็นเครื่องที่แข็งแกร่ง: SSH แบบใช้คีย์เท่านั้น, ไม่มีการล็อกอิน root, มีไฟร์วอลล์
เลือกเครื่องของคุณ
VPS เป็นวิธีที่ถูกที่สุด เครื่อง x86 ทุกเครื่องที่มี RAM 4GB และพื้นที่ว่างประมาณ 20GB ก็รันสิ่งนี้ได้ เครื่องของฉันคือ Hetzner CX23 ราคา $7.79/เดือน (ราคา Hetzner สหรัฐอเมริกา, 18 มิ.ย. 2026) เช่ามัน แล้วมันจะเปิดตลอดเวลาโดยอัตโนมัติ
Mac ที่คุณมีอยู่แล้วเป็นอีกทางเลือกหนึ่ง Mac Apple silicon ทุกเครื่องที่เสียบปลั๊กทิ้งไว้ก็ใช้ได้ และค่าใช้จ่ายในการรันเป็นศูนย์นอกเหนือจากตัวเครื่อง ข้อแลกเปลี่ยนคือเลเยอร์ความทนทานจะยุ่งยากกว่าบน macOS ซึ่งฉันจะอธิบายในตอนท้าย
คุณต้องมี SSH key บนเครื่องของคุณเอง (ใช้ ssh-keygen -t ed25519 ถ้าคุณยังไม่มี), บัญชี Telegram, และโมเดลสำหรับเอเจนต์ คู่มือนี้ชี้ไปที่ Nous Portal ซึ่งใช้ OAuth ดังนั้นจึงไม่มี API key ต้องเก็บไว้ในไฟล์ Hermes ต้องการโมเดลที่มีบริบทอย่างน้อย 64k
ขั้นตอนที่ 1: เตรียมเครื่องให้พร้อม
บน VPS
สร้างเซิร์ฟเวอร์ที่ผู้ให้บริการของคุณ: Ubuntu 24.04, อินสแตนซ์ x86 (ไม่ใช่ Arm, ดูหมายเหตุเรื่องค่าใช้จ่าย), และวาง SSH public key ของคุณตอนสร้าง
เครื่องสาธารณะใหม่ต้องใช้เวลาไม่กี่นาทีในการทำให้แข็งแกร่งก่อนที่จะวางเอเจนต์ไว้บนนั้น สคริปต์ secure-box.sh ในสูตรนี้ทำได้ในครั้งเดียว: อัปเกรด apt, สร้าง swapfile ขนาด 2GB, ผู้ใช้ sudo ที่ไม่ใช่ root พร้อมคีย์ของคุณ, SSH แบบใช้คีย์เท่านั้นโดยปิดการล็อกอิน root, และไฟร์วอลล์ที่อนุญาตเฉพาะ SSH แก้ไขตัวแปรสองตัวที่ด้านบน คัดลอกไป รันในฐานะ root:
1scp secure-box.sh root@<your-vps-ip>:2ssh root@<your-vps-ip> 'bash secure-box.sh'
อิมเมจ Ubuntu นี้มาพร้อมกับ PasswordAuthentication ที่ตั้งค่าเป็น yes แม้ว่าฉันจะสร้างเครื่องด้วย SSH key ก็ตาม สคริปต์จะปิดมัน ก่อนที่คุณจะปิดเซสชัน root ให้เปิดเทอร์มินัลอีกอันแล้วยืนยันว่าผู้ใช้ใหม่สามารถล็อกอินได้ เพื่อที่ความผิดพลาดจะไม่ล็อกคุณออก:
1ssh hermes@<your-vps-ip>
จากนี้ไปคุณคือ hermes ไม่ใช่ root
บน Mac
ไม่ต้องทำขั้นตอนทำให้แข็งแกร่ง มันคือเครื่องของคุณบนเครือข่ายของคุณเอง ไม่ใช่เครื่องสาธารณะ ติดตั้ง Homebrew ถ้าคุณยังไม่มี (ตัวติดตั้งจะใช้มันในขั้นตอนถัดไป) แล้วคุณก็พร้อม
ขั้นตอนที่ 2: ติดตั้ง Hermes
การติดตั้งเป็นคำสั่งเดียว เหมือนกันทั้งสองเครื่อง รันในฐานะผู้ใช้ทั่วไปของคุณ:
1curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash2source ~/.bashrc3hermes --version
ตัวติดตั้งจะตรวจจับ OS ของคุณและดึงชุดเครื่องมือของตัวเอง (uv, Python 3.11, Node.js 22, ripgrep, ffmpeg, Playwright Chromium สำหรับเครื่องมือเบราว์เซอร์) ไปไว้ใน ~/.hermes ดังนั้นมันจะไม่แตะต้อง Python ของระบบ บนเครื่อง Hetzner ของฉัน มันติดตั้ง Hermes Agent v0.16.0 บน Python 3.11.15
นี่คือขั้นตอนที่หนักหน่วง บน VPS มันใช้พื้นที่ดิสก์จาก 1.2GB ที่ใช้ไปเป็น 7.8GB เพิ่มขึ้นประมาณ 6.6GB ซึ่งส่วนใหญ่เป็นเอ็นจิ้นเบราว์เซอร์และ Node วางแผนพื้นที่ว่าง 20GB แล้วเลิกกังวล รันผ่านคำสั่ง ssh ธรรมดาที่ไม่มีเทอร์มินัล ตัวติดตั้งจะพิมพ์ "Setup wizard skipped (no terminal available)" ซึ่งไม่เป็นไร เพราะการตั้งค่าคือขั้นตอนถัดไป
บน Mac คำสั่งเดียวกันก็รันได้ แต่มีข้อแม้หนึ่งข้อ: ติดตั้ง Homebrew ก่อน เมื่อมี Homebrew ตัวติดตั้งจะดึง git และ dependencies โดยไม่ต้องมีพรอมต์ หากไม่มี Homebrew มันจะถอยไปใช้ Command Line Tools ของ Apple ซึ่งอาจเปิดกล่องโต้ตอบ macOS ที่คุณต้องคลิก และกล่องโต้ตอบไม่ดีเมื่อใช้ผ่าน ssh (นี่คือในสาขา macOS ของตัวติดตั้ง) หลังจากนั้นก็เป็นขั้นตอนเดียวกันกับข้างบน
ขั้นตอนที่ 3: ชี้ไปที่โมเดล
1hermes setup --portal
นี่คือ OAuth กับ Nous Portal: มันจะพิมพ์ URL และโค้ด คุณอนุมัติในเบราว์เซอร์ จากนั้นเครื่องจะคุยกับโมเดลโดยไม่มี API key อยู่ในไฟล์ Nous Portal มีฟรี tier และฉันรันทุกอย่างบนโมเดลฟรี ถ้าคุณต้องการใช้ผู้ให้บริการของคุณเอง ให้รัน hermes model แล้วเลือกอันหนึ่ง คีย์จะอยู่ใน ~/.hermes/.env
ขั้นตอนที่ 4: พูดคุยกับมัน
บน VPS
ทันทีที่ ssh ของคุณหลุด เซสชันที่ทำงานอยู่เบื้องหน้าจะตายไปด้วย tmux ช่วยให้เซสชันทำงานต่อไป: เริ่มภายใน tmux, ดีแทช, แล้วมันจะทำงานต่อไป
1sudo apt-get install -y tmux2tmux new -s hermes # จากนั้น, ข้างใน: hermes
ดีแทชด้วย Ctrl-b แล้ว d และเชื่อมต่อใหม่จากที่ใดก็ได้ในภายหลัง:
1ssh hermes@<your-vps-ip>2tmux attach -t hermes
การบูตครั้งแรกของเอเจนต์แบบโต้ตอบใช้เวลาสักครู่ เครื่องของฉันใช้เวลาประมาณ 30 วินาทีในการโหลดโมเดลและสกิล ก่อนที่พรอมต์จะปรากฏขึ้น เมื่อมันพร้อมแล้ว คำสั่ง slash ก็ใช้งานได้
/goal เป็นคำสั่งที่ควรค่าแก่การแสดง: มันตั้งเป้าหมายประจำที่เอเจนต์จะทำงานข้ามเทิร์น โดยมีโมเดลผู้ตัดสินตรวจสอบหลังจากแต่ละเทิร์นว่าเสร็จหรือยัง
1/goal check this box total RAM and free disk using shell tools, then report both on one line and mark the goal done
เครื่องของฉันรันคำสั่ง shell เองและกลับมาพร้อมกับ "VPS total RAM: 3.7Gi, free disk space: 28G" ในเวลาประมาณ 15 วินาที นั่นคือเอเจนต์ที่ใช้เครื่องมือของตัวเอง
แยกสองแนวคิดนี้ออกจากกัน: tmux จะรักษาเซสชันแบบโต้ตอบให้เปิดอยู่ข้ามการเชื่อมต่อ ssh ที่หลุด แต่ไม่ข้ามการรีบูต สำหรับเกตเวย์ที่ไม่ต้องดูแลซึ่งอยู่รอดได้หลังการรีสตาร์ท คุณต้องการบริการที่มีการจัดการ ซึ่งอยู่ในขั้นตอนที่ 6
บน Mac
คุณนั่งอยู่หน้าเครื่อง ดังนั้นคุณสามารถรัน hermes ในเทอร์มินัลได้ tmux ยังมีประโยชน์ถ้าคุณ ssh เข้ามาจากแล็ปท็อป แต่มันเป็นทางเลือกที่นี่
ขั้นตอนที่ 5: เกตเวย์ Telegram
ส่วนนี้เหมือนกันทั้งสองเครื่อง สร้างบอท: ส่งข้อความหา @BotFather บน Telegram, ส่ง /newbot, และคัดลอกโทเค็น หา user ID ตัวเลขของคุณจาก @userinfobot จากนั้นกำหนดค่าเกตเวย์:
1hermes gateway setup
เลือก Telegram, วางโทเค็น, และตั้งค่าผู้ใช้ที่อนุญาตเป็น ID ตัวเลขของคุณ เพื่อให้มีแต่คุณเท่านั้นที่คุยกับมันได้ โทเค็นจะอยู่ใน ~/.hermes/.env ส่วนที่เหลืออยู่ใน ~/.hermes/gateway.json
การตั้งค่าเขียนเฉพาะคอนฟิกเท่านั้น มันไม่ได้เริ่มอะไร ดังนั้นบอทจะเงียบ และนั่นคือสิ่งที่ทำให้คนตกใจ: ยังไม่มีอะไรกำลังสอบถาม Telegram อยู่ เริ่มมันในเบื้องหน้าสักครั้งเพื่อตรวจสอบว่ามันเชื่อมต่อได้:
1hermes gateway run
คุณต้องการเห็น, ในล็อก:
1gateway.run: Connecting to telegram...2[Telegram] Connected to Telegram (polling mode)3gateway.run: ✓ telegram connected
โหมด polling หมายถึงเกตเวย์เป็นฝ่ายติดต่อ Telegram ไม่มีอะไรเชื่อมต่อเข้ามาที่เครื่องของคุณ ซึ่งเป็นสาเหตุที่ไฟร์วอลล์ไม่ต้องเปิดพอร์ตขาเข้านอกเหนือจาก ssh ส่งข้อความถึงบอทของคุณ มันควรตอบกลับ จากนั้นหยุดเกตเวย์เบื้องหน้าด้วย Ctrl-C เพราะคุณไม่สามารถมีสองสิ่งที่สอบถามโทเค็นเดียวกันพร้อมกันได้ และขั้นตอนถัดไปจะรันมันเป็นบริการ
ขั้นตอนที่ 6: ทำให้มันอยู่รอดหลังการรีบูต
นี่คือจุดเดียวที่เครื่องทั้งสองแตกต่างกัน
บน VPS: systemd
hermes gateway install จะลงทะเบียนเกตเวย์เป็นบริการ systemd เพื่อให้มันรีสตาร์ทเมื่อล่มและกลับมาทำงานหลังรีบูต ในเวอร์ชันนี้ ตัวติดตั้งจะถามคำถาม [Y/n] สองข้อ และไม่มีแฟล็กให้ข้าม รันผ่านคำสั่ง ssh แบบไม่โต้ตอบ ซึ่งเป็นเรื่องปกติเมื่อเขียนสคริปต์ให้เครื่อง และมันจะไม่ได้รับคำตอบ ยกเลิก และไม่ติดตั้งอะไรเลย ป้อนคำตอบผ่าน stdin:
1printf 'n\nY\n' | hermes gateway install
คำถามสองข้อคือ "เริ่มเกตเวย์ตอนนี้?" และ "เริ่มอัตโนมัติเมื่อล็อกอิน/บูต?" n ตามด้วย Y หมายถึง: อย่าเริ่มมันตอนนี้ แต่ให้เปิดใช้งานเมื่อบูต ตัวติดตั้งยังเปิดใช้งาน user-session lingering ซึ่งเป็นสิ่งที่ทำให้บริการผู้ใช้ทำงานได้ก่อนที่คุณจะล็อกอิน ยืนยันมัน เพราะนี่คือสิ่งที่ทำให้ "อยู่รอดหลังรีบูต" เป็นจริง ไม่ใช่แค่ "อยู่รอดหลังออกจากระบบ":
1loginctl show-user $USER -p Linger # ต้องการ: Linger=yes
เริ่มมันและตรวจสอบ:
1hermes gateway start2systemctl --user status hermes-gateway
คุณต้องการ active (running) และ NRestarts=0 บนเครื่องของฉัน เกตเวย์ใช้ RAM ประมาณ 280MB และทั้งเครื่องอยู่ที่ประมาณ 556MB สบายๆ บน RAM 4GB
ตอนนี้ทดสอบจริง รีบูตและอย่าแตะต้องมัน:
1sudo reboot
เครื่องของฉันกลับมาภายในประมาณ 15 วินาที เกตเวย์เริ่มทำงานเอง เชื่อมต่อกับ Telegram อีกครั้ง และตอบข้อความถัดไปโดยมีประวัติการสนทนาก่อนรีบูต intact นั่นคือประเด็นทั้งหมด
บน Mac: launchd และ watchdog
macOS ใช้ launchd ไม่ใช่ systemd และมีกับดักอยู่ บน macOS 15 กับ Hermes v0.16.0, hermes gateway start อาจล้มเหลวในการลงทะเบียนบริการ launchd และถอยกลับ โดยไม่บอกคุณ ไปเป็นกระบวนการพื้นหลังที่ไม่ได้รับการดูแล คุณจะเห็นสิ่งนี้:
1Bootstrap failed: 5: Input/output error2⚠ launchd cannot manage the gateway on this macOS version (launchctl exit 5)3✓ Started gateway as a background process instead4 It will NOT auto-start at login or auto-restart on crash.
ถ้าคุณมีงาน launchd ที่ทำงานได้มาก่อน คำสั่งนี้จะยกเลิกการโหลดมัน และการถอยกลับจะทำงานได้ดีจนกระทั่งการล่มหรือรีบูตครั้งแรก จากนั้นเอเจนต์ของคุณจะหายไปโดยไม่มีอะไรบอกคุณ launchctl แบบดิบๆ ทำงานได้ในขณะที่ CLI ล้มเหลว รวมถึงผ่าน ssh:
1launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/ai.hermes.gateway.plist2launchctl print gui/$(id -u)/ai.hermes.gateway | grep state # ต้องการ: state = running
plist จะเริ่มเกตเวย์เมื่อล็อกอิน แต่ไม่รีสตาร์ทเมื่อล่ม cron watchdog จะปิดช่องว่างทั้งสอง และ cron จะทำงานเมื่อบูตโดยไม่ต้องล็อกอิน สูตรนี้มาพร้อมกับ gateway-watchdog.sh; มันจะตรวจสอบทุก 5 นาทีว่าโปรเซสเกตเวย์ยังมีชีวิตอยู่หรือไม่ และบูตสแตรปใหม่ถ้าไม่มี ติดตั้งตามตารางเวลา:
1(crontab -l 2>/dev/null; echo '*/5 * * * * $HOME/scripts/gateway-watchdog.sh >/dev/null 2>&1') | crontab -
ฉันได้เห็นลำดับนี้กู้คืนเกตเวย์ที่ถูกลดระดับบน Mac Mini ของฉันเอง รีบูตมันและยืนยันว่าเกตเวย์กลับมาภายในห้านาทีโดยไม่ต้องล็อกอิน
ตรวจสอบการตั้งค่าของคุณ
- บริการทำงานอยู่:
systemctl --user status hermes-gatewayบน Linux (active (running)), หรือlaunchctl print gui/$(id -u)/ai.hermes.gateway | grep stateบน macOS (state = running) - ส่งข้อความถึงบอทของคุณ: มันตอบคุณ และไม่สนใจใครก็ตามที่ไม่ได้อยู่ในรายชื่อผู้ใช้ที่อนุญาต
- บน Linux,
loginctl show-user [$USER](https://x.com/search?q=%24USER&src=cashtag_click) -p Lingerอ่านว่าLinger=yes - รีบูตเครื่อง รอสักครู่ ส่งข้อความถึงบอทอีกครั้งโดยไม่ต้องล็อกอินกลับเข้าไป: มันตอบ
ค่าใช้จ่าย
บน VPS ค่าใช้จ่ายมีเพียงเครื่องเท่านั้น เครื่องของฉันคือ Hetzner CX23 ที่ $0.012/ชั่วโมง, สูงสุดที่ $7.79/เดือน (ราคา Hetzner สหรัฐอเมริกา, 18 มิ.ย. 2026; EU CX22 มีสเปกเดียวกันและถูกกว่า)
บน Mac มันคือเครื่องที่คุณมีอยู่แล้ว ไม่มีบริการเพิ่มเติม โมเดลฟรีบนฟรี tier ของ Nous Portal ในทั้งสองกรณี
ที่นี่ หน่วยความจำไม่ใช่ข้อจำกัด: เกตเวย์ใช้ประมาณ 280MB, ทั้งเครื่องประมาณ 556MB ดังนั้น RAM 1GB ก็เพียงพอ ดิสก์คือข้อจำกัดที่แท้จริง: การติดตั้งประมาณ 6.6GB ดังนั้นอิมเมจ 1GB หรือ 10GB จะคับ ให้ใช้ 20GB และใช้ x86 มันเป็นตัวเลือกที่ปลอดภัย
รันด้วยตัวเอง และอะไรต่อไป
ทั้งสองเครื่องมีสูตรอาหารฉบับเต็มพร้อมสคริปต์ที่แน่นอน รันได้ทันที:
- เส้นทาง VPS: cheap-vps
- เส้นทาง Mac: mac-mini-24-7
ตอนนี้คุณมีเอเจนต์ที่ทำงานตลอดเวลาบน Telegram ที่อยู่รอดหลังการรีบูต
Flightplan ถัดไปจะต่อยอดจากสิ่งนี้: งานตามกำหนดการที่จะส่งข้อความถึงคุณเมื่อมีบางอย่างสำคัญเท่านั้น, พื้นที่ทำงานที่ซิงค์กับ git ที่เอเจนต์อ่านและเขียน, และขั้นตอนการร่างและอนุมัติที่ให้มนุษย์อยู่ในทุกการกระทำสาธารณะ
ขอบคุณที่อ่าน





