Anda pernah rasa macam tugasan harian anda terjebak dalam lingkaran yang sama? Bayangkan jika ada pembantu AI yang boleh belajar, ingat, dan lakukan tugasan berulang secara automatik—tanpa perlu anda pantau setiap langkah. Hermes Agent, AI agent open-source dengan lesen MIT, bukan sekadar chatbot biasa. Ia dilengkapi persistent memory, automated skill creation, dan multi-platform execution, menjadikannya alat ideal untuk mengautomasi workflow anda. Dalam artikel ini, kita akan pecahkan tugasan kompleks kepada langkah-langkah praktikal, kemudian bina automasi pertama anda menggunakan Hermes Agent. Tiada teori berlebihan—hanya panduan step-by-step untuk anda praktikkan sekarang. 🚀
1. Kenal Pasti Tugas Berulang yang Boleh Diotomatisasi
Sebelum menulis sebarang kod, audit workflow harian anda. Tugas yang sesuai untuk automasi biasanya:
- Berulang (contoh: backup fail, hantar laporan mingguan)
- Memerlukan input yang sama (contoh: format data CSV sebelum dihantar ke sistem lain)
- Boleh dipecahkan kepada langkah-langkah diskrit (contoh: “buka folder → cari fail .log → kompres → hantar ke Telegram”)
Contoh tugasan: Anda seorang pentadbir sistem yang perlu setiap pagi:
- Semak log server untuk ralat dalam 24 jam terakhir.
- Jika ada ralat, ambil screenshot halaman dashboard.
- Hantar notifikasi ke channel Discord dengan fail log + screenshot.
Tugas ini mengambil masa 15-20 minit setiap hari. Dengan Hermes Agent, ia boleh dijalankan secara automatik pada pukul 8 pagi tanpa campur tangan anda.
2. Sediakan Persekitaran Hermes Agent
Pasang Hermes Agent di mesin lokal anda (Linux/macOS disyorkan). Langkah asas:
# Clone repo dan masuk ke direktori
git clone https://github.com/NousResearch/hermes-agent.git
cd hermes-agent
# Pasang dependencies (Python 3.10+ diperlukan)
pip install -r requirements.txt
# Inisialisasi direktori konfigurasi
./hermes init
Hermes akan cipta folder ~/.hermes/ untuk simpan persistent memory (ingatan merentasi sesi) dan konfigurasi. Pastikan anda:
- Dapatkan API key untuk platform yang digunakan (contoh: Discord Webhook URL, Telegram Bot Token).
- Benarkan akses SSH jika tugasan melibatkan server remote.
Tip: Gunakan ./hermes config untuk tetapkan pembolehubah persekitaran seperti DISCORD_WEBHOOK atau TELEGRAM_TOKEN.
3. Pecahkan Tugas kepada Langkah-Langkah Atomik
Hermes Agent menggunakan konsep skills (kebolehan) yang boleh digabungkan. Untuk tugasan log server tadi, pecahkan kepada:
| Langkah | Skill Hermes Yang Digunakan | Contoh Command |
|---|---|---|
| 1. Cari fail log terbaru | file_search (cari fail dalam direktori) |
file_search /var/log/ --pattern "*.log" --modified "24h" |
| 2. Semak ralat dalam log | grep (cari teks dalam fail) |
grep "ERROR" /var/log/app.log |
| 3. Ambil screenshot dashboard | browser_control (navigasi + screenshot) |
browser_control --url "http://dashboard.internal" --action screenshot --output "dashboard.png" |
| 4. Hantar notifikasi ke Discord | discord_send (hantar mesej + fail) |
discord_send --webhook $DISCORD_WEBHOOK --message "Log ralat dikesan!" --file "app.log" --file "dashboard.png" |
Nota: Hermes boleh cipta skill baru secara automatik jika skill sedia ada tidak mencukupi. Contohnya, jika anda perlu parse log dalam format JSON, Hermes akan generate skill json_parse_log selepas anda berikan contoh output yang diingini.
4. Tulis Automasi Menggunakan YAML Workflow
Hermes menggunakan fail YAML untuk definisi workflow. Buat fail baru di ~/.hermes/workflows/server_log_check.yaml:
name: Server Log Check
description: Semak log server harian dan hantar notifikasi jika ada ralat
schedule: "0 8 * * *" # Setiap hari pukul 8 pagi (cron syntax)
steps:
- name: Cari fail log terbaru
skill: file_search
args:
path: /var/log/
pattern: "*.log"
modified: "24h"
- name: Semak ralat dalam log
skill: grep
args:
pattern: "ERROR"
file: "{{ steps[0].output[0] }}" # Output dari langkah 1
on_success:
- name: Ambil screenshot dashboard
skill: browser_control
args:
url: "http://dashboard.internal"
action: screenshot
output: "dashboard.png"
on_failure: exit # Berhenti jika tiada ralat
- name: Hantar notifikasi ke Discord
skill: discord_send
args:
webhook: "{{ env.DISCORD_WEBHOOK }}"
message: "Log ralat dikesan dalam 24 jam terakhir!"
file:
- "{{ steps[0].output[0] }}" # Fail log
- "dashboard.png" # Screenshot
Penjelasan sintaks:
{{ steps[0].output[0] }}: Guna output dari langkah sebelumnya (fail log yang dijumpai).on_success/on_failure: Kawalan aliran kondisional.schedule: Gunakan cron syntax untuk jadual automasi.
Tip: Uji workflow secara manual dahulu dengan ./hermes run server_log_check sebelum tetapkan jadual.
5. Uji dan Debug Automasi
Sebelum jadualkan, uji workflow dengan:
# Uji langkah demi langkah
./hermes run server_log_check --dry-run
# Jalankan sepenuhnya (tanpa hantar notifikasi sebenar)
./hermes run server_log_check --no-notify
# Debug dengan log terperinci
./hermes run server_log_check --verbose
Masalah biasa dan penyelesaian:
| Masalah | Penyelesaian |
|---|---|
Skill browser_control gagal ambil screenshot |
Pastikan URL boleh diakses dari mesin Hermes. Gunakan curl -I http://dashboard.internal untuk semak. |
| Fail log tidak dijumpai | Semak path dengan ls /var/log/. Kemas kini pattern dalam YAML jika perlu. |
| Notifikasi Discord tidak dihantar | Semak pembolehubah DISCORD_WEBHOOK dengan echo $DISCORD_WEBHOOK. |
Nota: Hermes akan simpan log automasi di ~/.hermes/logs/. Gunakan tail -f ~/.hermes/logs/server_log_check.log untuk pantau secara real-time.
6. Jadualkan dan Pantau Automasi
Setelah uji berjaya, aktifkan jadual automasi:
# Aktifkan workflow
./hermes schedule add server_log_check
# Semak workflow yang dijadualkan
./hermes schedule list
# Pantau log automasi
./hermes monitor server_log_check
Hermes akan jalankan workflow pada masa yang ditetapkan, walaupun anda tidak log masuk. Untuk tugasan kritikal, anda boleh:
- Gunakan
parallel_sub_agentsuntuk jalankan langkah secara selari (contoh: semak log di 3 server berbeza serentak). - Tetapkan
retrydalam YAML untuk langkah yang mungkin gagal (contoh:retry: 3).
Contoh penambahbaikan: Jika anda perlu semak log di 3 server, ubah YAML untuk gunakan parallel:
steps:
- name: Semak log di semua server
parallel:
- name: Server 1
skill: ssh_exec
args:
host: server1.internal
command: "grep 'ERROR' /var/log/app.log"
- name: Server 2
skill: ssh_exec
args:
host: server2.internal
command: "grep 'ERROR' /var/log/app.log"
7. Skala Automasi dengan Skill Baharu
Hermes boleh cipta skill baru secara automatik berdasarkan contoh. Katakan anda perlu:
- Parse log dalam format tersuai (contoh:
[TIMESTAMP] LEVEL: MESSAGE). - Hantar notifikasi ke Telegram jika ralat tertentu dikesan (contoh:
CRITICAL).
Langkah untuk cipta skill baharu:
- Beri contoh input/output kepada Hermes:
# Contoh input (fail log) [2023-10-01 10:00:00] ERROR: Database connection failed [2023-10-01 10:05:00] INFO: User logged in # Contoh output yang diingini { "timestamp": "2023-10-01 10:00:00", "level": "ERROR", "message": "Database connection failed" } - Jalankan arahan untuk cipta skill:
./hermes skill create parse_custom_log --example-input "log_sample.txt" --example-output "parsed_log.json" - Hermes akan generate skill
parse_custom_logdan simpan di~/.hermes/skills/. Anda kini boleh guna skill ini dalam workflow:steps: - name: Parse log tersuai skill: parse_custom_log args: file: "{{ steps[0].output[0] }}" - name: Hantar notifikasi jika CRITICAL skill: telegram_send args: token: "{{ env.TELEGRAM_TOKEN }}" chat_id: "{{ env.TELEGRAM_CHAT_ID }}" message: "⚠️ Ralat kritikal: {{ steps[1].output.message }}" condition: "{{ 'CRITICAL' in steps[1].output.level }}"
Nota: Skill baharu ini akan disimpan secara persistent dan boleh diguna semula dalam workflow lain.
8. Amalan Terbaik untuk Automasi Hermes
Untuk memastikan automasi anda stabil dan selamat, ikuti panduan ini:
- Gunakan pembolehubah persekitaran untuk data sensitif (contoh: API key, kata laluan). Jangan hardcode dalam YAML.
# Baik webhook: "{{ env.DISCORD_WEBHOOK }}" # Buruk webhook: "https://discord.com/api/webhooks/123456/abcdef" - Uji fail YAML dengan validator sebelum jalankan:
./hermes validate server_log_check.yaml - Gunakan
timeoutuntuk langkah yang mungkin tergantung:steps: - name: Ambil screenshot skill: browser_control args: url: "http://dashboard.internal" action: screenshot timeout: 30 # Gagal jika melebihi 30 saat - Simpan log automasi untuk audit. Hermes secara automatik simpan log di
~/.hermes/logs/, tetapi anda boleh arkibkan secara berkala:# Arkib log lebih 7 hari find ~/.hermes/logs/ -name "*.log" -mtime +7 -exec gzip {} \; - Gunakan
docker_execuntuk tugasan yang memerlukan persekitaran terpencil. Contoh:steps: - name: Jalankan script dalam kontena skill: docker_exec args: image: "python:3.10" command: "python /app/script.py" volumes: - "/host/path:/container/path"
Penutup: Dari Automasi Sederhana ke Sistem Kompleks
Dengan Hermes Agent, anda bukan sekadar mengautomasi tugasan—anda membina sistem yang belajar dan berkembang. Workflow yang kita bina hari ini (semak log → notifikasi) hanyalah permulaan. Bayangkan potensi jika anda:
- Gabungkan parallel sub-agents untuk jalankan tugasan serentak di pelbagai platform.
- Gunakan persistent memory untuk buat keputusan berdasarkan sejarah (contoh: “Jika ralat sama berlaku 3 kali dalam seminggu, buka tiket Jira secara automatik”).
- Integrasikan dengan alat lain seperti Modal untuk jalankan tugasan berat di cloud.
Langkah seterusnya? Pilih satu tugasan berulang dalam workflow anda dan automatikannya minggu ini. Mulakan dengan sesuatu yang mudah, kemudian skala secara beransur-ansur. Hermes Agent direka untuk berkembang bersama keperluan anda—tanpa vendor lock-in, tanpa telemetri, dan dengan privasi penuh.
Cuba Hermes Agent hari ini dan mulakan perjalanan automasi anda: https://hermes-agent.org
Hermes Agent — open-source, MIT license, percuma untuk kegunaan peribadi dan komersial.