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 OUTPUTAgent = Orchestrator. Tools = Workers.
🔧 Hermes Tools sebagai Workers
| Tool | Kemampuan | Analogi |
|---|---|---|
| Web Search | Cari info di internet | Research assistant |
| File Read | Baca dokumen lokal | Document clerk |
| File Write | Buat/edit file | Secretary |
| Browser | Buka dan interaksi dengan website | Surfing 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
- Limit tool access — hanya enable yang diperlukan
- Set file path restrictions — jangan biar agent baca/write sembarangan
- Monitor tool usage — log setiap tool call
- Approval gates — untuk action yang berbahosa (delete, send email)
- Rate limiting — prevent infinite tool calls