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

Dokümantasyon / İşletim

Sorun giderme

Sık karşılaşılan sorunlar, nedenleri ve çözen ayar ya da komut. Önce ivralo doctor çalıştırın, ardından çalıştırmaya ivralo trace last ile bakın.

Önce: ivralo doctor

ivralo doctor

Doctor ortamı bölüm bölüm kontrol eder: veritabanı, model, disk, skill'ler, entegrasyonlar, izinler, API ve daha fazlası. Her satır ok ya da fail olur; başarısız satırın hemen altında nasıl düzeltileceği yazar:

providers
  fail  model endpoint http://gpu-box:8000/v1  does not answer ([Errno 111] Connection refused)
        check --model-url (IVRALO_OPENAI_COMPATIBLE_URL in .env) and that the machine serving the model is up

Çıktı Everything checks out. ya da Some checks failed. ile biter; bir satır bile başarısızsa 1 ile çıkar, yani script'lerde de kullanılabilir. İşe başarısız satırları düzelterek başlayın. Bölümlerin tamamı için bkz. Doctor.

Sonra: ivralo trace last

Modeli suçlamadan önce modelin gerçekte ne gördüğüne bakın:

ivralo trace last

Her araç çağrısı argümanları ve çıktısıyla oradadır. Başarısız çağrıların yanında kodu yazar (REFUSED_BY_POLICY, TIMEOUT, NETWORK_BLOCKED, ...); başarısız bir model isteği için de durum kodunu ve sağlayıcının cevabını içeren bir model satırı bulunur. Ayrıntılar Gözlemlenebilirlik sayfasında.

Veritabanına ulaşılamıyor

Could not reach PostgreSQL at postgresql+psycopg://ivralo:***@127.0.0.1:5432/ivralo

Ne yapacağınız veritabanını nasıl kurduğunuza bağlı:

KurulumÇözüm
Docker ComposeAna dizinde docker compose up -d çalıştırın
ivralo'nun ana dizinde kurduğu clusterBir sonraki ivralo süreciyle birlikte başlar. Ayakta olup olmadığını ve verinin nerede durduğunu ivralo doctor gösterir.
--postgres managedCluster'ı sizin servis yöneticiniz başlatır. ivralo doctor gerekli pg_ctl satırlarını basar.
Kendi sunucunuz.env'deki IVRALO_DB_URL'yi ve sunucunun ayakta olduğunu kontrol edin

IVRALO_PG_HOST'un varsayılanı localhost değil 127.0.0.1'dir: Windows localhost'u önce ::1'e çözer, container ise yalnızca IPv4'te dinler. Bkz. PostgreSQL.

Model cevap vermiyor

BelirtiÇözüm
Failed to connect to OllamaOllama'yı başlatın (ollama serve). ivralo OLLAMA_HOST'u değil, IVRALO_OLLAMA_HOST'u okur.
the model's endpoint could not be reached.env'deki URL'yi ve modeli sunan makinenin ayakta olduğunu kontrol edin. Doctor'daki providers satırı bağlantıyı dener.
the model's endpoint answered 503 (Service Unavailable) on the 7th requestEndpoint hata verdi. 429, 503 ve kopan bağlantılar zaten üç kez yeniden denendi.
no answer within 300 sİstek zaman aşımına uğradı. Yavaş bir model kullanıyorsanız IVRALO_REQUEST_TIMEOUT'u artırın.
Endpoint'ten 400Model isteği kabul edemedi; çoğu zaman bağlam fazla büyüktür. Bu istek hiçbir zaman tekrarlanmaz.
Her token yavaş geliyorDoctor'daki ollama bölümü modelin bir kısmının CPU'da çalıştığını gösterir. IVRALO_NUM_CTX'i düşürün ya da daha küçük bir model kullanın.
Her adım 30 saniye kadar fazla sürüyorAğırlıklar istekler arasında bellekten boşaltılıyor. IVRALO_KEEP_ALIVE'ı artırın (varsayılan 30m).

Cevap uzunluk sınırında kesiliyor

the model spent its whole output allowance of 8192 tokens (IVRALO_MAX_TOKENS) and wrote no reply

Model çıktı hakkını sonuna kadar kullandı. Düşünen (reasoning) bir model hakkının tamamını akıl yürütmeye harcayıp hiç cevap yazmayabilir. Mesaj, hangi ayarı değiştirmeniz gerektiğini söyler:

  • Ollama modelleri için IVRALO_NUM_PREDICT (varsayılan 8192);
  • diğer bütün modeller için IVRALO_MAX_TOKENS (varsayılan 8192).

Bir incident incelemesinin raporu bu şekilde kesilirse rapor bir kez daha istenir; hakkı ivralo belirliyorsa bu sefer iki katıyla. Yine kesilirse çalıştırma bu mesajla biter.

Klasör güvenilir değil

Bir repo'nun kendi tanımları makinenizde komut çalıştırır; bu yüzden siz klasöre güvenene kadar devreye girmezler. O zamana kadar # Commands altındaki komutlar reddedilir, dil sunucusu başlamaz, klasörün izin dosyası yalnızca izinleri kısabilir, .ivralo/.env okunmaz ve git yazma işlemleri reddedilir. Durumu doctor'daki environment bölümünde görebilirsiniz.

ivralo trust .

Terminal yoksa (pipe, zamanlama, sunucu) soracak kimse de yoktur; cevap verilmemiş bir klasör güvenilmemiş sayılır. Script içinde ivralo trust --yes . onayı kaydeder. ivralo trust --list güvenilen bütün klasörleri gösterir, ivralo trust --revoke . güveni geri alır.

Shell politikası bir komutu reddetti

REFUSED_BY_POLICY ile başarısız olan bir çağrı, korumanın tasarlandığı gibi çalıştığını gösterir. Ne yapabileceğiniz karara bağlıdır:

  • deny: özyinelemeli silmeler, sistem değişiklikleri, iç içe shell'ler, ağ (curl, wget), makinenin paket yöneticileri, workspace dışındaki her yol ve içinde .env, .ivralo/ ya da .git/ geçen her sözcük. Bunları hiçbir ayar açamaz.
  • ask, başında kimse yokken: politikanın onay istediği bir komut, pipe içindeki ivralo ask'ta ve zamanlamalarda reddedilir; job ise bu noktada park eder. Bir daha sorulmaması için onay penceresinde bir kez p'ye basın ya da komutun önekini .ivralo/permissions.json'daki allow listesine ekleyin (örneğin "allow": ["uv add"]).

Bkz. Shell komutları ve permissions.json.

Port dolu

port 61017 is taken by something that is not ivralo; pass --port or set IVRALO_API_PORT

ivralo serve 127.0.0.1:61017 üzerinde dinler; port kullanımdaysa 1 ile çıkar. Portu başka bir ivralo serve tutuyorsa mesajda bu yazar: onu durdurun ya da --port veya IVRALO_API_PORT ile başka bir port seçin. ivralo ask --via-api gibi istemciler de aynı ayarı okur.

Diğer belirtiler

BelirtiÇözüm
Ajan talimatları görmezden geliyorBağlam penceresi çok küçük ve prompt kırpılıyor. IVRALO_NUM_CTX'i artırın (varsayılan 16384).
Uzun oturumlarda cevapların kalitesi düşüyorPencere doluyor. /compact çalıştırın.
The code did not finish within 300s and was stoppedPython worker'ının zaman aşımı. IVRALO_PYTHON_TIMEOUT'u artırın.
The Python worker could not startHatanın ayrıntısı workspace'teki .ivralo/python-worker.log dosyasında
Geçmiş ya da indeks yazılmıyorDoctor'daki disk bölümü workspace'in bulunduğu diskin dolmak üzere olduğunu gösterir
Bir skill ivralo skills içinde görünmüyorFrontmatter geçerli bir YAML değil. ivralo skills lint çalıştırın ve description'ı tırnak içine alın.
Zamanlama çalıştı ama hiçbir şey yapmadı.ivralo/schedules/<name>/ altındaki task.log'a bakın
Bir job takılmış görünüyorivralo job <id> durumunu, lease'ini ve park ettiği soruyu gösterir