← Blog'a Dön
Hermes Agent Kurulumu: Kendi Kendini Geliştiren AI Ajanı İçin Eksiksiz Rehber (2026)
Yapay Zeka 34 dk okuma Yayın:

Hermes Agent Kurulumu: Kendi Kendini Geliştiren AI Ajanı İçin Eksiksiz Rehber (2026)

Hermes Agent kurulumu baştan sona: tek satırlık kurulum, hermes doctor ile doğrulama, config.yaml ve .env yapılandırması, terminal backend seçimi, kalıcı hafıza ve skills, Telegram gateway kurulumu, 8 katmanlı güvenlik modeli ve üretim kontrol listesi.

Yapay zeka ajanı araçlarının çoğu ya bir editöre gömülüdür ya da bir tarayıcı sekmesinde yaşar. Hermes Agent, Nous Research tarafından geliştirilen açık kaynaklı bir ajan ve iki noktada bunlardan ayrışıyor: kendi makinenizde ya da sunucunuzda çalışıyor, ve yaptığı işlerden ders çıkarıp bunu kalıcı hafızasına ve becerilerine yazıyor.

Bu rehber, Hermes Agent kurulumunu aşırı detaylı biçimde ele alıyor: kurulum komutlarından dizin yapısına, yapılandırma önceliklerinden terminal backend seçimine, hafıza sisteminden Telegram entegrasyonuna ve sekiz katmanlı güvenlik modeline kadar.

Sürüm notu: Hermes Agent hızla geliştirilen bir proje. Bu yazıdaki komutlar ve yapılandırma anahtarları resmî dokümantasyondan doğrulandı, ancak sürümler arasında değişiklik olabilir. Kurulum sonrası hermes doctor çıktısını ve güncel dokümantasyonu kontrol edin.


Hermes Agent Nedir?

Hermes Agent, Nous Research’ün MIT lisanslı açık kaynak ajanı. Tanıtımındaki iddiası şu: yerleşik öğrenme döngüsüne sahip tek ajan. Yani her oturumda sıfırdan başlamak yerine, tekrar eden düzeltmeleri ve iş akışı derslerini kalıcı hafızaya veya yeniden kullanılabilir becerilere (skills) dönüştürüyor.

Öne çıkan özellikleri:

  • Kalıcı hafıza: İki katmanlı hafıza dosyası (MEMORY.md, USER.md) ve geçmiş oturumlarda tam metin arama
  • Beceri sistemi: 26+ kategoride 160’ın üzerinde izlenen beceri; agentskills.io standardıyla uyumlu
  • 16+ mesajlaşma platformu: Telegram, Discord, Slack, WhatsApp, Signal, Matrix, e-posta, webhook ve daha fazlası
  • Altı terminal backend: Local, Docker, SSH, Daytona, Singularity, Modal
  • MCP desteği: Model Context Protocol sunucularını araç olarak bağlayabilme
  • Model bağımsızlığı: Farklı sağlayıcı ve modellerle çalışabilme

Hermes’i ne zaman seçmeli?

Ajan araçları arasındaki konumunu netleştirelim:

Hermes Agentn8n AI AgentIDE tabanlı ajanlar
Çalışma yeriTerminal, sunucu, mesajlaşma uygulamalarıTarayıcı, görsel akışKod editörü
KurulumTek satır komutDocker + sunucuEklenti
Kalıcı hafızaYerleşik, öğrenme döngülüManuel kurulurSınırlı
TetiklemeCLI, mesaj, cron, webhookGörsel tetikleyicilerManuel
Kimin içinTerminal rahatlığı olan kullanıcıGörsel akış kuranlarGeliştiriciler

Hermes’i seçin, eğer: Ajanın uzun süre çalışıp zamanla iyileşmesini istiyorsanız, Telegram/Slack üzerinden erişilebilir bir asistan kurmak istiyorsanız, ya da her şeyin kendi sunucunuzda kalmasını istiyorsanız.

Başka bir araç seçin, eğer: Görsel akış kurmayı tercih ediyorsanız (n8n daha uygun), ya da terminal kullanmaktan hiç hoşlanmıyorsanız.

Ajan kavramlarına yeniyseniz, önce yeni başlayanlar için AI ajanı oluşturma rehberini okumanız bu yazıyı çok daha anlaşılır kılar.


Sistem Gereksinimleri ve Platform Desteği

Desteklenen platformlar

PlatformDurum
LinuxTam destek
macOSTam destek
WSL2 (Windows)Tam destek — Windows için önerilen yol
Native WindowsErken beta (PowerShell installer)
Android (Termux)Destekleniyor

Windows kullanıyorsanız WSL2 üzerinden kurmanız öneriliyor. Native Windows desteği mevcut ama henüz beta aşamasında.

Donanım

Hermes’in kendisi ağır bir yazılım değil. Modeller uzak API’ler üzerinden çalıştığı için asıl yük ağ tarafındadır. Küçük bir VPS (1 CPU / 1 GB RAM) veya 4 GB üzeri RAM’e sahip bir Raspberry Pi 4/5 rahatça yeterlidir.

Ancak şu iki durumda daha fazla kaynağa ihtiyaç duyarsınız:

  • Docker backend kullanacaksanız — konteyner katmanı ek RAM ister
  • Yerel model çalıştıracaksanız — bu tamamen ayrı bir donanım hesabıdır

Ön gereksinimler

İyi haber: bağımlılıkların çoğunu kurucu script kendisi hallediyor. Sizin sağlamanız gerekenler:

  • Git — tek zorunlu ön gereksinim
  • Linux’ta: curl ve xz-utils
  • Masaüstü uygulaması için: g++ veya build-essential

Python, Node.js, ripgrep ve ffmpeg’i elle kurmanıza gerek yok — kurucu eksik olanları tespit edip kendisi kuruyor.


Kurulum

Yöntem 1: Tek satırlık kurulum (CLI)

Linux, macOS, WSL2 ve Android (Termux) için:

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Native Windows için (PowerShell):

iex (irm https://hermes-agent.nousresearch.com/install.ps1)

Güvenlik notu: İnternetten indirilen bir scripti doğrudan shell’e boru ile vermek (curl | bash) yaygın bir pratik ama körlemesine yapılmamalı. Kurmadan önce scripti indirip okumak iyi bir alışkanlıktır: curl -fsSL https://hermes-agent.nousresearch.com/install.sh -o install.sh, dosyayı inceleyin, sonra bash install.sh ile çalıştırın. Bu, Hermes’e özel bir uyarı değil — her tek satırlık kurucu için geçerli.

Yöntem 2: Masaüstü kurulumu

Hem komut satırı hem masaüstü uygulamasını birlikte isteyenler için, resmî siteden Hermes Desktop yükleyicisini indirip çalıştırabilirsiniz (Windows ve macOS).

Kurucu ne yapıyor?

Kurulum sırasında arka planda şunlar gerçekleşir:

  1. Eksik bağımlılıklar tespit edilip kurulur (Python, Node.js, ripgrep, ffmpeg)
  2. Depo klonlanır
  3. Sanal ortam (virtualenv) oluşturulur
  4. Global hermes komutu PATH’e eklenir
  5. LLM sağlayıcı yapılandırması başlatılır

Kurulum sudo gerektirmez — kullanıcı dizinine kurar.

Kurulum konumları

Neyin nereye kurulduğunu bilmek, sonradan yedekleme ve sorun giderme için önemli:

Kurulum tipiKod konumuKomut konumuVeri dizini
Kullanıcı bazlı~/.hermes/hermes-agent/~/.local/bin/hermes~/.hermes/
Root modu/usr/local/lib/hermes-agent//usr/local/bin/hermes/root/.hermes/

Kurulumu doğrulayın

Kurulum bitince shell’i yeniden yükleyin ve tanılama çalıştırın:

source ~/.bashrc     # zsh kullanıyorsanız: source ~/.zshrc
hermes doctor

hermes doctor, kurulumun sağlığını kontrol eder: bağımlılıklar, yapılandırma, sağlayıcı bağlantısı ve bilinen güvenlik uyarıları. Bir sorun varsa neredeyse her zaman burada görünür.

Ardından ajanı başlatın:

hermes

İlk Yapılandırma

Hızlı yol: Portal kurulumu

En pratik başlangıç tek komut:

hermes setup --portal

Bu OAuth akışı, tek seferde bir model sağlayıcısı ve dört Tool Gateway aracını (web arama, görsel üretimi, metin okuma, tarayıcı) birden yapılandırır. YAML dosyası düzenlemenize gerek kalmaz.

Manuel yol

Kendi sağlayıcınızı ve modelinizi kullanmak isterseniz:

hermes model     # Sağlayıcı ve model seçimi (etkileşimli)
hermes tools     # Araçları aç/kapat

hermes model komutu size mevcut sağlayıcıları ve model listesini gösterir. Model kimliklerini elle yazmak yerine bu listeden seçmek en güvenlisidir — model isimleri sağlayıcıya göre değişir ve zamanla güncellenir.

API anahtarını komutla da verebilirsiniz:

hermes config set OPENROUTER_API_KEY sk-or-...

hermes config set akıllı davranır: API anahtarlarını .env dosyasına, diğer ayarları config.yaml dosyasına yazar.


Dizin Yapısı: Ne Nerede Duruyor?

Hermes’in tüm durumu ~/.hermes/ altında yaşar. Bu yapıyı bilmek yedekleme, taşıma ve sorun giderme için kritik:

~/.hermes/
├── config.yaml       # Ana ayarlar (model, terminal, sıkıştırma vb.)
├── .env              # API anahtarları ve gizli bilgiler
├── auth.json         # OAuth kimlik bilgileri
├── SOUL.md           # Ajanın kimliği / karakteri
├── memories/         # Kalıcı hafıza dosyaları
├── skills/           # Ajanın oluşturduğu beceriler
├── cron/             # Zamanlanmış görevler
├── sessions/         # Gateway oturumları
└── logs/             # Hata ve etkinlik kayıtları

Yedeklemeniz gereken şey bu klasörün tamamı. Özellikle .env ve auth.json gizli bilgi içerir; bunları asla bir git deposuna veya paylaşılan bir dizine koymayın.

SOUL.md dosyası ilginç bir ayrıntı: ajanın kimliğini ve davranış tarzını tanımlar. Ajanınızın nasıl konuşacağını, hangi tonu kullanacağını buradan şekillendirirsiniz.


Yapılandırma: config.yaml ve .env

Temel kural

Gizli olan her şey .env dosyasına, geri kalan her şey config.yaml dosyasına.

API anahtarları, tokenlar, parolalar .env’e gider. Model tercihi, backend seçimi, davranış ayarları config.yaml’a.

Öncelik sırası

Bir ayar birden fazla yerde tanımlıysa, şu sırayla çözümlenir (en yüksek öncelik üstte):

SıraKaynakKullanım
1CLI argümanlarıTek seferlik geçersiz kılma (--model ...)
2~/.hermes/config.yamlAna, gizli olmayan ayarlar
3~/.hermes/.envOrtam değişkeni yedeği; gizli bilgiler için zorunlu
4Yerleşik varsayılanlarGüvenli sabit değerler

Bu sıralamayı bilmek, “ayarı değiştirdim ama uygulanmıyor” sorununun büyük kısmını çözer — genellikle daha yüksek öncelikli bir yerde aynı ayar tanımlıdır.

Yapılandırma komutları

hermes config              # Mevcut yapılandırmayı görüntüle
hermes config edit         # config.yaml'ı editörde aç
hermes config get KEY      # Çözümlenmiş bir değeri yazdır
hermes config set KEY VAL  # Bir ayarı belirle
hermes config unset KEY    # Kullanıcı tanımlı bir ayarı kaldır
hermes config check        # Eksik seçenekleri kontrol et
hermes config migrate      # Eksik seçenekleri etkileşimli ekle

hermes config check ve hermes config migrate özellikle güncelleme sonrasında işinize yarar: yeni sürümle gelen ayarları mevcut yapılandırmanıza ekler.

Ortam değişkeni referansları

config.yaml içinde ${DEGISKEN_ADI} sözdizimiyle ortam değişkenlerine referans verebilirsiniz:

auxiliary:
  vision:
    api_key: ${GOOGLE_API_KEY}
    base_url: ${CUSTOM_VISION_URL}

İki önemli ayrıntı:

  • Referans verilen değişken tanımlı değilse, yer tutucu olduğu gibi kalır ve bir uyarı loglanır — sessizce boş geçmez.
  • Süslü parantezsiz $DEGISKEN biçimi genişletilmez. Her zaman ${...} kullanın.

Ayrıca her terminal: ayarının bir TERMINAL_<ANAHTAR> ortam değişkeni karşılığı vardır:

Ortam değişkeniKarşılığıÖrnek
TERMINAL_DOCKER_IMAGEdocker_imageTemel konteyner imajı
TERMINAL_DOCKER_FORWARD_ENVdocker_forward_env'["GITHUB_TOKEN"]' (JSON)
TERMINAL_DOCKER_VOLUMESdocker_volumes'["/host:/container"]'

Terminal Backend Seçimi: En Önemli Karar

Hermes’in komutları nerede çalıştıracağını belirleyen ayar budur ve güvenlik açısından kurulumun en kritik kararıdır.

BackendİzolasyonTehlikeli komut kontrolüUygun olduğu yer
localYokVarGeliştirme, kişisel kullanım
sshUzak makineVarAyrı bir sunucuda çalıştırma
dockerKonteynerAtlanır*Üretim, gateway kurulumu
modalBulut sandboxAtlanır*Ölçeklenebilir izolasyon
daytonaBulut sandboxAtlanır*Kalıcı çalışma alanları
singularityKonteynerAtlanır*HPC / araştırma ortamları

*Konteyner backend’lerinde tehlikeli komut kontrolü atlanır, çünkü konteynerin kendisi güvenlik sınırıdır. Konteyner içindeki yıkıcı bir komut ana makineye zarar veremez.

Backend’i ayarlamak:

hermes config set terminal.backend docker

Karar rehberi:

  • Kendi makinenizde, kendi projeleriniz üzerinde çalışıyorsanız: local yeterli, onay sistemi sizi korur.
  • Ajanı Telegram/Slack üzerinden erişilebilir yapacaksanız: mutlaka docker. Mesajlaşma üzerinden erişilebilen bir ajan, artık yalnızca sizin kontrolünüzde değildir.
  • Ajanın ana sunucunuza hiç dokunmamasını istiyorsanız: ssh ile ayrı bir işçi makineye yönlendirin.

Daytona ve Modal, “sunucusuz kalıcılık” sunar: ortam boştayken uyku moduna geçer, ihtiyaç olunca uyanır. Aralıklı çalışan ajanlar için maliyet avantajlıdır.


Hafıza Sistemi: Ajanın Öğrenme Döngüsü

Hermes’i diğer ajanlardan ayıran ana özellik burası.

İki hafıza dosyası

~/.hermes/memories/ altında iki dosya tutulur:

DosyaİçerikLimit
MEMORY.mdOrtam bilgileri, proje kuralları, öğrenilen çözümler2.200 karakter (~800 token)
USER.mdKullanıcı kimliği, iletişim tercihleri, çalışma alışkanlıkları1.375 karakter (~500 token)

Her iki dosya, oturum başında sistem talimatına dondurulmuş bir anlık görüntü olarak eklenir. Bu tasarım tercihi bilinçlidir: dosyalar oturum ortasında değişmediği için modelin prefix önbelleği korunur, bu da hem hız hem maliyet kazancı sağlar.

Karakter limitleri neden bu kadar dar?

İlk bakışta 2.200 karakter az görünebilir. Ama tasarım amacı, hafızanın bir çöp kutusu değil özet olması. Limit aşıldığında hafıza aracı sessizce veri düşürmez — hata döndürür ve ajan mevcut girdileri birleştirmek veya gereksizleri silmek zorunda kalır. Bu, hafızanın zamanla değersizleşmesini önler.

Hafıza işlemleri

Ajan üç eylem kullanır:

  • add — yeni girdi ekler
  • replace — mevcut içeriği alt dizgi eşlemesiyle günceller
  • remove — eskimiş girdiyi siler

Sistem birebir tekrarları engeller ve kabul etmeden önce tüm girdileri enjeksiyon/veri sızdırma kalıplarına karşı tarar. Bu önemli bir koruma: ajanın işlediği bir web sayfası veya dosya, hafızaya kalıcı bir talimat yazmaya çalışabilir.

Onay kapıları

config.yaml içindeki kontroller:

memory:
  write_approval: true        # Hafıza yazımını onaya bağla

skills:
  write_approval: true        # Beceri oluşturmayı ayrıca onaya bağla

auxiliary:
  background_review: true     # İncelemeleri daha ucuz modelde çalıştır

İlk haftalarda write_approval ayarlarını açık tutmanızı öneririm. Ajanın neyi öğrenmeye değer bulduğunu görmek, hem sistem talimatınızı hem beklentinizi kalibre eder. Ajanın kendi kendine yanlış bir kuralı kalıcılaştırması, sonradan fark edilmesi zor bir sorundur.

Skills: Öğrenmenin kalıcı hali

Hafıza “bilgi”yi tutar, beceriler “nasıl yapılır”ı. Arka planda çalışan öz-gelişim incelemesi, tekrar eden düzeltmeleri ve iş akışı derslerini ya kompakt hafıza girdilerine ya da yeniden kullanılabilir becerilere dönüştürür.

Hermes 26’dan fazla kategoride 160’ın üzerinde beceri izler (87 gömülü + 79 opsiyonel) ve agentskills.io standardıyla uyumludur. Beceriler platform bazında açılıp kapatılabilir ve araç kullanılabilirliğine göre koşullu etkinleştirilebilir.

Beceriler ~/.hermes/skills/ altında durur — düz dosyalardır, okuyabilir ve elle düzenleyebilirsiniz.


Mesajlaşma Ağ Geçidi: Telegram Kurulumu

Hermes’in en çok kullanılan özelliklerinden biri, ajanı bir mesajlaşma uygulaması üzerinden erişilebilir yapmak. 16’dan fazla platform destekleniyor; Telegram üzerinden adım adım anlatıyorum, diğerlerinin mantığı benzer.

Adım 1 — Bot oluşturun

  1. Telegram’da @BotFather ile konuşma başlatın
  2. /newbot komutunu gönderin
  3. Görünen adı girin (örn. “Hermes Asistan”)
  4. bot ile biten benzersiz bir kullanıcı adı girin (örn. sirket_hermes_bot)
  5. Verilen API tokenını kaydedin — 123456789:ABCdefGHIjklMNOpqrSTUvwxYZ biçimindedir

Bot tokenını gizli tutun. Bu tokena sahip olan herkes botu kontrol edebilir.

Adım 2 — Kullanıcı ID’nizi öğrenin

Hermes erişim kontrolünü sayısal Telegram kullanıcı ID’si ile yapar — kullanıcı adınızla değil. ID’niz 123456789 gibi bir sayıdır.

Öğrenmek için Telegram’da @userinfobot veya @get_id_bot ile konuşun; anında ID’nizi yazar.

Adım 3 — Yapılandırın

~/.hermes/.env dosyasına ekleyin:

TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrSTUvwxYZ
TELEGRAM_ALLOWED_USERS=123456789

Birden fazla kullanıcı için virgülle ayırın: TELEGRAM_ALLOWED_USERS=123456789,987654321

Etkileşimli sihirbazı tercih ederseniz:

hermes gateway setup

Adım 4 — Ağ geçidini başlatın

hermes gateway

Bot birkaç saniye içinde çevrimiçi olur. Telegram’dan bir test mesajı gönderip doğrulayın.

Grup sohbetleri

Botun grupta çalışması için Privacy Mode kapatılmalıdır:

  1. @BotFather’a gidin
  2. /mybots → botunuzu seçin
  3. Bot Settings → Group Privacy → Turn off
  4. Değişiklikten sonra botu mevcut gruplardan çıkarıp yeniden ekleyin

Alternatif olarak, privacy mode’u global kapatmak yerine botu grup yöneticisi yapabilirsiniz.

Grupta her mesaja cevap vermesin

Grup ortamında ajanın her mesaja atlaması istenmez. config.yaml:

telegram:
  require_mention: true
  exclusive_bot_mentions: true
  mention_patterns:
    - "^\\s*hermes\\b"

Bu ayarla bot yalnızca doğrudan bahsedildiğinde, yanıtlandığında veya tanımlı kalıba uyan mesajlarda devreye girer.

Faydalı parametreler

Parametreİşlevi
TELEGRAM_BOT_TOKENBot kimlik doğrulaması
TELEGRAM_ALLOWED_USERSErişim kontrolü (sayısal ID listesi)
TELEGRAM_HOME_CHANNELZamanlanmış görev çıktılarının gideceği kanal
require_mentionGrupta yalnızca bahsedilince yanıtla

Çoklu profil uyarısı: Aynı Telegram grubunda birden fazla Hermes profili çalıştıracaksanız, her profil için ayrı bot tokenı oluşturun ve her profil için ayrı gateway başlatın. Aynı tokenı iki çalışan gateway’de kullanmayın — Telegram aynı token için eşzamanlı yoklamayı reddeder.


Güvenlik Modeli: Sekiz Katman

Bir ajana terminal erişimi vermek ciddi bir karardır. Hermes’in güvenlik modeli sekiz ayrı sınırdan oluşuyor ve bunları anlamak, kurulumu güvenli yapmanın ön koşulu.

#KatmanNeyi korur
1Kullanıcı yetkilendirmePlatform izin listeleri, DM eşleştirme kodları
2Tehlikeli komut onayıYıkıcı işlemlerde insan onayı
3Dosya yazma güvenliğiKorumalı yollar, opsiyonel sandbox kısıtı
4Konteyner izolasyonuSertleştirilmiş Docker/Singularity/Modal ayarları
5MCP kimlik bilgisi filtrelemeAlt süreçlerde ortam değişkeni izolasyonu
6Bağlam dosyası taramasıProje dosyalarında prompt enjeksiyonu tespiti
7Oturumlar arası izolasyonOturumlar birbirinin verisine erişemez
8Girdi temizlemeÇalışma dizini doğrulaması

Tehlikeli komut onayı

Üç mod var:

  • Smart (varsayılan): Yardımcı bir LLM riski değerlendirir. Düşük riskli komutlar otomatik onaylanır, gerçekten tehlikeli olanlar otomatik reddedilir, belirsiz durumlar manuel onaya düşer.
  • Manual: Her seferinde kullanıcıya sorar.
  • Off: Onay kontrollerini kapatır.

Mesajlaşma platformlarında HERMES_EXEC_ASK ortam değişkeni gateway çalıştırıldığında otomatik olarak ayarlanır — tehlikeli komutlar sohbette evet/hayır düğmeleriyle karşınıza gelir.

Aşılamayan blokaj listesi

Bazı komutlar onay modundan, --yolo bayrağından ve cron çalıştırmasından bağımsız olarak engellenir:

  • rm -rf / ve türevleri
  • Bash fork bombaları
  • Bağlı kök cihazlarda mkfs
  • dd if=/dev/zero of=/dev/sd*
  • Root seviyesinde güvenilmeyen URL’lerin shell’e boru ile verilmesi

Bu, --yolo modunun bile altında kalan bir zemin — geçersiz kılma yolu yoktur.

Kendi yasak kurallarınız

config.yaml içinde glob kalıplarıyla ek kısıt tanımlayabilirsiniz:

approvals:
  deny:
    - "git push --force*"
    - "*curl*|*sh*"
    - "docker rm*"

Bu kurallar onay modlarından önce uygulanır ve YOLO ile aşılamaz. Şirket içi kurulumlarda değerli bir kontrol noktasıdır.

Korumalı dosya yolları

Şu yollara yazma her koşulda engellenir:

  • İşletim sistemi kimlik depoları: ~/.ssh/, ~/.aws/, /etc/sudoers
  • Hermes durumu: auth.json, .env, mcp-tokens/
  • Proje gizli dosyaları: .env, .env.local, .env.production

İstisna: ~/.ssh/config sert blokaj yerine onay istemine düşer, çünkü özel anahtar içermez ama meşru düzenleme ihtiyacı sıktır.

Yazma sandbox’ı

Ajanın yalnızca belirli dizinlere yazmasını istiyorsanız:

export HERMES_WRITE_SAFE_ROOT=/home/kullanici/proje:/home/kullanici/.hermes

Birden fazla kök dizin Unix’te : ile ayrılır. Bu yolların dışındaki yazma işlemleri onay seçeneği bile sunulmadan engellenir.

Konteyner sertleştirmesi

Docker backend kullanıldığında konteynerler şu ayarlarla çalışır: tüm Linux yetenekleri düşürülür (yalnızca DAC_OVERRIDE, CHOWN, FOWNER koşullu verilir), no-new-privileges ile yetki yükseltme engellenir, süreç sayısı 256 ile sınırlanır, geçici dosya sistemleri nosuid ve boyut sınırıyla bağlanır (512 MB /tmp, 256 MB /var/tmp).

Prompt enjeksiyonu koruması

Proje yapılandırma dosyaları (AGENTS.md, .cursorrules, SOUL.md) sistem talimatına dahil edilmeden önce şunlara karşı taranır:

  • Önceki talimatları yok saymayı söyleyen ifadeler
  • Şüpheli anahtar kelimeler içeren gizli HTML yorumları
  • Kimlik bilgisi veya .env okuma girişimleri
  • curl ile veri sızdırma
  • Görünmez Unicode karakterleri (sıfır genişlikli boşluk, çift yönlü geçersiz kılma)

Engellenen dosya için [BLOCKED: file contained potential prompt injection] uyarısı gösterilir.

Ayrıca tirith adlı komut seviyesi tarayıcı, çalıştırmadan önce homograf URL sahteciliği, curl | bash kalıpları ve terminal enjeksiyon saldırılarını tespit eder.

SSRF koruması

URL kullanan tüm araçlar (web arama, tarayıcı, görsel) şu adreslere isteği engeller: özel ağlar (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), loopback ve link-local adresler, bulut metadata sunucuları (169.254.169.254). DNS hataları engellenmiş sayılır (fail-closed).

Kendi iç ağınıza erişim gerekiyorsa (yerel wiki, iç Ollama sunucusu):

security:
  allow_private_urls: true

Bunu açmadan önce düşünün: bu ayar, prompt enjeksiyonuna uğramış bir ajanın iç ağınıza istek atabilmesi demektir. Yalnızca bu riskin kabul edilebilir olduğu makinelerde açın.

DM eşleştirme sistemi

Tanınmayan kullanıcılara tek kullanımlık 8 karakterlik eşleştirme kodu verilir. Koruma katmanları: kriptografik rastgelelik, 1 saatlik geçerlilik, kullanıcı başına 10 dakikada 1 istek sınırı, platform başına en fazla 3 bekleyen kod, 5 başarısız denemede 1 saatlik kilitleme, eşleştirme verisinde chmod 0600 izni ve kodların stdout’a hiç yazılmaması.

Yetkilendirme sırası

Bir kullanıcının erişim hakkı şu sırayla kontrol edilir:

  1. Platform bazlı “herkese açık” bayrağı (DISCORD_ALLOW_ALL_USERS=true)
  2. DM eşleştirmesiyle onaylanmış liste
  3. Platform bazlı izin listesi (TELEGRAM_ALLOWED_USERS=123,456)
  4. Global izin listesi (GATEWAY_ALLOWED_USERS=123,456)
  5. Global “herkese açık” (GATEWAY_ALLOW_ALL_USERS=true)
  6. Varsayılan: Reddet

Son satır önemli — Hermes varsayılan olarak kapalıdır, açıkça izin vermeniz gerekir.


Üretim Kurulumu Kontrol Listesi

Ajanı mesajlaşma platformları üzerinden erişilebilir yapıyorsanız, aşağıdaki on maddeyi tamamlamadan yayına almayın:

  1. Açık izin listeleri tanımlayın — GATEWAY_ALLOW_ALL_USERS=true asla kullanmayın
  2. Konteyner backend kullanın — terminal.backend: docker
  3. Kaynak sınırları koyun — CPU, bellek, disk
  4. Gizli bilgileri ~/.hermes/.env içinde tutun ve chmod 600 uygulayın
  5. Kullanıcı ID’lerini sabit yazmak yerine DM eşleştirmeyi açın
  6. command_allowlist ayarını düzenli denetleyin
  7. terminal.cwd değerini ayarlayın — ajanın hassas dizinlerde çalışmasını engeller
  8. Root olmayan bir kullanıcıyla çalıştırın
  9. ~/.hermes/logs/ altındaki logları izleyin
  10. Güncel tutun — güvenlik yamaları için

Maksimum izolasyon: mesajlaşmayı çalıştırmadan ayırın

En güvenli kurgu, gateway’in çalıştığı makine ile komutların çalıştığı makineyi ayırmaktır:

# ~/.hermes/config.yaml
terminal:
  backend: ssh
# ~/.hermes/.env
TERMINAL_SSH_HOST=agent-worker.local
TERMINAL_SSH_USER=hermes
TERMINAL_SSH_KEY=~/.ssh/hermes_agent_key

SSH kimlik bilgilerinin config.yaml yerine .env içinde tutulması bilinçlidir: profil dışa aktarımlarında paylaşılmazlar.


Profiller: Birden Fazla Bağımsız Ajan

Aynı makinede birbirinden yalıtılmış birden çok Hermes çalıştırabilirsiniz:

hermes -P work chat        # 'work' profili
hermes -P research chat    # 'research' profili

Her profil kendi yapılandırmasını, hafızasını, becerilerini ve oturumlarını ayrı tutar. Kullanım senaryoları:

  • Aynı depo üzerinde paralel ajanlar (git worktree ile)
  • Bağlama göre farklı model/sağlayıcı
  • Ayrı kimlik bilgileri ve araç yapılandırmaları
  • Kullanım senaryoları arasında oturum izolasyonu

Hazır yapılandırılmış ajanları paylaşmak için profil dağıtımları da kullanılabilir:

hermes profiles install <dagitim-adi>

Pratik kullanım: İş ve kişisel işlerinizi ayırmak için iki profil, ya da biri kısıtlı yetkiyle Telegram’a açık, diğeri tam yetkiyle yalnızca yerelde çalışan iki ajan.


Güncelleme ve Bakım

Güncelleme

hermes update

Bu komut otomatik yeniden başlatmayı da destekler.

Güncelleme sonrası

Yeni sürümler yeni yapılandırma seçenekleri getirebilir:

hermes config check      # Eksik seçenekleri listeler
hermes config migrate    # Eksikleri etkileşimli olarak ekler

Düzenli sağlık kontrolü

hermes doctor

Hermes, bilinen güvenlik açığı taşıyan Python paket sürümlerini işaretleyen bir tarayıcı ile gelir (örneğin zehirlenmiş bir paket sürümü). Uyarılar CLI başlangıcında ve hermes doctor çıktısında görünür. İncelediğiniz bir uyarıyı kapatmak için:

hermes doctor --ack <uyari-id>

Yedekleme

Yedeklenecek şey ~/.hermes/ klasörünün tamamıdır:

tar czf hermes-yedek-$(date +%F).tar.gz \
  --exclude='hermes-agent' \
  ~/.hermes/

hermes-agent alt klasörü kod deposudur; yeniden kurulabildiği için yedeğe dahil etmeye gerek yok. Asıl değerli olan config.yaml, .env, auth.json, memories/, skills/ ve cron/ içerikleridir.

Yedek dosyası gizli bilgi içerdiği için şifreleyerek saklayın ve herkese açık bir depolama alanına koymayın.


Sık Karşılaşılan Hatalar

”hermes: command not found”

PATH henüz güncellenmemiş. Shell’i yeniden yükleyin (source ~/.bashrc) veya ~/.local/bin dizininin PATH’inizde olduğunu doğrulayın.

”API key not set”

hermes model komutunu çalıştırın veya anahtarı doğrudan ayarlayın:

hermes config set OPENROUTER_API_KEY sk-or-...

Güncelleme sonrası yapılandırma eksik

hermes config check
hermes config migrate

Ayar değiştirdim ama uygulanmıyor

Öncelik sırasını kontrol edin. CLI argümanı config.yaml’ı, config.yaml da .env’i geçersiz kılar. Çözümlenmiş değeri görmek için:

hermes config get <anahtar>

${DEGISKEN} yer tutucusu olduğu gibi görünüyor

Referans verdiğiniz ortam değişkeni tanımlı değil. Ayrıca $DEGISKEN biçiminin genişletilmediğini unutmayın — süslü parantez zorunludur.

Telegram botu gruba yanıt vermiyor

İki olası sebep: Privacy Mode kapatılmamış (BotFather’dan kapatıp botu gruptan çıkarıp yeniden ekleyin) veya require_mention: true ayarlı ve bota doğrudan seslenmiyorsunuz.

Telegram’da bot çevrimiçi olmuyor

Aynı bot tokenıyla başka bir gateway çalışıyor olabilir. Telegram aynı token için eşzamanlı yoklamayı reddeder. Her profil için ayrı bot oluşturun.

Ajan tehlikeli komutlarda hiç sormuyor

Konteyner backend (docker, modal, daytona, singularity) kullanıyorsanız bu beklenen davranıştır — konteyner güvenlik sınırı olduğu için kontrol atlanır. Onay istemi görmek istiyorsanız local veya ssh backend kullanın.

Bir özellik yüklenemiyor

Opsiyonel bağımlılıklar (TTS, hafıza sağlayıcıları, Slack, Matrix) ilk kullanımda kurulur. Bu davranışı kapattıysanız açmanız gerekebilir:

security:
  allow_lazy_installs: true

Sık Sorulan Sorular

Hermes Agent ücretsiz mi?
Hermes Agent’ın kendisi MIT lisanslı açık kaynaktır ve ücretsizdir. Ödediğiniz şey kullandığınız yapay zeka modelinin API maliyetidir — bu da seçtiğiniz sağlayıcıya ve modele göre değişir. Ayrıca sunucuda çalıştıracaksanız sunucu maliyeti eklenir; ancak Hermes küçük bir VPS’te veya Raspberry Pi üzerinde rahatça çalıştığı için bu kalem genellikle düşüktür.
Hermes Agent kurulumu ne kadar sürer?
Tek satırlık kurucu birkaç dakikada tamamlanır ve bağımlılıkları kendisi halleder. Model yapılandırması “hermes setup —portal” ile birkaç dakika daha alır. Hafıza, beceriler ve mesajlaşma entegrasyonlarını da açtığınızda toplam süre yarım saati bulur. Güvenli bir üretim kurulumu — konteyner backend, izin listeleri, izleme — ise ayrı bir yarım gün ayırmayı hak eder.
Hermes Agent için hangi işletim sistemi gerekir?
Linux, macOS ve WSL2 tam destekleniyor; Android üzerinde Termux ile de çalışıyor. Native Windows desteği mevcut ama erken beta aşamasında, bu yüzden Windows kullanıcılarına WSL2 üzerinden kurmaları öneriliyor. Tek zorunlu ön gereksinim Git; Linux’ta ayrıca curl ve xz-utils gerekiyor. Python, Node.js, ripgrep ve ffmpeg gibi bağımlılıkları kurucu script kendisi tespit edip kuruyor.
Hangi terminal backend’i seçmeliyim?
Kendi makinenizde kişisel kullanım için “local” yeterlidir; onay sistemi devrededir ve sizi korur. Ajanı Telegram, Slack gibi bir platform üzerinden erişilebilir yapacaksanız mutlaka “docker” kullanın — mesajlaşma üzerinden erişilebilen bir ajan artık yalnızca sizin kontrolünüzde değildir ve konteyner güvenlik sınırı görevi görür. Ana sunucunuza hiç dokunulmamasını istiyorsanız “ssh” ile ayrı bir işçi makineye yönlendirin. Daytona ve Modal, boştayken uyku moduna geçen bulut sandbox’ları sunar; aralıklı çalışan ajanlarda maliyet avantajı sağlar.
Ajan tehlikeli bir komut çalıştırabilir mi?
Birkaç katman bunu engeller. Varsayılan “smart” modda yardımcı bir model riski değerlendirir: düşük riskli komutlar otomatik onaylanır, gerçekten tehlikeli olanlar otomatik reddedilir, belirsiz durumlar size sorulur. Bunun altında aşılamayan bir blokaj listesi vardır — dosya sistemi silme, fork bombası, disk üzerine yazma gibi komutlar hiçbir ayarla, —yolo modu dahil, çalıştırılamaz. Ayrıca kendi yasak kurallarınızı glob kalıplarıyla ekleyebilir ve yazma işlemlerini belirli dizinlerle sınırlayabilirsiniz.
Hafıza dosyalarının karakter limiti neden bu kadar düşük?
Bilinçli bir tasarım tercihi. MEMORY.md 2.200, USER.md 1.375 karakterle sınırlıdır ve limit aşıldığında sistem sessizce veri düşürmez — hata döndürür, ajan da girdileri birleştirmek veya gereksizleri silmek zorunda kalır. Amaç hafızanın bir çöp kutusu değil özet olması. Ayrıca dosyalar oturum başında dondurulmuş anlık görüntü olarak yüklendiği için modelin prefix önbelleği korunur; bu hem hız hem maliyet kazancı sağlar.
Ajanın yanlış bir şey öğrenmesini nasıl engellerim?
Hafıza ve beceri yazımını onaya bağlayın: config.yaml içinde memory.write_approval ve skills.write_approval ayarlarını açın. İlk haftalarda bunları açık tutmak, ajanın neyi öğrenmeye değer bulduğunu görmenizi sağlar ve beklentinizi kalibre eder. Hafıza dosyaları düz metindir, ~/.hermes/memories/ altında; istediğiniz zaman okuyup elle düzeltebilirsiniz. Sistem ayrıca yeni girdileri kabul etmeden önce enjeksiyon ve veri sızdırma kalıplarına karşı tarar.
Telegram botum gruba yanıt vermiyor, neden?
En sık iki sebebi var. Birincisi Privacy Mode: BotFather üzerinden /mybots → Bot Settings → Group Privacy yolundan kapatın ve ardından botu gruptan çıkarıp yeniden ekleyin — bu adım atlanırsa değişiklik geçerli olmaz. İkincisi require_mention ayarı: açıksa bot yalnızca doğrudan bahsedildiğinde, yanıtlandığında veya tanımlı kalıba uyan mesajlarda devreye girer. Grupta her mesaja atlamasını istemiyorsanız bu ayar zaten istediğiniz davranıştır.
Aynı makinede birden fazla ajan çalıştırabilir miyim?
Evet, profiller tam bunun için var. “hermes -P work” ve “hermes -P research” gibi komutlarla her biri kendi yapılandırması, hafızası, becerileri ve oturumlarıyla yalıtılmış ajanlar çalıştırabilirsiniz. Yaygın kullanım, biri kısıtlı yetkiyle mesajlaşmaya açık, diğeri tam yetkiyle yalnızca yerelde çalışan iki profildir. Aynı Telegram grubunda birden fazla profil kullanacaksanız her profil için ayrı bot tokenı oluşturun — aynı token iki gateway’de kullanılamaz.
Neleri yedeklemem gerekiyor?
~/.hermes/ klasörünün tamamı, içindeki hermes-agent kod deposu hariç (o yeniden kurulabilir). Kritik olanlar: config.yaml, .env, auth.json, memories/, skills/ ve cron/. Bu yedek API anahtarları ve OAuth kimlik bilgileri içerdiği için şifreleyerek saklayın ve herkese açık bir depolama alanına koymayın. Sunucu taşıma senaryosunda bu klasörü kopyalamak, ajanın hafızası ve öğrendiği becerilerle birlikte taşınması anlamına gelir.
Hermes Agent ile n8n arasında nasıl seçim yapmalıyım?
İkisi farklı işler için. n8n görsel akış kurmak, çok sayıda SaaS entegrasyonunu bağlamak ve ekipçe bakılabilir otomasyonlar için güçlüdür. Hermes ise terminal ve sistem işlerinde, uzun süreli çalışan ve zamanla öğrenen bir asistan kurmakta güçlüdür. Bir ekip otomasyonu kuruyorsanız n8n, kişisel veya teknik bir asistan kuruyorsanız Hermes daha uygun düşer. İkisi birlikte de kullanılabilir — n8n bir webhook ile Hermes’i tetikleyebilir.
Prompt enjeksiyonuna karşı korumalı mı?
Birden fazla katmanı var. Proje yapılandırma dosyaları (AGENTS.md, .cursorrules, SOUL.md) sistem talimatına eklenmeden önce taranır: önceki talimatları yok saymayı söyleyen ifadeler, gizli HTML yorumları, kimlik bilgisi okuma girişimleri, curl ile veri sızdırma ve görünmez Unicode karakterleri tespit edilir. Hafızaya yazılacak girdiler de aynı şekilde taranır. Komut seviyesinde tirith adlı tarayıcı homograf URL sahteciliğini ve curl|bash kalıplarını yakalar. Yine de hiçbir koruma mutlak değildir; güvenilmeyen içerik işleyen ajanları konteyner backend ile çalıştırmak en sağlam katmandır.

Sonuç

Hermes Agent kurulumunun teknik kısmı gerçekten kısa: tek satırlık bir komut ve hermes setup --portal. Yarım saat içinde çalışan bir ajanınız olur.

Asıl iş, kurulumdan sonra verdiğiniz üç kararda:

  1. Terminal backend seçimi. Ajanı dışarıya (mesajlaşma platformlarına) açacaksanız konteyner backend tercih değil zorunluluktur.
  2. Onay kapıları. Hafıza ve beceri yazımını ilk haftalarda onaya bağlamak, ajanın neyi öğrendiğini görmenizi sağlar — sonradan yanlış öğrenmeyi fark etmek çok daha zordur.
  3. Yetki sınırları. İzin listeleri, yasak komut kuralları ve yazma sandbox’ı, ajanın hata yaptığında ne kadar zarar verebileceğini belirler.

Hermes’in öğrenme döngüsü onu güçlü kılan şey ama aynı zamanda dikkatli kurulum gerektiren şey de bu: zamanla iyileşen bir sistem, zamanla yanlış bir alışkanlığı da kalıcılaştırabilir. Onay kapılarını açık tutup hafıza dosyalarını ara ara okumak, bu dengeyi kuran en basit alışkanlık.

Küçük başlayın: önce yerel makinede, tek profille, onaylar açık. Ajanın davranışını tanıdıktan sonra sunucuya taşıyın, konteynerleyin ve mesajlaşma platformuna açın.

İşletmenizde yapay zeka ajanlarını hangi süreçlerde kullanabileceğinizi konuşmak isterseniz AI agent geliştirme sayfasına bakabilir veya iletişime geçebilirsiniz.

Onur Öztürk
// yazar

Onur ÖZTÜRK

SEO Uzmanı & Dijital Pazarlama Danışmanı

15 yılı aşkın deneyimle sağlık turizmi, e-ticaret ve kurumsal markalar için SEO stratejisi geliştiriyorum. Google Partner ve Meta Business Partner olarak 150'den fazla işletmenin organik büyümesine katkı sağladım.

// google arama

Bu içerikleri Google'da daha sık görün

onuroztr.com'u tercih edilen kaynak olarak ekleyin; yazılarımız arama sonuçlarında ve yapay zeka özetlerinde size daha sık gösterilsin.

WhatsApp'tan yazın Genellikle 1 saat içinde dönüyorum
WhatsApp Toplantı Planlayın