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çenek | Ne yapar |
|---|---|
--tail N | Her çıktıdan kaç satır gösterileceği (varsayılan 12) |
--json | Araç ç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
| Kod | Anlamı |
|---|---|
REFUSED_BY_POLICY | Bir koruma hayır dedi. Çalıştırma tasarlandığı gibi işledi; düzeltilecek bir şey yok. |
TIMEOUT | Aracı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_DENIED | Kullanılabilir bir kimlik bilgisi yok ya da olanın buna erişimi yok |
TOOL_UNAVAILABLE | Araç 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şken | Varsayılan | Anlamı |
|---|---|---|
IVRALO_OTEL_ENDPOINT | ayarlanmamış | Collector. URL'de yol yoksa /v1/traces eklenir. Ayarlanmamışsa hiçbir şey dışarı gönderilmez. |
IVRALO_OTEL_SERVICE | ivralo | Span'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.