İçeriğe geç
edumintsBlog
LLM3 dk okuma

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

Kaynak: dev.to

Paylaş
İç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..c8 dosya 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 add komutuyla 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: true ile devre dışı bırakabilir veya kendi özel eklentilerinizi ekleyebilir. Tam çözümlenmiş ağacı görmek için dsh --profile x --dump-config komutu ç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