Konfiguration, Anpassung, Plattform-Einrichtung und API-Referenzen für Pi.

Containerisierung

Pi läuft standardmäßig mit allen Berechtigungen, aber in manchen Fällen möchten Sie mehr Kontrolle darüber haben, in welche Verzeichnisse Pi schreiben kann und welche Zugriffe es hat.

Es gibt zwei allgemeine Optionen. Sie können entweder

  1. Führen Sie den gesamten pi-Prozess in einer isolierten Umgebung aus, oder
  2. Führen Sie pi auf dem Host aus und leiten Sie die Tool-Ausführung in eine isolierte Umgebung weiter.

Wählen Sie ein Muster

Muster Was ist isoliert Am besten für Notizen
Gondolin Erweiterung Integrierte Tools und ! Befehle Lokale Mikro-VM-Isolierung unter Beibehaltung der Authentifizierung auf dem Host Siehe examples/extensions/gondolin/.
Einfach Docker Gesamter pi-Prozess in einem lokalen Container Einfache lokale Isolierung Anbieter API keys betreten den Container.
OpenShell Gesamter pi-Prozess in einem richtliniengesteuerten sandbox Lokal oder remote verwaltet sandbox Erfordert ein OpenShell Gateway

Extensions wird überall dort ausgeführt, wo der pi-Prozess ausgeführt wird. Wenn Sie Host pi mit einer Tool-Routing-Erweiterung ausführen, werden andere benutzerdefinierte Erweiterungstools weiterhin auf dem Host ausgeführt, sofern sie ihre Vorgänge nicht ebenfalls delegieren.

Gondolin

Gondolin ist eine lokale Linux-Mikro-VM. Verwenden Sie example extension, wenn Sie pi auf dem Host möchten, aber alle integrierten Tools an die VM weitergeleitet werden sollen.

Aufstellen:

cp -R packages/coding-agent/examples/extensions/gondolin ~/.pi/agent/extensions/gondolin
cd ~/.pi/agent/extensions/gondolin
npm install --ignore-scripts

Führen Sie das Projekt aus, das Sie bereitstellen möchten:

cd /path/to/project
pi -e ~/.pi/agent/extensions/gondolin

Die Erweiterung mountet den Host-CWD bei /workspace in der VM und überschreibt read, write, edit, bash, grep, find und ls. Benutzerbefehle ! werden ebenfalls an die VM weitergeleitet. Dateiänderungen unter /workspace werden auf den Host übertragen.

Anforderungen: Node.js >= 23.6.0 für @earendil-works/gondolin, plus QEMU (erfordert die Installation über Ihren Paketmanager).

Einfach Docker

Führen Sie den gesamten pi-Prozess in Docker aus, wenn Sie die einfachste lokale Containergrenze wünschen.

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"]

Erstellen und ausführen:

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

Mit -v "$PWD:/workspace" wird Ihr aktuelles Verzeichnis im Container unter /workspace bereitgestellt, sodass sich Lese- und Schreibvorgänge in /workspace in Docker direkt auf Ihre Hostdateien auswirken, wie im Beispiel Gondolin.

Verwenden Sie ein benanntes Volume für /root/.pi/agent, wenn Sie Container-lokale Einstellungen und Sitzungen wünschen. Durch das Mounten Ihres Hosts ~/.pi/agent werden Host-Authentifizierungs- und Sitzungsdateien für den Container verfügbar gemacht.

OpenShell

Verwenden Sie NVIDIA OpenShell, wenn Sie ein richtliniengesteuertes sandbox mit Dateisystem-, Prozess-, Netzwerk-, Anmeldeinformations- und Rückschlusskontrollen wünschen. OpenShell kann sandboxes über ein lokales Gateway ausführen, das von Docker, Podman oder einer VM-Laufzeit unterstützt wird, oder über ein Remote-Kubernetes-Gateway.

Jeder sandbox erfordert ein aktives Gateway. Registrieren Sie sich und wählen Sie eines aus, bevor Sie ein sandbox erstellen:

openshell gateway add <gateway-url> --name <name>
openshell gateway select <name>

Starten Sie pi in einem OpenShell sandbox:

openshell sandbox create --name pi-sandbox --from pi -- pi

In diesem Muster läuft der gesamte pi-Prozess innerhalb von sandbox ab. Integrierte Tools, !-Befehle und Erweiterungstools werden innerhalb der OpenShell-Grenze ausgeführt.

Wenn das Gateway entfernt ist, werden Projektdateien nicht vom Host gebunden, was bedeutet, dass Schreibvorgänge im sandbox nicht auf Ihrem Computer widergespiegelt werden. Klonen Sie das Repository in sandbox oder verwenden Sie OpenShell Dateiübertragungsbefehle:

openshell sandbox upload pi-sandbox ./repo /workspace
openshell sandbox download pi-sandbox /workspace/repo ./repo-out

OpenShell-Anbieter können Rohmodell-API keys außerhalb von sandbox behalten. Wenn das Inferenz-Routing konfiguriert ist, kann Code innerhalb von sandbox https://inference.local aufrufen, und das Gateway fügt die konfigurierten Anbieteranmeldeinformationen stromaufwärts ein. Konfigurieren Sie Pi, um den entsprechenden OpenAI-kompatiblen oder Anthropic-kompatiblen Endpunkt zu verwenden, wenn Sie möchten, dass der Modellverkehr diese Route verwenden soll.