Phạm Văn Thư
AI agents và ứng dụng · Nội dung có hỗ trợ AI

Hermes Agent: agent cá nhân có bộ nhớ, kỹ năng tự học và gateway nhắn tin

Đăng ngày 12/10/2026

Mục lục bài nghiên cứu
Hình đại diện Hermes Agent — AI agent mã nguồn mở

Hermes Agent là gì, và ai nên thử trước?

Hermes Agent là một agent AI cá nhân do Nous Research phát triển, chạy như một tiến trình lâu dài trên máy của người dùng hoặc trên máy chủ, có thể trò chuyện qua giao diện dòng lệnh hoặc qua các ứng dụng nhắn tin. README giới thiệu nó là agent tự cải thiện, với vòng học tạo kỹ năng từ kinh nghiệm, ghi nhớ kiến thức, tìm lại hội thoại cũ và xây dựng hồ sơ người dùng qua nhiều phiên. [1]

Câu agent duy nhất có vòng học tích hợp là lời giới thiệu của nhà phát triển, bài viết không xác nhận được. Điều kiểm tra được là cơ chế cụ thể: hai tệp bộ nhớ có giới hạn ký tự, kho kỹ năng dạng tệp SKILL.md, cơ sở dữ liệu phiên SQLite có tìm kiếm toàn văn, và một gateway nhắn tin có phân quyền. [2][4][5]

Hermes đáng cân nhắc cho người hoặc nhóm nhỏ muốn trợ lý luôn bật, giao việc từ điện thoại, lên lịch báo cáo và tích lũy quy trình thành kỹ năng. Không nên dùng khi cần một hệ thống nhiều người dùng có phân quyền chi tiết cho dữ liệu nhạy cảm, hoặc khi tổ chức chưa sẵn sàng cấp cho agent quyền chạy lệnh trong một môi trường được cô lập cẩn thận.

Trợ lý AI quên sạch sau mỗi phiên và chỉ sống trên laptop

Phần lớn trợ lý AI dạng hội thoại bắt đầu mỗi phiên từ đầu: người dùng phải nhắc lại bối cảnh, thói quen và quy trình đã từng giải thích. Khi tắt máy, trợ lý cũng dừng. Hermes nhắm vào hai điểm này cùng lúc.

Về ghi nhớ, tài liệu bộ nhớ mô tả hai tệp MEMORY.md cho ghi chú của agent về môi trường và quy ước, USER.md cho hồ sơ sở thích của người dùng, cùng công cụ tìm kiếm trong các phiên cũ. [4] Về nơi chạy, README nhấn mạnh agent không bị buộc vào laptop: có thể chạy trên VPS nhỏ, cụm GPU hay hạ tầng serverless và được điều khiển qua Telegram trong khi làm việc trên máy ảo đám mây. [1]

Vấn đề thứ ba là quy trình làm thành công một lần thường không được ghi lại. Hermes cho agent tự lưu cách làm thành kỹ năng, gọi là bộ nhớ thủ tục. [5] Câu hỏi đi kèm là ai kiểm soát những gì agent tự ghi.

Một lõi AIAgent dùng chung cho CLI, gateway, cron và IDE

Tài liệu kiến trúc vẽ hệ thống thành ba lớp. Lớp trên cùng là các điểm vào: CLI, gateway nhắn tin, bộ chuyển ACP cho trình soạn thảo, batch runner, API server và thư viện Python. Lớp giữa là lớp AIAgent, gồm phần dựng lời nhắc hệ thống, phần phân giải nhà cung cấp mô hình với ba chế độ API, phần điều phối công cụ và nén ngữ cảnh. Lớp dưới là lưu trữ phiên bằng SQLite với FTS5 và các backend công cụ: terminal, trình duyệt, web và MCP. [2]

Nguyên tắc thiết kế: một lớp AIAgent cho mọi điểm vào; lời nhắc hệ thống không đổi giữa phiên để giữ bộ đệm tiền tố; mọi lời gọi công cụ đều hiển thị và có thể ngắt; mỗi profile có thư mục riêng cho cấu hình, bộ nhớ và phiên. [2]

Tài liệu nêu hơn 70 công cụ trên khoảng 28 toolset, hơn 18 nhà cung cấp, hơn 25 bộ chuyển nền tảng và khoảng 25.000 bài kiểm thử; đây là số liệu tự mô tả, bài viết không đếm lại. [2]

Plugin được nạp từ thư mục người dùng, thư mục dự án và entry point của pip; nhà cung cấp bộ nhớ và context engine mỗi loại chỉ một cái hoạt động. [2]

Ba đường đi của một yêu cầu: gõ lệnh, nhắn tin và lịch hẹn

Với phiên CLI, đầu vào đi vào AIAgent, lời nhắc được dựng, nhà cung cấp được phân giải, mô hình được gọi; nếu có lời gọi công cụ thì vòng lặp tiếp tục đến câu trả lời cuối, rồi lưu vào cơ sở dữ liệu phiên. [2]

Với tin nhắn, gateway kiểm tra quyền người gửi, xác định khóa phiên, tạo AIAgent kèm lịch sử rồi gửi câu trả lời qua bộ chuyển nền tảng. [2] Câu trả lời được ghi vào sổ giao nhận trước khi gửi; nếu gateway sập, lần khởi động sau gửi lại kèm nhãn có thể trùng, theo ngữ nghĩa ít nhất một lần. [6]

Với tác vụ cron, bộ lập lịch đọc các việc đến hạn từ tệp JSON, tạo một AIAgent mới không có lịch sử, chèn các kỹ năng đính kèm làm ngữ cảnh, chạy lời nhắc của việc rồi gửi kết quả tới nền tảng đích và cập nhật lần chạy kế tiếp. [2] Điểm đáng chú ý là cron không thừa hưởng hội thoại, nên muốn báo cáo định kỳ nhất quán thì phải đóng gói hướng dẫn thành kỹ năng.

Bộ nhớ đi theo một luồng riêng. Ở đầu mỗi phiên, MEMORY.md và USER.md được nạp vào lời nhắc hệ thống như một ảnh chụp cố định; thay đổi trong phiên được ghi ngay xuống đĩa nhưng chỉ xuất hiện trong lời nhắc ở phiên sau. [4]

Các khả năng đối chiếu được trong tài liệu tại commit 590af66

Về giao diện, README mô tả TUI đầy đủ với soạn thảo nhiều dòng, tự hoàn thành lệnh gạch chéo, lịch sử hội thoại và ngắt để chuyển hướng. Bộ lệnh như đổi mô hình, thử lại, hoàn tác hay nén ngữ cảnh dùng chung giữa CLI và nền tảng nhắn tin. [1]

Về kênh nhắn tin, tài liệu gateway liệt kê Telegram, Discord, Slack, WhatsApp, Signal, SMS, Email, Matrix, Mattermost, Microsoft Teams, LINE, Feishu, WeCom, Weixin và nhiều nền tảng khác, kèm bảng so sánh hỗ trợ giọng nói, ảnh, tệp và streaming theo từng nền tảng. [6] Danh sách tại commit này không có Zalo.

Về thực thi, README nêu bảy backend terminal gồm local, Docker, SSH, Singularity, Modal, Daytona và Vercel Sandbox, khả năng sinh subagent cô lập để làm song song, bộ lập lịch cron với giao kết quả tới bất kỳ nền tảng nào, và kết nối máy chủ MCP. [1] Về nhà cung cấp mô hình, người dùng có thể dùng Nous Portal, OpenRouter, OpenAI hoặc endpoint riêng và chuyển bằng lệnh hermes model. [1]

Hermes còn sinh trajectory định dạng ShareGPT làm dữ liệu huấn luyện, và có lệnh chuyển bộ nhớ, kỹ năng, một số khóa API từ OpenClaw, kèm tùy chọn chạy thử. [1][2]

Vòng học khép kín: bộ nhớ, kỹ năng và tìm kiếm phiên phối hợp ra sao

Ba cơ chế chia nhau vai trò. Bộ nhớ lưu các dữ kiện ngắn luôn cần có trong ngữ cảnh, giới hạn 2.200 ký tự cho MEMORY.md và 1.375 ký tự cho USER.md; khi đầy, công cụ báo lỗi để agent tự gộp hoặc xóa mục cũ chứ không tự cắt. [4] Kỹ năng lưu quy trình dài, chỉ được nạp khi liên quan theo kiểu tiết lộ dần, tương thích chuẩn mở agentskills.io. [5] Tìm kiếm phiên truy vấn toàn bộ lịch sử trong cơ sở dữ liệu SQLite khi cần nhớ lại chi tiết cũ. [4]

Sau mỗi lượt, một bước rà soát nền có thể ghi bộ nhớ hoặc sửa kỹ năng. Mặc định agent ghi tự do; bật memory.write_approval và skills.write_approval thì mọi lần ghi phải chờ duyệt. [4][5]

Giới hạn thực tế: bộ nhớ chỉ phát huy ở ranh giới phiên, trong khi chat trên nền tảng nhắn tin là một phiên liên tục không tự đặt lại, nên người dùng phải chủ động tạo phiên mới. Mô hình nhỏ còn có thể tuyên bố đã ghi nhớ mà không gọi công cụ. [4][6]

Một chi tiết cần lưu ý khi đọc: README mô tả tìm kiếm phiên có tóm tắt bằng mô hình, còn tài liệu bộ nhớ nói truy vấn trả về tin nhắn gốc, không tóm tắt bằng mô hình. [1][4] Hai nguồn tại cùng commit chưa khớp nhau; người triển khai nên xác minh hành vi thực tế.

Hợp với người làm việc một mình hoặc nhóm nhỏ có một người phụ trách kỹ thuật

Đối tượng tự nhiên nhất là cá nhân làm việc trí óc muốn một trợ lý nhớ bối cảnh và nhận việc qua điện thoại; thiết kế profile riêng cho bộ nhớ và phiên hợp với kiểu dùng này. [2]

Nhóm nhỏ cũng dùng được qua gateway, với danh sách người được phép và phân tầng quản trị viên, người dùng thường. Tuy nhiên tài liệu nói rõ phân tầng hiện chỉ giới hạn lệnh gạch chéo; người dùng thường vẫn trò chuyện với agent bình thường, và các giới hạn về công cụ hay đổi mô hình mới là dự kiến tương lai. [6] Vì vậy mọi người được phép thực chất dùng chung năng lực công cụ của agent.

Nhóm thứ ba là người nghiên cứu mô hình gọi công cụ, nhờ tính năng sinh và nén trajectory. [1] Ngược lại, tổ chức cần tách dữ liệu giữa nhiều khách hàng, hoặc cần nhật ký kiểm toán theo chuẩn ngành, sẽ phải xây thêm nhiều lớp quanh Hermes.

Đề xuất: trợ lý điều phối học vụ cho một trung tâm tiếng Anh ở Huế

Tình huống sau là giả định, chưa từng diễn ra. Một trung tâm tiếng Anh ba cơ sở ở Huế có khoảng hai mươi giáo viên. Điều phối viên học vụ mỗi tuần mất nhiều giờ soạn khung giáo án theo mẫu và tổng hợp thay đổi lịch dạy thành thông báo.

Đề xuất là cài Hermes trên một máy chủ nhỏ, chạy gateway với Telegram vì Zalo không có trong danh sách hỗ trợ. [6] Chỉ điều phối viên và hai trưởng cơ sở nằm trong danh sách được phép; mọi người khác bị từ chối mặc định. [3] Terminal chạy backend Docker với tài nguyên giới hạn và không chuyển tiếp biến môi trường bí mật nào vào container. [3]

Các quy trình được viết thành kỹ năng: một kỹ năng soạn khung giáo án theo trình độ, một kỹ năng định dạng thông báo đổi lịch. Một tác vụ cron chạy sáng thứ Hai, dùng kỹ năng thông báo để tóm tắt tệp lịch tuần do điều phối viên cập nhật, rồi gửi vào nhóm Telegram nội bộ. [2][5]

Ranh giới dữ liệu cần đặt từ đầu. Bật write_approval cho cả bộ nhớ và kỹ năng để không có gì được lưu nếu chưa duyệt. [4][5] Không đưa họ tên, điểm số hay thông tin phụ huynh của học viên vào hội thoại; USER.md chỉ mô tả sở thích làm việc của điều phối viên. Nhận xét học viên do giáo viên viết, agent chỉ cung cấp khung.

Cài đặt, dịch vụ nền và kỷ luật cập nhật

README cung cấp lệnh cài một dòng cho Linux, macOS và WSL2, lệnh PowerShell cho Windows chạy trực tiếp, và kho APT có ký cho Android qua Termux. Sau khi cài, hermes setup chạy trình cấu hình đầy đủ, hermes gateway khởi động gateway và hermes doctor chẩn đoán lỗi. [1] Với máy chủ, cài theo kiểu tải script rồi chạy ngay tiện lợi nhưng nên đọc script trước, hoặc dùng ảnh Docker chính thức mà tài liệu bảo mật nhắc tới. [3]

Gateway cần trình quản lý tiến trình; tài liệu nhắc tới bộ khởi chạy systemd, launchd và Windows Scheduled Task, cùng cơ chế chặn agent tự dừng gateway từ bên trong. Ảnh Docker chạy gateway bằng người dùng không root, nên khi duyệt mã ghép cặp qua docker exec phải chỉ định đúng người dùng. [3]

Phiên nhắn tin không tự đặt lại nên lịch sử và việc nén ngữ cảnh tăng dần. [4] Danh sách kiểm tra triển khai của dự án khuyên đặt thư mục làm việc an toàn, không chạy bằng root, theo dõi nhật ký và cập nhật thường xuyên để nhận bản vá. [3]

Bài viết đề xuất thử mỗi bản cập nhật trên một profile riêng trước khi áp cho profile đang phục vụ người dùng.

Tám lớp phòng thủ và những chỗ người dùng có thể tự mở cửa

Tài liệu bảo mật liệt kê tám lớp: phân quyền người dùng, duyệt lệnh nguy hiểm, an toàn khi ghi tệp, cô lập container, lọc thông tin xác thực cho MCP, quét tệp ngữ cảnh chống prompt injection, cô lập giữa các phiên và làm sạch đầu vào. [3]

Lệnh nguy hiểm có ba chế độ duyệt: smart, mặc định, dùng mô hình phụ đánh giá rủi ro và hỏi người dùng khi không chắc; manual luôn hỏi; off tắt mọi kiểm tra. Cron, phiên một lượt và phiên webhook mặc định từ chối lệnh nguy hiểm vì không có ai để hỏi. [3] Chế độ YOLO bỏ qua mọi lời nhắc duyệt ngoại trừ một danh sách chặn cứng. [3]

Với gateway, thứ tự kiểm tra quyền kết thúc ở từ chối mặc định nếu không cấu hình danh sách cho phép. Hệ thống ghép cặp dùng mã tám ký tự ngẫu nhiên mật mã, hết hạn sau một giờ, giới hạn tần suất và khóa sau năm lần duyệt sai. [3] Container Docker bỏ toàn bộ capability Linux rồi chỉ thêm vài quyền cần thiết, chặn leo thang đặc quyền và giới hạn số tiến trình. [3]

Người dùng cũng dễ tự làm yếu hệ thống. Với backend container, kiểm tra lệnh nguy hiểm bị bỏ qua vì container được coi là ranh giới, và biến thêm vào docker_forward_env có thể bị mã trong container làm lộ. Bộ quét tệp ngữ cảnh chỉ dựa trên mẫu heuristic. [3] Kỹ năng của dự án chỉ được nạp khi repository được tin cậy và qua quét an ninh. [5]

MIT ở thư mục gốc, nhiều tệp giấy phép con và dịch vụ trả phí tách biệt

Tệp LICENSE ở thư mục gốc tại commit nghiên cứu là MIT, bản quyền năm 2025 thuộc Nous Research. [7] README cũng ghi giấy phép MIT. [1]

Danh sách tệp tại commit này cho thấy có thêm nhiều tệp LICENSE riêng trong các thư mục kỹ năng, kỹ năng tùy chọn, plugin và ứng dụng desktop. Bài viết đọc một trong số đó, tệp của kỹ năng docx, và nó cũng là MIT với bản quyền năm 2026 thuộc Nous Research. [8] Các tệp còn lại chưa được đọc, nên người định tái phân phối một kỹ năng hay plugin cụ thể cần mở đúng tệp giấy phép của thư mục đó.

Cần phân biệt phần mềm mã nguồn mở với dịch vụ. README giới thiệu Nous Portal là gói thuê bao gom quyền truy cập nhiều mô hình và Tool Gateway cho tìm kiếm web, tạo ảnh, chuyển văn bản thành giọng nói và trình duyệt đám mây qua các nhà cung cấp bên thứ ba. [1] Giấy phép MIT của mã không bao gồm dịch vụ này, cũng không bao gồm mô hình được gọi, các nền tảng nhắn tin, máy chủ MCP, các nhà cung cấp sandbox đám mây hay thư viện phụ thuộc, vốn đều có điều khoản riêng.

Máy chủ rẻ không có nghĩa vận hành rẻ

README nói có thể chạy Hermes trên VPS 5 USD, và các backend như Daytona hay Modal cho phép môi trường ngủ đông khi rảnh. [1] Đó là tuyên bố của nhà phát triển, không phải tổng chi phí.

Khoản chi đáng kể hơn thường là mô hình. Mỗi phiên trả chi phí token cố định cho bộ nhớ trong lời nhắc hệ thống, khoảng 1.300 token theo tài liệu; bước rà soát nền sau mỗi lượt cũng gọi mô hình, mặc định là mô hình chính, và tài liệu cho phép chuyển sang mô hình rẻ hơn hoặc giới hạn đầu vào của bước này. [4] Phiên nhắn tin kéo dài nhiều tuần làm việc nén ngữ cảnh lặp lại và tốn thêm. [4]

Công cụ như tìm kiếm web, tạo ảnh hay giọng nói cần khóa từng nhà cung cấp hoặc thuê bao Nous Portal. [1] Nên tính chi phí trên mỗi báo cáo hay giáo án được duyệt.

Về người, cần một người phụ trách cài đặt, phân quyền, duyệt bộ nhớ, kỹ năng và rà nhật ký; bài viết giả định một đến hai giờ mỗi tuần, cần đo lại.

Agent cá nhân luôn bật so với chatbot, nền tảng tự động hóa và framework

So với trợ lý chat trên web của các nhà cung cấp mô hình, Hermes cho quyền kiểm soát nơi chạy, mô hình và dữ liệu phiên lưu cục bộ, đổi lại người dùng phải tự vận hành và tự bảo mật. Đây là đánh đổi giữa tiện lợi và chủ quyền dữ liệu.

So với nền tảng tự động hóa như n8n, nơi luồng việc được vẽ sẵn từng bước, Hermes để mô hình quyết định bước tiếp theo: linh hoạt hơn nhưng khó dự đoán hơn, kém phù hợp cho quy trình cố định cần kiểm toán.

So với framework để tự dựng agent, Hermes là sản phẩm hoàn chỉnh có gateway, bộ nhớ và lịch; tùy biến qua plugin, MCP và thư viện Python nhưng trong khuôn kiến trúc của nó. [2]

Trong nhóm agent cá nhân, README nhắc tới OpenClaw như nguồn chuyển dữ liệu sang Hermes. [1] Bài viết không so sánh chất lượng hai dự án vì không có dữ liệu đo kiểm độc lập.

Những điều kiện khiến Hermes không phù hợp

Không nên dùng Hermes làm chatbot công khai phục vụ khách hàng. Thiết kế hướng tới chủ sở hữu và người được duyệt; phân tầng người dùng hiện chỉ giới hạn lệnh, không giới hạn công cụ. [6] Mở cho người lạ là mở năng lực công cụ cho người lạ.

Không nên chạy backend local trên máy chứa dữ liệu quan trọng mà lại bật YOLO hoặc tắt duyệt. Tài liệu xếp backend local là không cô lập, chỉ dành cho phát triển và người dùng tin cậy. [3]

Vòng học tự động là con dao hai lưỡi. Agent có thể sửa hoặc xóa bất kỳ kỹ năng nào trong thư mục kỹ năng, và mặc định ghi bộ nhớ không cần duyệt. [4][5] Một giả định sai được lưu lại sẽ ảnh hưởng mọi phiên sau. Tài liệu cũng cảnh báo không để hai tiến trình dùng chung một thư mục Hermes vì bộ nhớ sẽ chồng chéo. [4]

Cuối cùng, dự án thay đổi nhanh; tài liệu có ghi chú về thành phần cũ đã bị gỡ, nên cần theo dõi thay đổi thường xuyên. [3]

Thử nghiệm ba giai đoạn với chỉ số đo được

Giai đoạn một, hai tuần, một người dùng: cài trên máy chủ riêng, backend Docker, bật write_approval cho bộ nhớ và kỹ năng, chỉ dùng CLI. Mục tiêu là xây ba đến năm kỹ năng cho việc lặp lại và kiểm tra rằng bộ nhớ ghi đúng điều được yêu cầu. Chỉ số: tỷ lệ đề xuất ghi bộ nhớ được duyệt, số lần agent tuyên bố đã nhớ nhưng tệp không có mục tương ứng.

Giai đoạn hai, hai tuần: bật gateway Telegram cho ba người và một tác vụ cron hằng tuần. Đo tỷ lệ báo cáo đúng hạn, số câu trả lời phải sửa, thời gian tiết kiệm tự ghi nhận và chi phí mô hình mỗi tuần.

Giai đoạn ba, một tuần: diễn tập sự cố. Thử gửi tin nhắn từ tài khoản ngoài danh sách, đưa một tệp ngữ cảnh có câu lệnh giả mạo vào thư mục làm việc, và khởi động lại gateway giữa chừng để quan sát việc gửi lại. Tiêu chí thoát: bất kỳ người ngoài danh sách nào nhận được phản hồi có nội dung, bất kỳ dữ liệu học viên nào xuất hiện trong MEMORY.md hoặc USER.md, hoặc thời gian duyệt vượt thời gian tiết kiệm. Gặp một điều kiện, dừng và rà lại cấu hình.

Kết luận: giá trị nằm ở cổng duyệt, không ở mức tự chủ

Hermes Agent ghép nhiều mảnh thường rời rạc thành một sản phẩm: lõi agent dùng chung, gateway nhiều nền tảng, lịch hẹn, bộ nhớ có giới hạn và kỹ năng dạng tệp. [2] Tài liệu bảo mật chi tiết và thẳng thắn về những chỗ có thể bị cấu hình sai, điều giúp người đánh giá biết phải nhìn vào đâu. [3]

Với người xây bộ não thứ hai, như kiểu kho tri thức cá nhân mà phamvanthu.com hướng tới, mô hình bộ nhớ nhỏ luôn có mặt cộng kỹ năng nạp theo nhu cầu cộng tìm kiếm lịch sử là một mẫu thiết kế đáng học. Đây là nhận định của bài viết, không ngụ ý BDSG đang dùng Hermes.

Khuyến nghị cuối cùng: bắt đầu với cổng duyệt bật sẵn, backend container và danh sách người dùng hẹp. Chỉ nới lỏng khi đã có số liệu từ thí điểm cho thấy agent ghi đúng và hành xử an toàn.

Nguồn dữ liệu, cách chọn dự án và giới hạn của bài viết

Hermes Agent được chọn từ kho lưu trữ GitHub Trending cộng đồng; dự án được ghi nhận 63 lần từ 2026-03-01 đến 2026-09-08, và bằng chứng trích dẫn là danh sách Python ngày 2026-03-01, nơi dự án ở vị trí thứ 3. [9] Kho lưu trữ chỉ gồm danh sách Python, Go, JavaScript và Swift, thiếu ngày 2026-09-03 và 2026-10-12, và loạt bài không phải bảng top 100 chính thức.

Phân tích dựa trên commit 590af66a58c2b3eb3c5edd1dcfefa09c625ae18a, ngày commit 2026-10-12, kiểm tra ngày 2026-10-12. Tệp đã đọc gồm README, LICENSE, tài liệu kiến trúc cho nhà phát triển, các trang hướng dẫn về bảo mật, bộ nhớ, kỹ năng, gateway nhắn tin, và tệp LICENSE của kỹ năng docx. [1][2][3][4][5][6][7][8]

Đây là nghiên cứu tài liệu: bài viết không cài đặt, chạy, đo hay triển khai Hermes; các con số kỹ thuật là của tài liệu dự án. Tình huống ở Huế là đề xuất giả định. Bài viết không phải công trình khoa học đã qua bình duyệt.

Xem mã nguồn Hermes Agent trên GitHub

Khám phá nghiên cứu của BDSG Foundation

Trao đổi về ứng dụng công nghệ cho doanh nghiệp