pi Coding Agent API 设置

使用 TokenHub 提供程序、基于环境的 API 密钥和 compatible 模型配置 pi(可扩展编码代理)。

编码代理 pi 是什么?

pi 是一个可扩展的命令行编码代理,具有用于个人开发工作流程的自定义提供程序、模型和扩展。

本 pi 代理指南将 TokenHub 添加到 models.json,将 API 密钥保留在环境变量中,并在您在 pi CLI 中选择提供程序之前准确声明模型限制。 pi 属于 pi-mono 项目,支持自定义提供程序、模型功能声明和扩展。 models.json 值是操作限制而不是装饰性元数据:使用经过验证的上下文和输出值,使用环境变量保护 API 密钥,并在扩展请求其他工具时单独验证扩展。

pi 的官方 Custom Models 机制从 ~/.pi/agent/models.json 加载网关与自定义模型。TokenHub 使用 openai-completions API 类型;这里没有“添加 Provider”图形表单,配置文件就是正式入口。

第一步:为 models.json 准备凭证

在启动 pi 的同一个终端设置:

export TOKENHUB_API_KEY="sk-..."

models.json 中必须写成 "$TOKENHUB_API_KEY" 才表示读取环境变量。官方特别说明,缺少 $ 的大写字符串会被当成字面 Key,而不是环境变量名。

第二步:编辑 ~/.pi/agent/models.json

{
  "providers": {
    "tokenhub": {
      "baseUrl": "__API_BASE_URL__/v1",
      "api": "openai-completions",
      "apiKey": "$TOKENHUB_API_KEY",
      "models": [
        {
          "id": "YOUR_TOKENHUB_MODEL_ID",
          "name": "TokenHub / YOUR_TOKENHUB_MODEL_ID",
          "reasoning": false,
          "input": ["text"],
          "contextWindow": 128000,
          "maxTokens": 8192
        }
      ]
    }
  }
}

逐项按 TokenHub 模型详情修正:

  • id 是实际传给 API 的 Model ID,必填。
  • reasoning 只有模型支持扩展思考时才改为 true
  • input 默认只有 text;支持图片时才写 ['text', 'image']
  • contextWindow 默认值虽然是 128000,但仍应填写模型真实上下文。
  • maxTokens 是最大输出,默认值是 16384;不能用上下文窗口替代。

TokenHub 使用 Bearer Token;若当前 pi 版本没有自动添加 Authorization header,可在 Provider 层加入 "authHeader": true

第三步:打开 /model 触发重新加载

在 pi 会话中运行 /model。官方说明每次打开 /model 都会重新读取 models.json,所以编辑后无需重启。选择 tokenhub/YOUR_TOKENHUB_MODEL_ID,先要求解释一个文件,再测试工具调用。

如果 Provider 或模型显示但不可选,说明配置已加载、凭证却没有解析成功。检查环境变量,或使用 /login / auth.json 保存该 Provider 的 Key。

pi 特有的兼容项

部分 OpenAI-compatible 服务不接受 developer role 或 reasoning_effort。只有实际出现对应 400 错误时,才添加:

"compat": {
  "supportsDeveloperRole": false,
  "supportsReasoningEffort": false
}

不要预先关闭能力。TokenHub 请求成功后,再根据具体模型决定是否配置 thinkingLevelMap、图片输入、采样参数或价格。

按 pi 的加载机制排错

  • /model 中完全没有 Provider:检查文件路径、JSON 语法、baseUrlapi
  • Provider 存在但模型不可选:$TOKENHUB_API_KEY 未解析,或尚未通过 /login 配置凭证。
  • 401:确认 pi 进程继承了环境变量,并按需设置 authHeader: true
  • 400 或提前截断:修正 contextWindowmaxTokenscompat,不要盲目放大数值。
  • 修改未生效:重新打开 /model,而不是只看当前会话底部的旧选择。

官方资料

推荐模型怎么选?

任务选择方向适合原因
复杂任务旗舰推理模型更适合规划、多步骤执行和复杂上下文。
日常使用均衡模型在效果、速度和成本之间取得平衡。
批量任务快速低成本模型减少摘要和简单处理的成本。
前往模型广场比较价格和能力

pi Coding Agent 提供商 FAQ

pi 代理、pi Coding Agent 和 pi-mono 有什么关系?

pi-mono 是包含多个 components 的项目存储库,其中包括 pi Coding Agent CLI。本页介绍该编码代理,而不是 Raspberry Pi。

为什么 pi 自定义提供程序需要模型限制?

pi 使用上下文和输出限制来塑造请求和功能。输入经过验证的模型规格,而不是复制或发明的值。

pi 扩展是否自动使用 TokenHub 模型?

它们通常遵循当前的会话提供程序,但扩展可以有单独的要求或设置。安全地检查权限并验证每个扩展。

为什么pi找不到TOKENHUB_API_KEY?

确认 models.json 引用了确切的变量名称,并从已加载它的新终端启动 pi。不要将真实密钥存储在存储库配置中。

如何测试 pi Coding Agent 提供商?

选择提供程序和模型,运行只读代码任务,并在启用编辑、命令或扩展之前检查 TokenHub 日志。

配置资料

本页配置以 TokenHub 教程和官方资料为依据,最后核验于 2026-09-08。