[Pratikte Yapay Zeka] Aynı İsim, Farklı Katman: DeepSeek Harness (DSH) Açıklaması ve Google Research Harness² ile Karşılaştırması
Kaynak: dev.to

İçindekiler 4 başlık
Hızlı Karşılaştırma: DeepSeek Harness (DSH) ve Google Research Harness²#
Yapay zeka ajanları geliştirirken "harness" (koşum takımı) terimi iki farklı mimari katmanı ifade edebilir:
- Tek cümleyle: DeepSeek Harness (DSH) ajanın çalışma zamanıdır (runtime); Google Research Harness² ise ajanın donatıldığı bileşenler için otomatik bir optimize edicidir.
- "Harness" neyi ifade eder: DSH tarafında ajanı çalıştıran çalışma zamanını; Harness² tarafında ise modelin etrafını saran istemleri (prompts), güvenlik sınırlarını (guardrails), belleği ve yetenekleri (skills) ifade eder.
- Neyi değiştirirsiniz: DSH'de profilleri, YAML yamalarını (patches) ve eklentileri değiştirirsiniz; Harness²'de ise
c1..c8dosya ağacını değiştirirsiniz (çoğu zaman Harness² bunu sizin yerinize otomatik yapar). - Bu seride nerede kullanıldı: DSH, LINE araştırma botunun ajan katmanında; Harness² ise LINE AI kartvizit asistanının kendi kendini geliştirmesinde (self-evolution) kullanıldı.
Giriş: Bir Haftada İki "Harness"#
Yakın zamanlı Harness² üçlemesinde (Bölüm 1, Bölüm 2, Bölüm 3), Google Research'ün google-research/harness2 aracı LINE AI kartvizit asistanına bağlanarak OpenTelemetry izlerini (traces) okuması ve kendi yetenek dosyalarını geliştirmesi sağlandı. Böylece doğruluk oranı %62,5'ten %100,0'a yükseldi.
Aynı hafta içinde, DeepSeek Harness (DSH) üzerine inşa edilen açık kaynaklı deepseek-ai/dsh-superagent-prototype projesiyle birlikte LINE araştırma botunun ajan katmanı Go için ADK'dan DSH'ye taşındı ve canlı ortamda (production) çalışan kkdai/line-research-bot-dsh ortaya çıktı.
Her ikisi de Harness olarak adlandırılsa da pratikte tamamen farklı katmanlarda yer alırlar: DSH, koşum takımının nasıl birleştirilip ata takılarak koşmasını sağladığıyla ilgilidir; Harness² ise o koşum takımındaki her bir kayışı otomatik olarak ayarlamakla ilgilidir. Yazılım geliştirme açısından bu ayrım kritik bir ders sunar: çalışma zamanı altyapısı ile istem/yetenek optimizasyonunu birbirinden ayırmak, her iki aracın aynı sistemde birlikte kullanılabilmesini sağlar.
Kapsam geniş olduğu için içerik iki yazıya ayrılmıştır:
- Bu yazı: DSH çerçevesinin gerçekte ne olduğu (mimari diyagramıyla birlikte) ve Google Harness² ile maddeler halinde karşılaştırması.
- Sonraki yazı: LINE araştırma botunun ADK'dan DSH'ye nasıl taşındığı ve karşılaşılan tuzaklar listesi.
1. DeepSeek Harness'ı (DSH) Anlamak#
Pek çok geliştirici dsh-superagent projesini tek bir ajan SDK'sı sanmaktadır. Oysa sistem iki ayrı katmandan oluşur:
- DeepSeek Harness (DSH): Model çağrılarını, araçları (tools), oturumları, izinleri ve korumalı alanı (sandboxing) eklentiler (plugins) olarak yöneten bir "ajan çalışma zamanı". npm üzerinde
@deepseek-ai/dsh(CLI) ve 100'den fazla@deepseek-ai/dsh-*paketi olarak bulunur. - dsh-superagent: DSH üzerinde çalışan ve onu bir GitHub deposu üzerinde çalışan proaktif bir ajana dönüştüren eklenti paketi (bundle). Bir DSH profiline
dsh plugin addkomutuyla kurulan bir Node paketidir.
1.1 Temel Tasarım: Her Şey Bir Cordis Eklentisidir#
DSH, bir eklenti çerçevesi olan Cordis (@deepseek-ai/cordis) üzerine inşa edilmiştir. Modeller, araçlar, oturum depolama, korumalı alan ve hatta JSON-RPC sunucusu dahil her parça bir eklentidir ("plugin row"). Eklentiler; ctx.llm, ctx.tools, ctx.fs ve ctx.subprocess gibi ctx üzerinden sunulan servisler aracılığıyla iletişim kurar. Bu modülerlik, üretim ortamında yüksek esneklik ve test edilebilirlik sağlar.
Eklentilerin nasıl bir araya getirileceğini bir Profile belirler:
- Bundle: Resmi, önceden birleştirilmiş eklenti setidir (ör.
dsh-sdk-minimal,dsh-base,web,tui,headless). - Profile:
$DSH_HOME/profiles/name/altında yaşar ve hangi paketlerin (bundles) yükleneceğini belirtir. - Patch katmanları: Paketlerin üzerine katmanlanan YAML yamalarıdır. Bir yama; eklenti yapılandırmasını değiştirebilir,
disabled: trueile devre dışı bırakabilir veya kendi özel eklentilerinizi ekleyebilir. Tam çözümlenmiş ağacı görmek içindsh --profile x --dump-configkomutu çalıştırılır.
# Örnek yama: model ayarlarını düzenle, kabuğu kapat, özel eklenti ekle
- id: llm-deepseek
config:
thinking: disabled
- id: persistent-bash
disabled: true
- insert:
- id: line-research-tools
name: 'file:///app/dsh/plugin/index.js'
Kaynak ve atıf
Bu yazı, dev.to üzerinde yayımlanan içerikten yararlanılarak Edumints tarafından yapay zekâ desteğiyle Türkçe hazırlandı. Ayrıntılar ve yazarların kendi anlatımı için orijinaline bakabilirsin:
- dev.to/gde/ai-in-practice-same-name-different-layer-deepseek-harness-dsh-explained-and-compared-with-4p7m