Plugin tích hợp
Hermes gửi một bộ plugin nhỏ đi kèm với kho lưu trữ. Chúng hoạt động dưới
<repo/plugins/<name/ ` và tự động tải cùng với các plugin do người dùng cài đặt trong
~/.Hermes/plugins/
. Chúng sử dụng bề mặt plugin giống như plugin của bên thứ ba — hook, công cụ, lệnh gạch chéo — chỉ được duy trì trong cây.
Xem trang Plugins để biết hệ thống plugin chung và Build a Hermes Plugin để viết hệ thống plugin của riêng bạn.
Cách hoạt động của tính năng khám phá``PluginManager
` quét bốn nguồn theo thứ tự:
- Đi kèm —
<repo/plugins/<name/ ` (trang này ghi lại nội dung gì) 2. Người dùng —
~/.Hermes/plugins/<name/
- Dự án —
./.Hermes/plugins/<name/
(yêu cầu Hermes_ENABLE_PROJECT_PLUGINS=1
)
4. Điểm vào pip —
Hermes_agent.plugins ``Khi xung đột tên, các nguồn sau này sẽ thắng - một plugin người dùng có tên disk-cleanup
` sẽ thay thế plugin đi kèm.
plugins/memory/
và plugins/context_engine/
được cố tình loại trừ khỏi quá trình quét theo gói. Các thư mục đó sử dụng đường dẫn khám phá riêng vì nhà cung cấp bộ nhớ và công cụ ngữ cảnh là nhà cung cấp một lựa chọn được định cấu hình thông qua Hermes memory setup
/ context.engine
` trong config.
Các plugin đi kèm được chọn tham gia
Các plugin đi kèm đã bị vô hiệu hóa. Discovery tìm thấy chúng (chúng xuất hiện trong
Hermes plugins list và giao diện người dùng
Hermes plugins tương tác), nhưng không tải cho đến khi bạn bật chúng một cách rõ ràng:
Hermes plugins enable disk-cleanup
`
``Hoặc thông qua
~/.Hermes/config.yaml
:
`YAML
plugins:
enabled:
- disk-cleanup
`
``Đây là cơ chế tương tự mà các plugin do người dùng cài đặt sử dụng. Các plugin đi kèm không bao giờ được kích hoạt tự động — không phải khi cài đặt mới, không dành cho người dùng hiện tại nâng cấp lên Hermes mới hơn. Bạn luôn chọn tham gia một cách rõ ràng.
Để tắt lại plugin đi kèm:
``` bash
Hermes plugins disable disk-cleanup
# or: remove it from plugins.enabled in config.yaml
`
## Hiện đã được vận chuyển
Kho lưu trữ gửi các plugin đi kèm này theo
`plugins/
. Tất cả đều được chọn tham gia - kích hoạt chúng thông qua
`Hermes plugins enable <name
.
| Plugin | Loại | Mục đích |
|---|---|---|
|
`disk-cleanup
` | lệnh móc + dấu gạch chéo | Tự động theo dõi các tập tin tạm thời và xóa chúng vào cuối phiên |
|
`observability/Langfuse
` | móc | Theo dõi lượt / cuộc gọi LLM / công cụ tới [Langfuse](https://Langfuse.com) |
|
`spotify
` | phụ trợ (7 công cụ) | Phát lại Spotify gốc, xếp hàng, tìm kiếm, danh sách phát, album, thư viện |
|
`Google_meet
` | độc lập | Tham gia cuộc gọi Meet, chép lời phụ đề trực tiếp, âm thanh song công theo thời gian thực tùy chọn |
|
`image_gen/OpenAI
` | phụ trợ hình ảnh | Phần phụ trợ tạo hình ảnh OpenAI
`GPT-image-2
` (thay thế cho FAL) |
|
`image_gen/OpenAI-Codex
` | phụ trợ hình ảnh | Tạo hình ảnh OpenAI qua Codex OAuth |
|
`image_gen/xai
` | phụ trợ hình ảnh | phụ trợ xAI
`grok-2-image
` |
|
`Hermes-achievements
` | tab bảng điều khiển | Huy hiệu sưu tập kiểu hơi nước được tạo từ lịch sử phiên Hermes thực của bạn |
|
`kanban/dashboard
` | tab bảng điều khiển | Giao diện người dùng bảng Kanban dành cho người điều phối đa tác nhân — nhiệm vụ, nhận xét, phân xuất, chuyển đổi bảng. Xem [Kanban Multi-Agent](./kanban.md). |
Các nhà cung cấp bộ nhớ (
`plugins/memory/*
) và công cụ ngữ cảnh (
`plugins/context_engine/*
) được liệt kê riêng trên [Memory Providers](./memory-providers.md) — chúng được quản lý lần lượt thông qua
`Hermes memory
` và
`Hermes plugins
. Sau đây là chi tiết đầy đủ về mỗi plugin cho hai plugin dựa trên hook chạy dài.
### dọn dẹp đĩa
Tự động theo dõi và xóa các tệp tạm thời được tạo trong các phiên — tập lệnh kiểm tra, kết quả đầu ra tạm thời, nhật ký cron, cấu hình chrome cũ — mà không yêu cầu nhân viên phải nhớ gọi một công cụ.
**Cách thức hoạt động:**
| Móc | Hành vi |
|---|---|
|
`post_tool_call
` | Khi
`write_file
` /
`terminal
` /
`patch
` tạo tệp khớp với
`test_*
,
`tmp_*
` hoặc
*.test.*
` bên trong
`Hermes_HOME
` hoặc
/tmp/Hermes-*
, hãy theo dõi tệp đó một cách im lặng dưới dạng
`test
` /
`temp
` /
`cron-output
. |
|
`on_session_end
` | Nếu bất kỳ tệp kiểm tra nào được tự động theo dõi trong lượt, hãy chạy trình dọn dẹp
`quick
` an toàn và ghi lại bản tóm tắt một dòng. Ngược lại thì im lặng. |`**Quy tắc xóa:**
| Danh mục | Ngưỡng | Xác nhận |
|---|---|---|
|
`test
` | mỗi buổi kết thúc | Không bao giờ |
|
`temp
` | >7 ngày kể từ khi được theo dõi | Không bao giờ |
|
`cron-output
` | >14 ngày kể từ khi được theo dõi | Không bao giờ |
| thư mục trống trong Hermes_HOME | luôn | Không bao giờ |
|
`research
` | >30 ngày, ngoài 10 ngày mới nhất | Luôn luôn (chỉ sâu) |
|
`chrome-profile
` | >14 ngày kể từ khi được theo dõi | Luôn luôn (chỉ sâu) |
| tập tin >500 MB | không bao giờ tự động | Luôn luôn (chỉ sâu) |
**Lệnh gạch chéo** —
/disk-cleanup
` có sẵn trong cả phiên CLI và cổng:
`
/disk-cleanup status # breakdown + top-10 largest
/disk-cleanup dry-run # preview without deleting
/disk-cleanup quick # run safe cleanup now
/disk-cleanup deep # quick + list items needing confirmation
/disk-cleanup track <path <category # manual tracking
/disk-cleanup forget <path # stop tracking (does not delete)
`
``**Bang** — mọi thứ đều có tại
$Hermes_HOME/disk-cleanup/
:
| Tập tin | Nội dung |
|---|---|
|
`tracked.JSON
` | Đường dẫn được theo dõi với danh mục, kích thước và dấu thời gian |
|
`tracked.JSON.bak
` | Sao lưu ghi nguyên tử ở trên |
|
`cleanup.log
` | Dấu vết kiểm tra chỉ nối thêm của mỗi bản nhạc / bỏ qua / từ chối / xóa |
**An toàn** — việc dọn dẹp chỉ chạm vào các đường dẫn trong
`Hermes_HOME
` hoặc
/tmp/Hermes-*
. Việc gắn kết Windows (
/mnt/c/...
) bị từ chối. Các thư mục trạng thái cấp cao nhất nổi tiếng (
`logs/
,
`memories/
,
`sessions/
,
`cron/
,
`cache/
,
`skills/
,
`plugins/
,
`disk-cleanup/
) không bao giờ bị xóa ngay cả khi trống - bản cài đặt mới không bị rút ruột trong phiên đầu tiên kết thúc.
**Kích hoạt:**
`Hermes plugins enable disk-cleanup
` (hoặc chọn hộp trong
`Hermes plugins
).
**Vô hiệu hóa lại:**
`Hermes plugins disable disk-cleanup
.
### khả năng quan sát/Langfuse
Theo dõi các lượt chuyển hướng của Hermes, các cuộc gọi LLM và các lệnh gọi công cụ tới [Langfuse](https://Langfuse.com) - một nền tảng có khả năng quan sát LLM mã nguồn mở. Một nhịp mỗi lượt, một thế hệ cho mỗi lệnh gọi API, một lần quan sát công cụ cho mỗi lệnh gọi công cụ. Tổng mức sử dụng, số lượng mã thông báo theo từng loại và ước tính chi phí được đưa ra từ các số
`agent.usage_pricing
` chuẩn của Hermes, do đó, bảng điều khiển Langfuse thấy phân tích tương tự (đầu vào / đầu ra /
`cache_read_input_tokens
` /
`cache_creation_input_tokens
` /
`reasoning_tokens
) xuất hiện trong
`Hermes logs
.
Plugin không mở được: chưa cài đặt SDK, không có thông tin xác thực hoặc lỗi Langfuse nhất thời — tất cả đều biến thành trạng thái không hoạt động im lặng trong hook. Vòng lặp đại lý không bao giờ bị ảnh hưởng.
**Cài đặt:**
``` bash
pip install Langfuse
Hermes plugins enable observability/Langfuse
`
``Hoặc chọn hộp trong giao diện người dùng
`Hermes plugins
` tương tác. Sau đó đặt thông tin đăng nhập vào
~/.Hermes/.env
:
`bash
Hermes_Langfuse_PUBLIC_KEY=pk-lf-...
Hermes_Langfuse_SECRET_KEY=sk-lf-...
Hermes_Langfuse_BASE_URL=https://cloud.Langfuse.com # or your self-hosted URL
`
``**Cách thức hoạt động:**
| Móc | Hành vi |
|---|---|
|
`pre_API_request
` /
`pre_LLM_call
` | Mở (hoặc tái sử dụng) nhịp gốc mỗi lượt "Hermes Turn". Bắt đầu quan sát con
`generation
` cho lệnh gọi API này với các thông báo gần đây được tuần tự hóa làm đầu vào. |
|
`post_API_request
` /
`post_LLM_call
` | Đóng thế hệ, đính kèm
`usage_details
,
`cost_details
,
`finish_reason
, đầu ra trợ lý + lệnh gọi công cụ. Nếu không có công cụ nào gọi và nội dung không trống, hãy đóng lượt. |
|
`pre_tool_call
` | Bắt đầu quan sát trẻ em
`tool
` bằng
`args
` đã được khử trùng. |
|
`post_tool_call
` | Đóng quan sát dụng cụ bằng
`result
` đã được vệ sinh. Tải trọng
`read_file
` được tóm tắt (đầu + đuôi + số dòng bị bỏ qua) để một tệp lớn được đọc vẫn nằm trong
`Hermes_Langfuse_MAX_CHARS
. |
Các khóa nhóm phiên tắt ID phiên Hermes (hoặc ID nhiệm vụ cho các tác nhân phụ) thông qua
`Langfuse.propagate_attributes
, vì vậy mọi thứ trong một phiên
`Hermes chat
` duy nhất đều tồn tại trong một phiên Langfuse.
**Xác minh:**
`bash
Hermes plugins list # observability/Langfuse should show "enabled"
Hermes chat -q "hello" # check the Langfuse UI for a "Hermes turn" trace
`
``**Điều chỉnh tùy chọn** (trong
.env
):
| Biến | Mặc định | Mục đích |
|---|---|---|
|
`Hermes_Langfuse_ENV
` | — | Thẻ môi trường trên dấu vết (
`production
,
`staging
, …) |
|
`Hermes_Langfuse_RELEASE
` | — | Thẻ phát hành/phiên bản |
|
`Hermes_Langfuse_SAMPLE_RATE
` |
`1.0
` | Tốc độ lấy mẫu được chuyển tới SDK (0,0–1,0) |
|
`Hermes_Langfuse_MAX_CHARS
` |
`12000
` | Cắt bớt từng trường cho nội dung tin nhắn / đối số công cụ / kết quả công cụ |
|
`Hermes_Langfuse_DEBUG
` |
`false
` | Ghi nhật ký plugin chi tiết vào
`agent.log
` |
Các biến env SDK tiêu chuẩn và có tiền tố Hermes (
`Langfuse_PUBLIC_KEY
,
`Langfuse_SECRET_KEY
,
`Langfuse_BASE_URL
) đều được chấp nhận — tiền tố Hermes sẽ thắng khi cả hai đều được thiết lập.
**Hiệu suất:** ứng dụng khách Langfuse được lưu vào bộ đệm sau lệnh gọi hook đầu tiên. Nếu thông tin đăng nhập hoặc SDK bị thiếu, quyết định đó cũng được lưu vào bộ đệm - các móc tiếp theo sẽ quay trở lại nhanh chóng mà không cần kiểm tra lại các biến env hoặc tải lại cấu hình.
**Vô hiệu hóa:**
`Hermes plugins disable observability/Langfuse
. Mô-đun plugin vẫn được phát hiện nhưng không có mã mô-đun nào chạy cho đến khi bạn bật lại.
### Google_meet
Cho phép nhân viên **tham gia, chép lời và tham gia các cuộc gọi trên Google Meet** — ghi chú trong cuộc họp, tóm tắt qua lại sau đó, theo dõi các điểm cụ thể và (tùy chọn) nói câu trả lời lại trong cuộc gọi qua TTS.
**Những gì nó thêm vào:**- Người tham gia ảo không có đầu tham gia URL Meet bằng tính năng tự động hóa trình duyệt
- Phiên âm trực tiếp âm thanh cuộc họp thông qua nhà cung cấp STT đã định cấu hình
- Bộ công cụ
`meet_summarize
` /
`meet_speak
` /
`meet_followup
` mà tác nhân yêu cầu hành động theo những gì nó nghe được
- Các tạo phẩm sau cuộc họp (bản ghi, ghi chú do người nói, mục hành động) được lưu trong
~/.Hermes/cache/Google_meet/<meeting_id/
``**Cài đặt:**
``` bash
Hermes plugins enable Google_meet
# Prompts you to sign in via the plugin's OAuth flow on first use —
# needs a Google account with Meet access. Host approval may be required
# if the meeting enforces "only invited participants can join".
`
``Cách sử dụng từ trò chuyện:`> "Tham gia Meet.Google.com/abc-defg-hij và ghi chú. Sau cuộc gọi, hãy gửi cho tôi bản tóm tắt kèm theo các mục hành động."
Tổng đài viên bắt đầu tham gia cuộc họp, truyền bản ghi trở lại ngữ cảnh của nó khi cuộc gọi tiếp tục và tạo ra một bản tóm tắt có cấu trúc khi cuộc họp kết thúc (hoặc khi bạn yêu cầu cuộc họp dừng lại).
**Khi nào nên sử dụng:** các dự phòng định kỳ mà bạn muốn bot phiên âm + tóm tắt cho những người tham dự không đồng bộ; các cuộc phỏng vấn theo phong cách lắng đọng nơi bạn muốn có các ghi chú có cấu trúc; bất kỳ trường hợp nào bạn cần Đom đóm/Rái cá/Hạt. Khi bạn không muốn AI lắng nghe - đừng bật nó.
**Vô hiệu hóa:**
`Hermes plugins disable Google_meet
. Mọi bản chép lời và bản ghi được lưu trong bộ nhớ đệm vẫn ở trong
~/.Hermes/cache/Google_meet/
` cho đến khi bạn xóa chúng.
### Hermes-thành tích
Thêm **tab thành tích kiểu Steam vào bảng điều khiển** — hơn 60 huy hiệu theo cấp bậc, có thể sưu tập được tạo từ lịch sử phiên Hermes thực của bạn. Thành tích của chuỗi công cụ, mô hình gỡ lỗi, chuỗi mã hóa rung cảm, cách sử dụng kỹ năng/bộ nhớ, sự đa dạng của mô hình/nhà cung cấp, các điểm kỳ quặc trong lối sống (phiên cuối tuần và ban đêm). Ban đầu được viết bởi [@PCinkusz](https://GitHub.com/PCinkusz) dưới dạng plugin bên ngoài; được đưa vào cây để nó luôn theo kịp những thay đổi về tính năng của Hermes.
**Cách thức hoạt động:**
- Quét toàn bộ lịch sử phiên
~/.Hermes/state.db
` của bạn trên phần phụ trợ của bảng điều khiển
- Số liệu thống kê mỗi phiên được lưu trữ bằng dấu vân tay
(started_at, last_active)
, do đó chỉ các phiên mới hoặc đã thay đổi mới phân tích lại trong các lần quét tiếp theo
- Lần quét đầu tiên chạy trong một luồng nền — bảng thông tin không bao giờ chặn việc chờ nó, ngay cả trên cơ sở dữ liệu có hàng nghìn phiên
- Trạng thái mở khóa được duy trì thành
$Hermes_HOME/plugins/Hermes-achievements/state.JSON
``**Tiến trình cấp bậc:** Đồng → Bạc → Vàng → Kim cương → Olympian. Mỗi thẻ hiển thị phần "Số liệu được tính" liệt kê số liệu chính xác đang được theo dõi.
**Trạng thái thành tích:**
| Tiểu bang | Ý nghĩa |
|---|---|
| Đã mở khóa | Đạt được ít nhất một bậc |
| Đã phát hiện | Đã biết thành tích, có thể nhìn thấy tiến bộ, chưa kiếm được |
| Bí mật | Ẩn cho đến khi Hermes phát hiện ra tín hiệu liên quan đầu tiên trong lịch sử của bạn |
**API** — các tuyến đường gắn kết với
/API/plugins/Hermes-achievements/
:
| Điểm cuối | Mục đích |
|---|---|
|
`GET /achievements
` | Danh mục đầy đủ với trạng thái mở khóa cho mỗi huy hiệu (trả về một trình giữ chỗ đang chờ xử lý trong khi quá trình quét nguội đầu tiên đang chạy) |
|
`GET /scan-status
` | Trình quét trạng thái nền:
`idle
` /
`running
` /
`failed
, thời lượng cuối cùng, số lần chạy |
|
`GET /recent-unlocks
` | Hai mươi huy hiệu được mở khóa gần đây nhất, mới nhất trước |
|
`GET /sessions/\{id}/badges
` | Huy hiệu kiếm được chủ yếu trong một phiên cụ thể |
|
`POST /rescan
` | Quét lại đồng bộ thủ công (chặn; sử dụng khi người dùng nhấp vào nút quét lại) |
|
`POST /reset-state
` | Xóa lịch sử mở khóa và ảnh chụp nhanh được lưu trong bộ nhớ cache |
**Tệp trạng thái** — trực tiếp dưới dạng
$Hermes_HOME/plugins/Hermes-achievements/
:
| Tập tin | Nội dung |
|---|---|
|
`state.JSON
` | Mở khóa lịch sử: bạn đã kiếm được huy hiệu nào và khi nào. Ổn định trên các bản cập nhật của Hermes. |
|
`scan_snapshot.JSON
` | Tải trọng quét hoàn tất lần cuối (được phân phối ngay khi tải trang tổng quan) |
|
`scan_checkpoint.JSON
` | Bộ nhớ đệm thống kê mỗi phiên được khóa bằng dấu vân tay (giúp quét lại ấm nhanh chóng) |
**Ghi chú thực hiện:**
- Quét nguội trên ~8.000 phiên mất vài phút. Nó chạy trong một luồng nền theo yêu cầu bảng điều khiển đầu tiên; giao diện người dùng nhìn thấy một trình giữ chỗ đang chờ xử lý và thăm dò ý kiến
/scan-status
.
- **Kết quả gia tăng trong quá trình quét nguội** — máy quét xuất bản ảnh chụp nhanh một phần cứ sau ~250 phiên để mỗi lần làm mới trang tổng quan sẽ hiển thị nhiều huy hiệu được mở khóa hơn khi quá trình quét diễn ra. Không nhìn chằm chằm vào số không trong một phút.
- Quét lại ấm áp sẽ tái sử dụng số liệu thống kê mỗi phiên cho mỗi phiên có dấu vân tay
`started_at
+
`last_active
` khớp với điểm kiểm tra — hoàn thành sau vài giây ngay cả trên lịch sử lớn.
- Ảnh chụp nhanh trong bộ nhớ TTL là 120 giây; các yêu cầu cũ sẽ phân phát ảnh chụp nhanh cũ ngay lập tức và bắt đầu làm mới nền. Bạn không bao giờ chờ đợi một vòng quay chỉ vì TTL đã hết hạn.**Bật:** Không có gì để bật -
`Hermes-achievements
` là một plugin chỉ dành cho trang tổng quan (không có móc vòng đời, không có công cụ hiển thị mô hình). Nó tự động đăng ký dưới dạng tab trong
`Hermes dashboard
` trong lần khởi chạy đầu tiên. Cấu hình
`plugins.enabled
` chỉ hỗ trợ các plugin vòng đời/công cụ; các plugin bảng điều khiển được phát hiện hoàn toàn thông qua
`dashboard/manifest.JSON
` của chúng.
**Chọn không tham gia:** Xóa hoặc đổi tên
`plugins/Hermes-achievements/dashboard/manifest.JSON
` hoặc ghi đè bằng plugin người dùng cùng tên trong
~/.Hermes/plugins/Hermes-achievements/
` không có trang tổng quan. Các tệp trạng thái của plugin trong
$Hermes_HOME/plugins/Hermes-achievements/
` vẫn tồn tại — việc cài đặt lại sẽ lưu giữ lịch sử mở khóa của bạn.
## Thêm plugin đi kèm
Các plugin đi kèm được viết giống hệt như bất kỳ plugin Hermes nào khác - xem [Build a Hermes Plugin](/docs/guides/build-a-Hermes-plugin). Sự khác biệt duy nhất là:
- Thư mục tồn tại ở
<repo/plugins/<name/
` thay vì
~/.Hermes/plugins/<name/
- Nguồn kê khai được báo cáo là
`bundled
` trong
`Hermes plugins list
- Các plugin của người dùng có cùng tên sẽ ghi đè lên phiên bản đi kèm
Plugin là ứng cử viên phù hợp để đóng gói khi:
- Nó không có phần phụ thuộc tùy chọn (hoặc chúng đã có phiên bản
`pip install .[all]
)
- Hành vi mang lại lợi ích cho hầu hết người dùng và chọn không tham gia thay vì chọn tham gia
- Logic liên kết với các móc vòng đời mà tác nhân sẽ phải nhớ gọi ra
- Nó bổ sung cho khả năng cốt lõi mà không cần mở rộng bề mặt công cụ có thể nhìn thấy được trên mô hình
Ví dụ phản biện - những thứ nên ở dạng plugin có thể cài đặt của người dùng, không được đóng gói: tích hợp của bên thứ ba với khóa API, quy trình làm việc thích hợp, cây phụ thuộc lớn, bất kỳ thứ gì có thể thay đổi một cách có ý nghĩa hành vi của tác nhân theo mặc định.