İçeriğe geç
ivralo
Bölümler

Dokümantasyon / İşletim

Gözlemlenebilirlik

ivralo her çalıştırmayı ve her araç çağrısını argümanları ve dönüş değeriyle birlikte saklar. Bu sayfada bu çalıştırmaları geri okuyan komutlar ve span'leri kendi OpenTelemetry collector'ınıza göndermenin yolu anlatılıyor.

Modeli suçlamadan önce

Bir çalıştırma ters gittiğinde prompt'u ya da modeli değiştirmeden önce, modelin gerçekte ne gördüğüne bakın:

ivralo trace last

Sürprizlerin çoğu orada açıkça görünür: başarısız olan bir araç, bir komutu reddeden politika, modelin sandığı gibi olmayan bir dosya, zaman aşımına uğrayan bir model isteği.

Çalıştırmaları listelemek: ivralo runs

ivralo runs

Oturumun çalıştırmalarını en yeniden eskiye listeler: ne istendiğini, kimin yaptığını, maliyetini. Kaç tane gösterileceğini -n belirler (varsayılan 20). Çalıştırmalarla ilgili bütün komutlar, başka bir konuşmanın çalıştırmalarını okumak için --session (-s) alır; konuşmaları ivralo sessions listeler.

Bir çalıştırmayı açmak: ivralo trace

ivralo trace bir çalıştırma alır: last (varsayılan) ya da id'sinin en az ilk sekiz karakteri. Her araç çağrısını argümanları, çıktısı ve çağrıyı yapan üyeyle birlikte basar.

SeçenekNe yapar
--tail NHer çıktıdan kaç satır gösterileceği (varsayılan 12)
--jsonAraç çağrılarının düz listesi, kendi araçlarınızda kullanmanız için JSON olarak
--htmlÇalıştırmayı ekrana basmak yerine tek başına açılabilen tek bir HTML dosyasına yazar
--out PATH--html'in nereye yazacağı; varsayılanı workspace'te .ivralo/traces/

HTML dosyasında her araç çağrısı için bir çubuğun yer aldığı bir zaman çizelgesi, her çağrının tam çıktısı ve cevap bulunur. Stili dosyanın içindedir ve ağdan hiçbir şey yüklemez; böylece ivralo kurulu olmayan bir makinede de açılır, örneğin bir issue'ya eklenmiş dosya olarak:

ivralo trace last --html --out trace.html

Oturumda /trace aynı işi son çalıştırma için yapar.

Başarısız çağrı nedenini söyler

Her araç hatayı aynı biçimde bildirir ve trace bu kodu çağrının yanında gösterir. Çalıştırmanın bütün hataları en sonda tek satırda sayılır:

  shell     rmdir /s /q .                         0.0s  failed REFUSED_BY_POLICY
  read_url  https://example.com/pricing           1.2s  failed NETWORK_BLOCKED

failures: 1 NETWORK_BLOCKED, 1 REFUSED_BY_POLICY
KodAnlamı
REFUSED_BY_POLICYBir koruma hayır dedi. Çalıştırma tasarlandığı gibi işledi; düzeltilecek bir şey yok.
TIMEOUTAracın süresi dolduğunda iş hâlâ sürüyordu
NETWORK_BLOCKEDİsteği egress politikası ya da karşı taraf durdurdu
AUTH_REQUIRED, PERMISSION_DENIEDKullanılabilir bir kimlik bilgisi yok ya da olanın buna erişimi yok
TOOL_UNAVAILABLEAraç ayarlanmamış ya da arkasında çalışan bir servis yok
UNCLASSIFIEDÇağrı hata fırlattı ve hiçbir kural onu tanımadı. Bir ivralo aracında bu bir bug'dır.

Listede birkaç kod daha var (RATE_LIMITED, INVALID_ARGUMENT, CONFLICT, RESOURCE_EXHAUSTED, PARSE_ERROR, PATCH_CONFLICT, VERIFICATION_FAILED); her birinin adı olan şeyi anlatır.

Başarısız model isteği

Başarısız bir model isteği trace'te bir model satırı bırakır: HTTP durumu, sağlayıcının hata kodu, istek id'si, cevap gövdesinin başı ve isteğin boyutu. Sınırlanan (429) ya da erişilemeyen (503) bir endpoint ve kopan bir bağlantı en fazla üç kez yeniden denenir; zaman aşımı bir kez, reddedilen bağlantı hiç denenmez. 400, modelin kabul edemediği bir istek demektir, çoğu zaman da bağlam fazla büyüktür; bu hiçbir zaman tekrarlanmaz.

Konuşmayı dışa aktarmak: ivralo export

ivralo export last --format md

Konuşmanın tamamını tek bir dosyaya yazar: her tur, araç çağrıları ve cevaplar. --format için html (tek başına açılabilen tek bir sayfa, varsayılan) ya da md seçilebilir. --out ile bir yol vermezseniz dosya workspace'te .ivralo/exports/ altına yazılır. Oturumda /export aynı işi yapar.

Bir iddia nereden geldi

Trace bir çalıştırmanın yaptığı her şeyi gösterir. Cevaptaki tek bir sayının ya da cümlenin hangi dosyaya, satıra ya da araç çıktısına dayandığını bulmak için ivralo why kullanın; bkz. Bir iddianın kaynağı. Saklanmış bir çalıştırmayı, araçların geçen sefer verdiği cevaplarla yeniden çalıştırmak için bkz. Kayıt ve tekrar oynatma.

Makine: ivralo doctor

ivralo doctor servislerin yanında makinenin kendisine de bakar:

  • disk: workspace'in bulunduğu diskteki boş alan (geçmiş ve indeks oraya yazıldığı için 2 GiB'ın altında satır başarısız görünür), geçmişin ne kadar yer kapladığı ve veritabanının boyutu;
  • ollama: sunucunun sürümü ve yüklü her modelin ne kadarının GPU'da olduğu. Kısmen CPU'da çalışan bir model satırı başarısız gösterir; her token'ın yavaş gelmesinin olağan nedeni budur;
  • tracing: span'lerin makineden çıkıp çıkmadığı ve nereye gittiği.

Bölümlerin tamamı için bkz. Doctor.

OpenTelemetry

ivralo her çalıştırmanın span'lerini (takım, her üye, her model çağrısı, her araç çağrısı) bir OTLP/HTTP collector'a gönderebilir: Jaeger, Grafana Tempo, Arize Phoenix ya da OpenTelemetry Collector.

Bir span prompt'u, bütün araç argümanlarını ve araç çıktılarını taşıdığı için bu özellik siz bir endpoint belirleyene kadar kapalıdır. Gerekli paketler isteğe bağlı otel extra'sındadır. Bir checkout'tan kuruyorsanız:

uv sync --extra otel

Tool olarak kurduysanız extra'yı kurduğunuz extra'ların yanına ekleyin, örneğin ivralo[pg,otel]. Ardından endpoint'i .env içinde ayarlayın:

IVRALO_OTEL_ENDPOINT=http://localhost:4318
IVRALO_OTEL_SERVICE=ivralo
DeğişkenVarsayılanAnlamı
IVRALO_OTEL_ENDPOINTayarlanmamışCollector. URL'de yol yoksa /v1/traces eklenir. Ayarlanmamışsa hiçbir şey dışarı gönderilmez.
IVRALO_OTEL_SERVICEivraloSpan'lerde görünen servis adı

Extra kurulmadan bir endpoint ayarlanırsa açılışta bir uyarı çıkar ve ivralo doctor bunu bulgu olarak gösterir; ivralo hiçbir zaman çökmez, çalıştırma trace olmadan devam eder.