close

Cách cấu hình Long-Term Memory cho Hermes Agent bằng RAG và Vector Database

Tác giả: Đông Tùng Ngày đăng: 08/10/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. Wiki.tino.org 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.

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.

Long-Term Memory trong Hermes Agent là gì?
Long-Term Memory trong Hermes Agent là gì?

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 và Vector Database giúp Hermes Agent ghi nhớ như thế nào?
RAG và Vector Database giúp Hermes Agent ghi nhớ như thế nào?

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ầnChứ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ấpPhù hợp với aiĐiểm nổi bật
HonchoHệ thống nhiều agentMạnh ở ngữ cảnh xuyên phiên và việc đồng bộ giữa người dùng với agent
OpenVikingNgườ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
Mem0Người cần dùng nhanh, có cả bản đám mây lẫn tự dựngTìm kiếm ký ức có xếp hạng lại kết quả
HindsightNgười muốn ít cài đặt phức tạpCù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
ByteRoverLập trình viênNhớ 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
Cách cấu hình Long-Term Memory cho Hermes Agent bằng OpenViking
Cách cấu hình Long-Term Memory cho Hermes Agent bằng OpenViking

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:

  1. Choose Setup mode: Chọn Step-by-step setup.
  2. Embedding setup: Chọn Cloud API → OpenAI, nhập API Key và sử dụng model text-embedding-3-small (mặc định).
  3. 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 định gpt-5.6-terra.
  4. Query planner: Nhập N để bỏ qua.
  5. Server & auth: Chọn Local (127.0.0.1) và giữ cổng 1933.
  6. Save configuration?: Nhập y để lưu.
  7. 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.

Cách cấu hình Long-Term Memory cho Hermes Agent bằng OpenViking

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:

  1. Memory provider setup: Chọn openviking.
  2. OpenViking connection: Chọn Custom để sử dụng OpenViking đang chạy trên VPS.
  3. Server endpoint: Nhập http://127.0.0.1:1933.
  4. OpenViking credential: Chọn No API key vì đang sử dụng server local chưa bật xác thực.
  5. Save OpenViking config: Chọn Mirror to OpenViking store để lưu cấu hình cho cả Hermes Agent và OpenViking CLI.
  6. OpenViking profile name: Nhập local rồ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.

Cách cấu hình Long-Term Memory cho Hermes Agent bằng OpenViking
Cách cấu hình Long-Term Memory cho Hermes Agent bằng OpenViking

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ể:

  1. Lấy context từ Memory Provider
  2. Lìm các Memory liên quan trước mỗi lượt
  3. Đồng bộ nội dung hội thoại sang provider
  4. Trích xuất Memory khi phiên kết thúc nếu provider hỗ trợ
  5. Đồng bộ một số thao tác Memory mặc định
  6. 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.

Hermes Agent xử lý Long-Term Memory sau khi cấu hình ra sao?
Hermes Agent xử lý Long-Term Memory sau khi cấu hình ra sao?

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ách sử dụng Long-Term Memory hiệu quả

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.

Cấu hình Long-Term Memory nhanh trên VPS Hermes Agent của Tino
Cấu hình Long-Term Memory nhanh trên VPS Hermes Agent của Tino

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:

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.

Đô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