close

Cách khởi động lại Hermes Agent: hướng dẫn cho từng tình huống

Tác giả: Đông Tùng Ngày đăng: 08/05/2026 Chuyên mục: Hermes Agent
Disclosure
Website Tino blog được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Tino Group có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Tino blog sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại Tino blog được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

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 run hoặc như dịch vụ systemd/launchd nền bằng hermes 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 tick chạy các tác vụ đến hạn một lần rồi thoát. Scheduler chạy bên trong gateway.
Ảnh tiêu đề "Hiểu cấu trúc Hermes Agent trước khi restart" với màn hình hiển thị giao diện Hermes Agent

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
Thoát phiên chat Hermes Agent, terminal in Goodbye và trở về dấu nhắc lệnh

# 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
Chạy hermes gateway stop, hermes gateway restart rồi hermes gateway status: user service hermes-gateway active (running), linger đã bật

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).

Lệnh hermes gateway restart --all dừng 1 tiến trình gateway của mọi profile rồi khởi động lại user service

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
Chạy hermes gateway run khi gateway đang chạy: Hermes báo Gateway already running và gợi ý dùng restart, stop hoặc run --replace

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
Lệnh hermes profile list hiện profile default, model gemini-2.5-flash, gateway running

# 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ốngLệnh cần dùng
Mở lại phiên chat mớiThoá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/macOShermes gateway restart (thêm -y trong script)
Restart gateway trên WSL2Vào tmux → Ctrl+C → hermes gateway run
Restart trong Dockerdocker restart hermes
Restart gateway dùng chung mọi profilehermes gateway restart --all
Sau khi cập nhậthermes 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ếphermes cron run <tên>
Xem trạng thái hiện tạihermes 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 doctor trước.
  • Docker: không chạy hermes update trong 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:

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'.

Đông Tùng

Senior Technology Writer

Là cử nhân Quản trị kinh doanh của Trường Đại học Tài chính - Marketing, Tùng bắt đầu làm việc tại Tino Group từ năm 2021 ở vị trí Content Marketing để thỏa mãn niềm đam mê viết lách của bản thân. Sở hữu khả năng sáng tạo đặc biệt, anh cùng đội ngũ của mình đã tạo nên những chiến dịch quảng cáo độc đáo cùng vô số bài viết hữu ích về nhiều chủ đề khác nhau. Sự tỉ mỉ, kiên trì và tinh thần sáng tạo của Tùng đã góp phần lớn vào thành công của Tino Group trong lĩnh vực marketing trực tuyến.

Xem thêm bài viết

Bài viết liên quan

Xem nhiều