README.tr.md
August 20, 2026 · View on GitHub
"To achieve great things, two things are needed: a plan and not quite enough time." - attributed to Leonard Bernstein
deterministik çoklu ajan CLI orkestrasyonu
website · docs · install · first run · glossary · limitations · name policy · sponsor
简体中文 · 繁體中文 · 日本語 · 한국어 · हिन्दी · বাংলা · Русский · Español · Português · Deutsch · Français · Italiano · Nederlands · Polski · Svenska · Suomi · Українська · Türkçe · العربية · עברית · Bahasa Indonesia · Tiếng Việt · ไทย
Durum: beta. Tek bir kişi tarafından sürdürülmekte olup aktif geliştirme aşamasındadır. Sürüm numarası olgunluğu değil yayınları sayar — ara sürümler (minor) arayüzleri değiştirebilir. Bağımlı olduğunuz her şey için sürümü sabitleyin; gerilemeler (regressions) hızla düzeltilir, bildirin.
Bernstein, CLI kodlama ajanları (Claude Code, Codex, Gemini CLI ve 40'tan fazla diğer ajan) için deterministik bir orkestratördür. Bunları paralel olarak çalıştırır, ürettiklerini doğrulama kapılarıyla (gates) denetler ve daha sonra kontrol edebilmeniz için çalıştırmayı yeterli ayrıntıda kaydeder. Yalıtılmış (air-gap) kurulum profili dahildir. Apache-2.0.
bir bakışta
Dört özellik onu farklı kılar; gerisi ayrıntıdır.
- Koordinasyon döngüsünde LLM yok. Çizelgeleme saf Python'dur, bu nedenle bir çalıştırma baştan sona yeniden üretilebilirdir. Dünün planını yeniden oynatın ve dünün görev grafiğini elde edin.
- Sonradan doğrulanabilir. Yeniden oynatma günlüğü (replay journal) her çalıştırmayı kaydeder ve her zaman açık olan soy kütüğü omurgası (lineage spine) soy kütüğü oluşturan her adımı kaydeder; isteğe bağlı HMAC zincirli denetim günlüğü (
BERNSTEIN_AUDIT=1) çevrimdışı doğrulayabileceğiniz makbuzlar (receipts) ekler. Deterministik olmama durumu, kararsız bir yeniden çalıştırma yerine tam adımda bir karma (hash) uyuşmazlığı olarak ortaya çıkar. Kod dışı çıktılar da aynı muameleyi görür: bir görev bir yapıt sözleşmesi (rapor, veri seti, eylem günlüğü, operasyon sonucu) bildirebilir ve bir git işlemesi (commit) yerine imzalı bir soy kütüğü makbuzu ile tamamlanır. - Tasarım gereği yalıtılmış. Her kodlama görevi, birleştirme kapılarının arkasında kendi git worktree'sini alır; yapıt modundaki görevler
.sdd/workspaces/altında bir çalışma dizini alır. Ajanlar varsayılan olarak değiştirilebilir çalışma alanını paylaşmaz; tek paylaşılan durum, atomik olarak talep edilen görev birikimidir. Daha katı dosya sistemi denetimi sandbox arka uçlarından isteğe bağlıdır. Worktree'leri devre dışı bırakırsanız her görev paylaşılan çalışma kopyasında çalışır. - Geniş ve yerel. 40'tan fazla CLI ajan adaptörü artı genel bir
--promptsarmalayıcısı, dosya tabanlı durum, SaaS aktarımı yok, üçüncü taraf veri düzlemi yok.
Tam liste yetenekler sayfasında yer alır; özellik matrisi kapsamlı dizindir.
30 saniyede kurulum
uv tool install bernstein # or: pipx install bernstein
bernstein init
bernstein doctor # checks a CLI agent is installed and authenticated
bernstein -g "fix the failing test in tests/test_foo.py"
pipx, pip, brew, dnf, npm ve Docker kurulum kılavuzunda ele alınmıştır; yalıtılmış paket kendi air-gap kılavuzuna sahiptir.
Yukarıdaki kayıt gerçek bir çalıştırmadır ve kendi kanıtıyla birlikte gelir. Oturum kaydı, bu çalıştırmanın günlüğünden türetilen imzalı çalıştırma makbuzu ve bunların tamamını sabitleyen genel anahtar docs/assets/demo-run/ dizinindedir. Az önce izlediğiniz çalıştırmayı çevrimdışı doğrulayın:
bernstein verify receipt docs/assets/demo-run/run-receipt.json \
--public-key docs/assets/demo-run/run-receipt.pub.pem
CI, main dalına yapılan her push işleminde kaydedilen makbuzu yeniden doğrular — ve tahrif edilmiş bir kopyanın başarısız olduğunu kanıtlar — böylece yayınlanan kanıt dekoratif bir dosyaya dönüşmez. scripts/record_demo.sh, kaydı, makbuzu ve anahtarı yeni bir gerçek çalıştırmadan yeniden üretir; terminalin içindeki hiçbir şey yapay olarak oluşturulmamıştır.
Devam eden bir çalıştırma, her iki operatör arayüzünden de izlenebilir. Her ikisi de aynı görev API'sini okur, bu nedenle hiçbiri diğerinin gerisinde kalan bir yansıması değildir. bernstein live arayüzünde sol ve sağ sütunlar bağımsız paneller olarak kaydırılır, böylece alt kısımdaki bileşenlere daha kısa terminallerde de erişilebilir.
![]() | ![]() |
|---|---|
bernstein live — terminal kontrol paneli | bernstein gui serve — tarayıcı kontrol paneli |
bir çalıştırmayı kanıtlayın
Buradaki determinizm, inanca dayalı kabul ettiğiniz bir şey değil, bizzat kontrol ettiğiniz bir şeydir. Denetim etkinleştirilmiş olarak bir kez çalıştırın, ardından kaydedilenleri doğrulayın:
BERNSTEIN_AUDIT=1 bernstein -g "fix the failing test in tests/test_foo.py"
bernstein replay list # run ids recorded on disk
bernstein replay latest --verify # recompute the journal head, name the first divergent step
bernstein lineage verify <run_id> # recompute the always-on lineage spine
bernstein audit verify # HMAC chain + Merkle seal (written because audit was enabled)
bernstein audit diagnose <run_id> --signal gate --sign-key KEY
# name the exact step a failure entered the run, as a signed receipt
bernstein verify run <run_id> --signing-key-path key.pem # sign one portable run receipt
bernstein verify receipt .sdd/runs/<run_id>/run-receipt.json # verify it offline: file only
Günlük her çalıştırmada yazılır; soy kütüğü omurgası her zaman açıktır ve soy kütüğü taşıyan her adım için bir girdi kazanır, böylece kısa bir çalıştırma geçerli, boş bir omurga ile tamamlanabilir. bernstein audit verify, yalnızca çalıştırma BERNSTEIN_AUDIT=1, bir uyumluluk ön ayarı veya bernstein run --audit ile başlatıldığında kontrol edilecek bir zincire sahiptir. --audit bayrağı bernstein run komutuna aittir; yukarıdaki bernstein -g biçiminde ortam değişkenini ayarlayın.
Bir çalıştırma makbuzu, gömülü genel anahtarla birlikte Ed25519 ile imzalanmış tek bir özne altında günlük başlığını, çalıştırma omurga girdileri yazdığında soy kütüğü omurgası başlığını ve isteğe bağlı olarak bir denetim zinciri aralığını bağlar. Bu dosyaya ve operatörün genel anahtarına sahip bir denetçi, gömülü eylemlerin ve zincirlerin değiştirilmediğini doğrulayabilir: HMAC anahtarı yok, canlı .sdd/ yok ve tahrifat durumunda ilk sapan adımı adlandıran 2 çıkış kodu. Bu makbuz, içine yerleştirdiği günlük durumunu tanımlar; bu durumun eksiksiz tamamlanmış günlük olduğunu kanıtlamak ayrıca bağımsız bir başlık/sayım mührü gerektirir. Yalnızca dosya ile ve --public-key sabitlemesi olmadan kontrol yalnızca bütünlük içindir. Ayrıntılar deterministik yeniden oynatma bölümündedir.
Aynı doğrulanabilirlik değerlendirme sayıları için de geçerlidir. bernstein bench run <suite> --reliability k (ayrıca bernstein eval --reliability k olarak da yazılır), her görevi sabit koordinasyon altında k kez çalıştırır ve ardından pass@1 tavanının yanında bir pass^k tabanı (tüm k denemeler başarılı olmalıdır) raporlar. Bu sonuç, bernstein bench reliability-verify komutunun çevrimdışı olarak yeniden hesapladığı imzalı bir makbuzda mühürlenir, böylece uydurma bir taban doğrulamadan geçemez. Ayrıntılar: pass^k güvenilirlik tabanı.
nasıl çalışır
Her hedef dört aşamadan geçer:
- Ayrıştırma (Decompose). Yönetici hedefinizi roller, atanan dosyalar ve tamamlanma sinyalleri içeren görevlere böler. Tek bir LLM çağrısı, sonrasında ise tamamen saf Python.
- Başlatma (Spawn). Ajanlar, her kodlama görevi için birer adet olmak üzere yalıtılmış git worktrees içinde başlar; yapıt modundaki görevler ise normal bir çalışma dizini alır. Ana dal temiz kalır.
- Doğrulama (Verify). Denetçi (janitor) somut sinyalleri kontrol eder: testler geçer, dosyalar mevcuttur, lint temizdir, tipler doğrudur.
- Birleştirme (Merge). Doğrulanmış çalışma main dalına aktarılır. Başarısız görevler yeniden denenir veya farklı bir modele yönlendirilir.
Zamanlayıcının neden saf Python olduğu ve bunun getirdiği ödünleşimler: neden deterministik.
günlük komutlar
cd your-project
bernstein init # creates .sdd/ workspace, bernstein.yaml + templates/
bernstein -g "Add rate limiting" # agents spawn, work in parallel, verify, exit
bernstein live # watch progress in the TUI dashboard
bernstein run plan.yaml # multi-stage plan: skip LLM planning, execute directly
bernstein stop # graceful shutdown with drain
Operatör arayüzünün tamamı (PR otomasyonu, zamanlamalar, sohbet köprüleri, autofix arka plan programı) operatör komutları sayfasındadır.
Depo hijyen kapıları: bernstein readme-l10n verify, çevrilmiş README'leri İngilizce kaynaktan sapan bir PR'ı başarısız kılar (güncelliğini yitirmiş bölümü adlandırarak); bernstein readme-l10n sync, İngilizce düzenlemelerden sonra bunları yeniden bağlar. Bkz. readme-l10n.
desteklenen ajanlar
Claude Code, Codex CLI, Gemini CLI, GitHub Copilot CLI, Cursor, Aider, Goose, Muse Code, OpenAI Agents SDK, Amp, Cody, Continue, Devin Terminal, Junie, Kilo, Kiro, AWS Q Developer, Ollama, OpenCode, OpenHands, Open Interpreter, gptme, Plandex, AIChat, Letta Code, Qwen ve daha fazlası. Adaptör dizini bunlardan 30'u için kurulum komutlarını içerir. bernstein integrations list, neyin çözümlendiğine dair tek doğruluk kaynağı olan src/bernstein/adapters/registry.py dosyasındaki 51 bağlı entegrasyonun tamamını listeler. Bunların 49'u seçilebilir ajan adaptörleridir; diğer iki satır ise test taslağı mock ve uç nokta profili self-hosted-endpointstir. --prompt bayrağına sahip diğer her şey genel sarmalayıcı aracılığıyla çalışır.
Aynı çalıştırmada ajanları birleştirin: standart şablon kodlar için ucuz yerel modeller, mimari için daha güçlü bulut modelleri. bernstein integrations list --installed makinenizde nelerin mevcut olduğunu gösterir.
ön sayfanın ötesinde
Daha derinlemesine tüm konular belgelendirme sitesinde yer alır:
| sayfa | kapsamı |
|---|---|
| capabilities | tam yetenek listesi: MCP sunucu modu, imzalı ajan kartları, sandbox arka uçları, yapıt havuzları, düzenleyici eşlemeler |
| who this is for | değerin nerede oluştuğu ve Bernstein'ın nerede yanlış araç olduğu |
| workflows | ajan / komut / döngü düğümlerinden oluşan bildirimsel YAML DAG'ları |
| web UI | TUI'nin kullandığı API üzerinde çalışan tarayıcı kontrol paneli |
| cloud execution | deneysel: kendi hesabınızda R2 çalışma alanı senkronizasyonu ile Cloudflare Workers üzerinde ajanları çalıştırın. Barındırılan api.bernstein.run hizmeti henüz kullanılamıyor |
| datasources | salt okunur sorgu makbuzları ve her sonucu türetildiği şema anlık görüntüsüne bağlayan sorgu sürücüsü |
| agent catalogs | rolleri yerleşik şablonların dışındaki ajan tanımlarına yönlendirin — genel bir YAML/SKILL.md dizini veya Claude Code eklenti düzeni |
| security | puan kartı, bulanık test (fuzzing), güvenlik sıkılaştırma |
| architecture | sistemin iç mekanizması ve çalışma prensibi |
neden bu isim?
Bernstein, adını Amerikalı orkestra şefi ve besteci Leonard Bernstein'dan almıştır. Proje, CLI kodlama ajanlarından oluşan bir ekibi, Bernstein'ın New York Filarmoni Orkestrası'nı yönettiği gibi orkestre eder: her müzisyen tam zamanında girer, partisyon deterministiktir, sonuçtan orkestra şefi sorumludur.
bernstein'ı yazdım çünkü üç kodlama ajanını paralel çalıştırıp deterministik olmayan birleştirmeler alırken ayda 400 dolar claude faturası ödüyordum. Apache 2.0, tek kişi tarafından sürdürülmektedir. Canlı istatistikler: bernstein.run.
bahsedilen yerler
vinta/awesome-python listesinde yer aldı, Augment Code'un açık kaynaklı ajan orkestratörleri incelemesinde ele alındı ve Python Weekly #742 bülteninde listelendi. Yaklaşımı ayrıca awesome-agentic-patterns içinde deterministik sıfır-LLM orkestrasyonu deseni olarak belgeledik.
Tüm kapsam: 20'den fazla awesome listesi, dizin, bülten ve atıf
Her awesome listesi girdisi, katalog kaydı, önceki çalışma atıfı ve bülten bahsi dahil olmak üzere izlenen listenin tamamı docs/mentions.md adresindedir. Girdiler ortaya çıktıkça eklenir; düzeltmeler issue veya PR yoluyla memnuniyetle karşılanır.
katkıda bulunma, destek, lisans
PR'lar memnuniyetle karşılanır; CONTRIBUTING.md kurulum ve kod stilini içerir. Güvenlik bildirimleri SECURITY.md üzerinden yapılır. Bernstein size zaman kazandırıyorsa: GitHub Sponsors. İletişim: forte@bernstein.run.
Atıf meta verileri CITATION.cff dosyasındadır. Lisans: Apache-2.0; proje adı TRADEMARKS.md dosyasında ayrıca ele alınmıştır.
Alex Chernysh · GitHub · X · bernstein.run

