Skip to content

Durasi: 10 menit | Block: 2


🧠 Pattern Overview

USER: "Research competitor X"


   ORCHESTRATOR (Hermes)
   "Saya perlu info tentang X.
    Saya akan: 
    1. Cari info di web
    2. Baca website mereka
    3. Analisis data"

   ┌────┼────┐
   ▼    ▼    ▼
  Tool  Tool  Tool
  (web) (file) (reasoning)
   │    │    │
   └────┼────┘

   ORCHESTRATOR
   "Berdasarkan info dari tools,
    ini hasil analisis saya..."


   FINAL OUTPUT

Agent = Orchestrator. Tools = Workers.


🔧 Hermes Tools sebagai Workers

ToolKemampuanAnalogi
Web SearchCari info di internetResearch assistant
File ReadBaca dokumen lokalDocument clerk
File WriteBuat/edit fileSecretary
BrowserBuka dan interaksi dengan websiteSurfing assistant

💬 Contoh: Competitor Research

Tanpa Tools

User: "Research competitor X"
Hermes: "Saya tidak bisa akses internet. 
Berikan saya info tentang competitor X, 
nanti saya analisis."
→ Limited. Ga bisa research mandiri.

Dengan Tools (Orchestrator-Worker)

User: "Research competitor X"
Hermes: "Saya akan research competitor X. 
Saya mulai dengan web search."

[Tool: web_search("competitor X kopi Indonesia")]
→ Results: 5 articles

Hermes: "Saya temukan beberapa info. 
Mari saya baca lebih detail..."

[Tool: browser("https://competitorX.com")]
→ Scraped: pricing, products, about page

Hermes: "Berdasarkan research saya:
1. Competitor X punya 5 produk, harga Rp 80-180K
2. Positioning mereka: 'Premium local coffee'
3. Keunggulan mereka: packaging dan branding
4. Gap opportunity: mereka belum punha subscription model

Rekomendasi untuk kamu: [detail rekomendasi]"

🏗️ Multi-Step Tool Usage

Orchestrator receives task

    ├─ Step 1: web_search → gather initial data

    ├─ Step 2: browser → deep-dive specific URLs

    ├─ Step 3: file_read → check internal data

    ├─ Step 4: reasoning → analyze + synthesize

    └─ Step 5: file_write → save report

⚡ Configuration

yaml
# hermes.config.yaml
tools:
  web_search:
    enabled: true
    max_results: 10
  file_read:
    enabled: true
    allowed_paths: ["./context/*", "./data/*"]
  file_write:
    enabled: true
    allowed_paths: ["./output/*"]
    require_approval: false  # Set true untuk safety
  browser:
    enabled: false  # Enable kalau perlu, lebih berat

⚠️ Safety Considerations

  1. Limit tool access — hanya enable yang diperlukan
  2. Set file path restrictions — jangan biar agent baca/write sembarangan
  3. Monitor tool usage — log setiap tool call
  4. Approval gates — untuk action yang berbahosa (delete, send email)
  5. Rate limiting — prevent infinite tool calls

Bootcamp AI Automation — akala.id