Hermes AI Agent oleh Nous Research: Arsitektur, Loop Belajar Mandiri, dan Cara Memulai

Foto oleh Unsplash

Foto oleh Unsplash
Sebagian besar framework AI agent open-source memberi Anda sebuah loop: panggilan LLM, panggilan tool, ulangi. Hermes Agent oleh Nous Research jauh melampaui itu. Ia memiliki loop belajar mandiri tertutup di mana agent menyimpan pendekatan tugas yang berhasil sebagai skill dalam database vektor, mengambil skill serupa pada tugas mendatang, menyempurnakannya berdasarkan hasil, dan secara bertahap meningkat tanpa intervensi manusia.
Konsep yang membedakan Hermes dari framework seperti AutoGPT, LangChain agents, atau CrewAI adalah loop belajar mandiri tertutup. Dalam framework agent standar, agent menangani setiap tugas dari awal. Hermes menambahkan lapisan persisten: setelah menyelesaikan tugas, ia menyimpan pendekatan sebagai embedding dalam database vektor.
Skill store diimplementasikan sebagai database vektor (default adalah Chroma, dengan dukungan untuk Pinecone dan Weaviate). Setiap entri skill berisi: deskripsi bahasa alami dari jenis tugas, vektor embedding, jejak eksekusi yang berhasil, tingkat keberhasilan yang diperbarui setelah setiap eksekusi, dan riwayat versi.
Hermes mengekspos antarmuka agent tunggal ke beberapa konektor platform. Konektor Telegram, Discord, Slack, dan CLI semuanya berbicara ke loop agent yang mendasarinya yang sama — platform hanyalah lapisan transport. Anda mengonfigurasi agent sekali dan men-deploy-nya di semua saluran.
HERMES CLOSED SELF-LEARNING LOOP
══════════════════════════════════
┌─────────────┐
│ Task Input │ ◄── Telegram / Discord / Slack / CLI
└──────┬──────┘
│
▼
┌─────────────────────────────────────────────┐
│ Planning & Decomposition │
│ (200+ models: GPT-4o / Claude / Gemini) │
└──────────────────┬──────────────────────────┘
│
┌───────────┴───────────┐
▼ ▼
┌─────────────┐ ┌──────────────────┐
│ Skill Store │ │ Tool Execution │
│ (vector DB) │◄──────►│ 40+ built-ins │
│ │ lookup │ + MCP tools │
└──────┬──────┘ └────────┬─────────┘
│ │
│ ┌────────────────────┘
│ │ execution result
▼ ▼
┌─────────────────────────────┐
│ Skill Refinement │
│ new approach stored back │
│ into vector DB as skill │
└──────────────┬──────────────┘
│
▼
Next Task Input
(better than before)
Subagent execution: Docker │ SSH │ Modal │ DaytonaMulailah dengan konektor CLI saat mengembangkan tool kustom dan alur kerja. Ini memberi Anda umpan balik langsung tanpa perlu mengonfigurasi token bot. Setelah tool Anda berfungsi dengan benar di CLI, beralih ke Telegram atau Slack adalah perubahan konfigurasi, bukan perubahan kode.
Hermes memerlukan Python 3.11+ dan kunci API penyedia model. Instalasi adalah pip install standar dari repositori yang di-clone. Konfigurasi berbasis file — .env untuk rahasia dan config.yaml untuk perilaku agent. Keputusan konfigurasi terpenting adalah penyedia model.
MCP (Model Context Protocol) adalah mekanisme ekstensi Hermes untuk menambahkan kemampuan baru. Tool MCP kustom adalah kelas Python yang mewarisi dari MCPTool dan mengimplementasikan metode execute. Hermes menghasilkan skema JSON untuk panggilan tool LLM secara otomatis dari petunjuk tipe Python.
# 1. Clone and install
git clone https://github.com/nousresearch/hermes-agent
cd hermes-agent
pip install -e ".[all]"
# 2. Configure .env
cat > .env << 'EOF'
# Choose your model provider (no code changes needed to switch)
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
OPENROUTER_API_KEY=sk-or-...
# Platform connectors — enable only what you need
TELEGRAM_BOT_TOKEN=...
DISCORD_BOT_TOKEN=...
SLACK_BOT_TOKEN=...
EOF
# 3. Start the agent
python -m hermes.main --platform telegram
# 4. Add a custom MCP tool (Python example)
# tools/my_tool.py
from hermes.mcp import MCPTool
class DeployStatusTool(MCPTool):
name = "get_deploy_status"
description = "Check the latest deployment status on our VPS"
async def execute(self, service: str) -> dict:
# Call your internal API
result = await fetch_deploy_api(service)
return {"service": service, "status": result["status"]}
# Register in hermes config:
# mcp_tools:
# - tools.my_tool.DeployStatusTool
# 5. Skill store — Hermes stores this execution as a skill:
# {
# "skill_id": "deploy-status-check-v2",
# "embedding": [...], # vector for similarity search
# "approach": "Call get_deploy_status, then parse status field",
# "success_rate": 0.94
# }Lapisan subagent Hermes memungkinkan agent utama mendelegasikan tugas komputasi intensif ke subagent khusus. Subagent Docker berjalan dalam container terisolasi. Subagent SSH berjalan di mesin jarak jauh. Modal dan Daytona memungkinkan eksekusi serverless untuk beban kerja yang bervariasi.
Loop belajar mandiri memiliki mode kegagalan: jika agent menyimpan pendekatan yang cacat sebagai skill yang berhasil, tugas serupa di masa depan akan mewarisi kecacatan. Pantau entri skill store selama beberapa minggu pertama deployment dan terapkan quality gate pada penyimpanan skill.
Kasus penggunaan yang paling diuntungkan dari arsitektur Hermes adalah yang melibatkan tugas penelitian dan sintesis berulang. Agent digest harian yang mengagregasi berita dan peringatan monitoring belajar sumber mana yang paling relevan dari waktu ke waktu. Agent tinjauan kode mengumpulkan pengetahuan khusus proyek dalam skill store.
Gunakan Hermes ketika Anda menginginkan loop belajar mandiri dan deployment multi-platform tanpa membangun infrastruktur sendiri. Hermes bersinar ketika: ruang tugas luas dan tidak dapat diprediksi, Anda ingin agent meningkat dari waktu ke waktu tanpa re-prompting, dan Anda memerlukan satu agent yang dapat diakses dari beberapa platform.