Plugin tích hợp sẵn
Hermes đi kèm một bộ nhỏ các plugin được đóng gói trong repository. Chúng nằm trong <repo>/plugins/<name>/ và tải tự động cùng các plugin do người dùng cài đặt trong ~/.hermes/plugins/. Chúng dùng cùng bề mặt plugin như plugin bên thứ ba — hooks, tools, slash commands — chỉ được bảo trì in-tree.
Xem trang Plugins cho hệ thống plugin chung, và Xây dựng Plugin Hermes để viết plugin riêng.
Cơ chế khám phá
PluginManager quét bốn nguồn, theo thứ tự:
- Đóng gói sẵn —
<repo>/plugins/<name>/(nội dung trang này) - Người dùng —
~/.hermes/plugins/<name>/ - Dự án —
./.hermes/plugins/<name>/(yêu cầuHERMES_ENABLE_PROJECT_PLUGINS=1) - Pip entry points —
hermes_agent.plugins
Khi trùng tên, nguồn sau thắng — plugin người dùng tên disk-cleanup sẽ thay thế plugin đóng gói sẵn.
plugins/memory/ và plugins/context_engine/ được cố ý loại trừ khỏi quét đóng gói. Các thư mục đó dùng đường dẫn khám phá riêng vì memory providers và context engines là single-select providers được cấu hình qua hermes memory setup / context.engine trong config.
Plugin đóng gói là opt-in
Plugin đóng gói mặc định tắt. Discovery tìm thấy chúng (xuất hiện trong hermes plugins list và UI hermes plugins), nhưng không tải cho đến khi bạn bật rõ ràng:
hermes plugins enable disk-cleanup
Hoặc qua ~/.hermes/config.yaml:
plugins:
enabled:
- disk-cleanup
Đây là cơ chế giống plugin người dùng cài đặt. Plugin đóng gói không bao giờ tự động bật — không khi cài mới, không khi nâng cấp Hermes.
Để tắt lại:
hermes plugins disable disk-cleanup
# hoặc: xóa khỏi plugins.enabled trong config.yaml
disk-cleanup
Tự động theo dõi và xóa file tạm được tạo trong phiên — test scripts, temp outputs, cron logs, stale chrome profiles — mà không cần agent nhớ gọi tool.
Cách hoạt động:
| Hook | Hành vi |
|---|---|
post_tool_call | Khi write_file / terminal / patch tạo file khớp test_*, tmp_*, hoặc *.test.* trong HERMES_HOME hoặc /tmp/hermes-*, theo dõi im lặng là test / temp / cron-output. |
on_session_end | Nếu có file test được theo dõi trong turn, chạy cleanup quick an toàn và log tóm tắt một dòng. |
Quy tắc xóa:
| Danh mục | Ngưỡng | Xác nhận |
|---|---|---|
test | mỗi session end | Không |
temp | >7 ngày từ khi theo dõi | Không |
cron-output | >14 ngày từ khi theo dõi | Không |
| Thư mục rỗng trong HERMES_HOME | luôn | Không |
research | >30 ngày, ngoài 10 mới nhất | Luôn (chỉ deep) |
chrome-profile | >14 ngày từ khi theo dõi | Luôn (chỉ deep) |
| File >500 MB | không tự động | Luôn (chỉ deep) |
Slash command — /disk-cleanup có sẵn trong cả CLI và gateway sessions:
/disk-cleanup status # phân tích + top-10 lớn nhất
/disk-cleanup dry-run # xem trước không xóa
/disk-cleanup quick # chạy cleanup an toàn ngay
/disk-cleanup deep # quick + liệt kê mục cần xác nhận
/disk-cleanup track <path> <category> # theo dõi thủ công
/disk-cleanup forget <path> # ngừng theo dõi (không xóa)
State — mọi thứ nằm trong $HERMES_HOME/disk-cleanup/:
| File | Nội dung |
|---|---|
tracked.json | Paths được theo dõi với category, size, và timestamp |
tracked.json.bak | Backup atomic-write |
cleanup.log | Audit trail append-only của mọi track / skip / reject / delete |
An toàn — cleanup chỉ chạm paths trong HERMES_HOME hoặc /tmp/hermes-*. Windows mounts (/mnt/c/...) bị từ chối. Thư mục state cấp cao (logs/, memories/, sessions/, cron/, cache/, skills/, plugins/, disk-cleanup/) không bao giờ bị xóa ngay cả khi rỗng.
Bật: hermes plugins enable disk-cleanup
Tắt: hermes plugins disable disk-cleanup
Viết plugin đóng gói riêng
Plugin đóng gói được viết giống plugin Hermes thông thường — xem Xây dựng Plugin Hermes. Khác biệt duy nhất:
- Thư mục nằm trong
<repo>/plugins/<name>/thay vì~/.hermes/plugins/<name>/ - Nguồn manifest được báo cáo là
bundledtronghermes plugins list - Plugin người dùng cùng tên ghi đè phiên bản đóng gói
Plugin phù hợp để đóng gói khi:
- Không có dependencies tùy chọn (hoặc đã là deps của
pip install .[all]) - Hành vi có lợi cho hầu hết người dùng và là opt-out thay vì opt-in
- Logic gắn vào lifecycle hooks mà agent không cần nhớ gọi
- Bổ sung khả năng cốt lõi mà không mở rộng bề mặt tool cho model
Ví dụ ngược — nên giữ là plugin cài đặt riêng: tích hợp bên thứ ba với API keys, workflow ngách, dependency trees lớn, bất cứ gì thay đổi đáng kể hành vi agent mặc định.