Pi için yapılandırma, özelleştirme, platform kurulumu ve API referansları.

Güvenlik

Pi yerel bir kodlama aracısıdır. Kendisini başlatan kullanıcı hesabının izinleriyle çalışır ve bu kullanıcı tarafından yazılabilen dosyalara aynı yerel güven sınırı içindeymiş gibi davranır.

Proje Güveni

Proje güveni, pi'nin proje yerel ayarlarını, kaynaklarını, paketlerini ve uzantılarını yükleyip yüklemediğini kontrol eder. Bu bir sandbox değildir ve siz bir dizinde çalışmaya başladıktan sonra modelin araçlardan yapmasını isteyebileceklerini kısıtlamaz.

Pi bir projenin mevcut çalışma dizininde bunlardan herhangi birini bulması durumunda güven gerektiren kaynaklara sahip olduğunu kabul eder:

  • .pi/settings.json
  • .pi/extensions, .pi/skills, .pi/prompts veya .pi/themes
  • .pi/SYSTEM.md veya .pi/APPEND_SYSTEM.md
  • .agents/skills projesi geçerli dizinde veya bir ata dizinde

Çıplak bir .pi dizini, güven gerektiren bir proje kaynağı olarak sayılmaz.

Geçerli dizin veya üst dizin için güven gerektiren ve kayıtlı karar bulunmayan kaynaklara sahip bir projede etkileşimli bir oturum başlatıldığında, pi genel ayarlardan defaultProjectTrust'ı takip eder. Varsayılan değer "ask"'dir ve kullanıcı arayüzü mevcut olduğunda projeye güvenilip güvenilmeyeceğini sorar. Kaydedilen kararlar kurallı dizine göre ~/.pi/agent/trust.json'de saklanır ve mevcut veya ana yola en yakın kaydedilen karar genel varsayılandan önce uygulanır.

Bir projeye güvenmek Pi'nin aşağıdakiler dahil olmak üzere güven gerektiren proje kaynaklarını yüklemesine olanak tanır:

  • .pi/settings.json
  • .pi uzantılar, beceriler, prompt templates, temalar ve sistem istem dosyaları gibi kaynaklar
  • proje ayarları aracılığıyla yapılandırılan eksik proje paketleri
  • proje yerel uzantıları ve proje paketi tarafından yönetilen uzantılar

Güvenin azalması, korunan kaynakların atlanmasına neden olur. AGENTS.override.md, AGENTS.md ve CLAUDE.md gibi bağlam dosyaları, bağlam yükleme devre dışı bırakılmadığı sürece proje güvenine bakılmaksızın yüklenir. Güven çözümlenmeden önce pi yalnızca context files, kullanıcı/global uzantıları ve CLI -e uzantılarını yükler. Kullanıcı/global ve CLI uzantıları project_trust olayını işleyebilir; evet/hayır kararı veren ilk uzatma, kararın sahibidir.

Etkileşimli olmayan modlar (-p, --mode json ve --mode rpc) bir güven istemi göstermez. Geçerli bir kaydedilmiş güven kararı olmadan, defaultProjectTrust: "ask" ve "never" bu tür kaynakları görmezden gelirken, "always" onlara güvenir. Bir çalıştırma için proje güvenini geçersiz kılmak için --approve/-a veya --no-approve/-na tuşlarını kullanın.

Yerleşik Korumalı Alan Yok

Pi yerleşik bir sandbox içermez. Yerleşik araçlar, pi işleminin izinleriyle dosyaları okuyabilir, dosya yazabilir, dosyaları düzenleyebilir ve kabuk komutlarını çalıştırabilir. Extensions aynı izinlerle çalışan TypeScript modüllerdir. Paket yüklemeleri, kabuk komutları, dil sunucuları, test komutları ve diğer geliştirici araçları sıradan yerel işlemler gibi davranır.

Bu kasıtlıdır. Pi yerel kaynak ağaçlar üzerinde çalışacak, proje araç zincirlerini çağıracak ve kullanıcının mevcut geliştirme ortamıyla bütünleşecek şekilde tasarlanmıştır. Kısmi bir süreç içi sandbox, ana bilgisayar kabuğuna, dosya sistemine, paket yöneticilerine, kimlik bilgilerine ve uzantı koduna bağlıyken bir güvenlik sınırı olarak yanlış anlaşılması kolay olacaktır. Gerçek izolasyonun işletim sisteminden veya sanallaştırma/konteyner sınırından gelmesi gerekir.

Proje güveni yalnızca girdi yükleme korumasıdır. Bir havuzun pi'nin ayarlarını veya uzantılarını siz onaylamadan önce sessizce değiştirmesini engeller. Güvenilmeyen kodu, güvenilmeyen istemleri veya güvenilmeyen model çıktısını güvenli hale getirmez. Depo dosyalarından, yorumlardan, belgelerden, context files veya derleme çıktısından hızlı enjeksiyon, beklenen yerel aracı riskidir ve pi tarafından güvenilir bir şekilde önlenemez.

Güvenilmeyen veya Denetlenmeyen Çalışmaları Çalıştırma

Güvenilmeyen depolar, yakından izlemeyi düşünmediğiniz oluşturulan kodlar veya gözetimsiz otomasyon için pi'yi kapalı bir ortamda çalıştırın. Yalnızca görev için gereken dosya ve kimlik bilgilerine sahip bir kapsayıcı, VM, mikro VM, uzak sandbox veya politika kontrollü sandbox kullanın.

Yaygın modeller Containerization'de belgelenmiştir:

  • pi işleminin tamamını bir kap/sandbox içinde çalıştırın
  • yerleşik araç yürütmesini Gondolin mikro VM'ye yönlendirirken Host pi'yi çalıştırın
  • yalnızca aracının erişmesi gereken çalışma alanı yollarını bağlayın
  • Konteynerin ana bilgisayar oturumlarına, ayarlarına ve kimlik bilgilerine erişmesi gerekmediği sürece ana bilgisayarı ~/.pi/agent bağlamaktan kaçının
  • Gerekli minimum API key sayısını geçin veya kısa ömürlü kimlik bilgilerini kullanın
  • görevin gerektirmediği durumlarda ağ erişimini kısıtla
  • Sonuçları güvenilir sistemlere kopyalamadan önce farkları ve çıktıları gözden geçirin

Bir ana bilgisayar çalışma alanını okuma/yazma olarak bağlarsanız, kapsayıcının veya VM'nin içinden yazma işlemleri yine de ana bilgisayar dosyalarını değiştirebilir. İstenmeyen yazma işlemlerine karşı daha güçlü korumaya ihtiyaç duyduğunuzda, salt okunur bağlamaları kullanın veya dosyaları sandbox içine ve dışına kopyalayın.

Güvenlik Sorunlarını Bildirmek

Bir güvenlik sorununu bildirmek için Security Policy deposunu takip edin. Güvenlik açısından hassas raporlar için kamuya açık konu açmayın.

Beklenen yerel aracı davranışı, yerleşik sandbox eksikliği, güvenilmeyen içerikten hızlı enjeksiyon ve kullanıcı tarafından yüklenen uzantıların veya becerilerin davranışı, rapor gerçek bir ayrıcalık sınırı atlaması göstermediği veya pi'nin yerel kullanıcının halihazırda sahip olmadığı erişimi nasıl verdiğini göstermediği sürece genellikle güvenlik sınırlarının dışındadır.