Bảng điều khiển Web
Bảng điều khiển web là giao diện trên trình duyệt để quản lý cài đặt Hermes Agent của bạn. Thay vì chỉnh sửa file YAML hoặc chạy lệnh CLI, bạn có thể cấu hình cài đặt, quản lý API key và theo dõi phiên làm việc từ giao diện web gọn gàng.
Bắt đầu nhanh
hermes dashboard
Lệnh này khởi động máy chủ web cục bộ và mở http://127.0.0.1:9119 trong trình duyệt. Bảng điều khiển chạy hoàn toàn trên máy bạn — không có dữ liệu nào rời khỏi localhost.
Tùy chọn
| Cờ | Mặc định | Mô tả |
|---|---|---|
--port | 9119 | Cổng chạy máy chủ web |
--host | 127.0.0.1 | Địa chỉ bind |
--no-open | — | Không tự động mở trình duyệt |
# Cổng tuỳ chỉnh
hermes dashboard --port 8080
# Bind tất cả giao diện mạng (cẩn thận khi dùng mạng chia sẻ)
hermes dashboard --host 0.0.0.0
# Khởi động mà không mở trình duyệt
hermes dashboard --no-open
Điều kiện tiên quyết
Bảng điều khiển web yêu cầu FastAPI và Uvicorn. Cài đặt chúng bằng:
pip install hermes-agent[web]
Nếu bạn đã cài đặt bằng pip install hermes-agent[all], các dependency web đã được bao gồm.
Khi bạn chạy hermes dashboard mà không có các dependency, nó sẽ thông báo cho bạn cần cài đặt gì. Nếu frontend chưa được build và npm khả dụng, nó sẽ tự động build trong lần khởi chạy đầu tiên.
Các trang
Trạng thái
Trang chính hiển thị tổng quan trực tiếp về cài đặt của bạn:
- Phiên bản Agent và ngày phát hành
- Trạng thái Gateway — đang chạy/đã dừng, PID, các nền tảng đã kết nối và trạng thái của chúng
- Phiên hoạt động — số lượng phiên hoạt động trong 5 phút gần nhất
- Phiên gần đây — danh sách 20 phiên gần nhất với model, số tin nhắn, sử dụng token và bản xem trước cuộc trò chuyện
Trang trạng thái tự động làm mới mỗi 5 giây.
Cấu hình
Trình chỉnh sửa dạng form cho config.yaml. Tất cả hơn 150 trường cấu hình được tự động phát hiện từ DEFAULT_CONFIG và tổ chức thành các danh mục theo tab:
- model — model mặc định, nhà cung cấp, URL cơ sở, cài đặt suy luận
- terminal — backend (local/docker/ssh/modal), thời gian chờ, tuỳ chỉnh shell
- display — giao diện, tiến trình công cụ, hiển thị tiếp tục, cài đặt spinner
- agent — số vòng lặp tối đa, thời gian chờ gateway, tầng dịch vụ
- delegation — giới hạn subagent, mức độ suy luận
- memory — chọn nhà cung cấp, cài đặt chèn ngữ cảnh
- approvals — chế độ phê duyệt lệnh nguy hiểm (ask/yolo/deny)
- Và nhiều hơn nữa — mọi phần của config.yaml đều có trường form tương ứng
Các trường có giá trị hợp lệ đã biết (backend terminal, giao diện, chế độ phê duyệt, v.v.) hiển thị dạng dropdown. Boolean hiển thị dạng toggle. Các trường còn lại là ô nhập văn bản.
Hành động:
- Lưu — ghi thay đổi vào
config.yamlngay lập tức - Đặt lại — hoàn tác các thay đổi chưa lưu về giá trị đã lưu gần nhất
API Key
Quản lý tất cả biến môi trường (API key, secret, token) được lưu trong ~/.hermes/.env.
- Duyệt — hiển thị tất cả biến môi trường với danh mục, giá trị đã ẩn, mô tả và trạng thái (đã đặt/chưa đặt)
- Tìm kiếm — lọc theo tên hoặc mô tả biến
- Chỉnh sửa — nhấn vào biến để hiện/ẩn giá trị và chỉnh sửa tại chỗ
- Xoá — xoá biến khỏi file
.env
Phiên làm việc
Duyệt và kiểm tra tất cả phiên agent. Mỗi hàng hiển thị tiêu đề phiên, biểu tượng nền tảng nguồn (CLI, Telegram, Discord, Slack, cron), tên model, số tin nhắn, số lần gọi công cụ và thời gian hoạt động gần nhất. Các phiên đang hoạt động được đánh dấu bằng huy hiệu nhấp nháy.
- Tìm kiếm — tìm kiếm toàn văn trên tất cả nội dung tin nhắn sử dụng FTS5. Kết quả hiển thị đoạn trích được đánh dấu và tự động cuộn đến tin nhắn phù hợp đầu tiên khi mở rộng.
- Mở rộng — nhấn vào phiên để tải toàn bộ lịch sử tin nhắn. Tin nhắn được phân màu theo vai trò (user, assistant, system, tool) và hiển thị dưới dạng Markdown với tô sáng cú pháp.
- Gọi công cụ — tin nhắn assistant có gọi công cụ hiển thị các khối thu gọn với tên hàm và tham số JSON.
- Xoá — xoá phiên và lịch sử tin nhắn bằng biểu tượng thùng rác.
Nhật ký
Xem file nhật ký agent, gateway và lỗi với bộ lọc và theo dõi trực tiếp.
- File — chuyển đổi giữa file nhật ký
agent,errorsvàgateway - Mức độ — lọc theo mức nhật ký: ALL, DEBUG, INFO, WARNING, hoặc ERROR
- Thành phần — lọc theo thành phần nguồn: all, gateway, agent, tools, cli, hoặc cron
- Số dòng — chọn số dòng hiển thị (50, 100, 200, hoặc 500)
- Tự động làm mới — bật/tắt theo dõi trực tiếp kiểm tra dòng nhật ký mới mỗi 5 giây
- Phân màu — các dòng nhật ký được tô màu theo mức độ nghiêm trọng (đỏ cho lỗi, vàng cho cảnh báo, mờ cho debug)
Phân tích
Phân tích sử dụng và chi phí tính từ lịch sử phiên. Chọn khoảng thời gian (7, 30, hoặc 90 ngày) để xem:
- Thẻ tổng hợp — tổng token (đầu vào/đầu ra), tỷ lệ hit cache, tổng chi phí ước tính hoặc thực tế, và tổng số phiên với trung bình hàng ngày
- Biểu đồ token hàng ngày — biểu đồ cột xếp chồng hiển thị sử dụng token đầu vào và đầu ra theo ngày, với tooltip hover hiển thị chi tiết và chi phí
- Bảng chi tiết hàng ngày — ngày, số phiên, token đầu vào, token đầu ra, tỷ lệ hit cache và chi phí cho mỗi ngày
- Chi tiết theo model — bảng hiển thị mỗi model đã sử dụng, số phiên, sử dụng token và chi phí ước tính
Cron
Tạo và quản lý các cron job lên lịch chạy prompt agent theo lịch trình định kỳ.
- Tạo — điền tên (tùy chọn), prompt, biểu thức cron (ví dụ
0 9 * * *), và đích gửi (local, Telegram, Discord, Slack, hoặc email) - Danh sách job — mỗi job hiển thị tên, bản xem trước prompt, biểu thức lịch, huy hiệu trạng thái (enabled/paused/error), đích gửi, thời gian chạy gần nhất và thời gian chạy tiếp theo
- Tạm dừng / Tiếp tục — chuyển đổi job giữa trạng thái hoạt động và tạm dừng
- Chạy ngay — thực thi job ngay lập tức ngoài lịch trình thông thường
- Xoá — xoá vĩnh viễn cron job
Skills
Duyệt, tìm kiếm và bật/tắt skills và toolsets. Skills được tải từ ~/.hermes/skills/ và nhóm theo danh mục.
- Tìm kiếm — lọc skills và toolsets theo tên, mô tả hoặc danh mục
- Bộ lọc danh mục — nhấn vào nhãn danh mục để thu hẹp danh sách (ví dụ MLOps, MCP, Red Teaming, AI)
- Bật/tắt — bật hoặc tắt từng skill bằng công tắc. Thay đổi có hiệu lực trong phiên tiếp theo.
- Toolsets — phần riêng hiển thị các toolset tích hợp sẵn (thao tác file, duyệt web, v.v.) với trạng thái hoạt động/không hoạt động, yêu cầu thiết lập và danh sách các công cụ bao gồm
Bảng điều khiển web đọc và ghi file .env của bạn, chứa API key và secret. Mặc định nó bind vào 127.0.0.1 — chỉ truy cập được từ máy cục bộ. Nếu bạn bind vào 0.0.0.0, bất kỳ ai trên mạng đều có thể xem và sửa đổi thông tin đăng nhập của bạn. Bảng điều khiển không có cơ chế xác thực riêng.
Lệnh Slash /reload
Bảng điều khiển cũng thêm lệnh slash /reload vào CLI tương tác. Sau khi thay đổi API key qua bảng điều khiển web (hoặc chỉnh sửa .env trực tiếp), sử dụng /reload trong phiên CLI đang hoạt động để áp dụng thay đổi mà không cần khởi động lại:
You → /reload
Reloaded .env (3 var(s) updated)
Lệnh này đọc lại ~/.hermes/.env vào môi trường của tiến trình đang chạy. Hữu ích khi bạn đã thêm key nhà cung cấp mới qua bảng điều khiển và muốn sử dụng ngay.
REST API
Bảng điều khiển web cung cấp REST API mà frontend sử dụng. Bạn cũng có thể gọi trực tiếp các endpoint này cho mục đích tự động hoá:
GET /api/status
Trả về phiên bản agent, trạng thái gateway, trạng thái nền tảng và số phiên đang hoạt động.
GET /api/sessions
Trả về 20 phiên gần nhất với metadata (model, số token, timestamp, bản xem trước).
GET /api/config
Trả về nội dung config.yaml hiện tại dưới dạng JSON.
GET /api/config/defaults
Trả về các giá trị cấu hình mặc định.
GET /api/config/schema
Trả về schema mô tả mọi trường cấu hình — kiểu, mô tả, danh mục và tùy chọn chọn lọc nếu có. Frontend sử dụng schema này để hiển thị widget nhập liệu phù hợp cho mỗi trường.
PUT /api/config
Lưu cấu hình mới. Body: {"config": {...}}.
GET /api/env
Trả về tất cả biến môi trường đã biết với trạng thái đặt/chưa đặt, giá trị đã ẩn, mô tả và danh mục.
PUT /api/env
Đặt biến môi trường. Body: {"key": "VAR_NAME", "value": "secret"}.
DELETE /api/env
Xoá biến môi trường. Body: {"key": "VAR_NAME"}.
GET /api/sessions/{session_id}
Trả về metadata cho một phiên duy nhất.
GET /api/sessions/{session_id}/messages
Trả về toàn bộ lịch sử tin nhắn cho một phiên, bao gồm gọi công cụ và timestamp.
GET /api/sessions/search
Tìm kiếm toàn văn trên nội dung tin nhắn. Tham số query: q. Trả về ID phiên phù hợp với đoạn trích được đánh dấu.
DELETE /api/sessions/{session_id}
Xoá phiên và lịch sử tin nhắn của nó.
GET /api/logs
Trả về các dòng nhật ký. Tham số query: file (agent/errors/gateway), lines (số lượng), level, component.
GET /api/analytics/usage
Trả về phân tích sử dụng token, chi phí và phiên. Tham số query: days (mặc định 30). Phản hồi bao gồm chi tiết hàng ngày và tổng hợp theo model.
GET /api/cron/jobs
Trả về tất cả cron job đã cấu hình với trạng thái, lịch trình và lịch sử chạy.
POST /api/cron/jobs
Tạo cron job mới. Body: {"prompt": "...", "schedule": "0 9 * * *", "name": "...", "deliver": "local"}.
POST /api/cron/jobs/{job_id}/pause
Tạm dừng cron job.
POST /api/cron/jobs/{job_id}/resume
Tiếp tục cron job đã tạm dừng.
POST /api/cron/jobs/{job_id}/trigger
Chạy ngay cron job ngoài lịch trình.
DELETE /api/cron/jobs/{job_id}
Xoá cron job.
GET /api/skills
Trả về tất cả skills với tên, mô tả, danh mục và trạng thái bật/tắt.
PUT /api/skills/toggle
Bật hoặc tắt skill. Body: {"name": "skill-name", "enabled": true}.
GET /api/tools/toolsets
Trả về tất cả toolset với nhãn, mô tả, danh sách công cụ và trạng thái hoạt động/đã cấu hình.
CORS
Máy chủ web giới hạn CORS chỉ cho các origin localhost:
http://localhost:9119/http://127.0.0.1:9119(production)http://localhost:3000/http://127.0.0.1:3000http://localhost:5173/http://127.0.0.1:5173(Vite dev server)
Nếu bạn chạy máy chủ trên cổng tuỳ chỉnh, origin đó sẽ được tự động thêm vào.
Phát triển
Nếu bạn đang đóng góp cho frontend bảng điều khiển web:
# Terminal 1: khởi động API backend
hermes dashboard --no-open
# Terminal 2: khởi động Vite dev server với HMR
cd web/
npm install
npm run dev
Vite dev server tại http://localhost:5173 proxy các request /api đến FastAPI backend tại http://127.0.0.1:9119.
Frontend được xây dựng bằng React 19, TypeScript, Tailwind CSS v4 và các component kiểu shadcn/ui. Bản build production xuất ra hermes_cli/web_dist/ mà FastAPI server phục vụ dưới dạng SPA tĩnh.
Tự động build khi cập nhật
Khi bạn chạy hermes update, frontend web sẽ tự động được rebuild nếu npm khả dụng. Điều này giữ bảng điều khiển đồng bộ với các cập nhật code. Nếu npm chưa được cài đặt, quá trình cập nhật bỏ qua build frontend và hermes dashboard sẽ build nó khi khởi chạy lần đầu.