Cấu hình, tùy chỉnh, thiết lập nền tảng và tham chiếu API cho Pi.

Container hóa

Pi chạy với tất cả các quyền theo mặc định, nhưng trong một số trường hợp, bạn sẽ muốn có nhiều quyền kiểm soát hơn đối với những thư mục mà Pi có thể ghi vào và những thư mục nào có quyền truy cập.

Có hai lựa chọn chung. Bạn có thể

  1. chạy toàn bộ quy trình pi bên trong một môi trường biệt lập hoặc
  2. chạy pi trên máy chủ và định tuyến thực thi công cụ vào một môi trường biệt lập.

Chọn một mẫu

Mẫu Cái gì bị cô lập Tốt nhất cho Ghi chú
Gondolin tiện ích mở rộng Các công cụ tích hợp và lệnh ! Cách ly micro-VM cục bộ trong khi vẫn giữ xác thực trên máy chủ Xem examples/extensions/gondolin/.
Đồng bằng Docker Toàn bộ quá trình pi trong vùng chứa cục bộ Cách ly cục bộ đơn giản Nhà cung cấp API keys vào thùng chứa.
OpenShell Toàn bộ quy trình pi trong quy trình sandbox được kiểm soát chính sách Được quản lý cục bộ hoặc từ xa sandbox Yêu cầu cổng OpenShell

Extensions chạy ở bất cứ nơi nào quá trình pi chạy. Nếu bạn chạy máy chủ pi với tiện ích mở rộng định tuyến công cụ, các công cụ tiện ích mở rộng tùy chỉnh khác vẫn chạy trên máy chủ trừ khi chúng cũng ủy quyền hoạt động của chúng.

Gondolin

Gondolin là một máy ảo Linux cục bộ. Sử dụng example extension khi bạn muốn pi trên máy chủ nhưng tất cả các công cụ tích hợp đều được chuyển vào VM.

Cài đặt:

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

Chạy từ dự án bạn muốn gắn kết:

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

Tiện ích mở rộng gắn cwd máy chủ tại /workspace trong VM và ghi đè read, write, edit, bash, grep, findls. Các lệnh của người dùng ! cũng được chuyển vào VM. Các thay đổi về tệp trong /workspace được ghi thông qua máy chủ.

Yêu cầu: Node.js >= 23.6.0 cho @earendil-works/gondolin, cộng với QEMU (yêu cầu cài đặt thông qua trình quản lý gói của bạn).

Đồng bằng Docker

Chạy toàn bộ quy trình pi trong Docker khi bạn muốn ranh giới vùng chứa cục bộ đơn giản nhất.

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

Xây dựng và chạy:

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" gắn thư mục hiện tại của bạn vào vùng chứa tại /workspace sao cho việc đọc và ghi vào /workspace bên trong Docker ảnh hưởng trực tiếp đến các tệp máy chủ của bạn, như trong ví dụ Gondolin.

Sử dụng âm lượng được đặt tên cho /root/.pi/agent nếu bạn muốn các phiên và cài đặt cục bộ vùng chứa. Việc gắn máy chủ của bạn ~/.pi/agent sẽ hiển thị các tệp phiên và xác thực máy chủ vào vùng chứa.

OpenShell

Sử dụng NVIDIA OpenShell khi bạn muốn sandbox được kiểm soát chính sách với các điều khiển hệ thống tệp, quy trình, mạng, thông tin xác thực và suy luận. OpenShell có thể chạy sandboxes thông qua cổng cục bộ được hỗ trợ bởi Docker, Podman hoặc thời gian chạy VM hoặc thông qua cổng Kubernetes từ xa.

Mọi sandbox đều yêu cầu một cổng hoạt động. Đăng ký và chọn một cái trước khi tạo sandbox:

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

Khởi chạy pi bên trong OpenShell sandbox:

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

Trong mẫu này, toàn bộ quá trình pi chạy bên trong sandbox. Các công cụ tích hợp, lệnh ! và công cụ mở rộng thực thi bên trong ranh giới OpenShell.

Nếu cổng ở xa, các tệp dự án không được liên kết với máy chủ, nghĩa là việc ghi vào sandbox không được phản ánh trên máy của bạn. Sao chép kho lưu trữ bên trong sandbox hoặc sử dụng lệnh truyền tệp OpenShell:

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

OpenShell nhà cung cấp có thể giữ mô hình thô API key bên ngoài sandbox. Khi định tuyến suy luận được định cấu hình, mã bên trong sandbox có thể gọi https://inference.local và cổng sẽ đưa ngược dòng thông tin xác thực của nhà cung cấp đã định cấu hình. Định cấu hình Pi để sử dụng điểm cuối tương thích với OpenAI hoặc Anthropic tương ứng nếu bạn muốn lưu lượng truy cập mô hình sử dụng tuyến đường này.