來源初查:2026-10-19;推論、preview 限制與 app-server 文件複核:2026-10-21。原生登入、自己的 OAuth client 與平台 API key 是不同授權路徑。
| 路線 | 模型與執行責任 | 使用方式 |
|---|---|---|
| 原生 Codex ChatGPT 登入 | Codex 提供現成 harness | 本機 CLI/exec 起步;SDK/app-server 視整合需求 |
| 自己 app 的 SIWC 訂閱授權+Responses | app 自建 loop,或把 token 接到 Codex app-server | 適用官方文件描述的開源/本機託管場景,需獨立同意與資格 |
| 平台 API key | 依所選 runtime 自管或整合 | 概念比較;不作本期實作前提或自動 fallback |
想直接練任務怎麼拆、怎麼用工具、怎麼驗收,可以先把 Codex 當現成執行系統。想練自己寫控制循環,才需要自己的 app、授權與模型連線。
OAuth 像取得使用許可;Responses 是每次向模型提問的介面;harness 是決定下一步、真的執行工具並記住進度的程式。三者不能互相代替。模型回「請讀工單」時,還要由本機工具真的讀取;取得回覆也不代表工單已完成。第 08 章完整走一次。
Context 組合、候選工具呼叫驗證、本機工具與 MCP、歷史、checkpoint、核准、停止、取消、重試、恢復、事件與驗收都能在自己的執行系統設計。模型連線的限制不等於整個 harness 的全部能力。
應用程式自己的註冊與使用者同意,檢查 granted scope 中的 chatgpt.tokens.use.direct;原生 Codex 已登入不證明自己的 app 已授權。使用公開 POST https://api.openai.com/v1/responses,以符合授權的 access token 作 Bearer。
HTTP 要求 store=false、stream=true,input 帶必要歷史,省略 previous_response_id。不能照抄一般 API 所有欄位;temperature、max_output_tokens、conversation 等在此 preview 不支援。模型依所選帳號清單與實際推論確認。
Function/custom tools 的封裝依目前文件使用 namespaces 或 additional_tools;hosted file search、Code Interpreter、原生 computer use、hosted MCP/connectors、image generation、Responses tool_search 等目前不在此路線支援範圍。本機工具與其控制機制由 app 或 Codex harness 提供,是另一層責任。
store=false 不禁止 app 保存經授權的本機歷史。Responses 串流須讀到 response.completed 才算該次推論成功;failed、incomplete、斷線與額度錯誤分開。推論成功之後,仍需驗收任務產物。
額度不足或政策拒絕先保存狀態並停止,不自動切換計費,不推定整個訂閱用完或重設時間。此 repo 尚未實際建立 OAuth client 或執行推論。
| 看到什麼 | 目前能確認什麼 | 還要驗證什麼 |
|---|---|---|
| Responses:response.completed | 這次推論正常終止,可能只產生工具要求 | 本機是否執行工具、後續是否產出可用草稿 |
| exec JSONL:turn.completed | 對應 exec 介面的一輪完成 | 任務產物與業務狀態;不能拿它解析 app-server |
| app-server:turn/completed | 收到終止通知,還要讀 turn.status | completed/failed/interrupted 各有不同呈現,再驗收產物 |
| 工單系統:讀回 r5 已關閉 | 該工單當前關閉狀態 | 是否對應已核准的同一操作;不代表退款 |
第 07 章拆解兩種 Codex 事件;第 08 章拆解推論與工具循環。以上是介面與責任比較,不是本 repo 已執行的事件紀錄。
章節圖片由 Codex 內建 imagegen 產生,屬教材製作;沒有用 API key fallback。它不構成 SIWC Responses preview 支援 hosted image generation 的證據。