Hermes Agent không có một nút “restart” duy nhất như các ứng dụng desktop thông thường và điều đó hoàn toàn có lý do. Hermes thực ra gồm nhiều thành phần hoạt động độc lập: phiên chat CLI, gateway nhắn tin, cron scheduler, và daemon nền. Mỗi thành phần có cách khởi động lại riêng và restart đúng thành phần sẽ giải quyết đúng vấn đề bạn đang gặp. Bài viết này sẽ hướng dẫn bạn cách khởi động lại Hermes Agent A-Z.
Hiểu cấu trúc Hermes Agent trước khi restart
Trước khi restart bất cứ thứ gì, cần biết mình đang restart cái gì. Hermes gồm ba thành phần chính có thể cần restart độc lập với nhau:
- 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. - 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 và kích hoạt chạy ngay bằng hermes cron tick.

Hướng dẫn khởi động lại Hermes Agent đúng cách
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
# 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 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 tất cả sau khi cập nhật:
hermes gateway restart --all

Tình Huống 3 — Khởi động lại sau khi cập nhật
Đây là tình huống phổ biến nhất 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 và tự động restart gateway sau khi xong
hermes update --restart-gateway
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
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 toàn bộ dữ liệu trước khi cập nhật, rồi restart gateway
hermes update --backup --restart-gateway
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
# Đợ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
# 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
# Kích hoạt một tác vụ cụ thể chạy ngay
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ướ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 → chạy hermes |
| Tiếp tục phiên chat cũ | hermes -c hoặc hermes --resume <id> |
| Restart gateway trên Linux | hermes gateway restart |
| Restart gateway trên WSL2 | Vào tmux → Ctrl+C → hermes gateway run |
| Restart tất cả profile | hermes gateway restart --all |
| Sau khi cập nhật | hermes update --restart-gateway |
| Khi gặp sự cố | hermes doctor → hermes doctor --fix |
| Kích hoạt tác vụ cron ngay | hermes cron run <tên> |
| Chẩn đoán tổng thể | hermes doctor |
| Xem trạng thái hiện tại | hermes status |
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 cách thêm skill cho Hermes Agent
- Hướng dẫn cài đặt Hermes Agent trên Docker
- Cách cài đặt Hermes Agent trên máy tính Windows
- Cách cài đặt và sử dụng 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 đó.
Khi không chắc vấn đề đang ở đâu, hermes doctor luôn là điểm bắt đầu tốt nhất, lệnh này chẩn đoán toàn bộ hệ thống và chỉ ra chính xác thành phần nào đang có vấn đề, thay vì phải restart mù quáng 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. Tin nhắn gửi đến trong khoảng thời gian đó sẽ được Telegram giữ lại và chuyển đến ngay khi gateway 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 tắt, 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’.
