OpenClaw · /v1/models · 網關 · Monorepo · 遠端 Mac · 2026

2026 OpenClaw 前端實戰:
遠端 Mac 上網關對齊 /v1/models 與 OpenAI 相容客戶端及 Monorepo 冒煙路徑

2026.04.20 MacWww 技術團隊 約 8 分鐘閱讀

OpenAI 相容客戶端與多數 SDK 會在啟動時請求列表端點;若閘道路徑、基底網址或模型別名與 monorepo 變更不同步,合併後才在生產爆炸。本文給遠端 Mac 可複現:curljqv1_models_smoke.json、與 PR 冪等註解銜接。延伸參考 Monorepo 快取與鏡像OpenAPI 冒煙建置度量 PR 摘要

Meta + HowTo + FAQPage(JSON-LD)+ 目錄 + 對照表 + 可執行腳本占位

01 痛點與目標

痛點一:基底網址重複拼接 /v1 導致路徑錯位。痛點二:別名表只在某 workspace 載入,預覽與正式不一致。痛點三:monorepo 變更路徑未觸發閘道冒煙,合併後客戶端才報錯。目標是以薄契約凍結列表回應與別名雜湊,產物可與 main 基線 JSON 對照;Runner 權杖與審查留言分離。

先匯出 GIT_SHAPR_NUMBEROPENAI_BASE_URL(主機或含 /v1 擇一)、權杖、MONOREPO_ROOT;審查要機讀 JSON 而非終端片段。建議與本機及 CI 使用相同 Node 大版本以免路徑解析差異。

02 閘道與客戶端對照

curl相容 SDK須共用同一拼接規則,避免雙重 /v1;README 寫死契約。

面向 決策要點
閘道路由 是否直連 /v1/models 或反代剝前綴;與健康檢查同進程。
OpenAI 相容客戶端 基底是否含 /v1;SDK 與 curl 同契約。
模型別名 別名載入順序與環境;預覽/正式雜湊一致。

03 v1_models_smoke.json 欄位

固定 schemaVersionmodelIds 為排序去重後之 idaliasMapHash 對齊基線。

欄位 含義
schemaVersion git_sha pr_number 契約版本、提交、PR 編號;供冪等鍵與工件目錄對齊。
httpStatus requestUrl 去敏後請求網址;還原雙前綴。
modelIds 列表中的模型識別字串陣列;與基線做集合差。
aliasMapHash 別名表內容雜湊;變更僅文檔時可與上一版相同。
gateHint 字串:passwarnfail,供 OpenClaw 渲染一句話結論。
可引用資訊(≥3)

① 契約唯一。② 列表與別名分欄。③ 工件放 .openclaw/reports/<sha>/

04 HowTo:安裝與驗證腳本

  1. 安裝:MONOREPO_ROOTpnpm installnpm ci 同鎖檔;鏡像見 Monorepo 鏡像文
  2. 匯出 OPENAI_BASE_URL 與權杖;祕鑰勿入日誌。
  3. GET 列表端點,jqdata[].id
  4. v1_models_smoke.json,對 mainv1_models_gate.json
  5. OpenClaw 產 pr_v1_models_summary.md;並列 建置度量摘要
  6. 4295xx 退避;401403/契約 404 停。

Shell 占位(替換變數後可執行):

export OPENAI_BASE_URL="https://gateway.example" OPENAI_API_KEY="***"
export GIT_SHA="$(git rev-parse HEAD)" PR_NUMBER="${PR_NUMBER:-0}"
mkdir -p ".openclaw/reports/${GIT_SHA}"
REQ="${OPENAI_BASE_URL%/}/v1/models"
curl -sS -H "Authorization: Bearer ${OPENAI_API_KEY}" "$REQ" \
  | tee ".openclaw/reports/${GIT_SHA}/models_raw.json" \
  | jq -r '.data[].id' | sort -u > ".openclaw/reports/${GIT_SHA}/model_ids.txt"
jq -n --arg sha "$GIT_SHA" --argjson pr "$PR_NUMBER" --arg url "$REQ" \
  --rawfile ids ".openclaw/reports/${GIT_SHA}/model_ids.txt" \
  '{schemaVersion:1,git_sha:$sha,pr_number:$pr,httpStatus:200,requestUrl:$url,modelIds:($ids|split("\n")|map(select(length>0))),aliasMapHash:"placeholder"}' \
  > ".openclaw/reports/${GIT_SHA}/v1_models_smoke.json"
落地檢查清單
  • 契約與 README 範例一致。
  • 變更觸及閘道或別名時必跑全量列表。

05 PR 工作流與路徑閘

pathspackages/gateway/**config/models*.yaml 觸發全量冒煙;gh pr comment 底加 <!-- openclaw-v1-models:$SHA -->

gatefail 擋合併;再跑 OpenAPI 冒煙技術見解列表

06 常見故障 FAQ

雙重路徑或 404?基底已含 /v1 又拼 /v1/models,或子路徑掛載不符;寫入實際 requestUrl

列表空或缺別名?上游不可用、閘道快取或 YAML 未載入;對日誌並清快取。

擋合併?缺模型、aliasMapHash 不符、或 4014035xx 先退避。


重點整理

契約 → curljqv1_models_smoke.jsonv1_models_gate.jsonpr_v1_models_summary.md → 冪等留言。節點:購買公開頁官網首頁

首頁、購買與幫助

在遠端 Mac 上對齊 /v1/models 並跑 Monorepo 冒煙

官網首頁幫助中心購買公開頁免登入|定價技術見解列表

網關 模型列表 OpenClaw
免登入租用遠端 Mac 驗證模型列表