So sánh Hermes Agent với OpenClaw
Trong hệ sinh thái trợ lý AI cá nhân tự host, OpenClaw và Hermes Agent là hai lựa chọn tôi đã vận hành thật, cả hai đều nối LLM với Telegram/Discord, chạy lệnh terminal và tự động hóa việc trên VPS riêng.
Tôi dùng OpenClaw trước, rồi chuyển sang Hermes. Bài này không bênh bên nào, chỉ so sánh những điểm mà khi vận hành thật mới thấy khác nhau.
1. Bảng So sánh Tổng quan
| Tiêu chí | OpenClaw | Hermes Agent (Nou Research) |
|---|---|---|
| Ngôn ngữ & Runtime | Node.js / TypeScript | Python 3.11+ |
| Kiến trúc Cron | 2 nguồn: SQLite cron_jobs + OS Crontab | 1 nguồn: cron/jobs.json + deliveries.db |
| Timezone Cron | Dễ lệch giữa tiến trình Node và host OS | Timezone bake trực tiếp lúc tạo job |
| One-shot Jobs | Dùng bảng scheduler tạm | Date-pinned cron expression + --repeat 1 |
| Chế độ Script | Không tách biệt rõ | Cờ --script + --no-agent (không tốn token) |
| Session Lifecycle | Tự động session_reset theo lịch định kỳ | Đã bỏ reset theo giờ (chỉ còn lệnh /new) |
| Tự vệ (Guard Rails) | Sandbox tiến trình cơ bản | Chặn lệnh lifecycle từ trong agent; kiểm tra path binary |
| Công cụ Di trú | Thủ công | Lệnh hermes claw migrate tích hợp sẵn |
| Ngân sách Memory | Không giới hạn cứng (dễ phình context) | Mặc định memory_char_limit ~2.200 ký tự |
2. Cấu trúc Nền tảng: Node.js vs. Python
Sự khác biệt cốt lõi bắt nguồn từ ngôn ngữ nền:
- OpenClaw (Node.js/TypeScript): mạnh về I/O bất đồng bộ và hệ sinh thái npm. Plugin webhook, tích hợp REST, xử lý sự kiện đều nhanh và quen thuộc với kỹ sư fullstack web.
- Hermes Agent (Python): hưởng lợi trực tiếp từ hệ sinh thái AI/ML — thư viện NLP, vector DB, script hạ tầng Linux đều gắn tự nhiên. Với tôi, hiệu ứng phụ hay nhất là khi cần viết script phân tích dữ liệu cho agent chạy, không phải chuyển ngữ cảnh giữa hai thế giới.
3. Cron: hệ hai nguồn đối một nguồn
Cách tổ chức cron là chỗ hai nền tảng khác nhau rõ nhất:
OpenClaw: job nằm ở hai chỗ
Job được lưu trong SQLite và ghi cả vào crontab của hệ điều hành. Chạy thật mới thấy rắc rối:
- Lệch múi giờ: biến môi trường của daemon lệch với host là job kích hoạt sai giờ, và lỗi này khó bắt vì không có log tập trung.
- Job mồ côi: xóa job trong database nhưng dòng crontab chưa được dọn, nó vẫn chạy ngoài ý muốn.
Hermes: một nguồn, timezone gắn lúc tạo
Mọi job nằm trong cron/jobs.json, trạng thái gửi ở deliveries.db:
- Timezone bake: timezone đọc từ config lúc tạo job và gắn cứng vào định nghĩa. Hệ quả thực tế: phải set timezone đằng trước khi tạo job, sau này đổi config không kéo theo job cũ.
- One-shot: cron expression gắn ngày cụ thể + cờ
--repeat 1— nhắc chạy một lần vào một hôm là cái này. --no-agent: job chỉ chạy script rồi gửi output, không đụng LLM. Thực tế cron của tôi về đêm phần lớn chạy kiểu này.- 409 khi gateway đang chạy: sửa trực tiếp file cron khi gateway bật sẽ bị chặn, phải đi qua CLI/API.
4. Session: reset tự động đối giữ liên tục
Đây là khác biệt thói quen dùng hằng ngày, và với tôi là điểm quyết định khi chọn bên nào:
- OpenClaw: tự động
session_resettheo lịch (ví dụ 3h sáng). Mỗi sáng bắt đầu với ngữ cảnh sạch. - Hermes: từ bản ~v2026.9.7 đã bỏ reset theo giờ. Phiên giữ liên tục, làm mới chỉ khi bạn gõ
/new.
Cách nào cũng có lý: reset tự động chống loãng context, giữ liên tục bảo toàn công việc dài. Về Hermes, tôi phải tập thói quen gõ /new khi chuyển chủ đề — thói quen mới, nhưng đổi lại agent nhớ được việc dở của cả ngày.
5. Cơ chế Tự vệ (Guard Rails)
Hermes thiết lập ranh giới an toàn nghiêm ngặt hơn khi agent thực thi lệnh terminal:
- Chặn lệnh can thiệp Gateway: Nếu agent cố gắng chạy các lệnh tác động đến vòng đời dịch vụ như
systemctl restart hermes-gatewayhaykilltiến trình gateway từ bên trong, hệ thống sẽ lập tức từ chối nhằm tránh tự ngắt kết nối. - Kiểm tra đường dẫn tuyệt đối (Binary Path Refusal): Hermes từ chối các cron script gọi binary cũ bằng đường dẫn tuyệt đối (absolute path) nếu không nằm trong danh mục cho phép.
6. Di trú và những chỗ không map được
Lệnh hermes claw migrate chuyển được model, skills, secrets. Ba chỗ cần xử tay:
- Persona bị ARCHIVED:
IDENTITY,MEMORY,AGENTS.mdcũ không map thẳng vào cấu trúc mới mà bị archive. Phải tự tay đọc, lọc và dựng lại vàoSOUL.md+memories/. Đây là phần tốn thời gian nhất trong migration thật của tôi. - Memory 64KB đối trần 2.200 ký tự: không nhồi được. Giải pháp là file con trỏ + read-on-demand, phần dài hạn đưa sang vector DB ngoài.
- Hiển thị tin nhắn: cách chia đoạn (chunking) và format code block trên Telegram hơi khác giữa hai bên — người dùng sẽ nhận ra ngay nếu để ý.
Nhận xét
- Chọn OpenClaw nếu bạn gắn với hệ sinh thái Node.js/TypeScript, thích session tự reset mỗi chu kỳ, muốn cấu hình đơn giản.
- Chọn Hermes Agent nếu bạn ưu tiên cron tập trung một nguồn, hệ sinh thái Python, guard rails chặt và muốn tiết kiệm token với job không cần LLM.
Trường hợp của tôi: tôi chạy OpenClaw một năm rồi migrate sang Hermes vì phần lớn nhu cầu là Python script + cron về đêm. Không bên nào “tốt hơn” tuyệt đối — chọn theo thói quen và stack của bạn.