环境变量
本页面是 Pi 官方文档 的中文翻译。仅供学习参考。
Pi 以三种方式使用环境变量:
PI_OFFLINE这类变量用于配置 Pi 进程。- Pi 设置进程标记,让子进程能识别 Pi 是启动它的 Agent。
- LLM 可调用的 Shell 工具所运行的命令会收到描述当前会话的
PI_*变量。
Provider API Key 变量在 Provider 认证中单独记录。
进程标记
CLI 和 RPC 入口点设置两个进程标记:
AI_AGENT=pi是通用标记,让工具链能识别 Pi 是启动该进程的 Agent。PI_CODING_AGENT=true是 Pi 专用的,让子进程能检测到自己运行在 Pi 中。
子进程继承这两个标记。它们与具体会话无关,通过 SDK 嵌入 Pi 时不会自动设置。
Shell 工具的会话环境
由 bash 和 powershell 工具运行的命令会收到当前 Pi 会话状态:
这些值在每条命令启动时解析。因此更换模型或改变推理级别会影响下一条 Shell 命令,而无需重启 Pi。PI_PROVIDER 和 PI_MODEL 标识 Pi 选中的模型,而不是 router 可能在内部选择的其他上游模型。
被问到正在运行哪个模型或 Provider 时,请检查这些变量,而不要从系统提示推断:
会话持久化时可以直接检查会话文件:
这些变量会注入到 LLM 可调用的 bash 和 powershell 工具中。它们不会注入到用户输入的 ! 或 !! 命令。
自定义 Shell 工具
用 createBashTool() 或 createPowerShellTool() 创建的工具在通过 Pi 注册时默认暴露会话环境。注入发生在 spawnHook 之前,所以钩子会在 ctx.env 中收到这些变量:
可以独立于 spawn hook 禁用会话元数据:
禁用后,Pi 会移除这些变量继承来的值,使嵌套的 Pi 进程不会暴露过期的父会话元数据。
Pi 进程配置
这些变量由 Pi 自己读取:
ANTHROPIC_API_KEY、OPENAI_API_KEY 等 Provider 凭证和云 Provider 配置列在 Provider 认证中。
法律声明:本页面是 pi.dev 官方文档的中文翻译版本,仅供学习参考。本网站与 pi.dev 及 Earendil Inc. 无任何法律关系。

