Muốn khởi động lại Hermes Agent, phần lớn trường hợp chỉ cần chạy hermes gateway restart (gateway nhắn tin trên Linux/macOS) hoặc thoát rồi mở lại hermes (phiên chat CLI). Trên WSL2 và Docker, gateway chạy foreground nên khởi động lại bằng hermes gateway run hoặc docker restart; sau hermes update, gateway tự được khởi động lại.
Hermes Agent không có một nút “restart” duy nhất vì nó gồm nhiều thành phần chạy độc lập: phiên chat CLI, gateway nhắn tin, cron scheduler và backend nền. Nếu chưa rõ các thành phần này, xem Hermes Agent là gì; cài đặt từ đầu xem hướng dẫn cài đặt và sử dụng Hermes Agent trên VPS.
Hiểu cấu trúc Hermes Agent trước khi restart
Hermes Agent có ba thành phần khởi động lại độc lập: phiên chat CLI (thoát rồi mở lại), gateway nhắn tin (hermes gateway restart hoặc chạy lại hermes gateway run) và cron scheduler chạy bên trong gateway. Biết mình đang restart thành phần nào giúp chọn đúng lệnh:
- Phiên chat CLI — Giao diện terminal bạn gõ lệnh và nhận phản hồi. Đây là thành phần bạn tương tác trực tiếp. Mỗi lần gõ hermes là một phiên mới được mở.
- Gateway — Dịch vụ nền kết nối Hermes với Telegram, Discord, Slack và các nền tảng nhắn tin khác. Gateway có thể chạy như tiến trình foreground bằng
hermes gateway runhoặc như dịch vụ systemd/launchd nền bằnghermes gateway start. Đây là thành phần cần restart thường xuyên nhất sau khi cập nhật cấu hình. Từ v0.22, mặc định một gateway phục vụ chung mọi profile trên máy. - Cron scheduler — Thành phần xử lý các tác vụ tự động theo lịch. Kiểm tra trạng thái scheduler bằng
hermes cron status;hermes cron tickchạy các tác vụ đến hạn một lần rồi thoát. Scheduler chạy bên trong gateway.

Hướng dẫn khởi động lại Hermes Agent đúng cách
Cách khởi động lại Hermes Agent phụ thuộc vào thành phần và môi trường: phiên CLI chỉ cần thoát rồi mở lại; gateway trên Linux, macOS dùng hermes gateway restart; trên WSL2 và Docker dùng hermes gateway run hoặc docker restart. Bảy tình huống dưới đây đi từ đơn giản đến khởi động lại hoàn toàn.
Tình huống 1 — Khởi động lại phiên chat CLI
Đây là trường hợp đơn giản nhất khi bạn muốn bắt đầu lại cuộc hội thoại hoặc áp dụng cấu hình mới vào phiên chat.
Thoát và mở lại phiên mới
# Trong phiên chat đang mở, thoát bằng một trong các cách sau:
- Ctrl+C: Nhấn 2 lần trong 2 giây để thoát hoàn toàn
- Ctrl+D: Thoát ngay lập tức
- /quit: Slash command thoát

# Mở phiên mới
hermes
hermes --tui # Giao diện TUI hiện đại hơn
Tiếp tục đúng phiên cũ sau khi thoát
Khi thoát, Hermes hiển thị lệnh để resume như sau, ví dụ:
Resume this session with:
hermes --resume 20260225_143052_a1b2c3
Các lệnh resume phổ biến:
- hermes
--continue: Tiếp tục phiên gần nhất - hermes -c: Viết tắt
- hermes -c “tên dự án”: Tiếp tục phiên có tên này
- hermes
--resume<session-id>: Tiếp tục theo ID cụ thể
Mở phiên hoàn toàn tách biệt — bỏ qua cấu hình cá nhân
Khi cần debug mà không muốn cấu hình cá nhân ảnh hưởng đến kết quả:
# Bỏ qua config.yaml, dùng giá trị mặc định
hermes chat --ignore-user-config
# Bỏ qua cả memory, skills, AGENTS.md
hermes chat --ignore-rules
# Kết hợp cả hai để có phiên hoàn toàn cô lập
hermes chat --ignore-user-config --ignore-rules -q "Tái hiện lỗi mà không có cấu hình cá nhân"
Tình huống 2 — Khởi động lại Gateway
Gateway là thành phần cần restart thường xuyên nhất sau khi thay đổi cấu hình Telegram, thêm nền tảng mới hoặc sau khi chạy hermes update.
Restart gateway trên Linux (systemd)
# Dừng gateway
hermes gateway stop
# Khởi động lại
hermes gateway restart
Cập nhật 10/2026 (Hermes Agent v0.22.5): khi gateway đang chạy dở lượt chat, cron hoặc tác vụ nền, hermes gateway restart và stop liệt kê các việc đó và hỏi y/N trước khi ngắt; thêm -y để bỏ qua câu hỏi (bắt buộc khi chạy trong script). Nguồn: CLI Commands Reference.
# Kiểm tra trạng thái
hermes gateway status

Restart gateway trên WSL2 và Docker
WSL2 không hỗ trợ systemd ổn định — dùng hermes gateway run thay vì hermes gateway start. Kết hợp tmux để giữ gateway chạy liên tục:
# Vào phiên tmux đang chạy gateway
tmux attach -t hermes
# Dừng gateway
Ctrl+C
# Khởi động lại
hermes gateway run
# Tách ra khỏi tmux mà gateway vẫn chạy
# Nhấn Ctrl+B rồi nhấn D
Nếu chưa có phiên tmux:
# Tạo phiên tmux mới và khởi động gateway
tmux new -s hermes 'hermes gateway run'
Restart Hermes Agent chạy trong Docker
Bản chạy trong container khởi động lại bằng lệnh của Docker, không dùng hermes update bên trong container. Với container đặt tên hermes như hướng dẫn Docker:
docker restart hermes
docker logs -f hermes # xem log sau khi chạy lại
Cập nhật bản Docker bằng cách kéo image mới (nousresearch/hermes-agent:stable) rồi tạo lại container; chi tiết ở bài cài đặt Hermes Agent trên Docker.
Restart gateway trên macOS (launchd)
hermes gateway stop
hermes gateway start
hermes gateway status
Restart tất cả gateway của mọi profile cùng lúc
Nếu bạn chạy nhiều profile song song và muốn restart gateway phục vụ tất cả profile:
hermes gateway restart --all
Cập nhật 10/2026 (Hermes Agent v0.22.5): với gateway dùng chung (multiplex), restart --all nghĩa là khởi động lại tiến trình gateway chung đó; profile nào còn chạy gateway riêng sẽ được báo tên chứ không bị tắt. Xem trạng thái từng profile bằng hermes gateway list (Running Many Gateways at Once).

Tình huống 3 — Khởi động lại sau khi cập nhật
Đây là tình huống thường gặp cần restart — sau khi chạy hermes update để áp dụng phiên bản mới.
Cập nhật và restart trong một bước
# Cập nhật; sau khi xong, Hermes tự khởi động lại các gateway đang chạy
hermes update
Cập nhật 10/2026 (Hermes Agent v0.22.5): các phiên bản đầu của bài dùng cờ --restart-gateway; cờ này không có trong tài liệu hiện hành. Sau khi cập nhật thành công, hermes update tự khởi động lại mọi gateway đang chạy của cùng thư mục Hermes và in bảng phiên bản từng profile; gateway nào chưa lên bản mới sẽ có dòng ⚠ kèm lệnh restart cần chạy. Xem trước kế hoạch cập nhật (dịch vụ nào sẽ được restart) bằng hermes update --plan.
Cập nhật thủ công từng bước
# Bước 1: Kiểm tra có bản cập nhật không mà chưa tải về
hermes update --check
# Bước 2: Tải về và cài đặt bản mới nhất
hermes update
# Bước 3: Restart gateway thủ công nếu bước 2 báo gateway chưa lên bản mới
hermes gateway restart
# Bước 4: Xác nhận mọi thứ hoạt động
hermes doctor
hermes gateway status
Cập nhật có sao lưu trước
# Sao lưu đầy đủ thư mục Hermes trước khi cập nhật (mặc định chỉ chụp nhanh trạng thái)
hermes update --backup
Tình huống 4 — Khởi động lại khi gặp sự cố
Khi Hermes hoạt động bất thường, chẳng hạn như phản hồi chậm, gateway mất kết nối, hoặc config không được áp dụng — thứ tự xử lý sau sẽ giúp bạn nhanh chóng khôi phục:
# Bước 1: Chẩn đoán tổng thể
hermes doctor
# Bước 2: Tự động sửa nếu có thể
hermes doctor --fix
# Bước 3: Kiểm tra lại model và provider
hermes model
# Bước 4: Chạy lại wizard thiết lập nếu cần
hermes setup
# Bước 5: Kiểm tra danh sách session
hermes sessions list
# Bước 6: Kiểm tra trạng thái gateway
hermes gateway status
Nếu gateway bị treo hoàn toàn và không phản hồi với lệnh stop:
# Tìm tiến trình Hermes đang chạy
ps aux | grep hermes
# Buộc dừng tất cả tiến trình Hermes
pkill -f hermes
Lưu ý: pkill -f hermes dừng mọi tiến trình có chữ “hermes” trong dòng lệnh, kể cả backend Desktop và tác vụ đang chạy dở. Chỉ dùng khi hermes gateway stop không phản hồi; nếu chỉ một tiến trình treo, dừng đúng PID tìm được ở bước trên.
# Đợi vài giây rồi khởi động lại
hermes gateway run # Trên WSL2
hermes gateway start # Trên Linux/macOS có systemd/launchd

Tình huống 5 — Khởi động lại theo profile
Nếu dùng nhiều profile, ví dụ một profile cho công việc, một profile cá nhân, bạn có thể restart từng profile riêng lẻ.
# Khởi động Hermes với profile cụ thể
hermes --profile work
hermes -p work
# Restart gateway của một profile cụ thể
hermes -p work gateway restart
Cập nhật 10/2026 (Hermes Agent v0.22.5): khi một gateway phục vụ chung mọi profile, lệnh này chỉ khởi động lại các bot của profile work, không dừng gateway chung.
# Xem danh sách tất cả profile
hermes profile list

# Xem chi tiết profile đang dùng
hermes status
Tình huống 6 — Khởi động lại Cron Scheduler
Khi tác vụ tự động không chạy đúng giờ hoặc cần kích hoạt thủ công:
# Kiểm tra scheduler đang chạy không
hermes cron status
# Xem danh sách tác vụ đã lên lịch
hermes cron list
# Đưa một tác vụ cụ thể vào lượt chạy ở nhịp scheduler kế tiếp
hermes cron run <tên-tác-vụ>
# Chạy tất cả tác vụ đến hạn ngay lập tức và thoát
hermes cron tick
Cron Scheduler thường tự khởi động lại cùng gateway. Nếu tác vụ không chạy dù scheduler đang chạy, kiểm tra xem tác vụ có đang ở trạng thái pause không:
- hermes cron list: Xem trạng thái từng tác vụ
- hermes cron resume <tên>: Tiếp tục tác vụ đang tạm dừng
Tình huống 7 — Khởi động lại hoàn toàn từ đầu
Khi mọi thứ rối tung và bạn muốn bắt đầu lại hoàn toàn — không mất dữ liệu.
# Bước 1: Sao lưu toàn bộ dữ liệu trước
hermes backup -o ~/hermes-backup-$(date +%Y%m%d).zip
Bản sao lưu gồm cấu hình, skill, session và dữ liệu (không gồm mã nguồn). Khôi phục bằng hermes import <file.zip>.
# Bước 2: Dừng tất cả tiến trình Hermes
hermes gateway stop
pkill -f hermes
# Bước 3: Chạy lại wizard thiết lập đầy đủ
hermes setup
# Bước 4: Xác nhận model và provider đang hoạt động
hermes model
hermes chat -q "Kiểm tra kết nối"
# Bước 5: Khởi động lại gateway
hermes gateway start # Linux/macOS
hermes gateway run # WSL2
# Bước 6: Kiểm tra tổng thể
hermes doctor
hermes status
Bảng tóm tắt — chọn đúng lệnh theo tình huống
| Tình huống | Lệnh cần dùng |
|---|---|
| Mở lại phiên chat mới | Thoát bằng Ctrl+C (2 lần) hoặc /quit → chạy hermes |
| Tiếp tục phiên chat cũ | hermes -c hoặc hermes --resume <id> |
| Restart gateway trên Linux/macOS | hermes gateway restart (thêm -y trong script) |
| Restart gateway trên WSL2 | Vào tmux → Ctrl+C → hermes gateway run |
| Restart trong Docker | docker restart hermes |
| Restart gateway dùng chung mọi profile | hermes gateway restart --all |
| Sau khi cập nhật | hermes update (tự restart gateway; kiểm tra bằng hermes gateway status) |
| Khi gặp sự cố | hermes doctor → hermes doctor --fix |
| Đưa tác vụ cron vào lượt chạy kế tiếp | hermes cron run <tên> |
| Xem trạng thái hiện tại | hermes status |
Khi nào không nên khởi động lại ngay?
Không nên khởi động lại gateway khi nó đang chạy dở tác vụ dài (cron báo cáo, subagent nền, lượt chat đang gọi công cụ), vì việc đang chạy sẽ bị ngắt. Hãy xem danh sách việc đang chạy mà hermes gateway restart in ra rồi mới xác nhận, hoặc đợi tác vụ xong.
- Muốn chặn việc mới nhưng để việc đang chạy hoàn tất: dùng
hermes pause, xong thìhermes resume. - Lỗi do cấu hình sai (YAML hỏng, thiếu API key): restart không giải quyết được; chạy
hermes doctortrước. - Docker: không chạy
hermes updatetrong container; cập nhật bằng image mới.
Chạy Hermes Agent 24/7 trên VPS
Gateway, cron và bot nhắn tin chỉ chạy khi máy chủ còn bật, nên VPS là nơi hợp lý để Hermes Agent hoạt động liên tục và tự khởi động cùng hệ thống. Trên VPS, gateway cài thành dịch vụ systemd sẽ tự chạy lại sau mỗi lần máy chủ khởi động, nên bạn ít phải restart thủ công.
Muốn chạy Hermes Agent 24/7 mà không tự cài? VPS Hermes Agent của Tino cài sẵn Hermes Agent trên VPS NVMe đặt tại Việt Nam; bạn vẫn có quyền root để cấu hình. Xem cấu hình và giá trên trang sản phẩm. Nếu dùng trong 30 ngày mà không hài lòng, bạn được hoàn 100% (xem điều kiện).
Các bài viết liên quan:
- Cấu hình tối thiểu để chạy Hermes Agent
- Hướng dẫn sử dụng Hermes Agent cơ bản
- Hướng dẫn thiết lập Hermes Agent cho người mới
- Hướng dẫn sử dụng cron job trên Hermes Agent
- Hướng dẫn cài đặt Hermes Agent trên Docker
- Hướng dẫn gỡ cài đặt Hermes Agent trên VPS
Kết luận
Khởi động lại Hermes Agent không phải là một thao tác đơn giản kiểu “tắt đi bật lại” mà là việc xác định đúng thành phần nào cần restart và dùng đúng lệnh cho thành phần đó. Phần lớn trường hợp, hermes gateway restart cho gateway và thoát rồi mở lại hermes cho phiên chat là đủ.
Khi không chắc vấn đề đang ở đâu, hermes doctor là điểm bắt đầu hợp lý: lệnh này kiểm tra cấu hình, phụ thuộc và kết nối, chỉ ra thành phần có vấn đề trước khi bạn restart từng thứ một.
Những câu hỏi thường gặp
Khởi động lại Hermes Agent có làm mất lịch sử hội thoại không?
Không. Toàn bộ lịch sử hội thoại được lưu trong SQLite database tại ~/.hermes/state.db — hoàn toàn tách biệt với tiến trình Hermes đang chạy. Dù bạn thoát, restart hay tắt máy, dữ liệu vẫn nguyên vẹn. Sau khi khởi động lại, chạy hermes -c để tiếp tục đúng phiên hội thoại gần nhất mà không mất bất kỳ ngữ cảnh nào.
Restart gateway có làm gián đoạn tin nhắn qua Telegram không?
Có một khoảng gián đoạn ngắn trong thời gian gateway đang tắt và khởi động lại. Telegram giữ các tin chưa được bot nhận trên máy chủ của Telegram (tối đa 24 giờ theo Telegram Bot API), nên gateway sẽ nhận lại khi kết nối trở lại. Sau khi restart, chạy hermes gateway status để xác nhận gateway đã kết nối thành công trước khi thông báo cho người dùng.
Sự khác biệt giữa hermes gateway restart và hermes gateway stop rồi hermes gateway start là gì?
Về kết quả cuối cùng thì giống nhau — gateway dừng rồi chạy lại. hermes gateway restart là lệnh gộp, trong khi hermes gateway stop kết hợp hermes gateway start là hai lệnh riêng lẻ. Dùng hermes gateway restart trong hầu hết trường hợp vì ngắn gọn hơn. Dùng stop và start riêng biệt khi cần làm gì đó ở giữa hai bước — ví dụ chỉnh sửa file cấu hình xong rồi mới start lại.
Trên WSL2, tại sao hermes gateway restart không hoạt động mà phải dùng tmux?
WSL2 không hỗ trợ systemd ổn định. Lệnh hermes gateway start và hermes gateway restart dựa vào systemd để quản lý dịch vụ nền, nên không hoạt động đúng trong môi trường WSL2. Giải pháp chính thức là dùng hermes gateway run — lệnh này chạy gateway ở foreground thay vì đăng ký như dịch vụ systemd. Kết hợp với tmux để giữ gateway chạy liên tục dù đóng cửa sổ terminal: tmux new -s hermes 'hermes gateway run'.
