Configuration, personnalisation, paramètres de plateforme et références API pour Pi.

Variables d'environnement

Pi utilise les variables d'environnement de trois manières:

  • Des variables telles que PI_OFFLINE configurent le processus Pi.
  • Pi définit des marqueurs de processus afin que les processus enfants puissent identifier Pi comme l'agent qui les a lancés.
  • Les commandes exécutées par l'outil bash appelable LLM reçoivent des variables PI_* décrivant la session en cours.

Les variables clés du fournisseur API sont documentées séparément dans Providers.

Marqueur de processus

Les points d'entrée CLI et RPC définissent deux marqueurs de processus :

  • AI_AGENT=pi est un marqueur générique qui permet aux outils d'identifier Pi comme l'agent qui a lancé le processus.
  • PI_CODING_AGENT=true est propre à Pi et permet aux processus enfants de détecter qu'ils s'exécutent dans Pi.

Les processus enfants héritent des deux marqueurs. Ils ne sont pas spécifiques à la session et ne sont pas définis automatiquement lorsque Pi est intégré via le SDK.

Environnement de session de l'outil Bash

Les commandes exécutées par l'outil bash reçoivent l'état de session actuel Pi:

Variable Description
PI_SESSION_ID ID de session actuelle
PI_SESSION_FILE Chemin absolu vers le fichier JSONL de la session en cours; désarmé pour les sessions éphémères
PI_PROVIDER Fournisseur de modèles actuellement sélectionné
PI_MODEL ID du modèle actuellement sélectionné
PI_REASONING_LEVEL Niveau de raisonnement effectif actuel: off, minimal, low, medium, high, xhigh ou max

Les valeurs sont résolues au démarrage de chaque commande. Changer de modèle ou changer de niveau de raisonnement affecte donc la commande bash suivante sans redémarrer Pi. PI_PROVIDER et PI_MODEL identifient le modèle Pi sélectionné, et non un modèle en amont différent qu'un routeur peut choisir en interne.

Lorsqu'on vous demande quel modèle ou fournisseur est en cours d'exécution, inspectez ces variables au lieu de déduire la réponse à partir de l'invite du système:

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

Le fichier de session peut être inspecté directement lorsque la session est persistante:

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

Ces variables sont injectées dans l'outil bash appelable LLM. Ils ne sont pas injectés dans les commandes ! ou !! saisies par l'utilisateur.

Outils Bash personnalisés

Les outils Bash créés avec createBashTool() exposent l'environnement de session par défaut lorsqu'ils sont enregistrés avec Pi. L'injection a lieu avant spawnHook, donc un hook reçoit les variables en ctx.env:

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

Désactivez les métadonnées de session indépendamment du hook de spawn:

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

Lorsqu'il est désactivé, Pi supprime les valeurs héritées de ces variables afin que les processus Pi imbriqués n'exposent pas les métadonnées obsolètes de la session parent.

Pi Configuration du processus

Ces variables sont lues par Pi lui-même:

Variable Description
PI_CODING_AGENT_DIR Remplacez le répertoire de configuration; la valeur par défaut est ~/.pi/agent
PI_CODING_AGENT_SESSION_DIR Remplacer le stockage de session; remplacé par --session-dir
PI_PACKAGE_DIR Remplacer le répertoire du package, utile pour les chemins du magasin Nix/Guix
PI_OFFLINE Désactivez les opérations réseau de démarrage, y compris les vérifications de mise à jour, les mises à jour de packages et la télémétrie d'installation/mise à jour.
PI_SKIP_VERSION_CHECK Désactivez la demande de dernière version pi.dev
PI_TELEMETRY Remplacer la télémétrie d'installation/mise à jour et les en-têtes d'attribution du fournisseur: 1/true/yes ou 0/false/no
PI_CACHE_RETENTION Défini sur long pour la mise en cache étendue des invites du fournisseur lorsque cela est pris en charge
PI_SHARE_VIEWER_URL Remplacer l'URL de base utilisée par /share
PI_HARDWARE_CURSOR Réglez sur 1 pour afficher le curseur matériel; voir Terminal setup
PI_TUI_ESC_TIMEOUT Durée d'attente après un ESC seul avant de le traiter comme Escape, en millisecondes ; 100 par défaut via SSH et 10 sinon. Augmentez-la si une entrée avec Alt est interprétée à tort comme Escape
VISUAL, EDITOR Solution de secours de l'éditeur externe lorsque externalEditor n'est pas défini
HTTP_PROXY, HTTPS_PROXY Requêtes HTTP sortantes du proxy

Les informations d'identification du fournisseur telles que ANTHROPIC_API_KEY, OPENAI_API_KEY et la configuration du fournisseur cloud sont répertoriées dans Providers.