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 Compose | Ana dizinde docker compose up -d çalıştırın |
| ivralo'nun ana dizinde kurduğu cluster | Bir sonraki ivralo süreciyle birlikte başlar. Ayakta olup olmadığını ve verinin nerede durduğunu ivralo doctor gösterir. |
--postgres managed | Cluster'ı 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 Ollama | Ollama'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 request | Endpoint 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 400 | Model isteği kabul edemedi; çoğu zaman bağlam fazla büyüktür. Bu istek hiçbir zaman tekrarlanmaz. |
| Her token yavaş geliyor | Doctor'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üyor | Ağı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 kezp'ye basın ya da komutun önekini.ivralo/permissions.json'dakiallowlistesine 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 geliyor | Bağ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üşüyor | Pencere doluyor. /compact çalıştırın. |
The code did not finish within 300s and was stopped | Python worker'ının zaman aşımı. IVRALO_PYTHON_TIMEOUT'u artırın. |
The Python worker could not start | Hatanın ayrıntısı workspace'teki .ivralo/python-worker.log dosyasında |
| Geçmiş ya da indeks yazılmıyor | Doctor'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üyor | Frontmatter 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üyor | ivralo job <id> durumunu, lease'ini ve park ettiği soruyu gösterir |