Mọi thứ bạn cần để hiểu và tùy chỉnh Hermes Agent. Kỹ năng tự tiến hóa, bộ nhớ ba tầng, tối ưu hóa GEPA, và cách mở rộng từ 1 lên 10 agent làm việc cho bạn 24/7.
Hermes Agent đã cán mốc 90.000 sao GitHub trong hai tháng. Các nhà phát triển đang âm thầm lặng xây dựng các AI agent cá nhân có thể học quy trình làm việc của họ, ghi nhớ ngữ cảnh và hoạt động 24/7.

Mọi AI agent bạn từng sử dụng đều có cùng một vấn đề: nó quên hết mọi thứ ngay khi phiên làm việc của bạn kết thúc.
Sở thích lập trình của bạn, quy ước dự án mà bạn đã sửa cho nó ba lần, bản sửa lỗi mà nó mất 10 phút để tìm ra ngày hôm qua. Tất cả đều biến mất. Phiên tiếp theo, bạn lại bắt đầu từ con số không.
Hermes Agent của Nous Research có một cách tiếp cận hoàn toàn khác. Nó được trang bị một vòng lặp học tập có khả năng:
- Ghi nhớ qua các phiên làm việc
- Tự viết các kỹ năng có thể tái sử dụng của riêng nó
- Tự động cắt tỉa chúng trong nền
- Và xác thực chúng ngoại tuyến thông qua một công cụ tiến hóa có tên là GEPA
Không có agent mã nguồn mở nào khác kết hợp được cả ba điều này. Thậm chí cả OpenClaw cũng không.
Hướng dẫn này sẽ giải thích cách vòng lặp học tập này hoạt động, mỗi lớp bộ nhớ làm gì, và cách cấu hình mọi thứ từ đầu.
Kết thúc hướng dẫn, bạn sẽ có ba agent hoàn toàn biệt lập chạy trên máy của mình: một lập trình viên (sử dụng Claude Code của bạn), một nhà nghiên cứu chuyên sâu, và một nhà thiết kế, mỗi agent có cá tính, bộ nhớ, kỹ năng và bot Telegram riêng.
Hãy xem này:

Toàn bộ quá trình thiết lập chỉ mất vài phút và mấy phút và mọi thứ ở đây đều có thể tái tạo trên phần cứng của riêng bạn.
Lưu ý: Tất cả các hình minh họa trong hướng dẫn này được thiết kế bởi Pixel, một trong những agent Hermes mà bạn sẽ học cách xây dựng ở cuối bài. Hãy để ý chúng khi bạn đọc.
Bắt đầu thôi!
Cách Đọc Bài Viết Này
Hai phần: lý thuyết trước, thực hành sau.
Không có nhiều thời gian? Hãy chuyển thẳng đến phần Bắt Đầu và Chạy. Các lệnh hoạt động độc lập.
Nhưng phần lý thuyết rất đáng giá. Biết được cách các kỹ năng tự tiến hóa, cách bộ nhớ kết hợp, và khi nào GEPA phát h GEPA phát huy tác dụng chính là sự khác biệt giữa việc sử dụng Hermes như một chatbot có ghi chú và sử dụng nó như một thứ gì đó có thể tích lũy và phát triển.
Những gì ở phía trước:
- Hermes Agent Thực Sự Là Gì. Lời giới thiệu, cùng với so sánh với OpenClaw.
- Cấu Trúc Của Nó. Kiến trúc trong một sơ đồ.
- Trước Khi Có Bộ Nhớ: Agent Là Ai? SOUL.md, lớp nhận dạng.
- Hệ Thống Bộ Nhớ. Ba tầng, ba tốc độ.
- Kỹ Năng Tự Tiến Hóa. Các kịch bản do agent tự viết cùng với Curator.
- GEPA. Tối ưu hóa kỹ năng ngoại tuyến.
- Bắt Đầu và Chạy. Cài đặt, Telegram, agent đầu tiên.
- Chạy Nhiều Agent. Hồ sơ, ba cá tính, bản tóm tắt theo lịch.
- Tùy chỉnh các agent theo nhu cầu của bạn.
Hermes là gì, và điều gì khiến nó khác biệt về mặt kiến trúc
Lời giới thiệu ngắn gọn: một agent ngày càng tốt hơn khi bạn sử dụng nó lâu hơn.
Điều làm cho điều đó thành hiện thực là ba khả năng thường riêng biệt nằm trong một khuôn khổ duy nhất: học kỹ năng trong thời gian chạy, bộ nhớ đa lớp liên tục, và một đường ống huấn luyện trọng tùy chọn. Không có agent mã nguồn mở nào có cả ba thứ này.
So sánh gần nhất trong hệ sinh thái mở là OpenClaw. Cả hai đều là những agent bền bỉ, thân thiện với nhắn tin, nhưng chúng đưa ra những lựa chọn kiến trúc đối lập.
Một cách diễn giải rõ ràng từ blog Kilo đã tóm gọn: "Hermes đóng gói một cổng xung quanh một agent học tập. OpenClaw đóng gói một agent xung quanh một cổng nhắn tin."
id="blk_2" type="upload" />
Cấu Trúc Của Nó
Trước khi vòng lặp học tập có ý nghĩa, bạn cần một bức tranh cơ bản về cách Hermes được cấu trúc.
Mọi thứ đều chảy qua một lớp AIAgent duy nhất trong tập lệnh run_agent.py. Giao diện dòng lệnh, cổng nhắn tin, trình chạy hàng loạt, tích hợp IDE: tất cả đều là điểm vào cùng một agent cốt lõi.
Đây là điều làm cho câu chuyện không phụ thuộc vào nền tảng thực sự hiệu quả.
id="blk_3" type="upload" />
Vòng lặp cốt lõi là kiểu ReAct và đồng bộ. Xây dựng lời nhắc hệ thống, kiểm tra xem có cần nén không, thực hiện lệnh gọi API có thể ngắt, thực thi mọi lệnh gọi công cụ, lặp lại.
Một vài chi tiết quan trọng sau này:
- Agent có thể chạy lệnh ở sáu nơi khác nhau. Terminal cục bộ, Docker, SSH, Modal, Daytona, hoặc Singularity. Cùng một mã, chỉ cần thay đổi cấu hình. Di chuyển thực thi từ máy tính xách tay của bạn đến máy chủ GPU đám mây mà không cần chạm vào bất cứ thứ gì khác.
- Nó hoạt động với hầu hết mọi mô hình. Một lớp dịch thuật định tuyến bất kỳ nhà cung cấp nào qua một trong ba định dạng API. Đó là lý do tại sao bạn có thể chuyển từ Claude sang GPT sang Gemini sang Ollama cục bộ Ollama chỉ với một lệnh và không có gì bị hỏng.
- Agent có giới hạn cứng là 90 lượt cho mỗi tác vụ. Nếu không có nó, một agent bị mắc kẹt trong một vòng lặp (thử lại một API bị lỗi, đọc lại, đọc lại cùng một tệp) sẽ âm thầm đốt cháy tín dụng của bạn. Các agent con chia sẻ cùng một ngân sách, vì vậy một chuỗi ủy quyền mất kiểm soát không thể lọt qua.
Đó là đủ nền tảng. Bây giờ là phần thú vấn đề thú vị.
Trước Khi Có Bộ Nhớ: Agent Là Ai?
Trước khi chúng ta đến với bộ nhớ và kỹ năng tự tiến hóa, có một lớp nằm trên cả hai: bản sắc.
Bộ nhớ là những gì agent biết. Kỹ năng là cách nó làm mọi thứ. Nhưng không có gì cho biết nó là ai khi nó xuất hiện. Nếu không có lớp nhận dạng, mọi agent đều cảm thấy như cùng một agent đội những chiếc mũ khác nhau.
Hermes giải quyết vấn đề này với một tệp duy nhất: SOUL.md.
Nó nằm ở tại ~/.hermes/SOUL.md và chiếm vị trí số 1 trong lời nhắc hệ thống, trước khi bất cứ thứ gì khác được tải. Nó định nghĩa cá tính, giọng điệu, phong cách giao tiếp và các giới hạn cứng của agent.
SOUL.md được viết tay và tĩnh. Bạn viết nó một lần, chỉnh sửa, điều chỉnh nó theo thời gian, và nó nhất quán qua mọi dự án và mọi phiên làm việc. Nếu tệp bị thiếu, Hermes sẽ quay lại một nhận dạng mặc định có sẵn.
Tại sao điều này lại quan trọng cho câu chuyện tự cải thiện? Bởi vì mọi thứ tiếp theo (bộ nhớ mà agent viết, kỹ năng nó tạo ra, cách nó hợp nhất kiến thức) đều xảy ra qua lăng kính của bản sắc này.
SOUL.md là khung cố định. Bộ nhớ và kỹ năng là các bộ phận chuyển động bên trong nó.
Hệ Thống Bộ Nhớ: Ba Tầng, Ba Tốc Độ
Hermes không có một "bộ nhớ" duy nhất. Nó có ba lớp, mỗi lớp được thiết kế cho một mục đích khác nhau.
id="blk_4" type="upload" />
Tầng 1: Hai tệp Markdown nhỏ.
Cốt lõi là hai tệp được lưu trữ trên đĩa:
- MEMORY.md (tối đa 2.200 ký tự) chứa các ghi chú của agent về môi trường của bạn, quy ước dự án, các mẹo vặt về công cụng và bài học kinh nghiệm.
- USER.md (tối đa 1.375 ký tự) chứa hồ sơ của bạn: tên, sở thích giao tiếp, trình độ kỹ năng và những điều cần tránh.
Cả hai được đưa vào lời nhắc hệ thống dưới dạng ảnh chụp nhanh cố định khi một phiên bắt đầu. Nếu agent viết một mục nhớ mới giữa phiên, thay đổi đó sẽ được lưu ngay lập tức vào đĩa nhưng sẽ không xuất hiện trong lời nhắc hệ thống cho đến phiên tiếp theo.
Khi bộ nhớ đầy (~80% dung lượng, hiển thị dưới dưới dạng phần trăm trong tiêu đề lời nhắc hệ thống), agent phải hợp nhất.
Nó hợp nhất các mục liên quan thành các phiên bản đặc hơn, giàu thông tin hơn, để chỉ có thông tin hữu ích sống sót.
Tầng 2: Tìm kiếm toàn văn phiên.
Mọi cuộc trò chuyện (CLI và nhắn tin) đều được lưu trữ trong SQLite với tính năng tìm kiếm toàn văn. Agent có thể tìm kiếm nhiều tuần các cuộc trò chuyện trong quá khứ từ đây.
Sự đánh đổi rất rõ ràng: Tầng 1 luôn có trong ngữ cảnh nhưng nhỏ. Tầng. Tầng 2 có dung lượng không giới hạn nhưng yêu cầu tìm kiếm chủ động cùng với tóm tắt LLM.
Các sự kiện quan trọng sống trong bộ nhớ. Mọi thứ khác có thể tìm kiếm theo yêu cầu.
Tầng 3: Các nhà cung cấp bộ nhớ bên ngoài (8 plugin).
Để có bộ nhớ liên tục sâu hơn, Hermes đi kèm với 8 nhà cung cấp có thể cắm thêm chạy song song với bộ nhớ tích hợp (không bao giờ thay thế nó). Chỉ có thể có một nhà cung cấp hoạt động tại một thời điểm.
Khi bất kỳ nhà cung cấp bên ngoài nào hoạt động, Hermes tự động tìm nạp trước các ký ức có liên quan trước mỗi lượt, đồng bộ hóa các lượt trò chuyện sau mỗi phản hồi và trích xuất ký ức khi kết thúc phiên.
id="blk_5" type="upload" />
Kỹ Năng Tự Tiến Hóa: Agent Tự Viết Kịch Bản Cho Riêng Mình
Bộ nhớ xử lý các sự kiện. Kỹ năng xử lý các quy trình.
Kỹ năng là các tệp Markdown với YAML frontmatter, và hoạt động như bộ nhớ thủ tục của agent: không phải những gì nó biết, mà là cách nó làm mọi thứ.
Đây là giải phẫu của một kỹ năng:
Để giữ chi phí token ở mức thấp, các kỹ năng sử dụng tiết lộ dần dần:
id="blk_6" type="upload" />
- Cấp độ 0: Agent chỉ thấy tên + mô tả (~3k token cho toàn bộ danh mục)
- Cấp độ 1: Nó tải tải nội dung kỹ năng đầy đủ khi nó thực sự cần một cái
- Cấp độ 2: Nó có thể đi sâu vào các tệp tham khảo cụ thể trong một kỹ năng
Vòng tự cải tiến hóa.
Đây là điểm khác biệt cốt lõi. Agent tự động tạo các kỹ năng của riêng riêng của mình bằng công cụ skill_manage. Việc tạo kỹ năng được kích hoạt khi:
- Agent hoàn thành một tác vụ phức tạp (5+ lần gọi công cụ)
- Nó gặp lỗi hoặc ngõ cụt và tìm ra con đường hoạt động
- Người dùng sửa cách tiếp cận của nó
- Nó khám phá ra một quy trình làm việc không tầm thường
Vòng lặp hoạt động như thế này: agent gặp vấn đề → giải quyết nó thông qua thử và sai → lưu cách tiếp cận tiếp cận thành công dưới dạng tệp SKILL.md → lần tiếp theo nó gặp vấn đề tương tự, nó tải kỹ năng và làm theo quy trình đã được kiểm chứng thay vì khám phá lại cách tiếp cận từ đầu.
Công cụ hỗ trợ sáu hành động: tạo, vá (sửa lỗi có mục tiêu, được ưa thích vì tiết kiệm token), chỉnh sửa (viết lại hoàn toàn), xóa, write_file và remove_file.
id="blk_7" type="upload" />
Curator: dọn rác cho các kỹ năng.
Nếu không được bảo trì, các kỹ năng do agent tạo ra bởi agent sẽ chất đống. Bạn sẽ có hàng tá kịch bản hẹp, chồng chéo nhau lãng phí token và làm ô nhiễm danh mục.
Curator là một hệ thống bảo trì nền xử lý việc này. Nó chạy dựa trên kiểm tra không hoạt động (không phải daemon cron): nếu 7 ngày trôi qua kể từ lần chạy cuối cùng và agent đã không hoạt động trong 2+ giờ, một nhánh nền của agent sẽ khởi động với bộ đệm lời nhắc riêng, không bao giờ chạm vào cuộc trò chuyện đang diễn ra.
Nó hoạt động trong hai giai đoạn:
- Chuyển đổi tự động (xác định, không có LLM): Các kỹ năng không được sử dụng trong 30 ngày sẽ trở nên cũ. Các kỹ năng không được sử dụng trong 90 ngày sẽ được lưu trữ.
- Đánh giá LLM (tối đa 8 lần lặp): Một agent nhánh khảo sát tất cả các kỹ năng do agent tạo ra và quyết định cho từng kỹ năng nên giữ, vá, hợp nhất hay lưu trữ.
Hai ràng buộng chế quan trọng:
- Curator không bao giờ động đến các kỹ năng đi kèm hoặc cài đặt từ hub. Chỉ các kỹ năng do agent tự viết.
- Nó không bao giờ tự động xóa. Kết quả tồi tệ nhất là lưu trữ đến ~/.hermes/skills/.archive/, có thể khôi phục bằng một lệnh.
Trước mỗi lần Curator chạy, Hermes chụp ảnh nhanh tar.gz của toàn bộ thư mục kỹ năng. Khôi phục chỉ là một lệnh và việc khôi phục có thể được hoàn tác.
Bạn cũng có thể ghim các kỹ năng quan trọng bằng hermes curator pin <skill> để bảo vệ chúng khỏi bị lưu trữ và xóa. Các bản vá và chỉnh sửa vẫn được thực hiện, vì vậy agent có thể cải thiện một kỹ năng đã ghim mà không yêu cầu bạn bỏ ghim nó trước.
id="blk_8" type="upload" />
GEPA: Tiến Hóa Kỹ Năng Ngoại Tuyến Với Dấu Vết Thực Thi
Đây là lúc mọi thứ trở nên thú vị.
Vòng lặp học tập trong agent (tạo kỹ năng + Curator) có một điểm yếu điểm đã biết:
- Agent có xu hướng tự khen ngợi bản thân. Nó hầu như luôn nghĩ rằng mình đã làm tốt, ngay cả khi không. Phản hồi từ cộng đồng đã xác nhận điều này.
- Cùng một hệ thống tự động tạo kỹ năng cũng có thể ghi đè các tùy chỉnh thủ công bằng các phiên bản tồi tệ hơn.
Đây là lúc GEPA xuất hiện.
GEPA (Genetic-Pareto Prompt Evolution) không được xây dựng trong thời gian chạy của Hermes. Nó nằm trong một kho lưu trữ đồng hành (NousResearch/hermes-agent-self-evolution) và hoạt động như một đường ống tối ưu hóa ngoại tuyến. Được công bố dưới dạng bài báo ICLR 2026 Oral, được cấp phép MIT.
Ý tưởng cốt lõi: thay vì hỏi agent "bạn đã làm tốt chưa?", GEPA đọc các dấu vết thực thi để hiểu tại sao mọi thứ thất bại, sau đó đề xuất các cải tiến có mục tiêu thông qua tìm kiếm tiến hóa.
Đường ống:
- Đọc kỹ năng hiện tại từ kho lưu trữ Hermes
- Tạo một tập dữ liệu đánh giá (các trường hợp kiểm thử tổng hợp qua Claude Opus, lịch sử phiên thực tế từ SQLite hoặc các bộ vàng được quản lý thủ công)
- Chạy trình tối ưu hóa GEPA: đọc dấu vết thực thi → hiểu các điểm thất bại → tạo các biến thể ứng viên
- Đánh giá các ứng viên bằng cách sử dụng điểm LLM-as-judge với các tiêu chí (không phải đạt/không đạt nhị phân)
- Áp dụng các ràng buộc: bộ kiểm thử đầy đủ phải đạt 100%, kỹ năng dưới 15KB, khả năng tương thích bộ đệm được bảo toàn, mục đảm bảo, mục đích ngữ nghĩa không bị lệch
- Biến thể tốt nhất được gửi dưới dạng PR chống lại kho lưu trữ Hermes. Không bao giờ là một cam kết trực tiếp.
Không yêu cầu GPU. Mọi thứ chạy qua các lệnh gọi API. Chi phí: khoảng $2-10 cho mỗi lần chạy tối ưu hóa.
Điều này có thể bỏ qua ban đầu, nhưng rất hiệu quả khi bạn gặp bế tắc và không muốn dành thời gian và tiền bạc cho việc tinh chỉnh (RL/GRPO)
Thêm chi tiết trong kho lư trữ này →
id="blk_9" type="upload" />
Tôi gần đây đã viết một bài báo về GEPA.
Đó là một thay thế tuyệt vời để thử trước khi chuyển sang tinh chỉnh đầy đủ hoặc tinh chỉnh dựa trên RL.
id="blk_10" type="upload" />
Được rồi, tóm lại:
SOUL.md thiết lập bản sắc. Vòng lặp thời gian chạy thu thập kinh nghiệm. Curator giữ cho thư viện sạch sẽ. GEPA đảm bảo những gì trong thư viện thực sự hoạt động.
Đó là toàn bộ lý thuyết. Bây giờ hãy chạy nó trên máy của bạn.
Bắt Đầu và Chạy
Linux, macOS hoặc WSL2. Python 3.11+ đi kèm với trình cài đặt. 8GB RAM là đủ cho việc sử dụng dựa trên API.
Cài đặt một dòng:
Chạy trình hướng dẫn thiết lập. Nó sẽ hướng dẫn qua nhà cung cấp, khóa API, mô hình và công cụ:
Bắt đầu trò chuyện trong terminal:
Kết nối nó với Telegram:
Nếu bạn muốn nói chuyện với agent của mình từ điện thoại thay vì terminal, hãy trỏ nó vào một bot Telegram.
Lấy mã thông báo bot từ @BotFather (chạy /newbot), sau đó lấy ID người dùng Telegram của bạn từ @userinfobot.
Thế là xong. Bạn đã có một agent hoạt động:
Những Gì Nằm trong ~/.hermes/
Ngay sau khi cài đặt, thư mục nhà của bạn có một thư mục hơn giới thiệu thị trấn các tệp lưu trữ biến điều khiển thông thường trải nghiệm,
- **
hermes/là một tệp cấu hình, một cách đơn giản và dễ hiểu, nó là một tệp văn bản thông thường, nhưng nó có thể được sử dụng để lưu trữ các cấu hình của hệ thống. - `config.yaml` là nguồn sự thật cho mọi thứ không phải bí mật. Lựa chọn mô hình, nền tảng terminal, bật/tắt công cụ, máy chủ MCP đều ở đây. Chỉnh sửa bằng
hermes config edithoặc đặt các giá trị từng cái một bằnghermes config set <key> <value>. - `.env giữ các bí mật của bạn. Khóa API, mã thông báo bot, mật khẩu. Hermes tự động định tuyến các giá trị trông giống bí mật đến đây.
- SOUL.md là vị trí số 1 trong lời nhắc hệ thống, trước mọi thứ khác. Lớp nhận dạng, đã đề cập ở trên.
- skills/ là nơi toàn bộ vòng lặp học tập. Mọi kỹ năng agent tạo ra, cộng với mọi thứ bạn cài đặt, đều ở đây.
- state.db là cơ sở dữ liệu SQLite hỗ trợ tìm kiếm phiên. An toàn ở chế độ WAL, được lập chỉ mục FTS5. Đây là thứ làm cho "tuần trước chúng ta đã thảo luận gì?" thực sự hoạt động.
Bạn sẽ không chỉnh sửa thủ công hầu hết những thứ này. Nhưng biết được bố trí làm cho mọi thứ khác trở nên dễ hiểu.
Thêm Kỹ Năng Mới
Hermes duy trì Skills Hub chính thức của riêng mình với 687 kỹ năng trên 18 danh mục. Phân tích:
- 87 kỹ năng tích hợp đi kèm với agent
- 79 kỹ năng tùy chọn bạn có thể bật theo yêu cầu
- 16 từ Anthropic (frontend-design, pdf, pptx, docx, mẫu docx, mcp-builder, v.v.)
- 505 từ LobeHub (đóng góp rộng hơn từ cộng đồng)
id="blk_11" type="upload" />
Bạn cũng có thể thêm bất kỳ kho lưu trữ GitHub nào dưới dạng tap tùy chỉnh:
Đây là cách bạn chia sẻ kỹ năng trong nhóm hoặc duy trì bộ sưu tập riêng của mình.
Từ 1 lên 10 agent
Một agent thì ổn. Nhiều agent chuyên biệt là lúc Hermes trở nên thú vị.
Hermes có một tính năng hạng nhất cho việc này gọi là hồ sơ. Mỗi hồ sơ là một phiên bản Hermes hoàn toàn biệt lập với cấu hình, bộ nhớ, kỹ năng, phiên và SOUL.md riêng. Chúng không chia sẻ gì theo mặc định.
Chúng ta sẽ thiết lập ba: một nhà thiết kế, một lập trình viên và một nhà nghiên cứu.
Tạo một nhóm
--clone sao chép cấu hình và .env của hồ sơ mặc định của bạn làm điểm khởi đầu.
Cấp cho mỗi bot Telegram riêng
Mỗi hồ sơ cần bot riêng từ BotFather. Telegram chỉ cho phép một kết nối trên mỗi mã thông báo, vì vậy chia sẻ sẽ làm hỏng mọi thứ.
Chạy /newbot ba lần với BotFather và lưu ba mã thông báo. Sau đó chạy trình hướng dẫn cổng một lần cho mỗi hồ sơ:
Thiết lập giống hệt như một agent thông thường, nơi bạn có thể tạo bot mới trong BotFather và kết nối chúng với các agent tương ứng.
Cấp cho mỗi một cá tính qua SOUL.md
Đây là lúc các agent trở nên thực sự khác biệt với nhau. Chỉnh sửa SOUL.md của mỗi hồ sơ.
Nhà thiết kế tại ~/.hermes/profiles/designer/SOUL.md:
Hãy xem các ví dụ này:
id="blk_12" type="upload" />
Lập trình viên tại ~/.hermes/profiles/programmer/SOUL.md:
Nhà nghiên cứu tại ~/.hermes/profiles/researcher/SOUL.md:
Tùy chỉnh lập trình viên: định tuyến thực thi qua Claude Code
package##Ir
package 词条
**IrIr packageIr,Irregular表达## 第一次在查看
"Ir/IrIr 1文本package <codepackage:** 10个, 量/
package( 仅1IrIrIrrelevantclass
/元各用于, 翻译 cle_字 (法.是w , 页中
中
(中(
(##/词/的,
package 使用(标**package
(即package





