Konteynerizasyon
Pi varsayılan olarak tüm izinlerle çalışır, ancak bazı durumlarda Pi'nin hangi dizinlere yazabileceği ve hangi erişimlere sahip olduğu konusunda daha fazla kontrole sahip olmak isteyebilirsiniz.
İki genel seçenek vardır. Sen de yapabilirsin
pisürecinin tamamını yalıtılmış bir ortamda çalıştırın veya- Ana bilgisayarda
pikomutunu çalıştırın ve araç yürütmesini yalıtılmış bir ortama yönlendirin.
Bir desen seçin
| Model | İzole edilen şey | Şunun için en iyisi: | Notlar |
|---|---|---|---|
| Gondolin uzantı | Yerleşik araçlar ve ! komutları |
Ana bilgisayarda kimlik doğrulamayı korurken yerel mikro sanal makine yalıtımı | Bakınız examples/extensions/gondolin/. |
| Sade Docker | Yerel bir kapta tüm pi süreci |
Basit yerel izolasyon | Sağlayıcı API key'lar konteynere girer. |
| OpenShell | Politika kontrollü bir sandbox'deki tüm pi süreci |
Yerel veya uzaktan yönetilen sandbox | OpenShell ağ geçidi gerektirir |
Extensions, pi işleminin çalıştığı yerde çalıştırın. pi ana bilgisayarını bir araç yönlendirme uzantısıyla çalıştırırsanız, diğer özel uzantı araçları da kendi işlemlerini devretmedikleri sürece ana bilgisayarda çalışmaya devam eder.
Gondolin
Gondolin yerel bir Linux mikro VM'sidir.
Ana makinede pi istiyorsanız ancak tüm yerleşik araçların VM'ye yönlendirilmesini istiyorsanız example extension'yi kullanın.
Kurmak:
cp -R packages/coding-agent/examples/extensions/gondolin ~/.pi/agent/extensions/gondolin
cd ~/.pi/agent/extensions/gondolin
npm install --ignore-scriptsMonte edilmesini istediğiniz projeden çalıştırın:
cd /path/to/project
pi -e ~/.pi/agent/extensions/gondolinUzantı, ana bilgisayar cwd'sini VM'de /workspace konumuna bağlar ve read, write, edit, bash, grep, find ve ls'yi geçersiz kılar.
Kullanıcı ! komutları da VM'ye yönlendirilir.
/workspace altındaki dosya değişiklikleri ana bilgisayara aktarılır.
Gereksinimler: @earendil-works/gondolin için Node.js >= 23.6.0, artı QEMU (paket yöneticiniz aracılığıyla kurulum gerektirir).
Sade Docker
En basit yerel konteyner sınırını istediğinizde pi işleminin tamamını Docker'de çalıştırın.
Dockerfile.pi:
FROM node:24-bookworm-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends bash ca-certificates git ripgrep \
&& rm -rf /var/lib/apt/lists/*
RUN npm install -g --ignore-scripts @earendil-works/pi-coding-agent
WORKDIR /workspace
ENTRYPOINT ["pi"]Oluşturun ve çalıştırın:
docker build -t pi-sandbox -f Dockerfile.pi .
docker run --rm -it \
-e ANTHROPIC_API_KEY \
-v "$PWD:/workspace" \
-v pi-agent-home:/root/.pi/agent \
pi-sandbox-v "$PWD:/workspace", geçerli dizininizi /workspace'teki kapsayıcıya bağlar; böylece Gondolin örneğinde olduğu gibi, Docker içindeki /workspace'deki okuma ve yazmalar ana bilgisayar dosyalarınızı doğrudan etkiler.
Kapsayıcı yerel ayarlar ve oturumlar istiyorsanız /root/.pi/agent için adlandırılmış bir birim kullanın. Ana makinenizi ~/.pi/agent monte ettiğinizde, ana makine kimlik doğrulaması ve oturum dosyaları kapsayıcıya sunulur.
OpenShell
Dosya sistemi, süreç, ağ, kimlik bilgisi ve çıkarım kontrolleriyle politika kontrollü bir sandbox istiyorsanız NVIDIA OpenShell kullanın. OpenShell, sandboxes'i Docker, Podman veya VM çalışma zamanı tarafından desteklenen yerel bir ağ geçidi veya uzak bir Kubernetes ağ geçidi aracılığıyla çalıştırabilir.
Her sandbox aktif bir ağ geçidi gerektirir. sandbox oluşturmadan önce kaydolun ve birini seçin:
openshell gateway add <gateway-url> --name <name>
openshell gateway select <name>OpenShell sandbox içinde pi'yi başlatın:
openshell sandbox create --name pi-sandbox --from pi -- piBu modelde, pi sürecinin tamamı sandbox'nin içinde çalışır.
Yerleşik araçlar, ! komutları ve uzantı araçları OpenShell sınırı içinde yürütülür.
Ağ geçidi uzaksa, proje dosyaları ana bilgisayardan bağlamayla bağlanmaz; bu, sandbox'deki yazma işlemlerinin makinenize yansıtılmadığı anlamına gelir. Depoyu sandbox içine kopyalayın veya OpenShell dosya aktarım komutlarını kullanın:
openshell sandbox upload pi-sandbox ./repo /workspace
openshell sandbox download pi-sandbox /workspace/repo ./repo-outOpenShell sağlayıcılar ham model API key'leri sandbox'nin dışında tutabilir.
Çıkarım yönlendirmesi yapılandırıldığında, sandbox içindeki kod https://inference.local'yi arayabilir ve ağ geçidi, yapılandırılmış sağlayıcı kimlik bilgilerini yukarı akışa enjekte eder.
Model trafiğinin bu rotayı kullanmasını istiyorsanız, ilgili OpenAI uyumlu veya Antropik uyumlu uç noktayı kullanmak için Pi öğesini yapılandırın.