Variables de entorno
Pi utiliza variables de entorno de tres maneras:
- Variables como
PI_OFFLINEconfiguran el proceso Pi. - Pi establece marcadores de proceso para que los procesos secundarios puedan identificar a Pi como el agente que los inició.
- Los comandos ejecutados por la herramienta bash invocable por LLM reciben variables
PI_*que describen la sesión actual.
Las variables clave del proveedor API se documentan por separado en Providers.
Marcador de proceso
Los puntos de entrada CLI y RPC establecen dos marcadores de proceso:
AI_AGENT=pies un marcador genérico que permite a las herramientas identificar a Pi como el agente que inició el proceso.PI_CODING_AGENT=truees específico de Pi y permite a los procesos secundarios detectar que se ejecutan dentro de Pi.
Los procesos secundarios heredan ambos marcadores. No son específicos de la sesión y no se establecen automáticamente cuando Pi se integra mediante el SDK.
Entorno de sesión de la herramienta Bash
Los comandos ejecutados por la herramienta bash reciben el estado actual de la sesión Pi:
| Variable | Descripción |
|---|---|
PI_SESSION_ID |
ID de sesión actual |
PI_SESSION_FILE |
Ruta absoluta al archivo JSONL de la sesión actual; Desarmado para sesiones efímeras. |
PI_PROVIDER |
Proveedor de modelo actualmente seleccionado |
PI_MODEL |
ID del modelo seleccionado actualmente |
PI_REASONING_LEVEL |
Nivel de razonamiento efectivo actual: off, minimal, low, medium, high, xhigh o max |
Los valores se resuelven cuando se inicia cada comando. Por lo tanto, cambiar de modelo o cambiar el nivel de razonamiento afecta al siguiente comando bash sin reiniciar Pi. PI_PROVIDER y PI_MODEL identifican el modelo Pi seleccionado, no un modelo ascendente diferente que un enrutador puede elegir internamente.
Cuando se le pregunte qué modelo o proveedor se está ejecutando, inspeccione estas variables en lugar de inferir la respuesta del mensaje del sistema:
printf '%s/%s\n' "$PI_PROVIDER" "$PI_MODEL"
printf 'reasoning=%s session=%s\n' "$PI_REASONING_LEVEL" "$PI_SESSION_ID"El archivo de sesión se puede inspeccionar directamente cuando la sesión es persistente:
if [ -n "$PI_SESSION_FILE" ]; then
tail -n 1 "$PI_SESSION_FILE"
fiEstas variables se inyectan en la herramienta bash invocable por LLM. No se inyectan en los comandos ! o !! ingresados por el usuario.
Herramientas Bash personalizadas
Las herramientas Bash creadas con createBashTool() exponen el entorno de sesión de forma predeterminada cuando se registran con Pi. La inyección ocurre antes de spawnHook, por lo que un gancho recibe las variables en ctx.env:
const bashTool = createBashTool(cwd, {
spawnHook: (ctx) => ({
...ctx,
env: { ...ctx.env, CI: "1" },
}),
});Deshabilite los metadatos de la sesión independientemente del gancho de generación:
const bashTool = createBashTool(cwd, {
exposeSessionEnvironment: false,
spawnHook: (ctx) => ctx,
});Cuando está deshabilitado, Pi elimina los valores heredados de estas variables, de modo que los procesos Pi anidados no exponen metadatos obsoletos de la sesión principal.
Pi Configuración del proceso
Estas variables son leídas por el propio Pi:
| Variable | Descripción |
|---|---|
PI_CODING_AGENT_DIR |
Anule el directorio de configuración; el valor predeterminado es ~/.pi/agent |
PI_CODING_AGENT_SESSION_DIR |
Anular el almacenamiento de sesiones; anulado por --session-dir |
PI_PACKAGE_DIR |
Anular el directorio del paquete, útil para las rutas de almacenamiento de Nix/Guix |
PI_OFFLINE |
Deshabilite las operaciones de red de inicio, incluidas las comprobaciones de actualizaciones, las actualizaciones de paquetes y la telemetría de instalación/actualización. |
PI_SKIP_VERSION_CHECK |
Deshabilite la solicitud de la última versión pi.dev |
PI_TELEMETRY |
Anular la telemetría de instalación/actualización y los encabezados de atribución de proveedores: 1/true/yes o 0/false/no |
PI_CACHE_RETENTION |
Establezca en long para el almacenamiento en caché extendido del aviso del proveedor cuando sea compatible |
PI_SHARE_VIEWER_URL |
Anule la URL base utilizada por /share |
PI_HARDWARE_CURSOR |
Establezca en 1 para mostrar el cursor de hardware; ver Terminal setup |
PI_TUI_ESC_TIMEOUT |
Tiempo de espera tras un ESC aislado antes de tratarlo como Escape, en milisegundos; el valor predeterminado es 100 mediante SSH y 10 en los demás casos. Auméntelo si la entrada con Alt se interpreta erróneamente como Escape |
VISUAL, EDITOR |
Respaldo del editor externo cuando externalEditor no está configurado |
HTTP_PROXY, HTTPS_PROXY |
Solicitudes HTTP salientes de proxy |
Las credenciales del proveedor como ANTHROPIC_API_KEY, OPENAI_API_KEY y la configuración del proveedor de la nube se enumeran en Providers.