ai-tools hermes-agent

AI Agent Skills vs Tools dalam Hermes

Anda dah tahu asas Hermes Agent—boleh spawn agent, automasi tugas, dan ingat konteks merentasi sesi. Tapi bila sampai ke bahagian skills dan tools, kadang-kadang rasa macam terperangkap dalam jargon. Apa bezanya? Bila guna yang mana? Dan kenapa kadang-kadang agent anda gagal walaupun dah configure dengan betul? Artikel ini akan pecahkan konsep skills vs tools dalam Hermes Agent dengan contoh praktikal, konfigurasi asas, dan kesilapan biasa yang perlu dielakkan. Tiada teori berlebihan—hanya how-to yang boleh terus anda apply.

1. Definisi Ringkas: Skills vs Tools

Sebelum terjun dalam konfigurasi, mari kita sepakati definisi asas supaya tiada kekeliruan:

Ringkasnya: Tools = blok binaan asas. Skills = resipi yang guna blok tersebut untuk selesaikan tugas.

2. Bila Guna Tools, Bila Guna Skills?

Kunci untuk guna Hermes Agent dengan berkesan ialah tahu bila untuk guna tools secara terus, dan bila untuk cipta atau panggil skills. Berikut panduan praktikal:

Guna Tools Jika:

Guna Skills Jika:

3. Cara Daftar Tools dalam Hermes Agent

Tools perlu didaftarkan dalam fail config Hermes Agent (biasanya di ~/.hermes/config.yaml). Berikut contoh konfigurasi asas untuk beberapa tools popular:

tools:
  - name: bash
    description: "Run shell commands on the local machine."
    parameters:
      type: object
      properties:
        command:
          type: string
          description: "The shell command to execute."
      required: ["command"]

  - name: browser
    description: "Control a headless browser for web automation."
    parameters:
      type: object
      properties:
        url:
          type: string
          description: "The URL to navigate to."
        action:
          type: string
          enum: ["navigate", "click", "screenshot", "extract_text"]
          description: "The action to perform."
        selector:
          type: string
          description: "CSS selector for the element to interact with."
      required: ["url", "action"]

Untuk daftar tool baru, tambah entri dalam tools array seperti di atas. Pastikan parameters dan required fields diisi dengan betul—ini penting untuk agent faham cara guna tool tersebut.

Contoh command untuk guna tool bash:

/tool bash command="df -h"

Contoh command untuk guna tool browser:

/tool browser url="https://example.com" action="screenshot" selector="body"

4. Cara Cipta dan Guna Skills

Skills boleh dicipta secara manual atau dijana secara automatik oleh Hermes Agent. Mari kita lihat kedua-duanya.

Cipta Skill Secara Manual

Untuk cipta skill secara manual, anda perlu define logik dalam format YAML atau JSON. Berikut contoh skill “check_disk_usage” yang guna tool bash untuk check penggunaan disk dan hantar notifikasi jika melebihi threshold:

skills:
  - name: check_disk_usage
    description: "Check disk usage and notify if it exceeds 90%."
    steps:
      - tool: bash
        parameters:
          command: "df -h"
        save_to: disk_usage_output
      - tool: bash
        parameters:
          command: "echo '{{ disk_usage_output }}' | grep -E '(/dev/sda1|9[0-9]%|100%)'"
        condition: "{{ disk_usage_output.stdout }}"
        on_success:
          - tool: bash
            parameters:
              command: "echo '⚠️ Warning: Disk usage is above 90%!' | tee /dev/tty""
        on_failure:
          - tool: bash
            parameters:
              command: "echo '✅ Disk usage is normal.' | tee /dev/tty"

Untuk simpan skill ini, tambah dalam skills array dalam fail config atau simpan dalam fail berasingan (contoh: ~/.hermes/skills/check_disk_usage.yaml) dan daftarkan dalam config:

skills:
  - name: check_disk_usage
    path: "~/.hermes/skills/check_disk_usage.yaml"

Contoh command untuk panggil skill:

/skill check_disk_usage

Guna Automated Skill Creation

Hermes Agent boleh cipta skills secara automatik berdasarkan arahan anda. Contoh, jika anda mahu agent cipta skill untuk “book_flight”, berikan arahan seperti ini:

Cipta skill bernama "book_flight" yang boleh:
1. Cari penerbangan dari Kuala Lumpur ke Tokyo menggunakan API Skyscanner.
2. Pilih penerbangan paling murah.
3. Simpan butiran penerbangan dalam fail JSON.
4. Hantar notifikasi melalui Telegram.

Hermes Agent akan generate skill YAML secara automatik dan simpan dalam persistent memory. Anda boleh lihat skill yang dijana dengan command:

/list skills

Untuk panggil skill yang dijana:

/skill book_flight from="Kuala Lumpur" to="Tokyo" date="2024-12-25"

5. Kesilapan Biasa dan Cara Elakkannya

Walaupun Hermes Agent powerful, ada beberapa kesilapan biasa yang boleh menyebabkan agent gagal atau berjalan tidak seperti yang dijangka. Berikut adalah yang paling kerap berlaku dan cara elakkannya:

Kesilapan 1: Tools Tidak Didaftar dengan Betul

Gejala: Agent return error Tool not found atau Invalid parameters.

Punca: Anda lupa daftar tool dalam config, atau parameter yang didefine tidak match dengan apa yang dipanggil.

Penyelesaian:

Kesilapan 2: Skills Tidak Disimpan dalam Persistent Memory

Gejala: Skill yang dicipta secara automatik tidak boleh dipanggil semula dalam sesi lain.

Punca: Automated Skill Creation memerlukan persistent memory diaktifkan, dan kadang-kadang skill tidak disimpan dengan betul.

Penyelesaian:

Kesilapan 3: Overcomplicating dengan Skills untuk Tugas Sederhana

Gejala: Agent mengambil masa lama untuk selesaikan tugas mudah, atau gagal dengan error Skill execution timeout.

Punca: Anda cipta skill untuk tugas yang sepatutnya boleh selesai dengan tools sahaja.

Penyelesaian:

Kesilapan 4: Tidak Menggunakan Conditionals dalam Skills

Gejala: Skill berjalan sehingga habis walaupun ada step yang gagal, menyebabkan output tidak dijangka.

Punca: Anda tidak define condition atau on_success/on_failure dalam skill YAML.

Penyelesaian:

steps:
  - tool: bash
    parameters:
      command: "curl -s https://api.example.com/status"
    save_to: api_status
  - tool: bash
    parameters:
      command: "echo 'API is down!'"
    condition: "{{ api_status.stdout == 'down' }}"
steps:
  - tool: bash
    parameters:
      command: "docker build -t myapp ."
    on_success:
      - tool: bash
        parameters:
          command: "docker push myapp"
    on_failure:
      - tool: bash
        parameters:
          command: "echo '❌ Build failed!' | tee /dev/tty"

6. Contoh Praktikal: Deploy App dengan Skills dan Tools

Mari kita lihat contoh lengkap bagaimana guna skills dan tools untuk deploy aplikasi web ke server menggunakan Hermes Agent. Kita akan guna:

Langkah 1: Daftar Tools

Pastikan tools berikut didaftarkan dalam config.yaml:

tools:
  - name: bash
    description: "Run shell commands."
    parameters:
      type: object
      properties:
        command:
          type: string
      required: ["command"]

  - name: ssh
    description: "Execute commands on a remote server via SSH."
    parameters:
      type: object
      properties:
        host:
          type: string
        command:
          type: string
        username:
          type: string
        password:
          type: string
      required: ["host", "command", "username"]

  - name: http
    description: "Make HTTP requests."
    parameters:
      type: object
      properties:
        url:
          type: string
        method:
          type: string
          enum: ["GET", "POST", "PUT", "DELETE"]
        headers:
          type: object
        body:
          type: object
      required: ["url", "method"]

Langkah 2: Cipta Skill “deploy_app_to_server”

Simpan skill berikut dalam ~/.hermes/skills/deploy_app.yaml:

name: deploy_app_to_server
description: "Deploy a Dockerized app to a remote server and verify deployment."
parameters:
  type: object
  properties:
    app_name:
      type: string
      description: "Name of the Docker image."
    server_host:
      type: string
      description: "Remote server IP or hostname."
    server_username:
      type: string
      description: "SSH username for the remote server."
    health_check_url:
      type: string
      description: "URL to check if the app is running."
  required: ["app_name", "server_host", "server_username", "health_check_url"]

steps:
  - tool: bash
    description: "Build Docker image locally."
    parameters:
      command: "docker build -t {{ app_name }} ."
    on_failure:
      - tool: bash
        parameters:
          command: "echo '❌ Docker build failed!' | tee /dev/tty"
        exit: true

  - tool: bash
    description: "Tag and push Docker image to registry."
    parameters:
      command: "docker tag {{ app_name }} myregistry.com/{{ app_name }}:latest && docker push myregistry.com/{{ app_name }}:latest"
    on_failure:
      - tool: bash
        parameters:
          command: "echo '❌ Docker push failed!' | tee /dev/tty"
        exit: true

  - tool: ssh
    description: "Pull and run Docker image on remote server."
    parameters:
      host: "{{ server_host }}"
      username: "{{ server_username }}"
      command: "docker pull myregistry.com/{{ app_name }}:latest && docker run -d -p 80:80 myregistry.com/{{ app_name }}:latest"
    on_failure:
      - tool: bash
        parameters:
          command: "echo '❌ Remote deployment failed!' | tee /dev/tty"
        exit: true

  - tool: http
    description: "Verify deployment by checking health endpoint."
    parameters:
      url: "{{ health_check_url }}"
      method: "GET"
    condition: "{{ http_response.status_code == 200 }}"
    on_success:
      - tool: bash
        parameters:
          command: "echo '✅ Deployment successful! App is running at {{ health_check_url }}' | tee /dev/tty"
    on_failure:
      - tool: bash
        parameters:
          command: "echo '❌ Health check failed! App may not be running.' | tee /dev/tty"
        exit: true

Daftarkan skill dalam config.yaml:

skills:
  - name: deploy_app_to_server
    path: "~/.hermes/skills/deploy_app.yaml"

Langkah 3: Panggil Skill untuk Deploy

Guna command berikut untuk deploy app:

/skill deploy_app_to_server app_name="my_web_app" server_host="123.45.67.89" server_username="ubuntu" health_check_url="http://123.45.67.89/health"

Hermes Agent akan execute setiap step dalam skill, dan hantar notifikasi jika ada step yang gagal.

7. Tips untuk Optimize Penggunaan Skills dan Tools

Berikut beberapa tips untuk guna skills dan tools dengan lebih berkesan:

1. Gunakan Parallel Sub-Agents untuk Tugas yang Boleh Dijalankan Secara Selari

Jika skill anda mempunyai steps yang tidak bergantung antara satu sama lain, gunakan Parallel Sub-Agents untuk speed up execution. Contoh:

steps:
  - parallel:
      - tool: bash
        parameters:
          command: "task1.sh"
      - tool: bash
        parameters:
          command: "task2.sh"
  - tool: bash
    parameters:
      command: "merge_results.sh"

2. Simpan Output Tools dalam Variables untuk Diguna dalam Steps Berikutnya

Guna save_to untuk simpan output tool dan rujuk semula dalam steps berikutnya. Contoh:

steps:
  - tool: bash
    parameters:
      command: "curl -s https://api.example.com/data"
    save_to: api_data
  - tool: bash
    parameters:
      command: "echo '{{ api_data.stdout }}' | jq '.id'""
    save_to: extracted_id

3. Gunakan Scheduled Automations untuk Skills Berulang

Jika anda ada skill yang perlu dijalankan secara berjadual (contoh: backup database setiap malam), gunakan Scheduled Automations. Tambah dalam config.yaml:

automations:
  - name: nightly_backup
    skill: backup_database
    schedule: "0 3 * * *"  # Run at 3 AM every day
    parameters:
      db_name: "production_db"

4. Debug Skills dengan Command /trace

Jika skill tidak berjalan seperti yang dijangka, guna command /trace untuk lihat execution log:

/trace skill deploy_app_to_server

Ini akan tunjukkan setiap step yang dijalankan, output, dan error jika ada.

Penutup: Skills dan Tools Adalah Pasangan Sempurna

Skills dan tools dalam Hermes Agent bukanlah dua konsep yang bersaing—mereka adalah pasangan yang saling melengkapi. Tools memberikan anda akses langsung kepada fungsi sistem, manakala skills membolehkan anda bina logik kompleks di atasnya untuk tugas yang berulang dan kompleks. Kunci untuk guna kedua-duanya dengan berkesan ialah:

  1. Guna tools untuk tugas sederhana dan sekali guna.
  2. Cipta skills untuk tugas kompleks yang melibatkan beberapa tools atau perlu diulang.
  3. Manfaatkan Automated Skill Creation untuk jana skills dengan cepat tanpa perlu tulis YAML secara manual.
  4. Elakkan kesilapan biasa seperti overcomplicating tugas atau tidak guna conditionals dalam skills.

Dengan memahami perbezaan dan kegunaan masing-masing, anda boleh unlock potensi penuh Hermes Agent untuk automasi tugas harian, deployment, monitoring, dan banyak lagi. Jangan takut untuk bereksperimen—cipta skills, uji tools, dan lihat bagaimana agent anda boleh bekerja untuk anda.

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.

#ai-agent #automasi #hermes #intermediate #open-source
Dasar Privasi  ·  Terma Perkhidmatan  ·  Pendedahan Affiliate  ·  Tentang Kami  ·  Hubungi Kami