# วิธีทำให้ Hermes Agent ทำงานบนเซิร์ฟเวอร์ตลอดเวลา

> วิธีทำให้ Hermes Agent ทำงานบนเซิร์ฟเวอร์ตลอด 24/7: ติดตั้งบน VPS โดยไม่ใช้เบราว์เซอร์ เรียกใช้ gateway เป็นบริการระบบ เริ่มทำงานอัตโนมัติหลังรีบูต ตั้งค่า linger และ Docker

Source: https://ailoot.ai/blog/th/hermes-agent-vps-24-7/
Canonical: https://ailoot.ai/blog/th/hermes-agent-vps-24-7/
Language: th
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-116
Revision: sha256-2ff83c498466d1fb45625914fe1a61cc77ad2c8ba35857119b837b5c546bec00


หลังจากติดตั้ง Hermes Agent บนแล็ปท็อปแล้ว ก็เกิดคำถามขึ้นว่า ใครจะตอบข้อความใน Telegram และจัดทำสรุปข่าวตอนเช้าเมื่อปิดแล็ปท็อปแล้ว? ที่โต๊ะทำงาน เอเจนต์จะทำงานตราบเท่าที่คอมพิวเตอร์เปิดอยู่เท่านั้น หากต้องการให้บอตออนไลน์ตลอดเวลาและให้การทำงานตามกำหนดเวลาเริ่มเอง คุณต้องย้ายเอเจนต์ไปไว้บนเซิร์ฟเวอร์

ต่อไปนี้คือวิธีติดตั้ง Hermes บนเซิร์ฟเวอร์ Linux ทั่วไป เปลี่ยน gateway ให้เป็นบริการที่ทำงานต่อเนื่องและเริ่มทำงานอัตโนมัติหลังรีบูต พร้อมจำกัดการเข้าถึงเพื่อไม่ให้คนแปลกหน้าเข้าถึงเทอร์มินัลได้ คู่มือนี้อ้างอิงจากเอกสารอย่างเป็นทางการ

หากคุณยังไม่ได้ติดตั้ง Hermes เลย ให้เริ่มจากภาพรวมแยกต่างหากเรื่อง[เอเจนต์นี้คืออะไรและติดตั้งอย่างไร](https://ailoot.ai/blog/th/hermes-agent-install-setup/) คู่มือนี้สมมติว่าคุณใช้งานเอเจนต์บนเครื่องของตัวเองอยู่แล้ว และครอบคลุมเฉพาะการย้ายไปยังเซิร์ฟเวอร์

ข้อมูลเกี่ยวกับการใช้งาน Ailoot อยู่ใน[เอกสาร](https://ailoot.ai/docs/)



## ทำไมจึงควรย้าย Hermes Agent จากแล็ปท็อปไปยังเซิร์ฟเวอร์?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

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

</div>

บนแล็ปท็อป Hermes ทำงานเฉพาะตอนที่เปิดฝาเครื่องและคุณอยู่ใกล้ ๆ ปิดฝาเมื่อไร บอตก็เงียบ สรุปข่าวตอนเช้าก็ไม่มาถึง ซึ่งไม่เหมาะกับงานอย่าง “ตอบผู้คนในแอปส่งข้อความและจัดการสิ่งต่าง ๆ ตามกำหนดเวลา”

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

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

## ควรเตรียมอะไรบ้างก่อนติดตั้ง Hermes บน VPS?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

คุณต้องมีเซิร์ฟเวอร์ Linux ที่เข้าถึงผ่าน SSH ได้ (ทีมอย่างเป็นทางการทดสอบบน Ubuntu ที่ติดตั้งใหม่) เลือกโมเดลไว้ล่วงหน้า และเข้าใจว่าโดยทั่วไปเอเจนต์ไม่จำเป็นต้องใช้เบราว์เซอร์บนเซิร์ฟเวอร์ สำหรับการทำงานโดยไม่มีคนดูแล วิธีเข้าถึงโมเดลที่สะดวกที่สุดคือ Nous Portal: การลงชื่อเข้าใช้ OAuth จะต่ออายุโดยอัตโนมัติ ทำให้โทเค็นหมดอายุไม่ทำให้ระบบหยุดทำงานตอนกลางคืน

</div>

เตรียมสามอย่างก่อนติดตั้ง

**เซิร์ฟเวอร์** ใช้ VPS Linux ทั่วไปได้ เอกสารระบุว่า Linux และ WSL2 อยู่ในระดับการสนับสนุนขั้นต้น และทดสอบบน Ubuntu รุ่นล่าสุด หากระบบมี glibc, systemd และโครงสร้างไดเรกทอรีแบบมาตรฐาน Hermes ก็จะติดตั้งได้อย่างถูกต้อง เรื่องนี้สำคัญบนเซิร์ฟเวอร์ เพราะขั้นตอนเริ่มทำงานอัตโนมัติทั้งหมดด้านล่างใช้ systemd ซึ่งมีมาให้พร้อมใน Ubuntu และ Debian

**การเข้าถึง SSH** คุณเชื่อมต่อกับเซิร์ฟเวอร์ผ่านเทอร์มินัลด้วย SSH; ไม่ได้ใช้เมาส์ที่นั่น คำสั่งทั้งหมดด้านล่างให้รันในเซสชัน SSH นี้ หากคุณเขียนโค้ดแบบ vibe coding และยังไม่คุ้นกับเทอร์มินัล ก็ไม่ต้องกังวล: มีเพียงไม่กี่คำสั่ง และคุณคัดลอกแต่ละคำสั่งได้ทั้งบรรทัด

**โมเดลที่เลือกไว้** เอเจนต์ไม่ได้คิดเอง แต่เรียกใช้โมเดล สำหรับเซิร์ฟเวอร์ที่ทำงานโดยไม่มีคุณ สิ่งสำคัญคือการเข้าถึงโมเดลต้องไม่หมดอายุ ตัวเลือกที่ง่ายที่สุดคือสมัคร Nous Portal ผ่าน `hermes setup --portal`: การลงชื่อเข้าใช้ใช้ OAuth และโทเค็นจะต่ออายุโดยอัตโนมัติ คุณใช้ API keys ของตัวเองได้เช่นกัน แต่ต้องแน่ใจว่ามีเงินในบัญชี เพราะเอเจนต์แบบ headless ที่ยอดเงินเป็นศูนย์ก็จะเงียบไปเฉย ๆ โมเดลต้องมี context window อย่างน้อย 64,000 tokens มิฉะนั้น Hermes จะปฏิเสธการเริ่มทำงานด้วยโมเดลนั้น โมเดลคลาวด์ทั้งหมดในรายการเป็นไปตามข้อกำหนดนี้

<div class="aside" data-semantic="callout" role="note" aria-label="หมายเหตุ">

หมายเหตุ

เอกสารอย่างเป็นทางการไม่ได้ระบุตัวเลขที่แน่นอนสำหรับการเลือก VPS หรือทรัพยากรขั้นต่ำ จึงไม่ได้ระบุตัวเลขที่แน่นอนไว้ที่นี่ จากประสบการณ์ที่อธิบายไว้ เครื่องขนาดเล็กก็เพียงพอสำหรับ gateway ที่มีบอตและกำหนดเวลา เพราะการประมวลผลหนักเกิดขึ้นฝั่งโมเดล ตัวเซิร์ฟเวอร์เองมีภาระงานน้อยมาก การทำงานอัตโนมัติผ่านเบราว์เซอร์เป็นส่วนที่หนักที่สุด แต่โดยทั่วไปไม่จำเป็นบนเซิร์ฟเวอร์ (จะอธิบายต่อด้านล่าง)

</div>

## ติดตั้ง Hermes Agent บนเซิร์ฟเวอร์ด้วยคำสั่งเดียวได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

เชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH แล้วรันตัวติดตั้งพร้อมแฟล็กสำหรับข้ามเบราว์เซอร์บนเซิร์ฟเวอร์: curl -fsSL <https://hermes-agent.nousresearch.com/install.sh> \| bash -s -- --skip-browser จากนั้นเริ่มเชลล์เทอร์มินัลใหม่และเลือกโมเดลด้วย hermes setup --portal ตรวจสอบการติดตั้งด้วย hermes doctor

</div>

การติดตั้งบนเซิร์ฟเวอร์แทบจะเหมือนกับบนแล็ปท็อป ต่างกันตรงที่โดยทั่วไปเอเจนต์ไม่จำเป็นต้องใช้เบราว์เซอร์ที่นั่น การทำงานอัตโนมัติผ่านเบราว์เซอร์ยังต้องติดตั้ง Chromium ซึ่งมีขนาดใหญ่ด้วย จึงใช้แฟล็ก `--skip-browser`

1.  ### เชื่อมต่อกับเซิร์ฟเวอร์ผ่าน SSH

    ```bash
    ssh root@your-server-address
    ```

    รันคำสั่งทั้งหมดต่อจากนี้ภายในเซสชันนี้ บนเซิร์ฟเวอร์โดยตรง

2.  ### รันตัวติดตั้งโดยไม่ติดตั้งเบราว์เซอร์

    ```bash
    curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash -s -- --skip-browser
    ```

    สคริปต์ดาวน์โหลดสภาพแวดล้อมที่จำเป็นและติดตั้งคำสั่ง `hermes` แฟล็ก `--skip-browser` จะข้ามการติดตั้งการทำงานอัตโนมัติผ่านเบราว์เซอร์; บนเซิร์ฟเวอร์ที่ไม่มีส่วนติดต่อแบบกราฟิกก็มีแต่จะกินพื้นที่ หากต้องการใช้เบราว์เซอร์ในภายหลัง คุณติดตั้งแยกต่างหากได้

3.  ### เริ่มเชลล์ใหม่และเลือกโมเดล

    ```bash
    source ~/.bashrc
    hermes setup --portal
    ```

    บรรทัดแรกโหลด `PATH` ใหม่เพื่อให้เรียกใช้คำสั่ง `hermes` ได้ บรรทัดที่สองเปิดหน้าลงชื่อเข้าใช้ Nous Portal: ยืนยันการลงชื่อเข้าใช้ แล้วเอเจนต์จะได้รับโมเดลและบริการต่าง ๆ โดยไม่ต้องใช้คีย์แยกสำหรับแต่ละรายการ

4.  ### ตรวจสอบการติดตั้ง

    ```bash
    hermes doctor
    ```

    คำสั่งนี้แสดงว่าติดตั้งอะไรแล้ว ขาดอะไร และแก้ไขอย่างไร เครื่องหมายสีเขียวหมายความว่าทุกอย่างพร้อมแล้ว

ก่อนเพิ่มบอตและกำหนดเวลา ให้ทดลองสนทนาธรรมดาบนเซิร์ฟเวอร์โดยตรงจนใช้งานได้ก่อน: รัน `hermes` แล้วมอบหมายงานง่าย ๆ ที่มีคำตอบตรวจสอบได้ให้มัน เอกสารแนะนำอย่างชัดเจนว่าอย่าเพิ่มฟีเจอร์มากมายก่อนการสนทนาทั่วไปจะทำงานได้ ซึ่งเป็นคำแนะนำที่สมเหตุสมผล





## ทำให้ Hermes ทำงานตลอดเวลาได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

ก่อนอื่นตั้งค่า gateway ด้วย `hermes gateway setup` และเชื่อมต่อ Telegram จากนั้นเปลี่ยน gateway ให้เป็นบริการด้วยคำสั่งเดียว: `hermes gateway install` ติดตั้งบริการผู้ใช้ ส่วน `sudo hermes gateway install --system` ติดตั้งบริการระบบที่เริ่มทำงานเมื่อเซิร์ฟเวอร์บูต บริการผู้ใช้จัดการด้วย `hermes gateway start`, `stop` และ `status` ส่วนบริการระบบบน VPS ต้องคง scope `--system` ชัดเจนและสิทธิ์จำเป็นทุกครั้งที่ตรวจหรือเปลี่ยนบริการ

</div>

gateway คือโปรเซส Hermes เบื้องหลังตัวเดียวที่รักษาการเชื่อมต่อกับแอปส่งข้อความทั้งหมด จัดการเซสชัน และเรียกใช้งานตามกำหนดเวลา การทำงานตลอดเวลาทั้งหมดขึ้นอยู่กับมัน เป้าหมายคือทำให้โปรเซสนี้เริ่มทำงานเองและทำงานต่อเนื่อง

ก่อนอื่นตั้งค่า gateway และเชื่อมต่อแอปส่งข้อความ:

```bash
hermes gateway setup
```

วิซาร์ดการตั้งค่าจะแนะนำแพลตฟอร์มและช่วยให้คุณกรอกโทเค็นบอตกับรายการผู้ที่เข้าถึงได้ ขั้นตอนเชื่อมต่อ Telegram (สร้างบอตด้วย BotFather ค้นหา ID ของคุณ และกรอกโทเค็น) อธิบายไว้ใน[คู่มือการติดตั้งหลัก](https://ailoot.ai/blog/th/hermes-agent-install-setup/); จะไม่กล่าวซ้ำที่นี่

ต่อไปคือกับดักที่ผู้คนมักลืมกันมากที่สุด หากคุณแค่รัน `hermes gateway` โปรเซสจะทำงานตราบเท่าที่เซสชัน SSH ยังเปิดอยู่ ปิดเทอร์มินัล แล้ว gateway ก็หยุด หากต้องการให้ทำงานต่อเนื่อง คุณต้องให้ระบบควบคุมโปรเซสนี้ มีคำสั่งเดียวสำหรับเรื่องนี้:

```bash
hermes gateway install
```

คำสั่งนี้ติดตั้ง gateway เป็นบริการ: บน Linux จะเป็นบริการ systemd ระดับผู้ใช้ ส่วนบน macOS จะใช้ launchd ระบบจะตรวจสอบโปรเซสและเริ่มทำงานอีกครั้งหากเกิดข้อขัดข้อง

บนเซิร์ฟเวอร์ ส่วนใหญ่คุณจะต้องใช้ตัวเลือกที่สอง: บริการระบบที่เริ่มทำงานเมื่อเครื่องบูต ก่อนที่ผู้ใช้คนใดจะลงชื่อเข้าใช้:

```bash
sudo hermes gateway install --system
```

นี่คือสิ่งที่คุณต้องใช้กับ VPS: เซิร์ฟเวอร์รีบูต บริการเริ่มทำงานเอง และบอตกลับมาออนไลน์ จัดการด้วยคำสั่งง่าย ๆ เหล่านี้:

```bash
hermes gateway start     # start
hermes gateway stop      # stop
hermes gateway status    # check status
```

สำหรับบริการระบบ ให้เพิ่ม `sudo` และแฟล็ก `--system` ลงในคำสั่งเหล่านี้ หากไม่มีสองอย่างนี้ คำสั่งจะจัดการบริการผู้ใช้แทนบริการที่เริ่มทำงานตอนบูต:

```bash
sudo hermes gateway start --system
sudo hermes gateway stop --system
sudo hermes gateway status --system
```

## ทำไมจึงต้องใช้ linger และหากไม่มีจะเกิดอะไรขึ้น?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

หากคุณติดตั้ง gateway เป็นบริการผู้ใช้ (โดยไม่มี `--system`), systemd จะหยุดมันทันทีที่คุณออกจาก SSH และจะไม่เริ่มทำงานตอนบูต แก้ไขได้ด้วยคำสั่งเดียว: `sudo loginctl enable-linger username` หลังจากนั้นบริการจะทำงานโดยไม่ขึ้นอยู่กับการลงชื่อเข้าใช้หรือออกจากระบบของคุณ

</div>

นี่คืออุปสรรคที่พบได้บ่อยที่สุด: คุณติดตั้งบริการแล้ว แต่บอตยังคงเงียบตอนกลางคืน สาเหตุอยู่ที่วิธีทำงานของบริการผู้ใช้ใน Linux

บริการ systemd ของผู้ใช้จะผูกกับเซสชันของคุณโดยค่าเริ่มต้น คุณเชื่อมต่อผ่าน SSH แล้ว user manager ของคุณเริ่มทำงาน; บริการก็ทำงาน คุณออกจากระบบ แล้วระบบถือว่าผู้ใช้ไม่ทำงาน จึงปิดบริการของผู้ใช้นั้นพร้อมกับ gateway ของคุณ สำหรับเซิร์ฟเวอร์ที่คุณเข้าออกระบบ นี่คือปัญหา: บอตออนไลน์เฉพาะตอนที่คุณเชื่อมต่อ SSH อยู่

แก้ไขได้ด้วยโหมด linger ซึ่งทำให้ระบบคง user manager ให้ทำงานต่อ แม้ผู้ใช้นั้นไม่ได้ลงชื่อเข้าใช้:

```bash
sudo loginctl enable-linger username
```

หลังรันคำสั่งนี้ บริการผู้ใช้จะทำงานเองและเริ่มทำงานเมื่อเซิร์ฟเวอร์บูต โดยไม่ต้องรอให้คุณลงชื่อเข้าใช้ หากไม่มี linger ระบบจะกลับไปทำงานแบบเดิม: gateway ปิดเมื่อคุณออกจาก SSH และไม่เริ่มทำงานตอนบูต เอกสารระบุเรื่องนี้ไว้อย่างชัดเจน

<div class="aside" data-semantic="callout" role="note" aria-label="ข้อควรระวัง">

ข้อควรระวัง

เรื่องนี้ไม่เกี่ยวกับบริการระบบ (ติดตั้งด้วย `sudo hermes gateway install --system`): บริการนั้นทำงานในระดับเครื่องอยู่แล้วและเริ่มตอนบูต จำเป็นต้องใช้ linger เฉพาะกับบริการผู้ใช้เท่านั้น เลือกอย่างใดอย่างหนึ่ง: บริการระบบ หรือบริการผู้ใช้พร้อม linger

</div>

## รัน Hermes บนเซิร์ฟเวอร์ด้วย Docker พร้อมรีสตาร์ตอัตโนมัติได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

หากคุณต้องการใช้ Docker ก็สามารถให้ Hermes ทำงานเป็น gateway ที่ทำงานต่อเนื่องในคอนเทนเนอร์ได้: docker run -d --name hermes --restart unless-stopped -v ~/.hermes:/opt/data -p 8642:8642 nousresearch/hermes-agent gateway run แฟล็ก --restart unless-stopped จะทำให้คอนเทนเนอร์กลับมาทำงานหลังรีบูต และภายใน image โปรเซส gateway จะเริ่มทำงานใหม่หากเกิดข้อขัดข้องเช่นกัน

</div>

Docker เป็นอีกวิธีที่ใช้ได้สำหรับให้เอเจนต์ทำงานบนเซิร์ฟเวอร์ โดยเฉพาะหากคุณคุ้นเคยกับคอนเทนเนอร์อยู่แล้ว หรือต้องการแยกเอเจนต์ออกจากระบบหลัก ตั้งค่าเพียงครั้งเดียวด้วย `docker run ... setup` จากนั้นเริ่มคอนเทนเนอร์เบื้องหลัง:

```bash
docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  nousresearch/hermes-agent gateway run
```

บรรทัดที่รับผิดชอบการทำงานตลอดเวลามีหน้าที่ดังนี้:

- `-d` — คอนเทนเนอร์ทำงานเบื้องหลังและไม่ค้างเทอร์มินัลไว้
- `--restart unless-stopped` — Docker นำคอนเทนเนอร์กลับมาทำงานหลังเซิร์ฟเวอร์รีบูตหรือเกิดข้อขัดข้อง จะไม่รีสตาร์ตเฉพาะกรณีที่คุณหยุดมันด้วยตนเอง
- `-v ~/.hermes:/opt/data` — การตั้งค่า คีย์ เซสชัน และ memory อยู่บนเซิร์ฟเวอร์ นอกคอนเทนเนอร์ และยังคงอยู่เมื่อสร้างคอนเทนเนอร์ขึ้นใหม่

image เพิ่มการป้องกันอีกชั้น: โปรเซส gateway ทำงานภายใต้ตัวควบคุม s6 หาก gateway ขัดข้อง ก็จะเริ่มทำงานใหม่ภายในไม่กี่วินาทีโดยไม่สูญเสียคอนเทนเนอร์เอง นี่คือการป้องกันสองชั้น: Docker คอยให้คอนเทนเนอร์ทำงานจากภายนอก ส่วน s6 เฝ้าติดตามโปรเซสภายใน

จำความแตกต่างอย่างหนึ่งของวิธีใช้ Docker ไว้: การติดตั้งแบบนี้จะไม่อัปเดตด้วยคำสั่ง `hermes update` หากต้องการอัปเดตใน Docker ให้แทนที่ image ด้วย image ใหม่—ดาวน์โหลดรุ่นล่าสุดแล้วสร้างคอนเทนเนอร์ขึ้นใหม่

## ตรวจสอบอย่างไรว่าทุกอย่างทำงานและจะกลับมาทำงานหลังรีบูต?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

ตรวจสอบสถานะบริการด้วย systemctl และดูบันทึกการทำงานแบบสด จากนั้นทดสอบเซิร์ฟเวอร์ขั้นสำคัญ: รีบูตเครื่องและตรวจสอบว่าบอตกลับมาออนไลน์เอง Hermes รักษาเซสชันและการตอบกลับไว้หลังรีสตาร์ต; คำตอบที่ยังไม่เสร็จจะถูกส่งหลังระบบกู้คืน

</div>

สำหรับบริการผู้ใช้ ให้ตรวจสอบสถานะและบันทึกการทำงานดังนี้:

```bash
hermes gateway status
journalctl --user -u hermes-gateway -f
```

บริการระบบที่แนะนำสำหรับ VPS ต้องใช้ scope ระบบแทน:

```bash
sudo hermes gateway status --system
sudo journalctl -u hermes-gateway -f
```

คำสั่งแรกตรวจบริการที่เลือก คำสั่งที่สองติดตาม log ของ scope นั้น ชื่อ unit นี้ใช้กับการติดตั้ง `~/.hermes` เริ่มต้น Hermes home อื่นอาจมี suffix ให้ดูผล status แล้วใช้ unit ตรงนั้น ห้ามติดตาม user unit ขณะทดสอบการติดตั้งระบบ

 บันทึกของ Hermes อยู่ใน `~/.hermes/logs/` และระบบจะปกปิดข้อมูลลับจากบันทึกโดยอัตโนมัติ จึงส่งให้ฝ่ายสนับสนุนได้อย่างปลอดภัย

ตอนนี้รีบูตเซิร์ฟเวอร์และตรวจสอบว่าเอเจนต์กลับมาทำงานเอง นี่คือการทดสอบเซิร์ฟเวอร์ที่สำคัญ และมักเป็นสิ่งที่ผู้คนลืมทำ:

```bash
sudo reboot
```

เมื่อเซิร์ฟเวอร์เข้าถึงได้อีกครั้ง ให้เชื่อม SSH ใหม่ การติดตั้งระบบตรวจ `sudo hermes gateway status --system` กับ system journal ส่วน user ที่มี linger ตรวจ `hermes gateway status` กับ user journal แล้วส่งข้อความ Telegram หาบอต หากมันตอบโดยที่คุณไม่ต้องทำอะไร การตั้งค่าเริ่มทำงานอัตโนมัติก็ถูกต้อง นี่คือเหตุผลที่ทำทั้งหมดนี้

ไม่ต้องกังวลว่าจะสูญเสียบทสนทนา Hermes เขียนเซสชันลงดิสก์ และเซสชันเหล่านั้นยังอยู่หลัง gateway รีสตาร์ต ยิ่งไปกว่านั้น หาก gateway ขัดข้องขณะที่กำลังส่งคำตอบพอดี ก็จะส่งคำตอบนั้นหลังระบบกู้คืน แทนที่จะรันงานซ้ำ เรื่องนี้สำคัญสำหรับบอตที่ทำงานตลอดเวลา: การรีสตาร์ตที่ไม่คาดคิดจะไม่ทำให้บทสนทนาขาดตอน

## รักษาความปลอดภัยให้เอเจนต์ที่เข้าถึงเทอร์มินัลบนเซิร์ฟเวอร์ได้อย่างไร?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

มาตรการป้องกันหลักสามข้อ: ปิดการเข้าถึงบอตไว้โดยค่าเริ่มต้น (บอตตอบเฉพาะคนที่อยู่ในรายการ) เอเจนต์ขออนุญาตก่อนรันคำสั่งอันตราย และหากต้องการแยกอย่างเต็มรูปแบบ ให้รันเอเจนต์บนเซิร์ฟเวอร์ใน Docker sandbox ทางที่ดีอย่าเปิดโหมดไม่ต้องยืนยัน (YOLO) บนเซิร์ฟเวอร์

</div>

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

**ปิดการเข้าถึงบอต** โดยค่าเริ่มต้น gateway จะตอบเฉพาะคนในรายการผู้ที่เข้าถึงได้ หรือผู้ที่ดำเนินการเชื่อมโยงผ่านรหัสในข้อความส่วนตัวเสร็จแล้ว นี่คือพฤติกรรมที่เหมาะสมสำหรับบอตที่เข้าถึงเทอร์มินัลได้: คนแปลกหน้าที่ส่งข้อความหาบอตจะทำอะไรไม่ได้ รายการนี้ตั้งค่าด้วย ID ตัวเลข เช่น สำหรับ Telegram:

```bash
TELEGRAM_ALLOWED_USERS=123456789,987654321
```

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

**Sandbox เพื่อแยกการทำงานอย่างเต็มรูปแบบ** หากต้องการให้เอเจนต์ไม่สามารถมองเห็นระบบหลักของเซิร์ฟเวอร์ได้จริง ๆ ให้รันคำสั่งของมันในคอนเทนเนอร์ Docker:

```bash
hermes config set terminal.backend docker
```

จากนั้นทุกสิ่งที่เอเจนต์ทำในเทอร์มินัลจะเกิดขึ้นภายใน sandbox ที่แยกไว้ และไม่สามารถเข้าถึงเซิร์ฟเวอร์ที่ใช้งานจริงได้ นี่เป็นมาตรการป้องกันที่สมเหตุสมผลเมื่อคุณให้อิสระเอเจนต์ดำเนินการด้วยตัวเอง

## ควรทำอย่างไรหากบอตเงียบหรือ gateway ขัดข้อง?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

เริ่มจากตรวจสอบสถานะบริการและบันทึกการทำงาน; ส่วนใหญ่สาเหตุคือโทเค็นบอต รายการผู้ที่เข้าถึงได้ หรือโมเดล หากโปรเซสทั้งหมดค้างสนิท บริการ systemd มีตัวจับเวลา watchdog ที่จะรีสตาร์ต gateway หากหยุดแสดงสัญญาณการทำงาน

</div>

เมื่อบอตหยุดตอบสนอง ให้ทำตามลำดับนี้ ตรวจ scope ที่ติดตั้งก่อน: บริการระบบใช้ `sudo hermes gateway status --system` กับ system journal บริการผู้ใช้ใช้ `hermes gateway status` กับ user journal หาก gateway ทำงานอยู่แต่ข้อความส่งไม่ถึง แทบทุกครั้งจะเป็นปัญหาการตั้งค่าแพลตฟอร์ม: โทเค็นบอตไม่ถูกต้อง หรือบุคคลนั้นไม่ได้อยู่ในรายการผู้ที่เข้าถึงได้ รัน `hermes gateway setup` อีกครั้งใน Hermes home เดิม แล้วตรวจบริการที่เลือกด้วย `hermes gateway status --system` สำหรับระบบ หรือ `hermes gateway status` สำหรับผู้ใช้ setup สำเร็จไม่พิสูจน์ว่า gateway ที่ถูกต้องกำลังทำงาน

หากโมเดลส่งคำตอบว่างเปล่าหรือแปลก ๆ ให้ตรวจสอบด้วย `hermes model` และยืนยันผู้ให้บริการกับการลงชื่อเข้าใช้ ลำดับการกู้คืนทั่วไปที่พาคุณจาก “ทุกอย่างพังหมด” กลับไปสู่การทำงานปกติคือ: `hermes doctor`, `hermes model`, `hermes setup` ตามด้วย `hermes gateway status --system` สำหรับติดตั้งระบบ หรือ `hermes gateway status` สำหรับผู้ใช้

อีกเรื่องสำหรับกรณีที่พบไม่บ่อยแต่ชวนหงุดหงิด เมื่อโปรเซสทั้งหมดค้างโดยไม่ได้ขัดข้องจริง บริการ systemd มีตัวจับเวลา watchdog: เพิ่มบรรทัดนี้ลงใน `~/.hermes/config.yaml` แล้วติดตั้งบริการใหม่

```yaml
gateway:
  systemd_watchdog_seconds: 120
```

```bash
# For the VPS system service (same Hermes home as the original install):
sudo hermes gateway install --system --force
sudo hermes gateway status --system
```

หากเป็นบริการผู้ใช้ ให้สร้างเฉพาะ scope นั้นด้วย `hermes gateway install --force` และตรวจ `hermes gateway status` เลือก scope เดียว ห้ามติดตั้งทั้งคู่เพื่อซ่อม gateway ตัวเดียว

หลังจากนั้น gateway จะส่งสัญญาณให้ระบบเป็นระยะว่า “ฉันยังทำงานอยู่” และหากสัญญาณหยุด systemd จะรีสตาร์ตโปรเซสโดยอัตโนมัติ วิธีนี้ใช้ได้เฉพาะบน Linux ที่มี systemd และเฉพาะกรณีโปรเซสค้าง ตัวจับเวลา watchdog ไม่มีผลกับการขัดข้องของเครือข่ายตามปกติระหว่างเซิร์ฟเวอร์กับแอปส่งข้อความ

## ยังมีคำถามอะไรอีกบ้างเกี่ยวกับ Hermes Agent บนเซิร์ฟเวอร์?

<div class="aside" data-semantic="key-takeaway" role="note" aria-label="ประเด็นสำคัญในส่วนนี้">

ประเด็นสำคัญ

คำตอบสั้น ๆ สำหรับคำถามที่พบบ่อย: จำเป็นต้องใช้ VPS โดยเฉพาะหรือไม่ ใช้บอตหลายตัวในเครื่องเดียวกันได้หรือไม่ เซิร์ฟเวอร์ต้องมีส่วนติดต่อแบบกราฟิกหรือไม่ และจะเกิดอะไรขึ้นกับงานที่กำหนดเวลาไว้เมื่อเอเจนต์อยู่บนเซิร์ฟเวอร์

</div>

<div class="section">

### คำถามที่พบบ่อย

จำเป็นต้องใช้ VPS หรือคอมพิวเตอร์ของฉันเองก็ได้?

หากต้องการให้ทำงานตลอดเวลา คุณต้องใช้เครื่องที่เปิดอยู่เสมอ คอมพิวเตอร์ของคุณเองก็ใช้ได้หากคุณยอมเปิดเครื่องไว้ตลอด VPS สะดวกกว่า: เปิดอยู่เสมอและไม่ขึ้นอยู่กับว่าคุณกำลังทำงานหรือนอนหลับ เซิร์ฟเวอร์ Linux ทั่วไปก็เพียงพอ—เอกสารระบุว่า Linux อยู่ในระดับการสนับสนุนขั้นต้น และทดสอบบน Ubuntu ที่ติดตั้งใหม่

ฉันรันบอตหลายตัวบนเซิร์ฟเวอร์เดียวกันได้ไหม?

ได้ Hermes มีโปรไฟล์ และแต่ละโปรไฟล์มีบริการของตัวเอง คำสั่งอย่าง \<profile\> gateway install จะสร้างบริการแยกชื่อ hermes-gateway-\<profile\> และแต่ละบริการทำงานอย่างอิสระ แต่ละโปรไฟล์มีการตั้งค่า โทเค็นบอต และ memory ของตัวเอง

เซิร์ฟเวอร์ต้องมีจอภาพและกราฟิกไหม?

ไม่ เซิร์ฟเวอร์ทำงานโดยไม่มีหน้าจอ และคุณจัดการผ่าน SSH จากเทอร์มินัล โดยทั่วไปเอเจนต์บนเซิร์ฟเวอร์ประเภทนี้ไม่จำเป็นต้องใช้การทำงานอัตโนมัติผ่านเบราว์เซอร์ คุณจึงรันตัวติดตั้งด้วยแฟล็ก --skip-browser; วิธีนี้จะตัดองค์ประกอบขนาดใหญ่เพียงส่วนเดียวที่ต้องใช้กราฟิกออกไป

งานที่กำหนดเวลาไว้จะทำงานตอนที่ฉันไม่อยู่ไหม?

ใช่ นี่คือเหตุผลที่ย้ายไปใช้เซิร์ฟเวอร์ gateway ตัวเดิมจะทำงานตามกำหนดเวลา: ตรวจสอบตารางทุกหนึ่งนาทีและเริ่มงานเมื่อถึงกำหนด จากนั้นส่งผลลัพธ์ไปยังแชตเดิม เพราะ gateway ทำงานเป็นบริการตลอดเวลา ตารางงานจึงทำงานเองโดยไม่ต้องมีคุณคอยดูแล

บอตจะยังทำงานหลังอัปเดตและรีบูตเซิร์ฟเวอร์ไหม?

ใช่ การตั้งค่า เซสชัน และ memory เก็บไว้ในโฟลเดอร์ ~/.hermes และจะไม่สูญหาย หลังรีบูต บริการระบบ (หรือ Docker ที่ใช้ --restart unless-stopped) จะเริ่ม gateway เอง คำตอบที่ยังไม่เสร็จจะถูกส่งหลังรีสตาร์ตและไม่มีอะไรสูญหาย—แต่หากคำตอบกำลังส่งไปได้ครึ่งทางตอนเกิดข้อขัดข้อง คำตอบนั้นอาจมาถึงซ้ำพร้อมข้อความแจ้งว่าอาจเป็นรายการซ้ำ

</div>

<div class="section" role="doc-bibliography" aria-label="แหล่งที่มา">

### แหล่งที่มา

- [Hermes Agent, การติดตั้ง](https://hermes-agent.nousresearch.com/docs/getting-started/installation)
- [Hermes Agent, เริ่มต้นอย่างรวดเร็ว](https://hermes-agent.nousresearch.com/docs/getting-started/quickstart)
- [Hermes Agent, แพลตฟอร์มที่รองรับ](https://hermes-agent.nousresearch.com/docs/getting-started/platform-support)
- [Hermes Agent, Messaging Gateway](https://hermes-agent.nousresearch.com/docs/user-guide/messaging)
- [Hermes Agent, การทำงานใน Docker](https://hermes-agent.nousresearch.com/docs/user-guide/docker)
- [Hermes Agent, งานที่กำหนดเวลาไว้](https://hermes-agent.nousresearch.com/docs/user-guide/features/cron)
- [Hermes Agent, Nous Portal](https://hermes-agent.nousresearch.com/docs/integrations/nous-portal)
- [Hermes Agent, เอกสาร](https://hermes-agent.nousresearch.com/docs/)

</div>







ทำความรู้จักกับ [Ailoot](https://ailoot.ai/)

## คำถามที่พบบ่อย

### ทำไม gateway ดูหยุดหลังติดตั้งเป็น system service?

การตรวจไม่ระบุ scope อาจไปอีกบริการ ใช้ `hermes gateway status --system` กับ system journal สำหรับติดตั้งระบบ ส่วน status ไม่ระบุและ user journal ใช้เฉพาะบริการผู้ใช้ คง Hermes home เดิมตลอด

### system service บน VPS ต้องใช้ loginctl linger หรือไม่?

ไม่ต้อง linger ใช้กับ user systemd ที่ต้องอยู่ต่อหลัง logout และเริ่มตอนบูต บริการระบบเริ่มตอนเครื่องบูตอยู่แล้ว เลือก scope เดียวแล้วตรวจ status กับการตอบบอตซ้ำหลังรีบูต


## Ailoot · บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

Ailoot อาศัยประสบการณ์การดำเนินงานที่สั่งสม ฐานลูกค้าขนาดใหญ่ บริการที่เสถียร และการติดตาม KPI อย่างต่อเนื่อง

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

Ailoot นำประสบการณ์การดำเนินงานนี้มาใช้เพื่อให้เข้าถึงฟังก์ชัน AI ผ่าน API ในผลิตภัณฑ์ของลูกค้า เอเจนต์ แอปพลิเคชัน และระบบอัตโนมัติ
