OpenClaw · ゲートウェイ · /v1/models · OpenAI 互換 · モノレポ · リモート Mac · 2026

2026 OpenClaw フロント実戦:
リモート Mac でゲートウェイ /v1/models を OpenAI 互換クライアントと揃え、モノレポ変更パス別スモーク検査を再現する

2026.04.20 フロント/API 整合 約 8 分

想定読者:OpenClaw ゲートウェイリモート Macでスモークする担当。OpenAI 互換ベース URLと一覧 JSON に敏感です。本稿は導入・対照・HowTo・シェル・PRに絞り、デプロイフック系とは分担します。関連:フロント検収PR 要約

00 導入と結論

一覧と推論で JSON がずれると CLI と UI が分断します。/v1/models を OpenAI 形に揃え、/v1/chat/completions同一オリジンへ。マージ前にリモート Mac で curl 済みのログを残すとレビューが速いです。輸送層は HTTP/3 検収へ分けます。

01 痛み三つ

1) 上流 ID とゲートウェイの id が不一致。

2) ベース URL のスラッシュと /v1 の二重付与で //v1/models 化。

3) リモート Mac だけプロキシや社内 CA で TLS は通るが本文が欠ける。

02 対照表(ゲートウェイ経由とオリジン直叩き)

観点 ゲートウェイ経由 オリジン直叩き
一貫性 OPENAI_BASE_URL が一つで済む。 一覧と推論でホストが分かれやすい。
失敗 Ingress の strip と 404。 CORS と鍵の渡し方の差。
検証 curl 一本で同一ホスト。 上流ごとに URL を組み替え。

03 HowTo:モノレポ変更パスを踏んだ再現手順

  1. 導入: ルートで pnpm install または npm ci を記録どおり。
  2. 置き場: packages/gateway 等に GET /v1/models を集約し data[].id を README に固定。
  3. ルート: Ingress とアプリで /v1/chat/completions/v1/models を同一ホストへ。
  4. 別名: OPENCLAW_MODEL_ALIAS 等で model 文字列を一箇所で解決。
  5. リモート Mac: 同一 .env とプロキシ明示のうえ curljq で一覧合格後、最小チャットを同一 BASE で。

04 スモーク用スクリプト(コピー可)

#!/usr/bin/env bash
set -euo pipefail
BASE="${OPENAI_BASE_URL:?}" KEY="${OPENAI_API_KEY:?}"
curl -sS -H "Authorization: Bearer ${KEY}" "${BASE%/}/v1/models" \
 | jq -e '.object=="list" and (.data|type=="array")'

BASE はスラッシュ無しで統一。jq 無しは python3 -m json.tool で目視します。

05 PR ワークフローとゲート

ラベル area:gateway、PR 本文にリモート Mac の curl 標準出力を必須、CI は pnpm smoke:models 等を必須チェックに。ブランチは feat/gateway-models のように領域を名前へ。本番の公開後確認はデプロイ Runbook と分担し、ここはAPI 形の一致のみ扱います。

06 引用できる事実

形: object:listdata[].id

URL: ベースはスラッシュ無し、パスは /v1/models

運用: PR にマスクした鍵先頭とホスト名のみ。

07 FAQ

404

Ingress strip とアプリの /v1 二重を疑う。

401

Bearer、変数名、期限を順に。

リモート Mac · OpenClaw ゲートウェイ検証

API の形を揃えたうえで、実機ブラウザ検収へ進みます

ゲートウェイ整合が取れたら、フロント資産の検収や実 Safari へのサインオフへ進めます。ログイン不要トップ購入/レンタルヘルプ料金ブログ一覧

ゲートウェイ検証用リモート Mac