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

Biến môi trường

Pi sử dụng biến môi trường theo ba cách:

  • Các biến như PI_OFFLINE định cấu hình quy trình Pi.
  • Pi đặt PI_CODING_AGENT để các tiến trình con có thể phát hiện rằng chúng chạy bên trong Pi.
  • Các lệnh được chạy bởi công cụ bash có thể gọi LLM nhận các biến PI_* mô tả phiên hiện tại.

Các biến khóa API của nhà cung cấp được ghi lại riêng biệt trong Providers.

Điểm đánh dấu quy trình

Điểm vào CLI và RPC được đặt PI_CODING_AGENT=true. Các tiến trình con kế thừa nó và có thể sử dụng nó để phát hiện xem chúng có chạy bên trong Pi hay không. Nó không dành riêng cho phiên và không được đặt tự động khi Pi được nhúng thông qua SDK.

Môi trường phiên công cụ Bash

Các lệnh do công cụ bash chạy sẽ nhận trạng thái phiên Pi hiện tại:

Biến Sự miêu tả
PI_SESSION_ID ID phiên hiện tại
PI_SESSION_FILE Đường dẫn tuyệt đối đến tệp JSONL phiên hiện tại; không được đặt cho các phiên tạm thời
PI_PROVIDER Nhà cung cấp mô hình hiện được chọn
PI_MODEL ID mẫu hiện được chọn
PI_REASONING_LEVEL Mức lý luận hiệu quả hiện tại: off, minimal, low, medium, high, xhigh hoặc max

Các giá trị được giải quyết khi mỗi lệnh bắt đầu. Do đó, việc chuyển đổi mô hình hoặc thay đổi mức lý luận sẽ ảnh hưởng đến lệnh bash tiếp theo mà không cần khởi động lại Pi. PI_PROVIDERPI_MODEL xác định mô hình Pi đã chọn, không phải mô hình ngược tuyến khác mà bộ định tuyến có thể chọn nội bộ.

Khi được hỏi mô hình hoặc nhà cung cấp nào đang chạy, hãy kiểm tra các biến này thay vì suy ra câu trả lời từ lời nhắc hệ thống:

printf '%s/%s\n' "$PI_PROVIDER" "$PI_MODEL"
printf 'reasoning=%s session=%s\n' "$PI_REASONING_LEVEL" "$PI_SESSION_ID"

Tệp phiên có thể được kiểm tra trực tiếp khi phiên liên tục:

if [ -n "$PI_SESSION_FILE" ]; then
  tail -n 1 "$PI_SESSION_FILE"
fi

Các biến này được đưa vào công cụ bash có ​​thể gọi LLM. Chúng không được đưa vào các lệnh ! hoặc !! do người dùng nhập.

Công cụ Bash tùy chỉnh

Các công cụ Bash được tạo bằng createBashTool() hiển thị môi trường phiên theo mặc định khi đăng ký với Pi. Việc tiêm xảy ra trước spawnHook, do đó, hook nhận các biến trong ctx.env:

const bashTool = createBashTool(cwd, {
  spawnHook: (ctx) => ({
    ...ctx,
    env: { ...ctx.env, CI: "1" },
  }),
});

Tắt siêu dữ liệu phiên độc lập với hook sinh sản:

const bashTool = createBashTool(cwd, {
  exposeSessionEnvironment: false,
  spawnHook: (ctx) => ctx,
});

Khi bị tắt, Pi sẽ xóa các giá trị kế thừa cho các biến này để các quy trình Pi lồng nhau không hiển thị siêu dữ liệu phiên gốc cũ.

Pi Cấu hình quy trình

Các biến này được đọc bởi chính Pi:

Biến Sự miêu tả
PI_CODING_AGENT_DIR Ghi đè thư mục cấu hình; mặc định là ~/.pi/agent
PI_CODING_AGENT_SESSION_DIR Ghi đè lưu trữ phiên; bị ghi đè bởi --session-dir
PI_PACKAGE_DIR Ghi đè thư mục gói, hữu ích cho đường dẫn lưu trữ Nix/Guix
PI_OFFLINE Vô hiệu hóa các hoạt động mạng khởi động, bao gồm kiểm tra cập nhật, cập nhật gói và cài đặt/cập nhật đo từ xa
PI_SKIP_VERSION_CHECK Tắt yêu cầu phiên bản mới nhất pi.dev
PI_TELEMETRY Ghi đè tiêu đề cài đặt/cập nhật đo từ xa và tiêu đề phân bổ nhà cung cấp: 1/true/yes hoặc 0/false/no
PI_CACHE_RETENTION Đặt thành long để lưu vào bộ đệm ẩn lời nhắc của nhà cung cấp mở rộng nếu được hỗ trợ
PI_SHARE_VIEWER_URL Ghi đè URL cơ sở được sử dụng bởi /share
PI_HARDWARE_CURSOR Đặt thành 1 để hiển thị con trỏ phần cứng; xem Terminal setup
VISUAL, EDITOR Dự phòng trình chỉnh sửa bên ngoài khi externalEditor không được đặt
HTTP_PROXY, HTTPS_PROXY Yêu cầu HTTP gửi đi qua proxy

Thông tin xác thực của nhà cung cấp như ANTHROPIC_API_KEY, OPENAI_API_KEY và cấu hình nhà cung cấp đám mây được liệt kê trong Providers.