SSD Nodes Learn Hosting plans →
Rehberler Matt ConnorYazan Matt Connor · Güncellendi 2026-08-27

Agent harness nedir ve ne işe yarar?

Agent harness yapısının bir dil modelinden farkını ve çalışma prensibini öğrenin. Modelin döngü, araçlar ve oturum yönetimi ile nasıl bir ajana dönüştüğünü keşfedin.

Ajan donanımı (agent harness) nedir

Ajan donanımı, bir dil modelinin etrafında çalışan ve onu bir ajana dönüştüren programdır. Bu yapı; modeli sürekli çağıran döngüyü, modelin kullanmasına izin verilen araç tanımlarını, bu çağrılardan hangilerinin gerçekten çalıştırılacağına karar veren izin kurallarını, turlar arasında varlığını sürdüren oturum durumunu ve işin gerçekleştiği çalışma dizinini barındırır. Model, bu yapının içinde değiştirilebilir durumdadır.

Akılda tutulması gereken kısım son cümledir. Bir model tek başına bir soruyu yanıtlar ve sizi unutur. Bir donanım ise modele bir sonraki adımda ne yapması gerektiğini sorar, modelin istediği komutu çalıştırır, sonucu geri besler ve tekrar sorar. İnsanlar "ajan" dediklerinde bu tekrarlanan süreci kastederler. Eğer kullanılan terminoloji hala belirsizse, bir yapay zeka ajanı, bir LLM ve bir asistan arasındaki fark konusu, bir araç seçmeden önce kavramları netleştirmenize yardımcı olacaktır.

Harness, model değildir

Satıcılar her ikisini de tek bir marka adı altında sunduğu için bu iki kavram birbirine karıştırılır.

dsh ve DeepSeek farklı ürünlerdir. 13 Ağustos 2026 tarihinde github.com/deepseek-ai/deepseek-harness adresinde MIT lisansı ile yayımlanan DeepSeek Harness, bir makineye kurduğunuz bir Node programıdır. DeepSeek modelleri ise bir API (uygulama programlama arayüzü) arkasında sunulan ağırlıklardır. dsh noktasını başka bir satıcının modeline yönlendirdiğinizde sistem çalışmaya devam eder; çünkü harness yalnızca mesajları kabul eden ve araç çağrıları döndüren bir yapıya ihtiyaç duyar.

Claude Code ve Claude aynı ikilidir. Claude Code bir harness'tır: bir döngüye, izin sistemine, dosya ve kabuk araçlarına sahip bir terminal programıdır. Claude ise varsayılan olarak çağırdığı model ailesidir. Codex ve Gemini CLI da aynı şekilde ayrılır.

Bu durumu her seferinde netleştiren test şudur: Bir harness kurarsınız. Bir model çağırırsınız. Eğer söz konusu şeyin diskinizde bir sürümü ve ev dizininizde bir yapılandırma dosyası varsa, bu bir harness'tır. Eğer bu yapılandırma dosyasının içinde deepseek-chat gibi bir dizge (string) yer alıyorsa, o modeldir.

Döngünün gerçekte ne yaptığı

Bir harness döngüsünün bir turu şu şekilde işler. Bunu yavaş okuyun, çünkü harness'lar arasındaki neredeyse tüm farklar bu beş adımın içindeki farklılıklardan kaynaklanır.

  1. Harness, o ana kadarki konuşmayı ve araç tanımlarının bir listesini modele gönderir.
  2. Model, metinle veya bu araçlardan birini çağırma isteğiyle yanıt verir.
  3. Harness, bu isteği izin kurallarına göre kontrol eder ve ya çalıştırır ya da size sormak için durur.
  4. Harness aracı çalıştırır, çıktıyı ve çıkış kodunu yakalar; çıktı çok uzunsa kısaltır.
  5. Harness bu sonucu konuşmaya ekler ve 1. adıma geri döner.
  1. adım, harness'ların günlük kullanımda en çok farklılaştığı yerdir. Her komuttan önce soru soran bir harness güvenli ancak yorucudur. Asla sormayan bir harness ise er ya da geç modelin yanlış anladığı bir yolda yıkıcı bir komut çalıştıracaktır. Günümüzde her ciddi harness orta bir ayara sahiptir: sormadan çalışan komutların bulunduğu bir izin listesi ve diğer her şey için bir onay istemi.
  1. adım, farkların geri kalanının bulunduğu yerdir. Harness ayrıca bu isteklerin her birinde gönderilen sistem istemini (system prompt) yazar. Claude Code bu kontrolü doğrudan size verir, çünkü bir çıktı stili gönderilen sistem istemini düzenler ve bu sayede gelen her yanıtı değiştirir. Konuşma her turda büyür ve modelin sabit bir bağlam penceresi (context window) vardır; bu nedenle harness neyin atılacağına, neyin özetleneceğine ve neyin bir dosyaya yazılıp daha sonra okunacağına karar vermelidir. Bu karar, aynı modeli kullanan iki harness'ın neden farklı kalitede iş çıkardığının temel nedenidir. Eğer bu beş adım hala soyut geliyorsa, çözüm kendi basit döngünüzü bir kez yazmaktır; yapay zeka ajanlarını öğrenmeye yönelik aşamalı bir yol tam olarak bunu erken bir aşamada inşa etmenizi sağlar.

Çoğu harness artık harici araçları, bir aracı onu destekleyen herhangi bir harness'a sunmanın standart bir yolu olan MCP (model context protocol) üzerinden bağlar; böylece tek bir entegrasyon birkaç harness'a ulaşır. Bir VPS üzerinde MCP sunucuları çalıştırmak bu tarafı ele alır. Web araması genellikle insanların ilk eklediği araçtır ve ajanı kendi SearXNG örneğinize yönlendirmek, sorguları üçüncü taraflardan uzak tutarken, ajanın okuduğu her sayfanın döngü içine giren güvenilmez bir girdi olduğunu açıkça ortaya koyar.

Agent harness ile agent framework karşılaştırması

Bu soru, her yeni harness çıktığında gündeme gelir ve yanıtlar, kısmen satıcıların fikir ayrılıkları nedeniyle çelişkilidir. İşte geçerliliğini koruyan açıklama:

Framework, içe aktardığınız (import) bir kütüphanedir. Döngüyü siz yazarsınız, modeli ne zaman çağıracağınıza siz karar verirsiniz ve araç sonuçlarını kendiniz yönetirsiniz. LangChain bunun iyi bilinen bir örneğidir: yapı taşlarını alırsınız ve agent'ı kod içinde birleştirirsiniz.

Harness ise çalıştırdığınız bir programdır. Döngü halihazırda yazılmıştır, araçlar zaten mevcuttur ve izin modeli varsayılan ayarlara sahiptir. İlk komutla çalışan bir agent elde edersiniz ve yapılandırmayı oradan devam ettirirsiniz.

Kurulum testi genellikle bu ayrımı belirler. Eğer bir şeyi kurup ardından kod yazıyorsanız, bu bir framework'tür. Eğer kurup ardından onunla etkileşime geçiyorsanız, bu bir harness'tır.

Sınır gerçekten tartışmalıdır ve bunun en net kanıtı LangChain'in kendi dokümantasyonudur. Ağustos 2026 itibarıyla Deep Agents'ı LangGraph üzerine inşa edilmiş "kendi görüşleri olan, her şeyi içinde barındıran" (opinionated, batteries-included) bir framework olarak tanımlarken, langchain-ai/deepagents deposu kendisini "her şeyi içinde barındıran agent harness" olarak adlandırmaktadır. Her iki tanım da doğrudur. Deep Agents, içe aktardığınız bir Python SDK (yazılım geliştirme kiti) olduğundan kurulum testi onu bir kütüphane olarak sınıflandırır, ancak insanların onu bir harness gibi kullanmasını sağlayacak kadar varsayılan davranışla gelir. Microsoft, Ağustos 2026'da genel kullanıma açık bir harness ve barındırılan agent'lar sundu; bu da sözcüğün artık teknik jargon olmaktan çıkıp bir ürün kategorisine dönüştüğünü göstermektedir.

Bu yüzden iş yükünüzü belirleyecek soruyu sorun. Eğer döngüyü siz yazıyorsanız, döngünün sorumluluğu sizdedir: yeniden denemeler, bağlam kırpma (context trimming), izin istemleri ve yaşananların kaydı. Eğer döngü hazır geliyorsa, tüm bu konularda başkasının çözümünü devralırsınız; bu, başlangıç için çok daha hızlıdır ancak daha sonra değiştirilmesi daha zordur.

Harness ile sohbet penceresi arasındaki fark

Sohbet penceresi ve harness, model çıktısını size gösterir. Aralarındaki fark, işlemin hangi bilgisayarda gerçekleştiğidir. Sohbet penceresinde, modelin çalıştırdığı her kod, satıcının korumalı alanında (sandbox), yüklediğiniz dosyalar üzerinde yürütülür ve oturum sona erdiğinde kaybolur. Harness ise araçları, onu başlattığınız makinede, başlatan kullanıcı yetkileriyle, gerçek dosyalarınız üzerinde ve ortamınızdaki gerçek kimlik bilgilerinizle çalıştırır.

Bu, iki cümleyle tüm avantajı ve tüm riski özetler. Ajan nihayet işi yapabilir. Ajan aynı zamanda işi silebilir.

Kullanıcıların fiilen çalıştırdığı harness araçları

Bu liste, 19 Ağustos 2026 tarihi itibarıyla bilinçli olarak bu şekilde bırakılmıştır. Kategori haftalık olarak değişmekte ve her türlü özet hızla eskimektedir.

  • Claude Code ve Codex satıcı odaklı harness araçlarıdır. Terminal önceliklidir, varsayılan olarak kendi satıcılarının modellerine bağlıdır ve en gelişmiş izin yönetimine sahiptirler. Claude Code, Cursor, Codex ve Copilot karşılaştırması bu araçları detaylıca inceler.
  • DeepSeek Harness (dsh) MIT lisanslıdır ve tek bir fikir üzerine kuruludur: her şey bir eklentidir; dolayısıyla modeller, araçlar, oturumlar, sandbox ortamları ve kullanıcı arayüzü tamamen değiştirilebilir parçalardır. Yüklediğiniz her eklenti, ajanın kendi izinleriyle çalışır; bu nedenle bir dsh eklentisini eklemeden önce erişebileceği alanları kontrol etmek, sabit bir araç setine sahip harness araçlarına kıyasla burada daha önemlidir. 19 Ağustos 2026 itibarıyla, yayınlanmasından altı gün sonra yaklaşık 166,800 GitHub yıldızına ulaşmıştır.
  • Hermes, Nous Research tarafından geliştirilmiş olup bir kodlama aracından ziyade genel amaçlı otonom bir ajandır. Şubat 2026'da MIT lisansıyla yayınlanmıştır ve anılarını ve yeteneklerini kendi makinenizdeki yerel bir SQLite veritabanında tutar. Hermes'i bir VPS üzerinde self-host etmek kurulum sürecini anlatır.
  • Omnigent bir meta-harness aracıdır: Claude Code ve Codex dahil olmak üzere diğer harness araçlarını, paylaşımlı oturumlar, harcama limitleri ve işletim sistemi seviyesinde bir sandbox ile tek bir API arkasında yönetir. Çoklu ajan harness aracı olarak Omnigent bu yapının sağladığı avantajları ele alır.
  • OneCLI, ekiplere yönelik, sandbox içinde çalışan bir harness aracıdır. Dışa giden isteklere gerçek kimlik bilgilerini enjekte eden bir ağ geçidi etrafında inşa edilmiştir; böylece ajanın kendisi yalnızca yer tutucu anahtarları görür.

Bu araçlardan üçü, model eşleşmesi, lisans, olgunluk ve bir sunucuda çalıştırma gereksinimleri açısından sıkça aynı kısa listeye girmektedir; bu nedenle DeepSeek Harness, Claude Code ve Omnigent karşılaştırması başlıklı yazıyı okumak faydalıdır.

dsh hızlı başlangıç komutu tek bir satırdan oluşur ve bir harness aracının ne olduğunu anlamanın en hızlı yolu bu komutu bir kez çalıştırmaktır. Makinede Node.js yüklü olması gerekir.

npx @deepseek-ai/dsh web

Bu komut, web arayüzünü (user interface) http://127.0.0.1:3080 adresinde başlatır. Kullanmaya başlamadan önce README dosyasını okuyun; çünkü dsh kendisini bir geliştirici önizlemesi olarak tanımlar ve uyumluluğu bozacak değişikliklerin olacağını açıkça belirtir. Eğer bu ilk komut doğrudan başarısız olursa veya beklemediğiniz bir sürümü çekerse, belirli bir dsh sürümünü sabitlemek ve npx önbelleğini temizlemek genellikle sorunu çözer. DeepSeek Harness'ı bir VPS üzerinde çalıştırmak sunucu kurulumunu, adresin neden 127.0.0.1 ile başladığı ise loopback varsayılanını açıklar.

Router'lar harness'ın üzerinde konumlanır

Bir model router, harness ile sağlayıcı API'si arasında yerel bir proxy görevi görür. Claude Code Router bunun yaygın bir örneğidir: varsayılan olarak 127.0.0.1:3456 adresine bağlanır, Claude Code'un kendi sağlayıcısına göndereceği istekleri kabul eder ve bunları yapılandırdığınız sağlayıcıya iletir. Harness, herhangi bir değişiklik yapıldığının farkında değildir.

Router'ların var olma nedeni modelin değiştirilebilir olmasıdır; bu durum, bu yazının ana fikrini kanıtlar niteliktedir. Ayrıca, proxy her istemi (prompt) gördüğü ve her sağlayıcı anahtarını elinde tuttuğu için riski tek bir noktada toplarlar. Bu yapıyı bir kolaylık aracı olarak değil, altyapı olarak değerlendirin. Bir harness'ın API anahtarlarını ve model ayarlarını nerede tuttuğu sorunu, bir katman altta da aynı şekilde geçerlidir.

Harness bir VPS üzerinde çalıştığında neler değişir

Harness dizüstü bilgisayarınızdan çıkıp kiraladığınız bir sunucuya taşındığında dört şey değişir.

Kapağı kapattığınızda çalışmaya devam eder. Uzun süren bir görev, yolculuğunuzdan ve pil ömrünüzden etkilenmez. Görevi tmux içinde başlatın ve oturumdan ayrılın:

tmux new -s agent
# start the harness, then press Ctrl-b and then d to detach
tmux attach -t agent

Yeniden başlatma sonrasında geri gelmesi gereken her şey için bir kullanıcı servisi, terminal oturumundan daha verimlidir:

loginctl enable-linger $USER
systemctl --user status my-agent.service

loginctl enable-linger insanların gözden kaçırdığı kısımdır. Bu ayar olmadan systemd, son SSH (secure shell) oturumunuz kapandığı anda kullanıcı servislerinizi durdurur; bu nedenle siz çıkış yaptığınızda aracı (agent) ölür ve hiçbir hata çıktısı vermez. dsh'ı systemd altında başsız (headless) çalıştırma bölümünde birim dosyası (unit file) yer almaktadır. Sunucuda bir oturum aktif olduğunda, ikincisi size ekstra bir maliyet getirmez ve aynı makinedeki iki Claude Code oturumu birbirine mesaj gönderebilir; böylece sabah başlattığınız oturum, siz elle aktarmak zorunda kalmadan işi diğerine devredebilir.

Anahtarlarınızı tutar. Sağlayıcı anahtarı artık o sunucudaki bir yapılandırma dosyasında yaşar. Dosyayı kimlerin okuyabildiğini kontrol edin:

ls -l ~/.config

Kullanıcınız olarak çalışan herhangi bir süreç, aracı ve aracın çalıştırmayı seçtiği her şey dahil olmak üzere bu dosyayı okuyabilir.

Diğer makinelerinize erişebilir. Diğer makinelerinizle aynı özel ağ üzerinde bulunan bir VPS, aracıya bu makinelere giden bir yol sağlar. Asıl amaç budur ancak bu aynı zamanda etki alanını (blast radius) da belirler.

Nerede olursanız olun erişilebilirdir. Çoğu harness bir web arayüzü sunar ve çoğu bunu bir nedenden dolayı loopback adresine bağlar. Kendi ayarlarınızı kontrol edin:

ss -tlnp | grep 3080

127.0.0.1:3080, yalnızca sunucunun kendisine bağlanabileceği anlamına gelir. 0.0.0.0:3080 ise adresi bulan herkesin bağlanabileceği anlamına gelir. Bağlama adresini değiştirmek yerine, bir loopback arayüzüne SSH tüneli üzerinden erişin:

ssh -N -L 3080:127.0.0.1:3080 you@your-server

Ardından dizüstü bilgisayarınızdaki tarayıcıda http://127.0.0.1:3080 adresini açın. Trafik SSH oturumu içinde taşındığından, internete yeni bir şey açılmamış olur.

Bunların her biri aynı zamanda bir güvenlik argümanıdır

Dört özelliği bir saldırganın bakış açısıyla tekrar inceleyin.

Gözetimsiz çalıştığı için modelin bir yolu yanlış okuduğu anı kimse fark etmez. Anahtarlarınızı tuttuğu için okunabilir tek bir yapılandırma dosyası, tüm sağlayıcı hesabınızın ele geçirilmesi anlamına gelir. Diğer makinelerinize erişebildiği için bir prompt injection, yani bir web sayfasında veya ajanın okuduğu bir dosyada gizlenmiş talimatlar, artık veritabanı sunucunuza giden bir yol bulmuş demektir. Her yerden erişilebilir olduğu için parola koruması olmayan ve 0.0.0.0 adresine bağlı bir web arayüzü, herkese açık internet üzerinde bir shell erişimi sağlar.

Her durum için çözüm sıkıcıdır ve her seferinde aynıdır. Ajanı kendi kullanıcı hesabınızla değil, ayrı ve yetkisiz bir kullanıcı hesabıyla çalıştırın:

sudo adduser --disabled-password --gecos "" agent

Web arayüzünü loopback üzerinde tutun ve SSH üzerinden erişin. Ajana, işini tamamlamasına yetecek en kısıtlı kimlik bilgilerini verin; yapay zeka ajanlarından sırları uzak tutmak konusu bunu detaylıca ele almaktadır. Siz başında değilken çalışan her şey için, dikkatli bir kurulum yerine tek kullanımlık bir makine daha güvenlidir: kodlama ajanlarını geçici bir VM içinde çalıştırmak ve Claude Code aracını bir VPS üzerinde güvenli çalıştırmak yöntemlerinin her ikisi de bu yolu izler.

Bir aracı (agent) altyapısına ihtiyacınız var mı?

Eğer işiniz tek seferde tek bir soru sormaktan ibaretse, bir sohbet penceresi yeterlidir; bir altyapı ise yalnızca denetlemeniz gereken bir döngü ekler. Bir altyapı, görev gerçek dosyalar üzerinde birçok adım gerektirdiğinde veya siz uyurken çalışmaya devam etmesi gerektiğinde maliyetini karşılamaya başlar.

Bu kategorideki araçların çoğu henüz yenidir. dsh, Ağustos 2026 itibarıyla kendi README dosyasında geliştirici önizlemesi (developer preview) aşamasında olduğunu belirtmektedir; diğerleri ise bugün yazdığınız bir yapılandırma dosyasının gelecek ay düzenlenmesini gerektirecek kadar hızlı değişmektedir. Bu durum, kurulumunuzu küçük ve tekrarlanabilir tutmanız ve yaptığınız değişiklikleri not etmeniz için bir nedendir. Aynı kısıtlama, aracıyı çalışan en küçük değişikliğe yönlendiren bir beceri sayesinde, gözetimsiz bir çalışma sonunda gerçekten okuyabileceğiniz bir fark (diff) elde etmenizi sağlayan döngü içinde de yardımcı olur. Bir sunucuda tek bir altyapı ile başlayın, ona tek bir iş ve kısıtlı bir anahtar verin; erişimini ancak o ilk iş bir hafta boyunca sorunsuz ve sıkıcı bir şekilde ilerledikten sonra genişletin. Bugün çalıştırılmaya değer self-hosted aracılar, ilkini seçmek için makul bir başlangıç noktasıdır.

FAQ

Agent harness basitçe nedir?

Modelin etrafındaki programdır. Model metin üretir ve araçları kullanma talebinde bulunur. Harness, sürekli soru soran döngüyü çalıştırır, modelin istediği araçları yürütür, hangi araçların izinsiz çalışabileceğine dair kuralları uygular ve oturum durumu ile dosyaları turlar arasında korur. Modeli değiştirdiğinizde harness çalışmaya devam eder; bu da ikisinin ayrı şeyler olduğunun en net göstergesidir.

Claude Code bir model mi yoksa bir harness mı?

Claude Code bir harness'tır. Bir döngüye, izin sistemine ve yerleşik dosya ve kabuk araçlarına sahip bir terminal programıdır. Claude, varsayılan olarak çağırdığı model ailesidir. Aynı ayrım, yüklediğiniz bir Node programı olan DeepSeek Harness (dsh) ile API üzerinden sunulan DeepSeek modelleri için de geçerlidir. Bir makineye harness yüklersiniz. Bir modeli ise ağ üzerinden çağırırsınız.

Agent harness ile agent framework arasındaki fark nedir?

Framework, içe aktarıp kod yazdığınız bir kütüphanedir; bu sayede döngü, yeniden denemeler ve bağlam yönetimi sizin kontrolünüzdedir. Harness ise çalıştırdığınız bir programdır; dolayısıyla tüm bu özellikler, kod yazmak yerine yapılandırdığınız varsayılan ayarlarla birlikte gelir. Uygulamada bu çizgi belirsizdir: Ağustos 2026 itibarıyla, LangChain'in Deep Agents'ı, kendi deposunun "her şey dahil bir agent harness" olarak adlandırdığı, içe aktarılabilir bir SDK'dır. Döngüyü kendinizin yazıp yazmayacağınıza bakın. Bu sorunun cevabı, hangi terimin durumunuza uygun olduğunu belirler.

Agent harness çalıştırmak için bir VPS'e ihtiyacım var mı?

Hayır. Burada adı geçen her harness bir dizüstü bilgisayarda çalışır. Bir sunucu dört şeyi değiştirir: bilgisayarın kapağını kapattığınızda agent çalışmaya devam eder, anahtarlarınızı sürekli açık olan bir makinede tutar, diğer sunucularınıza erişebilir ve aynı oturuma herhangi bir cihazdan geri dönebilirsiniz. Bunların her biri aynı zamanda bir güvenlik konusudur; bu nedenle agent'a kendi kullanıcı hesabını atayın ve herhangi bir web arayüzünü 127.0.0.1 adresine bağlı tutun.

Aynı harness içinde farklı bir model kullanabilir miyim?

Genellikle evet; bu, bir harness'ın belirleyici özelliğidir. Çoğu, yapılandırmasında bir model adı ve temel URL alır; bu nedenle birini başka bir sağlayıcıya yönlendirmek, yeniden yazmaktan ziyade bir düzenleme işlemidir. Bir harness buna direnirse, harness ile sağlayıcı arasına Claude Code Router gibi yerel bir yönlendirici yerleştirilir ve istekleri çevirerek varsayılan olarak 127.0.0.1:3456 adresine bağlanır. Bu proxy'ye dikkat edin, çünkü her istemi görür ve her anahtarı elinde tutar.