Bạn có thể cấu hình Long-Term Memory cho Hermes Agent bằng OpenViking để lưu kiến thức lâu dài, tìm lại thông tin bằng semantic search và truy xuất tài liệu theo cơ chế RAG. Cách triển khai cơ bản gồm: cài OpenViking trên VPS, khởi tạo Embedding/VLM, chọn OpenViking làm Memory Provider trong Hermes Agent, sau đó đưa tài liệu vào kho dữ liệu để Hermes tìm lại khi cần. Cùng theo dõi bài viết để biết cách thực hiện nhé!
Long-Term Memory trong Hermes Agent là gì?
Long-Term Memory (bộ nhớ dài hạn) là khả năng lưu thông tin quan trọng và gọi lại ở những phiên trò chuyện sau. Với Hermes Agent, tính năng này giúp trợ lý AI hiểu bạn ngày càng rõ, thay vì bắt đầu từ con số không mỗi lần mở lên.
Ví dụ, bạn cung cấp cho Hermes Agent:
- Tài liệu sản phẩm
- Tài liệu kỹ thuật
- Quy trình nội bộ
- Thông tin dự án
- Ghi chú từ những cuộc trò chuyện trước
- Tài liệu Markdown, PDF hoặc DOCX
- Website hoặc repository code
Các nội dung này có thể được lưu, lập chỉ mục và truy xuất lại theo ngữ nghĩa. Khi bạn hỏi:
“Dự án ABC đang sử dụng cơ sở dữ liệu nào?”
Hermes không nhất thiết phải đưa toàn bộ kho tài liệu vào Context Window. Hệ thống Memory có thể tìm những đoạn liên quan nhất rồi bổ sung chúng vào ngữ cảnh để AI trả lời.
Đó chính là một trong những cách RAG được ứng dụng vào AI Agent.

RAG và Vector Database giúp Hermes Agent ghi nhớ như thế nào?
Để hiểu Long-Term Memory, bạn chỉ cần nắm 3 khái niệm chính.
Embedding
Embedding chuyển nội dung thành các vector số biểu diễn ý nghĩa của văn bản.
Ví dụ:
- “Cách backup VPS”
- “Hướng dẫn sao lưu máy chủ”
Hai câu sử dụng từ khác nhau nhưng có ý nghĩa gần nhau nên vector tương ứng cũng có xu hướng nằm gần nhau. Nhờ vậy, hệ thống có thể tìm thông tin dựa trên ý nghĩa thay vì chỉ khớp từ khóa.
Vector Database
Vector Database lưu các vector được tạo từ tài liệu. Khi người dùng đặt câu hỏi, câu hỏi cũng được chuyển thành vector. Hệ thống sau đó tìm những vector có độ tương đồng cao nhất.

RAG
RAG là viết tắt của Retrieval-Augmented Generation. Quy trình có thể hình dung như sau:
Người dùng hỏi → tìm dữ liệu liên quan → đưa dữ liệu vào context → LLM tạo câu trả lời
Nhờ vậy, Hermes Agent có thể sử dụng kho kiến thức lớn mà không cần nhồi toàn bộ tài liệu vào mỗi prompt.
Persistent Memory và Long-Term Memory khác nhau ra sao?
Hermes Agent đã có Persistent Memory mặc định thông qua hai file chính:
Thành phần Chức năng MEMORY.mdLưu ghi chú, môi trường làm việc, quy ước và thông tin Hermes đã học USER.mdLưu sở thích, phong cách làm việc và một số thông tin về người dùng
Theo tài liệu Hermes Agent, MEMORY.md mặc định khoảng 2.200 ký tự, còn USER.md khoảng 1.375 ký tự. Hai phần này được đưa trực tiếp vào system prompt khi bắt đầu phiên làm việc.
Đây là cơ chế rất phù hợp để lưu một lượng nhỏ thông tin quan trọng. Tuy nhiên, nếu bạn có hàng trăm tài liệu, hàng nghìn ghi chú hoặc nhiều phiên làm việc dài, đưa toàn bộ nội dung vào MEMORY.md là không phù hợp.
Long-Term Memory dựa trên RAG giải quyết vấn đề này bằng cách chỉ lấy những thông tin liên quan đến câu hỏi hiện tại.
Có thể hiểu ngắn gọn:
- Persistent Memory = những điều quan trọng cần nhớ thường xuyên.
- RAG / Vector Database = kho kiến thức lớn để tìm lại khi cần.
Hai cơ chế có thể hoạt động song song. Hermes xác nhận external Memory Provider được bổ sung bên cạnh Memory mặc định thay vì bắt buộc thay thế MEMORY.md và USER.md.
Nên dùng giải pháp nào để tạo Long-Term Memory cho Hermes Agent?
Hermes Agent hiện hỗ trợ nhiều Memory Provider như:
Nhà cung cấp Phù hợp với ai Điểm nổi bật Honcho Hệ thống nhiều agent Mạnh ở ngữ cảnh xuyên phiên và việc đồng bộ giữa người dùng với agent OpenViking Người thích tự lưu trữ Không cần cơ sở dữ liệu ngoài, lưu ký ức ngay trong hệ thống tệp Mem0 Người cần dùng nhanh, có cả bản đám mây lẫn tự dựng Tìm kiếm ký ức có xếp hạng lại kết quả Hindsight Người muốn ít cài đặt phức tạp Cùng ByteRover, nằm trong nhóm gom hoặc giảm bớt nhiều thành phần phụ thuộc nhất ByteRover Lập trình viên Nhớ quyết định, mẫu code và cách sửa lỗi qua các phiên LanceDB (plugin cộng đồng) Người muốn Vector Database thực thụ Tìm kiếm theo ngữ nghĩa trên kho vector Memory Providers +2
Trong bài hướng dẫn này, chúng ta sẽ sử dụng OpenViking. Lý do:
- Hỗ trợ trực tiếp trong Hermes Agent;
- Có thể self-host trên VPS
- Hỗ trợ semantic search
- Có Vector Database
- Hỗ trợ lưu tài liệu và URL
- Hỗ trợ tự trích xuất Memory
- Có cấu trúc knowledge tree
- Không bắt buộc phải sử dụng dịch vụ Memory Cloud bên thứ ba.
Cách cấu hình Long-Term Memory cho Hermes Agent bằng OpenViking
Phần hướng dẫn dưới đây giả định:
- Hermes Agent đã được cài trên VPS
- Bạn có thể SSH vào VPS
- Hermes đang hoạt động bình thường
- Bạn muốn chạy OpenViking trên cùng VPS với Hermes
Một lưu ý quan trọng là tài liệu OpenViking khuyến nghị chạy OpenViking trong môi trường Python riêng thay vì cài trực tiếp các dependency vào môi trường Python của Hermes. Hermes kết nối với OpenViking qua HTTP nên hai môi trường không cần dùng chung package.
Bước 1: Kiểm tra và cập nhật Hermes Agent
Kiểm tra phiên bản:
hermes --version
Nếu muốn cập nhật bản Hermes hiện tại:
hermes update
Hermes hỗ trợ chính thức cả hai lệnh trên trong CLI hiện tại.
Sau khi cập nhật, kiểm tra lại:
hermes --version

Bước 2: Cài đặt OpenViking trên VPS
Cách hiện được OpenViking khuyến nghị là cài qua uv. Nếu VPS chưa có uv, chạy:
curl -LsSf https://astral.sh/uv/install.sh | sh
Sau đó mở lại phiên SSH hoặc bổ sung thư mục binary vào PATH nếu cần:
export PATH="HOME/.local/bin:PATH"
Kiểm tra:
uv --version
Tiếp theo cài OpenViking:
uv tool install openviking --upgrade
Cách cài bằng uv tool tạo môi trường riêng cho OpenViking, giúp hạn chế xung đột dependency với Hermes Agent. Đây cũng là quy trình được Quick Start hiện tại của OpenViking khuyến nghị.
Kiểm tra:
openviking-server --help
Nếu command hiển thị bình thường, quá trình cài đặt cơ bản đã hoàn tất.
Bước 3: Khởi tạo OpenViking
Sau khi cài đặt, chạy lệnh:
openviking-server init
Tại giao diện thiết lập, thực hiện lần lượt:
- Choose Setup mode: Chọn
Step-by-step setup. - Embedding setup: Chọn
Cloud API→OpenAI, nhập API Key và sử dụng modeltext-embedding-3-small(mặc định). - VLM provider: Chọn
OpenAI Codex (Subscription), đăng nhập tài khoản ChatGPT theo hướng dẫn và giữ model mặc địnhgpt-5.6-terra. - Query planner: Nhập
Nđể bỏ qua. - Server & auth: Chọn
Local (127.0.0.1)và giữ cổng1933. - Save configuration?: Nhập
yđể lưu. - Validate the setup now?: Nhập
yđể kiểm tra cấu hình.
Sau khi kiểm tra thành công, khởi động OpenViking:
openviking-server
Mặc định, OpenViking hoạt động tại http://127.0.0.1:1933. Hãy giữ dịch vụ chạy trong quá trình kết nối và sử dụng.

Bước 4: Kết nối OpenViking với Hermes Agent
Mở một phiên SSH khác và chạy:
hermes memory setup
Tại giao diện cấu hình, thực hiện:
- Memory provider setup: Chọn
openviking. - OpenViking connection: Chọn
Customđể sử dụng OpenViking đang chạy trên VPS. - Server endpoint: Nhập
http://127.0.0.1:1933. - OpenViking credential: Chọn
No API keyvì đang sử dụng server local chưa bật xác thực. - Save OpenViking config: Chọn
Mirror to OpenViking stoređể lưu cấu hình cho cả Hermes Agent và OpenViking CLI. - OpenViking profile name: Nhập
localrồi nhấn Enter.
Nếu màn hình hiển thị:
OpenViking memory is ready
Created and linked OpenViking profile.
Start a new Hermes session to activate.
Quá trình liên kết cấu hình đã hoàn tất. Hãy mở phiên Hermes Agent mới để kích hoạt Memory Provider.
Bạn có thể kiểm tra bằng lệnh:
hermes memory status
Lưu ý: Cấu hình liên kết thành công chưa đồng nghĩa khả năng RAG đã hoạt động đầy đủ. Cần bảo đảm OpenViking đang chạy và Embedding đã vượt qua bước kiểm tra trước khi nhập tài liệu và thử tìm kiếm.
Bước 5: Kiểm tra Memory Provider
Chạy:
hermes memory status
Bạn cần thấy OpenViking đang được chọn làm Memory Provider. Tuy nhiên, chỉ nhìn trạng thái provider chưa đủ để khẳng định server OpenViking đang phản hồi bình thường.
Hãy kiểm tra thêm:
curl http://127.0.0.1:1933/health
và:
openviking-server doctor
Nếu cả Hermes và OpenViking đều hoạt động bình thường, phần kết nối cơ bản đã hoàn tất.
Bước 6: Đưa tài liệu vào Vector Database
Đây là bước biến OpenViking thành kho kiến thức RAG cho Hermes Agent.
Ví dụ bạn có thư mục:
/home/user/tai-lieu/
Bên trong có:
san-pham.md
quy-trinh.md
huong-dan.pdf
faq.docx
Có thể nhập toàn bộ thư mục:
ov add-resource /home/user/tai-lieu \
--to viking://resources/tai-lieu \
--wait
Trong đó, tham số –wait yêu cầu CLI chờ quá trình xử lý hoàn thành.
OpenViking sẽ xử lý tài liệu, tạo semantic information và xây dựng vector index phục vụ việc tìm kiếm sau này.
Bạn cũng có thể thêm một URL bằng lệnh:
ov add-resource https://example.com/docs \
--to viking://resources/docs \
--wait
Hoặc thêm một file:
ov add-resource ./huong-dan.md \
--to viking://resources/huong-dan \
--wait
OpenViking hiện hỗ trợ nhiều dạng dữ liệu phổ biến như TXT, Markdown, JSON, YAML, code, PDF, DOCX và nhiều loại media khác.

Bước 7: Kiểm tra khả năng truy xuất bằng RAG
Trước tiên, thử tìm trực tiếp bằng OpenViking.
Ví dụ:
ov find "Quy trình backup máy chủ là gì?" \
--uri viking://resources/tai-lieu
OpenViking sẽ thực hiện semantic search và trả lại những nội dung có liên quan.
Bạn cũng có thể xem cấu trúc:
ov tree viking://resources/tai-lieu
Hoặc xem phần overview:
ov overview viking://resources/tai-lieu
Đây là cách rất hữu ích để kiểm tra dữ liệu trước khi thử trực tiếp trên Hermes Agent.
Sau đó mở Hermes và hỏi:
Dựa trên tài liệu trong OpenViking, hãy cho tôi biết quy trình backup máy chủ được quy định như thế nào?
Khi cần thêm thông tin, Hermes có thể sử dụng viking_search để tìm nội dung liên quan, sau đó dùng viking_read để đọc sâu hơn.
Đây chính là luồng RAG:
Câu hỏi → Semantic Search → Tài liệu liên quan → Context → Câu trả lời
OpenViking còn hỗ trợ cơ chế tải context theo nhiều cấp độ thay vì luôn lấy toàn bộ nội dung:
- L0: nội dung tóm tắt rất ngắn;
- L1: overview chi tiết hơn;
- L2: nội dung đầy đủ.
Cách tổ chức này giúp giảm lượng context không cần thiết khi kho dữ liệu ngày càng lớn.
Bước 8: Kiểm tra khả năng ghi nhớ qua nhiều phiên
RAG tài liệu và Memory từ hội thoại có liên quan nhưng không hoàn toàn giống nhau.
Để thử Long-Term Memory, hãy yêu cầu Hermes:
Hãy ghi nhớ trong Long-Term Memory rằng dự án Demo đang sử dụng PostgreSQL và backend được viết bằng Python.
Hermes có thể sử dụng công cụ viking_remember để lưu thông tin.
Sau đó kết thúc phiên làm việc và mở một phiên mới.
Hỏi:
Dự án Demo đang sử dụng database và ngôn ngữ backend nào?
Nếu Memory đã được lưu và truy xuất chính xác, Hermes có thể tìm lại thông tin từ OpenViking thay vì phụ thuộc vào lịch sử hội thoại hiện tại.
OpenViking cũng hỗ trợ tự động trích xuất Memory khi session được commit. Hermes mô tả các nhóm dữ liệu được trích xuất gồm profile, preference, entity, event, case và pattern.
Hermes Agent xử lý Long-Term Memory sau khi cấu hình ra sao?
Khi một external Memory Provider được kích hoạt, Hermes có thể thực hiện nhiều bước tự động trong quá trình hội thoại. Theo kiến trúc hiện tại, Hermes có thể:
- Lấy context từ Memory Provider
- Lìm các Memory liên quan trước mỗi lượt
- Đồng bộ nội dung hội thoại sang provider
- Trích xuất Memory khi phiên kết thúc nếu provider hỗ trợ
- Đồng bộ một số thao tác Memory mặc định
- Cung cấp các công cụ tìm kiếm và quản lý Memory cho Agent
Trong khi đó, MEMORY.md và USER.md vẫn tiếp tục hoạt động.
Điểm quan trọng là Hermes không cần đưa toàn bộ kho kiến thức vào prompt. Agent chỉ cần truy xuất những phần phù hợp với yêu cầu hiện tại.

Cách sử dụng Long-Term Memory hiệu quả
Để Hermes Agent truy xuất thông tin chính xác và hạn chế lãng phí tài nguyên, bạn nên:
- Chỉ lưu thông tin quan trọng vào Memory: ưu tiên sở thích, quy ước, quyết định, kinh nghiệm hoặc thông tin dự án cần sử dụng lâu dài.
- Đưa tài liệu lớn vào Resource: PDF, DOCX, Markdown, tài liệu kỹ thuật hoặc Knowledge Base nên được lưu để truy xuất bằng RAG thay vì đưa trực tiếp vào Memory.
- Chia dữ liệu theo từng chủ đề: ví dụ company, product, support, development để Hermes tìm kiếm đúng phạm vi hơn.
- Kiểm tra khả năng tìm kiếm: dùng ov find để xác nhận OpenViking có tìm được dữ liệu liên quan trước khi kiểm tra trên Hermes.
- Hạn chế lưu dữ liệu nhạy cảm: đặc biệt khi nhiều người dùng hoặc nhiều Agent cùng truy cập một hệ thống.
- Sao lưu định kỳ: nên backup Memory, Resource và cấu hình OpenViking để tránh mất dữ liệu khi nâng cấp hoặc thay đổi hệ thống.

Cấu hình Long-Term Memory nhanh trên VPS Hermes Agent của Tino
Nếu đang sử dụng VPS Hermes Agent của Tino, bạn không cần cài OpenViking thủ công bằng dòng lệnh. Chỉ cần thực hiện:
Bước 1: Đăng nhập vào trang quản lý VPS Hermes Agent.
Bước 2: Chọn mục Memory nâng cao. Sau đó, chọn Cài đặt OpenViking.

Bước 3: Chờ hệ thống hoàn tất quá trình cài đặt và cấu hình.
Sau khi cài xong, OpenViking sẽ được sử dụng để mở rộng khả năng Long-Term Memory, semantic search và truy xuất dữ liệu theo cơ chế RAG cho Hermes Agent.
Cách này phù hợp với người mới vì không cần tự cài môi trường Python, cấu hình service hay xử lý dependency trên VPS.
Nếu chưa có VPS Hermes Agent, bạn có thể tham khảo dịch vụ tại: https://tino.vn/vps-hermes
Kết luận
Khi RAG và Vector Database vào cuộc, Hermes không còn là trợ lý “mất trí nhớ” mà trở thành người cộng sự hiểu thói quen và bối cảnh công việc của bạn. Hãy bắt đầu với một nhà cung cấp đơn giản, dặn thử một thông tin quan trọng, rồi quan sát khả năng ghi nhớ qua vài ngày sử dụng. Khi đã quen, bạn có thể nâng cấp lên giải pháp mạnh hơn mà không phải làm lại từ đầu.
Các bài viết liên quan:
- Hướng dẫn cài đặt và sử dụng Hermes Agent Desktop
- Hướng dẫn kết nối Google Workspace với Hermes Agent
- Hướng dẫn kết nối Google Chat với Hermes Agent A-Z
- Hướng dẫn kết nối Slack với Hermes Agent trên VPS Hermes
- Hướng dẫn kết nối Kilo Code với Hermes Agent
- Hướng dẫn kết nối Telegram với Hermes Agent trên VPS Hermes
- Hướng dẫn kết nối tài khoản Zalo cá nhân với Hermes Agent trên VPS Hermes
- Hướng dẫn kết nối Discord với Hermes Agent trên VPS Hermes
- Cách viết Skill cho Hermes Agent: Đúng chuẩn, dễ kích hoạt
- Hermes Agent nên chạy Local hay VPS?
Những câu hỏi thường gặp
Nếu dịch vụ bộ nhớ gặp sự cố thì Hermes có ngừng hoạt động không?
Thường là không. Với các Provider Memory kể ở trên, lỗi chỉ được ghi vào nhật ký và không chặn Hermes trả lời bạn.
Long-Term Memory có làm tăng chi phí API không?
Có thể. Semantic search sử dụng Embedding, trong khi một số bước phân tích hoặc trích xuất Memory có thể cần VLM/LLM. Chi phí phụ thuộc vào provider, lượng tài liệu, số lượt truy xuất và model được chọn. Nếu khối lượng dữ liệu lớn, nên tách rõ Persistent Memory, Resource và tài liệu RAG để tránh xử lý dữ liệu không cần thiết.
OpenViking có phải cài chung môi trường Python với Hermes không?
Không. OpenViking có thể chạy trong môi trường riêng và Hermes kết nối thông qua HTTP. Tài liệu tích hợp còn khuyến nghị tách hai môi trường để tránh xung đột dependency.
Có bắt buộc phải dùng Vector Database không?
Không. Nếu chỉ cần nhớ một vài thông tin quan trọng, Persistent Memory mặc định có thể đáp ứng. Vector Database phù hợp hơn khi cần tìm kiếm trong lượng dữ liệu lớn.
