编码代理 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 语法、baseUrl和api。- Provider 存在但模型不可选:
$TOKENHUB_API_KEY未解析,或尚未通过/login配置凭证。 - 401:确认 pi 进程继承了环境变量,并按需设置
authHeader: true。 - 400 或提前截断:修正
contextWindow、maxTokens或compat,不要盲目放大数值。 - 修改未生效:重新打开
/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。