跳转到主要内容
Orbi 可以使用 Pi models.json 形状模板所代表的模型 provider 和 OpenAI 兼容端点运行。 Issue #309 在 templates/pi-providers 提供每家 provider 一份完整的 pi_providers 文件。每份文件都是 Pi models.json 形状的有效 JSON:可以把整份复制为 .orbi/pi-providers.json,也可以把其中唯一条目复制到已有文件的 providers 对象中。然后在 orbi.toml 中只设置两个选择项:

清单

模板出现在清单中不代表承诺额度、可用性、速度或模型支持。未实测 是有意保留的状态。

DeepSeek:Orbi 自身交付使用的配置

DeepSeek 的价格页 (2026-09-26 核对)列出两个 API 模型 id,均为 1M 上下文: deepseek-flash(DeepSeek-V4.1-Flash)和 deepseek-v4-pro。仓库模板固定 deepseek-flash,采用模型完整的 contextWindow 1,000,000,maxTokens 16,384;Orbi 自身交付自 2026-09-22 起选择该模型(例如来源 Issue #1328)。 使用完整窗口。当 contextTokens 超过 contextWindow 减去 reserveTokens(默认 16,384)时,Pi 会压缩会话,并且只保留约 20,000 个近期 token。因此 131,072 的窗口会在约 114.7K token 处触发压缩;在 2026-09-22 以来的 77 个交付会话中,有 32 个(42%) 带有 "type":"compaction" 记录。压缩后的交付会丢失已读取的文件内容和已看到的 测试输出,只能重新读取、重新运行;完整的 1M 窗口避免了这些额外轮次。 缓存输入(cached input)的计费远低于未缓存输入,因此这个默认模型对 Orbi 这类缓存密集的会话成本很低;具体价格以价格页为准,会随时变化。

xAI:Grok 4.20 Reasoning

2026-09-09 已核对 xAI 模型目录。请从模板中选择精确的 reasoning 变体:
目录报告该模型的最大 prompt 长度为 1,000,000 tokens。模板将该值作为 contextWindow,并保守地将 maxTokens 保持为 16,384。xAI 额度和真实请求未实测;配置运行前请查看 xAI 官方模型目录 和账号状态。

OpenRouter :free:一个 key、多个模型

OpenRouter 用一个 OpenAI 兼容 endpoint 提供许多零价格模型。本节是配置说明,不保证模型持续存在,也不保证请求不会被限流。官方零价格目录是唯一准确来源,目录会动态变化。 本文使用的 :free 目录快照于 2026-09-08 核实,共 16 个模型。该快照中明确列出的示例包括: nvidia/nemotron-3-ultra-550b-a55b:free、nvidia/nemotron-3-super-120b-a12b:free、nvidia/nemotron-3.5-lightning:free、google/gemma-4-31b-it:free、cohere/north-mini-code:free、thinkingmachines/inkling:free、inclusionai/ling-3.0-flash-fin:free、poolside/laguna-s-2.1:free、liquid/lfm-2.5-2.6b:free。这里的模型 ID 是 models[].id 必须使用的精确值;目录会动态变化,选择前请重新核对每个 ID。 不要把 key 写进 provider 文件。复制 Issue #309 的模板,再把实际要选择的精确模型 ID 加入 models 列表;endpoint、API 和 key 引用保持不变:
模板默认选择 google/gemma-4-31b-it:free。只能选择复制后的文件中实际存在的 ID;Runner 会在派发前校验 provider、endpoint、API、模型列表和 $OPENROUTER_API_KEY 引用:
除非已经核实所选模型当前的 Pi/OpenRouter contract,否则不要添加 thinkingLevelMap;需要时只使用该 contract 给出的模型专属映射,本文不臆造映射。按任务选择可以优先考虑:cohere/north-mini-code:free 用于小型编码/搜索,nvidia/nemotron-3-ultra-550b-a55b:free、nvidia/nemotron-3-super-120b-a12b:free 或 nvidia/nemotron-3.5-lightning:free 用于较长推理,Gemma、Ling 或 LFM 用于轻量实验。这些只是实践建议,不是 benchmark 结果。

限额、请求与 429 状态

OpenRouter 官方限流文档给出的 free-model 共享政策约为:未达到要求的充值额度时 20 次请求/日,符合条件的账户最高 1000 次请求/日;具体政策、模型可用性和账户资格可能变化。这是政策级别的额度,不是逐模型实测值。2026-09-08 的快照没有为 16 个模型分别核实每日数字,所以每个模型的实测每日上限均为未实测。 2026-09-08 使用原始模板和 Pi 0.85.1 的真实请求提供了具体证据:google/gemma-4-31b-it:free 两次返回 HTTP 429(间隔约两分钟),响应含 temporarily rate-limited upstream 和 limit_source: upstream_provider_shared_pool;cohere/north-mini-code:free 返回 HTTP 200,内容为 ok。429 的处理建议是稍后重试、绑定自己的 provider key,或更换 provider 路由/模型。这说明 429 可能是上游共享池的瞬时限流,不能据此断言每日额度已耗尽。自 #321 起,瞬时 429 会在 run 内按有界退避自动重试(journal 的 pi_retry_429 行——从不静默);Orbi 不会自动轮换模型——撑过全部重试仍 429 时,保留失败 run 证据并手动选择另一个已配置模型。自动的 quota_exhausted 分类属于 #313,不由本文或模板实现。

接入一家新 provider

  1. 复制最接近的模板并设置一个 provider id。baseUrl、api、apiKey 和非空 models 列表必须一起保留。选择的 pi_model 必须精确等于某个 models[].id。
  2. OpenAI-compatible endpoint 使用 openai-completions。Google Gemini 使用 google-generative-ai,其 baseUrl 保持为 https://generativelanguage.googleapis.com/v1beta。
  3. 真实 key 放在 .orbi/env(gitignored、权限 600),提交的 JSON 只使用 $VAR 或 ${VAR} 引用:
    已安装的 [email protected] 通过 EnvironmentFile 加载此文件;key 绝不能进入 Git 或模板。字面量 key 只是降级方案:文件仍应 gitignored,并且要接受它可能通过本地文件和进程工具泄漏的风险。
  4. 手动 tick 时 systemd 不会加载 .orbi/env。先导出变量,或在当前 shell 中 source:
  5. orbi.toml 只选择 provider/model,不维护注释掉的 provider 配置块。真实任务前运行 loader/runner 校验;选中的 provider、model、endpoint、API 或 key 引用不正确时会 fail fast。

thinkingLevelMap

不要为 provider 猜测完整映射。Gemini 模板的已知安全写法正是 {"off": null}:其他 thinking level 使用 provider 默认映射。若把所有 level 都映射成 null,可能发送 provider 不支持的值并得到 400。其他 provider 若没有经过 Pi provider 契约验证,应省略此字段。

Google Gemini:AI Studio 免费层

在 Google 的 AI Studio API key 页面 创建 API key。key 只保存在本机:提交的模板只引用 GOOGLE_API_KEY,不要把真实值写入 Git、Issue、PR 或 journal。
  1. 在 AI Studio 创建或选择 key,然后写入 Orbi 使用的 gitignored 环境文件:
    已安装的 systemd unit 会加载 .orbi/env。手动 tick 时,先按上手指南导出变量。
  2. 将 templates/pi-providers/gemini.json 复制为 .orbi/pi-providers.json。其中完整的选中条目如下:
  3. 在 orbi.toml 中选择精确的 provider 和 model:
    api、baseUrl、model ID 和 $GOOGLE_API_KEY 引用都是已验证模板的一部分。除非重新核实当前 Pi/Gemini 契约,否则保持 Gemini 的 thinkingLevelMap 为 {"off": null};把所有 thinking level 都映射为 null 可能导致上游 400。

免费层限流与实测表现

截至 2026-09-04 核实,AI Studio Gemini API 免费层按 RPM、RPD、TPM 限流。官方限流页面是动态页面,因此本文不抄写会变化的宣传数字。该账号真实的每日 RPD/TPD 上限未测量,应标为未实测,不能理解为不限量。 本机使用 provider google 和 model gemini-3.8-flash 的真实 Pi 请求约 15 秒起跑。burst 后上游返回 HTTP 429,消息为 You exceeded your current quota;约 50 分钟后再次返回 HTTP 200。这条有日期的观察说明是暂时性限流,不能证明 key 无效,也不能证明每日额度已耗尽。它只是一个账号的证据,不是额度保证。 Orbi 从不在 session 中切换 provider;瞬时 429 会在 run 内按有界退避自动重试(Issue #321——journal 的 pi_retry_429 行,从不静默),撑过全部重试仍 429 的 run 依然失败。保留失败 run 的证据,或在下一次运行手动选择另一家已配置的 provider:
替换 provider 文件和匹配的环境变量,再次验证精确的 provider/model/key,然后执行一次真实 pi --print 检查。切换必须手动完成;#313规划的按 provider 自动轮换尚不是当前行为。

z.ai GLM:体验/免费额度

如果 z.ai 账号有体验或免费额度,可使用这条路径。z.ai 提供 OpenAI-compatible API;Orbi 模板使用直连 endpoint https://api.z.ai/api/paas/v4 和 Pi 的 openai-completions API。key 获取流程以 z.ai 的 API 快速开始 和 API key 管理页为准。页面可能变化;不要把 key 写入仓库、Issue、PR 或 journal。
  1. 在 z.ai 控制台创建 API key,然后放入本地 gitignored 环境文件:
    systemd service 会通过 EnvironmentFile 加载该文件;手动 tick 不会加载。手动运行前先执行 set -a; . .orbi/env; set +a,再运行上手指南的手动 tick 命令。
  2. 将 templates/pi-providers/z-ai.json 复制为 .orbi/pi-providers.json,或复制其中的 provider 条目。选择精确的 ID:
    当前完整的 models 条目是:
    reasoning 是可选的 Pi model catalog 字段,用于表示模型是否支持 reasoning;thinkingLevelMap 将 Pi thinking level 映射为 provider 特定值。已提交的 z.ai 模板有意省略这两个字段:在没有经过 Pi/z.ai 契约核实前,本文不宣称 z.ai 的 reasoning 或 thinking 映射。不要把 Gemini 的 {"off": null} 映射复制给 z.ai。
  3. 派发任务前验证条目。Runner 的 _load_pi_providers 会校验 provider、精确 model ID、endpoint/API 和非空 ZAI_API_KEY,但不会测试或承诺额度是否可用。

已知的免费额度边界

  • **2026-09-04 已核实:**使用 glm-5.3-flash 的真实 Orbi 交付从 Issue #303 完成到 commit b81f77a,并到达 PR #304。这证明一次成功运行,不是额度保证。
  • 本指南使用的材料中,z.ai 没有静态公布统一的体验/免费上限。确切额度、重置时间、并发和模型可用性取决于账号及 z.ai 当前政策;本文未实测。
  • 本指南没有对耗尽或限流响应做受控测量;限流表现:未实测。以上游 HTTP 认证/限流错误为准,不要编造数字或增加重试循环。

额度用尽后的切换路径

Orbi 不提供自动 fallback。保留 orbi.toml 中的选择字段,但要把 pi_provider 和 pi_model 改为清单中另一 provider 的匹配值;同时替换 provider 文件和 key,然后重新验证。例如切换到已有的 OpenRouter 模板及其选中模型:
复制 openrouter.json,在 .orbi/env 设置 OPENROUTER_API_KEY,派发前执行一次真实 pi --print 检查。除上述有日期的证据外,OpenRouter 模型可用性和额度均未实测也不承诺;选择模型前请重新核对实时目录。

Cloudflare Workers AI

Cloudflare 的 OpenAI-compatible endpoint 按账号区分。复制 cloudflare-workers-ai.json,把 baseUrl 中的 REPLACE_WITH_ACCOUNT_ID 换成 Cloudflare Account ID,并创建同时具有 Workers AI - Read 和 Workers AI - Edit 权限的 API token(Cloudflare REST API 文档要求这两个权限)。模板使用自定义 Pi provider id cf-workers,避免 Pi 对原生 Cloudflare 凭据进行特殊解析。token 放在 .orbi/env:
在 orbi.toml 中选择:
模型 ID 来自 Cloudflare 当前的 Workers AI 模型目录,endpoint 路径来自 Workers AI 配置文档。Cloudflare 官方定价页说明每天免费 10,000 Neurons,在 00:00 UTC 重置(信息核对日期:2026-09-04)。超过免费额度后,若未启用计费,后续操作会失败。额度和价格可能变化,运行前请重新查看官方页面。

实测一个 Orbi 任务的消耗

派发一个 Issue 前、PR 打开后,分别记录 Workers AI 账号的 Neurons 使用量(必须是同一 UTC 日)。任务消耗为 after - before;保留 dashboard/API 的 UTC 时间戳、模型、Issue 和 PR URL,但不要保留 token。Orbi journal 只能证明选中了 provider/model,不能代替 Neurons 计量。本仓库尚未使用带 Cloudflare 账号的真实 Orbi 任务;真实请求和 Neurons 消耗未实测,不得推断或编造。

托管服务与本地 Qwen 的定位

Workers AI 是托管服务:Cloudflare 提供推理服务和账号 Neurons 额度,适合没有高性能 GPU 的机器,但依赖网络、账号额度和 Cloudflare 的模型可用性。local-qwen 是自托管:不消耗 provider 额度,请求发往本地 OpenAI-compatible server,但操作者需要提供硬件、模型运行时和电力。轻量托管执行可选 Cloudflare;重视数据不出机和本地可控可用性时选本地 Qwen。

本地 provider

本地 OpenAI-compatible server 仍需要非空的 apiKey 字段才能通过 provider 形状校验;本地模板使用无秘密的 dummy 值 local。模型 id 必须与 server 宣告的 id 一致(llama.cpp 可用 --alias 设置)。

GitHub Models:免费原型额度历史快照

本节记录 2026-09-04 时的 GitHub Models 原型配置。GitHub 官方 endpoint 当前返回退役响应(410);GitHub Models 无法用于实时请求。模板仅保留作历史/参考用途,不应被当作可用 provider。此前的免费额度属于 GitHub Models 服务限制,不是 Orbi 或 Copilot 的额度。 以下是历史配置(服务退役期间不要创建 token,也不要用它派发实时任务):
  1. 在 GitHub token 设置 创建 fine-grained personal access token,并授予 Models: read 权限。只在本机保存 token;不要写入 Git、Issue、PR 或 journal:
  2. 将 templates/pi-providers/github-models.json 复制为 .orbi/pi-providers.json,然后选择精确 ID:
    模板使用 https://models.github.ai/inference、Pi 的 openai-completions API 和 $GH_MODELS_TOKEN。派发任务前运行 Runner 校验;校验只检查结构和 key 引用,不检查账号访问权或额度。

模型清单和限额(2026-09-04 核对)

官方 GitHub Models catalog 在该历史快照时是动态的。本指南核对时清单中的模型 ID 为:openai/gpt-4.1、openai/gpt-4.1-mini、openai/gpt-4o、openai/o4-mini、meta/llama-3.3-70b-instruct、meta/llama-4-scout-17b-16e-instruct、microsoft/phi-4、mistral-ai/mistral-small-2503、deepseek/DeepSeek-R1 和 xai/grok-3-mini。可用性可能因账号不同,也可能随时变化;提交的模板固定使用 openai/gpt-4.1-mini 作为示例。 本仓库没有发起真实 GitHub Models 请求,也没有测量耗尽、重置或 HTTP 429 行为。该服务目前已退役,因此本历史快照不是实时运行指南;所有额度和模型可用性都应明确视为未实测。如需依赖后续服务,请先查看 GitHub 当前文档。

GitHub Models 与 Copilot 的边界

GitHub Models PAT 及其免费原型额度,与 GitHub Copilot 订阅、Copilot 请求和 Copilot premium-request 额度相互独立。拥有 Copilot 不代表拥有 GitHub Models 额度,GitHub Models 使用也不消耗 Copilot 订阅请求。计费、资格、限流和重置规则以 GitHub Models 当前条款为准;不要假定两种产品共用计数器。

使用 Sign in with ChatGPT:消耗 ChatGPT Plus/Pro 订阅额度

Pi 原生 openai provider 支持 Sign in with ChatGPT:符合条件的 ChatGPT Plus/Pro 账号只需授权 Pi CLI 一次,Orbi 之后的交付就会消耗用户的 ChatGPT 订阅额度与 credits,而不是 OpenAI API 账单。这条路径不需要 pi_providers 文件,也不需要 OPENAI_API_KEY;Orbi 的 per-run Pi agent 目录会复用 Pi 原生的 ~/.pi/agent/auth.json。
本次交付没有可用的 ChatGPT Plus/Pro 账号。登录菜单文案、callback、凭据文件和 OAuth scope 均已对照 Pi CLI 包(@earendil-works/pi-coding-agent 0.99.1)和 OpenAI 的 Sign in with ChatGPT 文档核实;端到端登录、订阅额度、特定账号的模型可用性以及 Orbi 实际运行结果未实测。不要把下文的示例理解为你的订阅一定有可用额度。
这条路径需要 Pi ≥ 0.99.1。文档环境安装的 Pi 是 0.85.1,没有 Sign in with ChatGPT 流程:0.99.0 已带 openai OAuth 模式但没有完整打包该流程,0.99.1 才是第一个完整发布的版本(dynamic_agent_client 注册、chatgpt.tokens.use.direct scope 和 /auth/callback 监听)。请先升级 Pi。

第一次登录:必须按这个顺序

  1. 启动交互式 Pi 会话:pi。
  2. 在 Pi 提示符中执行 /login openai。Pi 会询问 Select authentication method for OpenAI:——选择 Sign in with ChatGPT(订阅路径;另一个选项是 Sign in with an API key)。不带 provider 参数的 /login 会先询问 Select authentication method::选择 Sign in with an account,随后才会列出 provider OpenAI。
  3. 在浏览器完成授权,并同意该 app 使用你的 ChatGPT 订阅额度。
  4. 配置 Orbi 之前先检查登录:
    成功时应报告:
    "authType":"oauth" 说明正在使用已保存的 ChatGPT OAuth 凭据。若显示 "authType":"api_key",说明 Pi 找到了 OPENAI_API_KEY;通常已保存的 OAuth 凭据优先,但如果要明确只用订阅,请从 .orbi/env 删除该变量。该命令默认会刷新过期 OAuth 凭据;不要在共享终端或 transcript 中使用 --credentials。

最小 Orbi 配置

保持 pi_providers 未设置——openai 是 Pi 原生 provider。不要在任何 provider JSON 文件里创建 openai 条目。

选择账号可用的模型

模型可用性取决于账号,因此不要猜 slug,而要用 OAuth access token 从 OpenAI 的模型列表读取:GET https://api.openai.com/v1/models 会返回该账号可调用模型的 models 数组,本流程支持的条目带有 visibility: "list"。把该条目的 slug 用作 pi_model。
$ACCESS_TOKEN 是 Pi 为 openai provider 保存在 ~/.pi/agent/auth.json 的 OAuth access token(字段 access);不要把 token 写进共享 shell 历史或 transcript。只有在所选模型确实支持时才设置 pi_thinking。

与 Codex OAuth 一节的差别

两条路径都使用 ChatGPT 订阅、都不需要 pi_providers 文件,但 provider 和 endpoint 不同:
  • Sign in with ChatGPT 使用 Pi 原生的 openai provider,走公网 Responses API https://api.openai.com/v1。这是 OpenAI 为 ChatGPT Plus/Pro 订阅额度记录的路径,新装 Orbi 应优先选择。
  • Codex OAuth 使用 Pi 原生的 openai-codex provider,走 https://chatgpt.com/backend-api(Codex app-server 路由)。它仍是已有 Codex 环境的正确路径。
每套 Orbi 只配置一个 provider;不要同时配置两个选择项。

无头/服务器安装

Pi 在 http://127.0.0.1:1455/auth/callback 监听 OAuth 回调,并在运行 Pi 的机器上打开系统浏览器。若浏览器无法访问该监听端口(远程 VM、容器),Pi 会提示:“Complete login in your browser, or paste the final redirect URL here:“——在浏览器完成登录,复制最终的 http://127.0.0.1:1455/auth/callback?code=... URL,粘贴回 Pi 提示符。 也可以先在带浏览器的机器登录一次,再复制凭据文件(Pi 以 0600 权限写入):
host 身份按 OpenAI 的 自托管 VM 指南处理:Pi 的 host ID 来自 ~/.pi/agent/settings.json 中的 device ID,因此除非你确实想沿用被复制机器的 host,否则应保留每台 VM 自己的 agent 目录身份。refresh token 有效期 30 天,每次刷新都会更换,因此只要 VM 持续刷新,复制过去的文件就能一直使用。

额度与计费边界

根据 OpenAI 的 Sign in with ChatGPT 文档:登录授权的是计入用户 ChatGPT 订阅额度和 credits 的 AI 请求,不是 OpenAI API 账单,OpenAI 也不会把请求静默转到其他计费路径。ChatGPT Plus 的五小时用量上限由所有使用该订阅的 app 共享——一个 app 的用量计入同一个五小时总量——Pro 不适用该上限。用户可在 ChatGPT Settings → Usage 查看 app 用量、为每个 app 设置每周用量上限(10%–100%),并选择是否在超出订阅额度后使用 credits;Pi 注册了 agent_name_hint="Pi",因此在那里显示为 Pi。这些是 OpenAI 的订阅规则,不是 Orbi 的承诺;依赖额度前请查阅当时的官方文档。

失败路径与修复

  • 订阅额度用尽。 OpenAI 返回 subscription_sharing_usage_limit_exceeded(HTTP 429)或 subscription_sharing_usage_unavailable(HTTP 503)。Pi session 失败,Orbi 记录错误并把 Issue 标为 ai-blocked。修复:等待共享额度重置,在 ChatGPT Settings → Usage 调整该 app 的限额,或切换到另一家已配置的 provider。Orbi 永不回退到 API 账单。
  • 未授予权限。 如果授权页未授予订阅用量权限,Pi 会以 OpenAI OAuth grant did not include chatgpt.tokens.use.direct 失败。修复:重新执行 /login openai 并同意订阅用量权限。
  • 凭据过期或被撤销。 refresh token 过期(闲置 30 天)、在 ChatGPT 设置中断开该 app,或 Pi session 出现认证错误,都说明需要重新登录。修复:重新执行 /login openai。切换 provider 不会修复失效的 ChatGPT session。
绝不要把 OAuth token 或 auth.json 写入仓库、Issue、PR body 或 journal。

证据边界

本节记录的是契约,不是已验证的运行。登录文案、pi auth check 的 JSON 形状、http://127.0.0.1:1455/auth/callback、0600 权限的 ~/.pi/agent/auth.json、agent_name_hint="Pi" 以及 chatgpt.tokens.use.direct scope 均已对照 @earendil-works/pi-coding-agent 0.99.1 核实;模型列表 endpoint、额度规则和错误码来自 OpenAI 的 Sign in with ChatGPT 文档。登录、额度、特定账号的模型可用性以及 Orbi 实际运行结果未实测。登录成功后,只保留真实 Issue 运行的非秘密证据(journal 的 provider=openai model=<slug> run_id=<id>、PR URL、耗时),绝不保留 token 或 session JSONL。

Codex OAuth:使用 ChatGPT/Codex 订阅额度

这条路径使用 Pi 原生的 openai-codex provider 和 OAuth 凭据。不使用 OPENAI_API_KEY,也不需要第二份 pi_providers JSON。它消耗的是订阅/Codex 额度,不是 OpenAI API 账单。

第一次登录:必须按这个顺序

  1. 启动交互式 Pi 会话:pi。
  2. 在 Pi 提示符中执行 /login codex。
  3. 在浏览器完成 Codex OAuth 授权。
  4. 回到 Pi,用当前 Pi CLI 实际支持的命令检查登录:
    成功时应报告 "status":"ready" 和 "authType":"oauth"。该命令默认会刷新过期 OAuth 凭据;不要在共享终端或 transcript 中使用 --credentials。
  5. 检查成功后,再配置 Orbi 并运行真实 Issue。

最小 Orbi 配置

如果存在 pi_providers,请删除;保持它未设置。不要复制或创建 openai-codex provider 条目。Pi 从自己的 models.json 提供 catalog,Orbi 的 per-run agent 目录复用 Pi 原生 auth。
Pi catalog 在 2026-09-08 检查到该模型的 API 是 openai-codex-responses,endpoint 是 https://chatgpt.com/backend-api;启用 reasoning,支持 text/image 输入,上下文限制 272,000 tokens,输出限制 128,000 tokens。其 catalog 的 thinking 映射支持 minimal → low、xhigh → xhigh、max → max;默认可不设 pi_thinking,也可设置这些已核实的级别。这些是 Pi 的请求限制,不是订阅额度承诺。1,000,000 tokens 的上下文能力属于产品侧的 gpt-5.6-sol,不是 gpt-5.6-luna;Pi 当前 catalog 对 sol 同样标为 272,000 tokens,因此 Orbi 实际路由以 Pi catalog 为准。如需选择 sol,请在当时重新核验 catalog。

额度与计费边界

OAuth 凭据消耗用户的 Codex/ChatGPT 订阅额度。它与 OpenAI API key、API organization 计费以及任何 OPENAI_API_KEY 余额相互独立。Pi catalog 的 cost 字段只是路由元数据,不是账单或额度计数器。额度、重置时间、限流、模型可用性和错误文本取决于账号计划且可能变化。2026-09-05 的真实运行来自一个本机账号;证据没有记录账号计划和确切额度,因此本文不做普遍额度承诺。额度耗尽或限流时,Pi session 中通常会出现上游认证/限流失败;请以当前 Codex UI/help 为准,不要用 catalog 推算剩余额度。

应保留的真实 Issue 证据

在用户自己的仓库运行第一个 Issue,并保留不含秘密的证据。成功运行至少应记录:
本指南对应的 Orbi 已完成运行(2026-09-07)留下了以下脱敏、无秘密记录:
这只是一个本机账号的证据,不代表额度保证;证据没有记录账号计划和确切额度。不要整份粘贴 session JSONL:先删掉凭据和包含秘密的 prompt。

额度或认证失败时切换 provider

只替换选择项即可。切换到 Orbi 模板里的 provider 时,需要把对应文件加回来,因为 fallback 不再是 Pi 原生 provider:
使用本页对应的模板和 secret 配置;绝不要把 OAuth token 或 API key 写入仓库、Issue、PR body 或 journal。认证失效时先用 /login codex 修复/重新登录;切换 provider 不会修复过期的 Codex session。

Groq 免费档

把 groq.json 复制为 .orbi/pi-providers.json,再设置选择项和 key 引用:
模板使用 Groq 的 OpenAI-compatible endpoint(api: "openai-completions")和 $GROQ_API_KEY;真实 key 放在 gitignored 的 .orbi/env,不要写入 JSON 或提交。 根据 Groq 的限流表,groq/compound 的 Free Plan 行为 30 RPM / 250 RPD / 70K TPM(2026-09-04 核对)。这是账号限额,不是 Orbi 承诺;实际使用前应重新查看官方表。模型目录列出该模型 131,072 token 上下文和 8,192 token 最大输出。TPM 较低,适合短小、边界清晰的 coding Issue 和小修复,不适合长上下文仓库分析。 额度命中时上游返回 HTTP 429;Orbi 从不在 session 中途切换 provider。瞬时 429 会在 run 内按有界退避自动重试(#321——journal 的 pi_retry_429 行,从不静默);撑过全部重试仍 429 的 run 依然失败:保留 Issue/worktree 证据,并在下一次运行手动选择另一家已配置的 provider。#313规划了按 provider 预算和 run 边界自动轮换;在该功能实现前,不要把它当作当前行为。本指南中的真实 Groq 请求、usage 计量和 429 响应未实测;没有脱敏证据时不要声称 Groq Issue 已跑通。 模型即使出现在 Groq 的实时目录中,也可能被组织级策略禁用。此时真实请求会返回 HTTP 403 和 model_permission_blocked_org(不是 429):请让组织管理员在 Groq 组织限额设置 中启用该模型,或改选另一家已配置的 provider。HTTP 429 表示账号额度/速率限制已触发;排障路径与组织级 403 不同。 完整的 OpenAI-compatible 配置见上手指南,provider 文章系列见 Issue #305。