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_PROVIDER và PI_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"
fiCá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.