Pi 的配置、扩展、平台设置和 API 参考。

Providers

Pi 通过环境变量或身份验证文件通过 OAuth 和 API key 提供程序支持基于订阅的提供程序。内置目录随 pi 一起提供;配置的提供程序可以刷新较新的目录并将其缓存在~/.pi/agent/models-store.json中以供离线使用。

目录

订阅

在交互模式下使用/login,然​​后选择一个提供者:

  • ChatGPT Plus/Pro(法典)
  • 克劳德·普罗/麦克斯
  • GitHub 副驾驶
  • xAI(Grok/X 订阅)
  • OpenRouter(OAuth-铸造API key由OpenRouter积分计费)
  • 半径

使用 /logout 清除凭证。令牌存储在~/.pi/agent/auth.json中,过期后自动刷新。 OpenRouter 相反会铸造一个用户控制的 API key,它不会自动过期。

OpenAI 法典

  • 需要 ChatGPT Plus 或 Pro 订阅
  • OpenAI官方认可:Codex for OSS

克劳德·普罗/麦克斯

Anthropic 订阅授权对于 Claude Pro/Max 帐户有效。第三方安全带使用量从 extra usage 开始,并按代币计费,不违反 Claude 计划限制。

GitHub 副驾驶

  • 按 Enter 键进入 github.com,或输入您的 GitHub Enterprise Server 域
  • 如果出现“型号不受支持”,请在 VS Code 中启用它:Copilot Chat → 型号选择器 → 选择型号 →“启用”

xAI(Grok/X 订阅)

  • 运行 /login xai,然​​后选择 使用订阅
  • XAI_API_KEY 通过 使用 API key 保持可用

开放路由器

  • 运行/login openrouter,然​​后选择使用OpenRouter登录,开启OpenRouter PKCE授权流程
  • 授权创建一个用户控制的 OpenRouter API key,从您的 OpenRouter 积分中计费
  • 在远程/无头机器上(例如超过SSH),浏览器无法到达环回回调;将最终重定向 URL(或授权代码)粘贴到登录提示中
  • OPENROUTER_API_KEY 通过 使用 API key 保持可用

半径

Radius 是一个动态 pi-messages 网关。 /login radius 将OAuth 代币存储在auth.json 中;网关目录独立刷新并缓存在models-store.json中。自定义 Radius 网关可以在 models.json"oauth": "radius" 以及网关 baseUrl 中声明。

API 按键

环境变量或身份验证文件

在交互模式下使用/login并选择一个提供者将API key存储在auth.json中,或通过环境变量设置凭据:

export ANTHROPIC_API_KEY=sk-ant-...
pi
提供者 环境变量 auth.json
人择 ANTHROPIC_API_KEY anthropic
蚁灵 ANT_LING_API_KEY ant-ling
Azure OpenAI 响应 AZURE_OPENAI_API_KEY azure-openai-responses
开放人工智能 OPENAI_API_KEY openai
深度搜索 DEEPSEEK_API_KEY deepseek
英伟达NIM NVIDIA_API_KEY nvidia
谷歌双子座 GEMINI_API_KEY google
亚马逊基岩 AWS_BEARER_TOKEN_BEDROCK amazon-bedrock
米斯特拉尔 MISTRAL_API_KEY mistral
格罗克 GROQ_API_KEY groq
大脑 CEREBRAS_API_KEY cerebras
Cloudflare AI 网关 CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID, CLOUDFLARE_GATEWAY_ID) cloudflare-ai-gateway
Cloudflare Workers AI CLOUDFLARE_API_KEY (+ CLOUDFLARE_ACCOUNT_ID) cloudflare-workers-ai
人工智能 XAI_API_KEY xai
开放路由器 OPENROUTER_API_KEY openrouter
Vercel人工智能网关 AI_GATEWAY_API_KEY vercel-ai-gateway
ZAI 编码计划(全球) ZAI_API_KEY zai
ZAI编码计划(中国) ZAI_CODING_CN_API_KEY zai-coding-cn
开放代码禅 OPENCODE_API_KEY opencode
开放代码Go OPENCODE_API_KEY opencode-go
半径 RADIUS_API_KEY radius
Hugging Face HF_TOKEN huggingface
烟花 FIREWORKS_API_KEY fireworks
一起人工智能 TOGETHER_API_KEY together
巴斯坦 BASETEN_API_KEY baseten
基米编码 KIMI_API_KEY kimi-coding
最小最大 MINIMAX_API_KEY minimax
极小最大(中国) MINIMAX_CN_API_KEY minimax-cn
Qwen 代币计划(现有目录) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan
Qwen 代币计划(个人) QWEN_TOKEN_PLAN_API_KEY qwen-token-plan-individual
Qwen代币计划(中国) QWEN_TOKEN_PLAN_CN_API_KEY qwen-token-plan-cn
小米MiMo XIAOMI_API_KEY xiaomi
小米 MiMo 代币计划(中国) XIAOMI_TOKEN_PLAN_CN_API_KEY xiaomi-token-plan-cn
小米 MiMo 代币计划(阿姆斯特丹) XIAOMI_TOKEN_PLAN_AMS_API_KEY xiaomi-token-plan-ams
小米 MiMo 代币计划(新加坡) XIAOMI_TOKEN_PLAN_SGP_API_KEY xiaomi-token-plan-sgp

环境变量和auth.json键的参考:packages/ai/src/env-api-keys.ts中的const envMap

验证文件

将凭证存储在~/.pi/agent/auth.json中:

{
  "anthropic": { "type": "api_key", "key": "sk-ant-..." },
  "ant-ling": { "type": "api_key", "key": "..." },
  "openai": { "type": "api_key", "key": "sk-..." },
  "deepseek": { "type": "api_key", "key": "sk-..." },
  "nvidia": { "type": "api_key", "key": "nvapi-..." },
  "google": { "type": "api_key", "key": "..." },
  "opencode": { "type": "api_key", "key": "..." },
  "opencode-go": { "type": "api_key", "key": "..." },
  "together": { "type": "api_key", "key": "..." },
  "qwen-token-plan":  { "type": "api_key", "key": "sk-sp-..." },
  "qwen-token-plan-individual": { "type": "api_key", "key": "sk-sp-..." },
  "qwen-token-plan-cn": { "type": "api_key", "key": "sk-sp-..." },
  "xiaomi": { "type": "api_key", "key": "..." },
  "xiaomi-token-plan-cn":  { "type": "api_key", "key": "..." },
  "xiaomi-token-plan-ams": { "type": "api_key", "key": "..." },
  "xiaomi-token-plan-sgp": { "type": "api_key", "key": "..." }
}

qwen-token-plan-individual 使用相同的国际端点,QWEN_TOKEN_PLAN_API_KEYqwen-token-plan,但将选择器限制为个人订阅记录的模型。现有的 提供商保留其更广泛的目录以实现向后兼容性。当使用auth.json时,存储 您选择的提供商下的凭证;两个国际提供商共享一个环境变量。

该文件是使用 0600 权限创建的(仅限用户读/写)。身份验证文件凭据优先于环境变量。

API key 凭证还可以包含提供者范围内的环境值。在解析凭据密钥、提供程序/模型标头和提供程序配置(例如 Cloudflare 帐户 ID、Azure OpenAI 设置、Vertex 项目/位置、Bedrock 设置、PI_CACHE_RETENTIONHTTP_PROXY/HTTPS_PROXY)时,在处理环境变量之前使用这些值。

{
  "cloudflare-ai-gateway": {
    "type": "api_key",
    "key": "$CLOUDFLARE_API_KEY",
    "env": {
      "CLOUDFLARE_API_KEY": "...",
      "CLOUDFLARE_ACCOUNT_ID": "account-id",
      "CLOUDFLARE_GATEWAY_ID": "gateway-id"
    }
  }
}

当 pi 应使用与项目 shell 环境不同的提供程序设置时,请使用此选项。

关键解决方案

key字段支持命令执行、环境插值和文字:

  • Shell命令: "!command"在开始时将整个值作为命令执行并使用stdout(在进程生命周期内缓存)
    { "type": "api_key", "key": "!security find-generic-password -ws 'anthropic'" }
    { "type": "api_key", "key": "!op read 'op://vault/item/credential'" }
  • 环境插值: "$ENV_VAR""${ENV_VAR}" 使用命名变量的值。插值适用于较大的文字。
    { "type": "api_key", "key": "$MY_ANTHROPIC_KEY" }
    { "type": "api_key", "key": "${KEY_PREFIX}_${KEY_SUFFIX}" }
    $FOO_BAR是变量FOO_BAR;当 BAR 是文字文本时,使用 ${FOO}_BAR。缺少环境变量会导致该值无法解析。
  • 转义: "
    quot;
    发出文字 "
    quot;
    "$!" 发出文字 "!" 而不触发命令执行。
    { "type": "api_key", "key": "$literal-dollar-prefix" }
    { "type": "api_key", "key": "$!literal-bang-prefix" }
  • 字面值: 直接使用。普通大写字符串(例如 MY_API_KEY)是文字;使用 $MY_API_KEY 作为环境变量。
    { "type": "api_key", "key": "sk-ant-..." }
    { "type": "api_key", "key": "public" }

OAuth 凭证也存储在/login之后并自动管理。

云Providers

Azure 开放人工智能

export AZURE_OPENAI_API_KEY=...
export AZURE_OPENAI_BASE_URL=https://your-resource.ai.azure.com
# also supported: https://your-resource.cognitiveservices.azure.com
# also supported: https://your-resource.openai.azure.com
# root endpoints are auto-normalized to /openai/v1
# or use resource name instead of base URL
export AZURE_OPENAI_RESOURCE_NAME=your-resource

# Optional
export AZURE_OPENAI_API_VERSION=2024-02-01
export AZURE_OPENAI_DEPLOYMENT_NAME_MAP=gpt-4=my-gpt4,gpt-4o=my-gpt4o

亚马逊基岩

使用 /login amazon-bedrock 存储 Bedrock API key,或配置以下环境 AWS 凭证源之一:

# Option 1: AWS Profile
export AWS_PROFILE=your-profile

# Option 2: IAM Keys
export AWS_ACCESS_KEY_ID=AKIA...
export AWS_SECRET_ACCESS_KEY=...

# Option 3: Bearer Token
export AWS_BEARER_TOKEN_BEDROCK=...

# Optional region (defaults to us-east-1)
export AWS_REGION=us-west-2

还支持 ECS 任务角色 (AWS_CONTAINER_CREDENTIALS_*) 和 IRSA (AWS_WEB_IDENTITY_TOKEN_FILE)。

pi --provider amazon-bedrock --model us.anthropic.claude-sonnet-4-20250514-v1:0

对于 ID 包含可识别模型名称(基础模型和系统定义的推理配置文件)的 Claude 模型,会自动启用提示缓存。对于应用程序推理配置文件(其 ARN 不包含模型名称),设置 AWS_BEDROCK_FORCE_CACHE=1 以启用缓存点:

export AWS_BEDROCK_FORCE_CACHE=1
pi --provider amazon-bedrock --model arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/abc123

如果您要连接到 Bedrock API 代理,则可以使用以下环境变量:

# Set the URL for the Bedrock proxy (standard AWS SDK env var)
export AWS_ENDPOINT_URL_BEDROCK_RUNTIME=https://my.corp.proxy/bedrock

# Set if your proxy does not require authentication
export AWS_BEDROCK_SKIP_AUTH=1

# Set if your proxy only supports HTTP/1.1
export AWS_BEDROCK_FORCE_HTTP1=1

Cloudflare AI 网关

CLOUDFLARE_API_KEY可以通过/login设置。帐户 ID 和网关 slug 可以设置为环境变量,也可以设置在 auth.json 中的 API key 凭证的 env 对象中。

export CLOUDFLARE_API_KEY=...           # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
export CLOUDFLARE_GATEWAY_ID=...        # create at dash.cloudflare.com → AI → AI Gateway
pi --provider cloudflare-ai-gateway --model "claude-sonnet-4-5"

通过 Cloudflare AI Gateway 路由到 OpenAI、Anthropic 和 Workers AI。 Workers AI 使用统一 API (/compat) 和前缀模型 ID (workers-ai/@cf/...)。 OpenAI 使用 OpenAI 直通路由 (/openai) 和本机 OpenAI 模型 ID,例如gpt-5.1。 Anthropic 使用 Anthropic 直通路由 (/anthropic) 和本机 Anthropic 模型 ID,例如 claude-sonnet-4-5

AI网关认证使用CLOUDFLARE_API_KEY作为cf-aig-authorization。上游身份验证可以是以下之一:

模式 请求授权 上游认证
工人人工智能 仅 Cloudflare 令牌 Cloudflare-native
统一计费 仅 Cloudflare 令牌 Cloudflare 处理上游身份验证并扣除积分
存储的 BYOK 仅 Cloudflare 令牌 Cloudflare 注入存储在 AI Gateway 仪表板中的提供商密钥
内嵌BYOK Cloudflare 令牌加上上游 Authorization 标头 该请求提供上游提供商密钥

对于正常的 pi 使用,更喜欢统一计费或存储 BYOK。内联 BYOK 需要为 Cloudflare AI Gateway 提供商配置额外的上游 Authorization 标头,例如通过 models.json 提供商/模型覆盖。

Cloudflare Workers AI

CLOUDFLARE_API_KEY可以通过/login设置。 CLOUDFLARE_ACCOUNT_ID 可以设置为环境变量,也可以设置在 auth.json 中的 API key 凭证的 env 对象中。

export CLOUDFLARE_API_KEY=...           # or use /login
export CLOUDFLARE_ACCOUNT_ID=...
pi --provider cloudflare-workers-ai --model "@cf/moonshotai/kimi-k2.6"

Pi 自动设置x-session-affinity 以获得prefix caching 折扣。

谷歌顶点人工智能

使用应用程序默认凭据:

gcloud auth application-default login
export GOOGLE_CLOUD_PROJECT=your-project
export GOOGLE_CLOUD_LOCATION=us-central1

或者将 GOOGLE_APPLICATION_CREDENTIALS 设置为服务帐户密钥文件。

llama.cpp

Pi支持llama.cpp路由器服务器。使用/login llama.cpp进行配置,使用/llama管理加载的模型,使用/model选择加载的模型。

有关服务器设置、模型目录布局、环境变量和命令用法,请参阅 llama.cpp

定制Providers

通过 models.json: 添加 Ollama、LM Studio、vLLM 或任何支持 API 的提供商(OpenAI Completions、OpenAI Responses、Anthropic Messages、Google Generative AI)。参见models.md

通过扩展: 对于需要自定义 API 实现或 OAuth 流的提供商,请创建一个扩展。参见custom-provider.mdexamples/extensions/custom-provider-gitlab-duo

决议顺序

解析提供商的凭据时:

  1. CLI --api-key 标志
  2. auth.json条目(API key或OAuth令牌)
  3. 环境变量
  4. 来自 models.json 的自定义提供商密钥