gpt-fast-mode — Codex Fast 模式,快而不越界
导语
用 /gpt-fast 为受支持的 ChatGPT Codex 模型开启 priority service tier,同时严格拦住错误 provider、API、认证和模型。
简介
OpenAI Codex 的 Fast 模式不是 reasoning level,也不是切换模型,而是在请求里设置 service_tier: "priority"。pi 的 openai-codex-responses 已能发送这个字段,但没有内置 Fast 控制面。@piex-dev/gpt-fast-mode 补上 /gpt-fast on|off|status 与 --fast,使用具体命令名避免占用过于宽泛的 /fast。
额度影响
Fast 模式通常响应更快,但会更快消耗订阅额度。扩展只改变 service tier,不改变模型、reasoning level、工具或提示词。
技术原理
扩展监听 before_provider_request,在请求发送前复制 payload 并追加 service_tier: "priority"。注入必须依次通过六层门禁:provider 为 openai-codex、API 为 openai-codex-responses、模型位于显式 allowlist、使用 ChatGPT OAuth、payload 模型与当前模型一致、payload 尚未包含 service_tier。
| 支持 | 明确拒绝 |
|---|---|
gpt-5.4、gpt-5.5、gpt-5.6-sol、gpt-5.6-terra、gpt-5.6-luna、gpt-6-astra | gpt-5.4-mini、gpt-5.3-codex-spark |
不支持的模型不会被猜测式兼容。开关可保持 on,但请求不修改;切换到支持模型后自动生效。
使用说明
安装
pi install npm:@piex-dev/gpt-fast-mode命令
/gpt-fast 切换 Fast 模式
/gpt-fast on 当前会话开启
/gpt-fast off 当前会话关闭
/gpt-fast status 查看开关、当前模型可用性与最近请求结果
pi --fast 启动时开启状态栏出现 fast 表示开关已开启、当前模型可用,且本扩展的请求 hook 观测到的 payload 没有 tier 冲突。若其他组件此前已经设置非 priority 的 service_tier,扩展会保留原值并清除状态。加载顺序更靠后的扩展仍可修改最终 payload,因此 /gpt-fast status 报告的是本扩展的注入或观测结果,不代表服务端确认。OAuth 会在每轮和每次请求前重新检查。
验证
bun test extensions/gpt-fast-mode/test/gpt-fast-mode.test.ts
pi -e ./extensions/gpt-fast-mode/src/gpt-fast-mode.ts --fast -p "say hi" --no-session实现方案
单文件 src/gpt-fast-mode.ts 维护会话内 enabled 状态;session_start 读取 --fast,model_select 重算状态栏,before_provider_request 执行门禁与 payload 复制。
/gpt-fast / --fast ──► enabled
├─► model_select ──► status: fast / clear
└─► before_provider_request
└─► six gates ──► service_tier: priority扩展不注册平行 provider,复用 pi 内置 Codex 的 OAuth 刷新、模型目录和传输;不读取 token、不发网络请求、不写文件、无运行时依赖。更早执行的 payload hook 已有 service_tier 时不覆盖;非 priority 的 tier 会清除状态,并由 /gpt-fast status 报告。公开 API 无法观测后续 hook 的最终改写,因此状态文案不会声称最终请求一定使用 priority。
本地成本估算
公开的 before_provider_request 只能替换序列化后的 payload,不能设置 provider 内部独立的 serviceTier 请求选项。Fast 请求仍会发往 Codex,但当响应 tier 报告为 default 或不返回时,pi 本地 session cost/telemetry 可能仍按标准 tier 估算,订阅额度以后端结果为准。仅为修正估算而覆盖整个 provider 会破坏扩展组合,因此本包不采用该方案。
设计参考
| 项目 | 采纳 | 未采纳 |
|---|---|---|
@diegopetrucci/pi-openai-fast | provider/API/OAuth 门禁,已有 tier 不覆盖 | 项目和全局配置 |
@benvargas/pi-openai-fast | on/off/status 语义、--fast、allowlist | /fast 命令名、API-key OpenAI 与文件持久化 |
@tunnckocore/pi-gpt-fast-mode | 单文件、无依赖 | 错误的 Codex mini 支持项与快捷键 |
pi-openai-codex-fast | priority service tier | 平行 provider 与版本耦合 |
核心取舍是安全的窄功能优于通用配置层。Fast 只是请求属性,不值得复制 provider;显式 allowlist 比 gpt-* 模糊匹配可靠。
迭代记录
路线图
- 上游提供稳定 capability 字段后,从模型 catalog 自动生成 allowlist。
- 有真实需求后再增加 PieX 标准目录下的默认开关配置,不默认写文件。
- 可与
@piex-dev/usage展示额度影响,但保持两个包解耦。
版本记录
| 版本 | 日期 | 变更 |
|---|---|---|
| 0.1.0 | 2026-08-26 | /gpt-fast on|off|status、--fast、状态栏与请求冲突指示;仅对 ChatGPT OAuth 的受支持 Codex 模型注入 priority;六层 fail-closed 门禁;15 项单测 |
源稿 Markdown:docs/packages/gpt-fast-mode.md