Hermes Agent - Làm quen
Khái niệm
“Hermes Agent” là tên của một AI agent mã nguồn mở do Nous Research phát triển. Nó được mô tả là một agent chạy bền vững trên máy chủ của bạn, có bộ nhớ dài hạn, có thể học dần theo thời gian, kết nối với nhiều nền tảng nhắn tin/công cụ, và hỗ trợ tự động hóa trình duyệt. Dự án được phát hành theo giấy phép MIT.
Thường, AI agent này sẽ được dùng như một trợ lý thực thụ. Không chỉ có thể trả lời tin nhắn hay là kết nối đến bên thứ ba để trả lời thông tin cho bạn nữa. Mà nó có thể quản lí máy bạn, giúp bạn deploy web app chẳng hạn. Ngoài ra, nó có bộ nhớ dài hạn có thể ghi nhớ lại những thói quen hoặc là những lưu ý của bạn. Song song đó là khả năng tự học hỏi. Khi mà làm một task gì đó lặp đi lặp lại, thì nó sẽ chủ động tạo thành skill để sau này có thể tái sử dụng lại mà không cần phải suy nghĩ, xử lí quá nhiều. Điều này giúp giảm chi phí token đáng kế cho những công việc gần gần giống nhau. Cuối cùng là hỗ trợ nhiều gateway đến những ứng dụng nhắn tin có thể dùng trên điện thoại như Telegram, Discord,... Giúp bạn có thể quản lí AI agent để thao tác công việc, quản lí máy ngay trên điện thoại của mình.
Cài Đặt
Để cài đặt, các bạn chạy câu lệnh:
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Sau đó làm mới lại terminal đang sử dụng:
source ~/.bashrc # reload shell (or: source ~/.zshrc)
Họăc có thể đóng terminal rồi mở lại. Sau đó, chạy thử lệnh hermes. Nếu hiện ra như thế này thì bạn đã thành công cài đặt hermes agent lên trên máy.

Thử hỏi xem nó là ai.

SOUL.md
Thường thì khi dùng AI, chúng ta sẽ muốn cài đặt system prompt để cho AI biết nó là ai. Nó cần làm gì. Mục đích là để AI có thể chuyên sâu hơn vào trong công việc mà nó muốn làm. Lấy ví dụ, một con AI không có system prompt. Khi mà bạn kêu nó là viết cho tôi một chương trình Hello World. Nó sẽ chọn ngôn ngữ mà nó được train nhiều hoặc là nó cảm thấy ok để viết. Như vậy, nếu bạn muốn nó viết ở một ngôn ngữ nhất định. Thì sẽ không được. Bạn có thể thêm cái này trong prompt của mình. Nhưng khi mà qua một session mới, thì AI sẽ quên ngay là bạn đang muốn viết ở ngôn ngữ nào. Đó là lí do chúng ta cần system prompt. Nó sẽ được tái sử dụng xuyên suốt các session. Nếu bạn muốn nó là chuyên gia PHP, bạn có thể thêm vào system prompt là "You are an expert in PHP". Thì bất kì prompt nào của bạn, AI cũng sẽ đọc system prompt trước và hiểu là nó là chuyên gia PHP. Và với những prompt của bạn, nó sẽ cố gắng apply dùng PHP và những kiến thức liên quan đến PHP.

Trong hermes agent, có SOUL.md tương tự như system prompt. Để tối ưu sử dụng, thì chúng ta nên setup SOUL.md của con agent này. Để setup SOUL.md, các bạn vào ~/.hermes/SOUL.md. Đây là mặc định.

Mình đổi thành:

Kết quả khi hỏi thì agent đã biết nó là expert PHP.

Session
Đến đây, mình tự hỏi. Sao phức tạp vậy. Để nguyên vậy rồi hỏi từ đầu tới cuối thôi. Nó tự nhớ. Cần gì system prompt cho phiền. Ai rảnh đâu tạo session mới.
Đúng rồi, khi mới làm, chúng ta sẽ có xu hướng giữ session và cứ thế mà hỏi. Nên là trong câu prompt thứ 1 bạn bảo nó là expert PHP thì đến câu thứ 100, AI vẫn sẽ nhớ nó là expert PHP. Nhưng có một điều, càng về lâu về dài, bạn sẽ thấy nó làm việc càng tệ. Và đôi khi nó bị rối nếu mà bạn hỏi nhiều chủ đề trong 1 cái sessions.
Ví dụ như bạn đang làm việc ở thư mục workspace1. Bạn kêu nó xong rồi thì lưu vào thư mục kết quả. Khi xong, nó sẽ lưu ở workspace1/result. Nhưng nếu giữa chừng bạn đổi sang workspace2 để làm chuyện khác. Xong rồi bạn lại muốn tiếp tục công việc ở workspace1 nhưng mà bạn chỉ kêu là lưu vào result thì nó sẽ dùng workspace2/result. Tại vì nó tưởng bạn đang làm việc trên workspace2. Nếu bạn tách ra làm 2 session riêng biệt. Session 1 cho workspace1 và session 2 cho workspace 2. Thì trong session 1, khi kêu ghi vào result, nó sẽ biết ghi vào workspace1/result. Tương tự cho session 2 nó sẽ biết ghi vào workspace2/result.
Tiếp theo là làm càng lâu thì nó sẽ càng tệ. Vì mỗi một model, nó sẽ có context window size.

Ở thanh này nó hiển thị model mình dùng là minimax 2.7 highspeed. Context window size là 204.8k. Mỗi lần bạn prompt và AI trả lời thì nó sẽ tiêu tốn chỗ của cái context window size này. Ở thanh này nó hiển thị model mình dùng là minimax 2.7 highspeed. Context window size là 204.8k. Mỗi lần bạn prompt và AI trả lời thì nó sẽ tiêu tốn chỗ của cái context window size này. Nhìn hình ta thấy, mình hỏi một câu, xong AI trả lời lại thì tốn 11.7k token. Đến khi mà số token này vượt quá 204.8k thì model này không thể handle được nữa. Nó sẽ cố gắng nén ngữ cảnh hiện tại lại bằng cách tóm tắt. Ví dụ như bạn đang dùng 200k token, giờ nó vượt mức pickleball rồi, nó sẽ tóm tắt ngữ cảnh hiện tại lại và sau khi tóm tắt chỉ tốn tầm 10k token thôi. Như vậy bạn có thể tiếp tục chat với model cùng với tóm tắt của ngữ cảnh trước. Khi tóm tắt thì sẽ bị mất thông tin, nên đôi khi những cái bạn đã nói, nó không có trong tóm tắt thì nó sẽ quên.

Đó là lý do, chúng ta nên dùng system prompt. Và khi làm một task khác thì nên mở một session mới để thực hiện một task mới đó thay vì dùng chung với session cũ. Để tạo mới session, chúng ta dùng command /new.

Prompt
Khi mở lên, thanh này sẽ giúp cho bạn có thể giao tiếp với AI. Gọi là prompt. Bạn có thể kêu AI làm những thứ bạn muốn.

Ở đây mình sẽ kêu tóm tắt video youtube. Khi làm việc, hermes agent sẽ show cho chúng ta thấy từng bước nó thực hiện như là sử dụng skill, truy cập browser,...

Và đây là kết quả

Gateway
Nếu bạn muốn dùng AI agent của mình thông qua những ứng dụng chat như telegram, discord,... để team có thể sử dụng hoặc là đơn giản bạn có thể chat với AI thông qua dùng app chat thì sẽ cần setup gateway.

Mình sẽ dùng telegram làm ví dụ. Trước hết, các bạn cần dùng bot father trong telegram để tạo bot. Sau khi tạo, thì có trường đầu tiên sẽ là chỗ để bạn truy cập vào con bot của mình. Trường thứ hai sẽ là token để bạn dán vào telegram token sau.

Để setup, bạn chọn lệnh hermes gateway setup. Sau đó bạn chọn gateway telegram Sau đó, bạn paste token khi nãy vào phần đầu tiên bot token. Ở field allow user id, bạn truy cập vào @userinfobot để lấy user id, sau đó chép vào đây.


Ở đây bạn chọn Enable open access nếu cho phép ai cũng nhắn được. Còn Use DM pairing là chỉ cho phép nhắn khi mà bạn approve.

Với gateway, thì bạn chọn option 1 nếu muốn chạy manual. Mỗi lần chạy bạn sẽ phải chạy lệnh hermes gateway start. Chọn option 2 để nó chạy tự động như service. Bạn không phải chạy lệnh hermes gateway start. Máy bạn chạy là cái gateway này sẽ tự động chạy.

Test. Mình kêu nó làm lại cái task brief video mà lần này trên telegram.

Kết quả:

Kết
Ok, sương sương vậy trước. Bài tiếp theo mình sẽ hướng dẫn nhiều cái hơn nữa. Nếu các bạn cần hỗ trợ gì thì comment nhé.
All rights reserved