İnteraktif olmayan oturum başlatma

İnteraktif olmayan oturumlar, Bob Shell'i interaktif bir oturum başlatmadan doğrudan komut satırından kullanmanı sağlar. Otomasyon, scripting ve toplu işlem görevleri için kullan.

İnteraktif olmayan oturum ne zaman kullanılır

İnteraktif olmayan oturumlar şunlar için en iyi şekilde çalışır:

  • Bob Shell'i otomasyon script'lerine entegre etme.
  • Tek bir komutla birden fazla dosyayı işleme.
  • İnteraktif oturum başlatmadan hızlı bilgi edinme.
  • Koddan dokümantasyon oluşturma.
  • Yapılandırılmış JSON çıktısına ihtiyaç duyan CI/CD pipeline'ları.

İnteraktif olmayan oturum başlatma

Bob Shell'i komut satırından interaktif olmayan şekilde çalıştırmak için bob run alt komutunu kullan.

Söz dizimi

bob run [options] [prompt...]

Bir promptu stdin üzerinden de aktarabilirsin:

echo "Explain this project" | bob run

Etkili kullanım için ipuçları

  • Büyük dosyaları veya projeleri işlerken hangi dosyaların analiz edileceğini belirt.
  • Script'lerde güvenilir ayrıştırma için --format json veya --format stream-json kullan.
  • Otomatik iş akışlarında kaynak kullanımını sınırlamak için --max-cost ve --max-turns kullan.
  • Çok satırlı promptlar için bunları bir dosyaya kaydet ve bob run'a aktar:
cat prompt.txt | bob run

Temel kullanım

Prompt'u doğrudan çalıştırma

bob run "Explain this project"

İçeriği girdi olarak aktarma

Bob Shell'e metin içeriği aktarabilirsin:

cat buildError.txt | bob run "Explain this build error"

Sonuçları dosyaya kaydetme

Sonuçları kaydetmek için çıktıyı yeniden yönlendir:

bob run "Review @bigFile.java" > review.md

Proje dosyalarını referans alma

Projendeki dosyaları referans almak için @ sembolünü kullan:

bob run "Summarize the functionality in @src/main.js"

Maliyet ve tur sınırları belirleme

bob run --max-cost 0.50 --max-turns 10 "Refactor @app.js"

Oturum yönetimi

Önceki oturumu devam ettirme

bob run --resume <task-id> "Continue from where we left off"
bob run --resume latest "Keep going"

Genel yardımcı flag'ler

Bazı flag'ler bob run veya bob chat ile değil, doğrudan bob ile çağrılır. Kaydedilmiş görevleri listelemek için şu komutu çalıştır:

bob --list-tasks

Şu flag'ler kullanılabilir:

FlagAçıklama
--list-tasks [n|all]Mevcut workspace için kaydedilmiş görevleri listele ve çık. Varsayılan 20'dir. Kaç tanesinin gösterileceğini kontrol etmek için bir sayı veya all geç.
--limit <n>--list-tasks ile gösterilecek maksimum görev sayısı.
--show-licenseIBM lisans sözleşmesini göster ve çık.

Makine tarafından okunabilir çıktı

stdout bir TTY olmadığında — örneğin çıktıyı yönlendirdiğinde veya pipe ettiğinde — --list-tasks, insan tarafından okunabilir tablodan NDJSON'a geçer; satır başına bir JSON nesnesi olur.

Her satır şu şekle sahiptir:

{"id":"<uuid>","title":"<string>","status":"<string>","workspace":"<file-uri>","updatedAt":<unix-ms>}
AlanTürAçıklama
idstring (UUID)--resume ile kullanılabilir benzersiz görev tanımlayıcısı
titlestringGörev başlığı, ilk mesaja, ardından id'ye geri döner
statusstringGörev durumu (active, completed, paused)
workspacestring (file URI)file: URI olarak workspace'in mutlak yolu
updatedAtnumberUnix milisaniye cinsinden son güncelleme zaman damgası

Örnekler

# jq'ya pipe et
bob --list-tasks all | jq '.id'

# Dosyaya kaydet ve sonra işle
bob --list-tasks 100 > tasks.ndjson

# Lisans sözleşmesini göster
bob --show-license

Çıktı biçimleri

--format seçeneği, bob run'ın çıktısını nasıl yazacağını kontrol eder. Script'ler veya CI pipeline'ları için çıktıyı yakalarken bu seçeneği kullan.

pretty (varsayılan)

Terminal ekranı için uygun, insan tarafından okunabilir metin çıktısı.

json

Oturum tamamlandıktan sonra tek bir JSON nesnesi yayar. Tam sonucu programatik işleme için yakalamak amacıyla bu biçimi kullan.

Şema:

AlanTürAçıklama
typestringHer zaman "result"
timestampstringISO 8601 (tarih-saat standardı) tamamlanma zaman damgası
statusstring"success" veya "error"
statsobjectOturum istatistikleri — aşağıdaki alanlara bkz.
stats.task_idstringTamamlanan görev için benzersiz tanımlayıcı
stats.total_tokensnumberKullanılan toplam token sayısı
stats.input_tokensnumberKullanılan giriş token'ları
stats.output_tokensnumberÜretilen çıktı token'ları
stats.cache_read_tokensnumberÖnbellekten okunan token'lar
stats.cache_write_tokensnumberÖnbelleğe yazılan token'lar
stats.cache_rationumberÖnbellek isabet oranı
stats.duration_msnumberOturum süresi (milisaniye)
stats.session_costsnumberOturum için toplam maliyet
stats.tool_callsnumberYapılan araç çağrısı sayısı
last_messagestringSon asistan mesajı

Örnek:

bob run --format json "What is the entry point?" > result.json

stream-json

Oturum ilerledikçe satır sınırlayıcılı JSON (NDJSON) — satır başına bir olay nesnesi — yayar. Çıktıyı bir pipeline'a aktarmak veya olayları gerçek zamanlı olarak işlemek için bu biçimi kullan.

Olay türleri:

Olay türüTemel alanlarAçıklama
messagerole, content, isReasoning?Bir kullanıcı veya asistan mesajı
tool_usetool_name, tool_id, parametersBob tarafından başlatılan bir araç çağrısı
tool_resulttool_id, status, output?, error?Bir araç tarafından döndürülen sonuç
errorseverity, messageMaliyet/tur sınırına ulaşıldı
resultstatus, stats, last_messageOturum sona erdiğinde yayılan son özet

Pipeline örneği:

bob run --format stream-json "Audit @src/" \
  | grep '"type":"result"' \
  | jq '.last_message'
Not:

bob run ile interaktif olmayan şekilde çalışırken tüm araçlar önceden onaylanır. Yürütme sırasında araç çağrılarını onaylaman istenmez.

Seçenekler

SeçenekAçıklama
--format <format>Çıktı biçimi: pretty (varsayılan), json veya stream-json
--mode <mode>Başlangıç modu (örneğin, agent, plan, ask)
--max-cost <bobcoins>Oturum durmadan önce Bobcoins cinsinden maksimum harcama
--max-turns <n>Oturum durmadan önce maksimum ajan turu sayısı
--disable-mcpBu oturum için tüm MCP sunucularını devre dışı bırak
--disable-subagentsBu oturum için alt ajan oluşturmayı devre dışı bırak
--disable-tool-groups <groups>Belirli araç gruplarını devre dışı bırak (virgülle ayrılmış, örneğin execute,mcp)
--workspace <path>Çalışma alanı kök dizinini geçersiz kıl
--log-level <level>Log ayrıntı düzeyi: error, warn, info, debug veya trace
--resume <task-id>Görev kimliğiyle önceki bir görevi devam ettir
--resume latestEn son görevi devam ettir
--team-id <id>Belirli bir takım bağlamında çalıştır (general türünde API key kullanırken gereklidir)
--trustGeçerli klasörü güvenilir olarak işaretle
--accept-licenseIBM lisans sözleşmesini kabul et ve sormadan devam et
Bu konu nasıl?