AI & Automation (vnROM)

Cover image for Một mô hình Hermes Agent 24/7 rẻ nhưng vẫn an toàn để anh em tham khảo
Chako Lab
Chako Lab

Posted on • Originally published at reddit.com

Một mô hình Hermes Agent 24/7 rẻ nhưng vẫn an toàn để anh em tham khảo

Một bài chia sẻ gần đây trong cộng đồng Hermes Agent khá đáng chú ý: tác giả dựng một trợ lý cá nhân chạy 24/7 trên máy nhà, kết hợp công cụ self-hosted với API cloud giá rẻ, và giữ chi phí token khoảng vài USD mỗi tháng. Điểm hay không nằm ở danh sách tool dài, mà ở cách chia vai trò rất thực tế: dữ liệu nào nên ở local, tác vụ nào nên đẩy lên cloud, và phần nào bắt buộc phải có cơ chế phê duyệt trước khi cho agent tự làm.

Dưới đây là cách mình rút gọn thành một blueprint để anh em có thể áp dụng cho hệ Hermes, OpenClaw, hoặc bất kỳ agent cá nhân nào có tool + memory + gateway.

1. Bắt đầu từ mục tiêu vận hành, không bắt đầu từ model

Mục tiêu của setup này là một trợ lý cá nhân luôn sẵn sàng, có thể xử lý lịch, ghi chú, web research, thông báo nghề nghiệp, voice/text qua Telegram, và sau đó mở rộng sang email, file management, RAG cá nhân.

Nếu nhìn theo hướng vận hành, agent 24/7 cần 5 lớp:

  • kênh giao tiếp: Telegram, terminal, web UI hoặc mobile gateway
  • công cụ local: lịch, task, note, file, CLI, browser/scraper
  • lớp model: model chính, model phụ, model vision, model nén context
  • bộ nhớ: markdown wiki, database, vector store, hoặc kết hợp
  • hàng rào an toàn: quyền đọc/ghi, propose/approval, logging, rollback

Model chỉ là một phần trong hệ thống. Nếu chọn model trước rồi mới nhét mọi thứ vào context, chi phí và rủi ro sẽ tăng rất nhanh.

2. Giữ dữ liệu gốc ở local càng nhiều càng tốt

Stack được chia sẻ dùng các thành phần như:

  • Radicale cho CalDAV: lịch, task, journal
  • Flatnotes hoặc markdown wiki cho ghi chú có cấu trúc
  • SearXNG, Firecrawl, Camofox để tìm kiếm và trích xuất web sạch hơn
  • custom MCP/skill cho LinkedIn hoặc các nguồn dữ liệu cá nhân
  • email CLI/gateway đang được đưa vào sau, với cơ chế phê duyệt

Bài học ở đây là: đừng biến LLM provider thành nơi lưu trạng thái chính. Agent có thể đọc, tóm tắt, suy luận, nhưng dữ liệu gốc nên nằm trong hệ thống mình kiểm soát.

Một nguyên tắc đơn giản:

  • dữ liệu riêng tư: ưu tiên local-first
  • dữ liệu cần suy luận: gửi phần tối thiểu cần thiết sang model
  • hành động có tác động thật: bắt buộc có log và bước xác nhận
  • dữ liệu lặp lại nhiều lần: đưa vào wiki/vector store thay vì nhồi vào prompt

3. Router model để giảm chi phí thay vì dùng một model đắt cho mọi việc

Tác giả dùng một model giá rẻ làm core/sub-agent, rồi tách các tác vụ phụ sang endpoint phù hợp hơn: model khác cho vision, model khác cho context compression/session search, STT miễn phí qua Groq Whisper, TTS bằng edge-tts.

Cách nghĩ này rất đúng với agent chạy dài hạn. Không phải request nào cũng cần model mạnh nhất.

Có thể chia tầng như sau:

Tác vụ Nên dùng loại model nào
Lệnh hằng ngày, routing tool, tóm tắt ngắn model rẻ, nhanh
Lập kế hoạch phức tạp, code khó, debug sâu model mạnh hơn hoặc bật reasoning theo phiên
Nén context, lọc search result dài model nhanh, chịu context tốt
Nhìn ảnh/screenshot UI vision model rẻ nếu độ chính xác đủ dùng
STT/TTS dịch vụ chuyên dụng, không cần LLM tổng quát

Điểm quan trọng là phải có fallback có kiểm soát. Fallback không nên là “cứ lỗi thì gọi model đắt nhất”, mà nên ghi rõ: lỗi loại nào được fallback, giới hạn bao nhiêu lần, và khi nào dừng để hỏi người dùng.

4. Voice qua Telegram là tiện, nhưng cần thiết kế vòng lặp rõ ràng

Luồng được mô tả khá gọn:

Telegram voice -> STT -> Hermes Agent -> Tool execution -> TTS -> voice note trả về điện thoại
Enter fullscreen mode Exit fullscreen mode

Đây là một use case rất mạnh cho trợ lý cá nhân, vì nhiều việc nhỏ trong ngày nói nhanh hơn gõ. Nhưng khi agent có quyền tool, voice cũng dễ tạo hành động ngoài ý muốn hơn text.

Mình sẽ đặt 3 mức quyền:

  1. read-only: hỏi lịch, đọc note, tóm tắt inbox, tìm thông tin
  2. propose-only: soạn email, đề xuất sửa file, chuẩn bị task, tạo kế hoạch
  3. execute-after-confirm: gửi email, sửa file, đặt lịch, xóa dữ liệu, đăng bài

Với voice, nên mặc định ở mức 1 hoặc 2. Các lệnh mức 3 nên được agent đọc lại ngắn gọn và yêu cầu xác nhận bằng text hoặc nút bấm.

5. File management và email phải vào sau cùng

Một chi tiết mình thích trong bài gốc là tác giả nói thẳng vẫn còn “sợ” khi cho autonomous agent quản lý file local. Đây là thái độ đúng.

Email và file là hai vùng dễ gây thiệt hại thật:

  • gửi nhầm email
  • xóa/ghi đè file
  • lộ attachment hoặc dữ liệu riêng tư
  • agent hiểu sai intent rồi tự dọn thư mục
  • vòng lặp cron chạy sai nhiều lần

Checklist tối thiểu trước khi bật quyền ghi:

  • mọi write action có dry-run hoặc diff
  • mọi destructive action cần xác nhận
  • có allowlist thư mục hoặc mailbox
  • log đủ để biết agent đã đọc/gửi/sửa gì
  • có backup hoặc versioning
  • cron job có rate limit và cơ chế dừng khi lỗi lặp lại

Đừng cố “autonomous” quá sớm. Một agent bán tự động nhưng đáng tin thường hữu ích hơn agent tự động hoàn toàn nhưng khó kiểm soát.

6. RAG local nên phục vụ bộ nhớ dài hạn, không thay thế context engineering

Kế hoạch dùng Qdrant + embedding model chạy CPU + Firecrawl để index tài liệu là hợp lý. Nhưng anh em nên tách rõ 3 loại bộ nhớ:

  • working context: những gì cần trong phiên hiện tại
  • structured memory: profile, preference, task state, decision log
  • retrieval memory: tài liệu dài, note, docs, web archive, transcript

Vector store phù hợp với retrieval memory, không phải nơi nhét mọi thứ. Nếu dữ liệu có cấu trúc rõ như task, lịch, trạng thái dự án, cấu hình hệ thống, thì database hoặc file YAML/JSON thường dễ kiểm soát hơn.

Một pipeline RAG gọn:

Nguồn tài liệu -> trích xuất markdown sạch -> chunk theo heading -> gắn metadata -> embed -> index -> truy xuất có trích dẫn -> trả lời kèm nguồn
Enter fullscreen mode Exit fullscreen mode

Metadata nên có ít nhất: nguồn, ngày crawl, loại tài liệu, project, quyền truy cập, và phiên bản. Thiếu metadata thì retrieval rất nhanh biến thành “đống nhớ mơ hồ”.

7. Công thức triển khai cho anh em muốn thử

Nếu muốn dựng một stack tương tự, mình sẽ đi theo thứ tự này:

  1. Chọn một kênh điều khiển chính, ví dụ Telegram hoặc terminal.
  2. Kết nối một nguồn dữ liệu ít rủi ro trước, như note markdown hoặc lịch read-only.
  3. Dùng model rẻ cho lệnh thường ngày, chỉ nâng model khi task thật sự khó.
  4. Thêm logging cho mọi tool call quan trọng.
  5. Tạo propose/approval flow trước khi bật email hoặc file write.
  6. Sau khi workflow ổn định, mới thêm RAG local bằng Qdrant hoặc database tương đương.
  7. Đặt budget theo ngày/tháng và cảnh báo khi token tăng bất thường.

Kết lại

Điểm đáng học từ setup này là tư duy hybrid: local-first cho dữ liệu và tool, cloud model cho phần suy luận cần thiết, router để tối ưu chi phí, và approval flow cho hành động rủi ro.

Với agent cá nhân, mục tiêu không phải là khoe thật nhiều integration. Mục tiêu là tạo một vòng lặp đáng tin: agent hiểu việc, dùng đúng công cụ, không đốt tiền vô thức, và biết dừng lại hỏi khi hành động có thể gây hậu quả.

Nếu anh em đang xây Hermes hoặc agent cá nhân 24/7, hãy bắt đầu nhỏ: một kênh giao tiếp, một nguồn dữ liệu, một use case lặp lại mỗi ngày. Khi phần đó chạy ổn và có log rõ ràng, mở rộng tiếp sẽ an toàn hơn rất nhiều.

Top comments (0)