Pi için yapılandırma, özelleştirme, platform kurulumu ve API referansları.

Ortam Değişkenleri

Pi ortam değişkenlerini üç şekilde kullanır:

  • PI_OFFLINE gibi değişkenler Pi sürecini yapılandırır.
  • Pi PI_CODING_AGENT'yi ayarlar, böylece alt süreçler Pi içinde çalıştıklarını tespit edebilir.
  • LLM tarafından çağrılabilir bash aracı tarafından çalıştırılan komutlar, mevcut oturumu tanımlayan PI_* değişkenleri alır.

Sağlayıcı API-anahtar değişkenleri Providers'de ayrı olarak belgelenmiştir.

Süreç İşaretleyicisi

CLI ve RPC giriş noktaları PI_CODING_AGENT=true olarak ayarlanır. Alt süreçler onu devralır ve içeride çalıştıklarını tespit etmek için bunu kullanabilir Pi. Oturuma özel değildir ve Pi, SDK'ye yerleştirildiğinde otomatik olarak ayarlanmaz.

Bash Aracı Oturum Ortamı

bash aracı tarafından çalıştırılan komutlar mevcut Pi oturum durumunu alır:

Değişken Tanım
PI_SESSION_ID Geçerli oturum kimliği
PI_SESSION_FILE Geçerli oturum JSONL dosyasının mutlak yolu; geçici oturumlar için ayarlanmamış
PI_PROVIDER Şu anda seçili model sağlayıcı
PI_MODEL Şu anda seçili model kimliği
PI_REASONING_LEVEL Mevcut etkili akıl yürütme düzeyi: off, minimal, low, medium, high, xhigh veya max

Her komut başlatıldığında değerler çözümlenir. Bu nedenle modelleri değiştirmek veya mantık düzeyini değiştirmek, Pi'yi yeniden başlatmadan sonraki bash komutunu etkiler. PI_PROVIDER ve PI_MODEL, bir yönlendiricinin dahili olarak seçebileceği farklı bir yukarı akış modeli değil, seçilen Pi modelini tanımlar.

Hangi modelin veya sağlayıcının çalıştığı sorulduğunda, cevabı sistem isteminden çıkarmak yerine bu değişkenleri inceleyin:

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

Oturum kalıcı olduğunda oturum dosyası doğrudan incelenebilir:

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

Bu değişkenler LLM tarafından çağrılabilen bash aracına enjekte edilir. Kullanıcı tarafından girilen ! veya !! komutlarına eklenmezler.

Özel Bash Araçları

createBashTool() ile oluşturulan Bash araçları, Pi ile kaydedildiğinde varsayılan olarak oturum ortamını ortaya çıkarır. Enjeksiyon spawnHook'den önce gerçekleşir, dolayısıyla bir kanca ctx.env'deki değişkenleri alır:

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

Oturum meta verilerini, ortaya çıkma kancasından bağımsız olarak devre dışı bırakın:

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

Devre dışı bırakıldığında, Pi bu değişkenler için devralınan değerleri kaldırır, böylece iç içe geçmiş Pi süreçleri eski üst oturum meta verilerini açığa çıkarmaz.

Pi Süreç Yapılandırması

Bu değişkenler Pi'nin kendisi tarafından okunur:

Değişken Tanım
PI_CODING_AGENT_DIR Yapılandırma dizinini geçersiz kılın; varsayılan ~/.pi/agent
PI_CODING_AGENT_SESSION_DIR Oturum depolamayı geçersiz kıl; --session-dir tarafından geçersiz kılındı
PI_PACKAGE_DIR Nix/Guix mağaza yolları için yararlı olan paket dizinini geçersiz kılın
PI_OFFLINE Güncelleme kontrolleri, paket güncellemeleri ve kurulum/güncelleme telemetrisi dahil başlangıç ​​ağ işlemlerini devre dışı bırakın
PI_SKIP_VERSION_CHECK pi.dev son sürüm isteğini devre dışı bırakın
PI_TELEMETRY Yükleme/güncelleme telemetrisini ve sağlayıcı ilişkilendirme başlıklarını geçersiz kıl: 1/true/yes veya 0/false/no
PI_CACHE_RETENTION Desteklendiği yerlerde genişletilmiş sağlayıcı istemi önbelleğe alma işlemi için long olarak ayarlayın
PI_SHARE_VIEWER_URL /share tarafından kullanılan temel URL'yi geçersiz kılın
PI_HARDWARE_CURSOR Donanım imlecini göstermek için 1 olarak ayarlayın; bkz. Terminal setup
VISUAL, EDITOR externalEditor ayarlanmadığında harici düzenleyici geri dönüşü
HTTP_PROXY, HTTPS_PROXY Proxy giden HTTP istekleri

ANTHROPIC_API_KEY, OPENAI_API_KEY gibi sağlayıcı kimlik bilgileri ve bulut sağlayıcı yapılandırması Providers'de listelenmiştir.