Testing
測試:即時測試套件
若要瞭解快速入門、QA 執行器、單元/整合測試套件與 Docker 流程,請參閱 測試。本頁涵蓋即時(會連線至網路)測試: 模型矩陣、命令列介面後端、ACP、媒體提供者與認證資訊處理。
即時測試與你的實際閘道
即時測試套件與臨時冒煙測試絕不能干擾已在 處理實際流量的閘道(無論是你的還是其他操作者的):
- 使用你自己的閘道:使用行程內閘道(下方第 2 層),或以隔離的狀態目錄(
OPENCLAW_STATE_DIR=<scratch>) 與可用連接埠啟動開發執行個體。當實際閘道正在使用預設閘道連接埠(18789)時, 請勿繫結該連接埠。 - 請勿對非本工作階段啟動的服務執行
openclaw gateway stop/restart(或launchctl/systemctl/tmux 的對應操作)——那是操作者的即時執行個體。請先取得明確核准。 - 需要擬真的資料嗎?將即時狀態/資料庫複製到開發狀態目錄,並針對該副本進行測試。 若要就地遷移即時閘道的狀態,也需要明確核准。
即時測試:本機冒煙測試命令
執行臨時即時檢查前,請先在處理程序環境中匯出所需的提供者金鑰。
安全的媒體冒煙測試:
pnpm openclaw infer tts convert --local --json \ --text "OpenClaw 即時冒煙測試。" \ --output /tmp/openclaw-live-smoke.mp3安全的語音通話就緒狀態冒煙測試:
pnpm openclaw voicecall setup --jsonpnpm openclaw voicecall smoke --to "+15555550123"除非同時提供 --yes,否則 voicecall smoke 是試執行;只有在你確實要撥打真實電話時,
才使用 --yes。對於 Twilio、Telnyx 與 Plivo,成功的就緒狀態檢查需要公開的網路鉤子 URL——
本機/私人迴路 URL 會遭拒絕,因為這些提供者無法連線至該類 URL。
即時測試:Android 節點能力全面測試
- 測試:
src/gateway/android-node.capabilities.live.test.ts - 指令碼:
pnpm android:test:integration - 目標:叫用已連線 Android 節點目前公告的每一個命令,並驗證命令契約行為。
- 範圍:
- 需事先完成/手動設定(此測試套件不會安裝、執行或配對應用程式)。
- 針對所選 Android 節點,逐一驗證命令的閘道
node.invoke。
- 必要的事前設定:
- Android 應用程式已連線並配對至閘道。
- 應用程式保持在前景。
- 已針對預期通過的能力授予權限/擷取同意。
- 選用的目標覆寫:
OPENCLAW_ANDROID_NODE_ID或OPENCLAW_ANDROID_NODE_NAME。OPENCLAW_ANDROID_GATEWAY_URL/OPENCLAW_ANDROID_GATEWAY_TOKEN/OPENCLAW_ANDROID_GATEWAY_PASSWORD。
- 完整 Android 設定詳情:Android 應用程式
即時測試:模型冒煙測試(設定檔金鑰)
即時模型測試分為兩層,以便隔離失敗原因:
- 「直接模型」會確認提供者/模型是否能使用指定金鑰正常回應。
- 「閘道冒煙測試」會確認該模型的完整閘道+代理程式流水線是否正常運作(工作階段、歷程記錄、工具、沙箱原則等)。
下方精選模型清單位於 src/agents/live-model-filter.ts,
並會隨時間變更;請以其中的陣列為唯一真實來源,而非本頁。
MiniMax M3 使用 minimax/MiniMax-M3 作為預設提供者/模型參照。
第 1 層:直接模型補全(無閘道)
- 測試:
src/agents/models.profiles.live.test.ts - 目標:
- 列舉探索到的模型
- 使用
getApiKeyForModel選取你擁有認證資訊的模型 - 為每個模型執行一次小型補全(並視需要執行針對性的迴歸測試)
- 啟用方式:
pnpm test:live(若直接叫用 Vitest,則為OPENCLAW_LIVE_TEST=1)- 設定
OPENCLAW_LIVE_MODELS=modern、small或all(modern的別名)才能實際執行此測試套件;否則會略過,因此單獨使用pnpm test:live時仍會專注於閘道冒煙測試。
- 選取模型的方式:
OPENCLAW_LIVE_MODELS=modern會執行精選的高訊號優先清單(請參閱即時測試:模型矩陣)OPENCLAW_LIVE_MODELS=small會執行精選的小型模型優先清單OPENCLAW_LIVE_MODELS=all是modern的別名- 或使用
OPENCLAW_LIVE_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,..."(逗號分隔的允許清單) - 本機 Ollama 小型模型執行預設使用
http://127.0.0.1:11434;只有 LAN、自訂或 Ollama Cloud 端點才設定OPENCLAW_LIVE_OLLAMA_BASE_URL。 - 現代/全部與小型全面測試預設以各自精選清單的長度為上限;若要對所選設定檔進行完整全面測試,請設定
OPENCLAW_LIVE_MAX_MODELS=0,若要使用較小上限,則設定正數。 - 完整全面測試使用
OPENCLAW_LIVE_TEST_TIMEOUT_MS作為整個直接模型測試的逾時時間。預設值:60 分鐘。 - 直接模型探查預設使用 20 路平行處理;設定
OPENCLAW_LIVE_MODEL_CONCURRENCY可加以覆寫。
- 選取提供者的方式:
OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(逗號分隔的允許清單)
- 金鑰來源:
- 預設:設定檔儲存區與環境後援
- 設定
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1,強制僅使用設定檔儲存區
- 此機制存在的原因:
- 將「提供者 API 故障/金鑰無效」與「閘道代理程式流水線故障」區分開來
- 包含小型且隔離的迴歸測試(例如:OpenAI Responses/Codex Responses 推理重播+工具呼叫流程)
第 2 層:閘道+開發代理程式冒煙測試(「@openclaw」實際執行的內容)
- 測試:
src/gateway/gateway-models.profiles.live.test.ts - 目標:
- 啟動行程內閘道
- 建立/修補
agent:dev:*工作階段(每次執行覆寫模型) - 逐一處理具備金鑰的模型,並驗證:
- 「有意義的」回應(不使用工具)
- 實際工具叫用能夠運作(讀取探查)
- 選用的額外工具探查(執行+讀取探查)
- OpenAI 迴歸路徑(僅工具呼叫 → 後續回應)持續正常運作
- 探查詳情(以便快速說明失敗原因):
read探查:測試會在工作區中寫入一次性值檔案,並要求代理程式使用read讀取該檔案,再回傳一次性值。exec+read探查:測試會要求代理程式使用exec將一次性值寫入暫存檔案,再使用read將其讀回。- 影像探查:測試會附加產生的 PNG(貓+隨機代碼),並預期模型傳回
cat <CODE>。 - 實作參照:
src/gateway/gateway-models.profiles.live.test.ts與test/helpers/live-image-probe.ts。
- 啟用方式:
pnpm test:live(若直接叫用 Vitest,則為OPENCLAW_LIVE_TEST=1)
- 選取模型的方式:
- 預設:精選的高訊號(
modern)優先清單 OPENCLAW_LIVE_GATEWAY_MODELS=small會透過完整閘道+代理程式流水線執行精選的小型模型清單OPENCLAW_LIVE_GATEWAY_MODELS=all是modern的別名- 或設定
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(或逗號分隔清單)以縮小範圍 - 現代/全部與小型閘道全面測試預設以各自精選清單的長度為上限;若要對所選項目進行完整全面測試,請設定
OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0,若要使用較小上限,則設定正數。
- 預設:精選的高訊號(
- 選取提供者的方式(避免「OpenRouter 包辦一切」):
OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(逗號分隔的允許清單)
- 此即時測試一律啟用工具+影像探查:
read探查+exec+read探查(工具壓力測試)- 當模型公告支援影像輸入時,會執行影像探查
- 流程(概略):
- 測試產生含有「CAT」+隨機代碼的小型 PNG(
test/helpers/live-image-probe.ts) - 透過
agentattachments: [{ mimeType: "image/png", content: "<base64>" }]傳送 - 閘道將附件剖析為
images[](src/gateway/server-methods/agent.ts+src/gateway/chat-attachments.ts) - 嵌入式代理程式將多模態使用者訊息轉送給模型
- 驗證:回覆包含
cat+該代碼(OCR 容錯:允許輕微錯誤)
- 測試產生含有「CAT」+隨機代碼的小型 PNG(
即時測試:命令列介面後端冒煙測試(Claude、Gemini 或其他本機命令列介面)
- 測試:
src/gateway/gateway-cli-backend.live.test.ts - 目標:使用本機命令列介面後端驗證閘道+代理程式流水線,且不變更你的預設設定。
- 後端專屬的冒煙測試預設值位於所屬外掛的
cli-backend.ts定義中。 - 啟用:
pnpm test:live(若直接叫用 Vitest,則為OPENCLAW_LIVE_TEST=1)OPENCLAW_LIVE_CLI_BACKEND=1
- 預設值:
- 預設提供者/模型:
claude-cli/claude-sonnet-4-6 - 命令/引數/影像行為來自所屬命令列介面後端外掛的中繼資料。
- 預設提供者/模型:
- 覆寫(選用):
OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-sonnet-4-6"OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/claude"OPENCLAW_LIVE_CLI_BACKEND_ARGS='["-p","--output-format","json"]'OPENCLAW_LIVE_CLI_BACKEND_IMAGE_PROBE=1可傳送真實影像附件(路徑會注入提示詞)。在 Docker 配方中預設關閉。OPENCLAW_LIVE_CLI_BACKEND_IMAGE_ARG="--image"可將影像檔案路徑作為命令列介面引數傳遞,而非注入提示詞。OPENCLAW_LIVE_CLI_BACKEND_IMAGE_MODE="repeat"(或"list")可在設定IMAGE_ARG時控制影像引數的傳遞方式。OPENCLAW_LIVE_CLI_BACKEND_RESUME_PROBE=1可傳送第二輪訊息並驗證續接流程。OPENCLAW_LIVE_CLI_BACKEND_MODEL_SWITCH_PROBE=1可選擇啟用 Claude Sonnet → Opus 同一工作階段的連續性探查,但所選模型必須支援切換目標。預設關閉,Docker 配方亦同。OPENCLAW_LIVE_CLI_BACKEND_MCP_PROBE=1可選擇啟用 MCP/工具迴路探查。在 Docker 配方中預設關閉。
範例:
OPENCLAW_LIVE_CLI_BACKEND=1 \ OPENCLAW_LIVE_CLI_BACKEND_MODEL="claude-cli/claude-sonnet-4-6" \ pnpm test:live src/gateway/gateway-cli-backend.live.test.ts低成本的 Gemini MCP 設定冒煙測試:
OPENCLAW_LIVE_TEST=1 \ pnpm test:live src/agents/cli-runner/bundle-mcp.gemini.live.test.ts此測試不會要求 Gemini 產生回應。它會寫入 OpenClaw 提供給 Gemini 的相同系統
設定,接著執行 gemini --debug mcp list,以證明已儲存的 transport: "streamable-http"
伺服器會正規化為 Gemini 的 HTTP MCP 形式,且能連線至本機可串流 HTTP MCP 伺服器。
Docker 配方:
pnpm test:docker:live-cli-backend單一提供者 Docker 配方:
pnpm test:docker:live-cli-backend:claudepnpm test:docker:live-cli-backend:claude-subscriptionpnpm test:docker:live-cli-backend:gemini注意事項:
- Docker 執行器位於
scripts/test-live-cli-backend-docker.sh。 - 它會以非 root 的
node使用者身分,在儲存庫 Docker 映像中執行即時命令列介面後端冒煙測試。 - 它會從所屬外掛解析命令列介面冒煙測試中繼資料,接著將相符的 Linux 命令列介面套件(
@anthropic-ai/claude-code或@google/gemini-cli)安裝至OPENCLAW_DOCKER_CLI_TOOLS_DIR的可寫入快取前置路徑(預設:~/.cache/openclaw/docker-cli-tools)。 codex-cli已不再是隨附的命令列介面後端;請改用openai/*搭配 Codex app-server 執行階段(請參閱即時:Codex app-server 測試框架冒煙測試)。pnpm test:docker:live-cli-backend:claude-subscription需要透過~/.claude/.credentials.json搭配claudeAiOauth.subscriptionType,或來自claude setup-token的CLAUDE_CODE_OAUTH_TOKEN,使用可攜式 Claude Code 訂閱 OAuth。它會先在 Docker 中驗證直接claude -p,接著在不保留 Anthropic API 金鑰環境變數的情況下,執行兩輪閘道命令列介面後端互動。此訂閱測試線預設停用 Claude MCP/工具與影像探測,因為這些探測會消耗已登入訂閱的用量限制,而且 Anthropic 可能在 OpenClaw 未發布新版本的情況下,變更 Claude Agent SDK/claude -p的計費與速率限制行為。- Claude 與 Gemini 可透過上述旗標支援相同的探測集(文字互動、影像分類、MCP
cron工具呼叫、模型切換連續性),但這些探測預設皆不執行,請依需要透過各旗標選擇啟用。
即時:APNs HTTP/2 Proxy 連線能力
- 測試:
src/infra/push-apns-http2.live.test.ts - 目標:透過本機 HTTP CONNECT Proxy 建立通往 Apple 沙盒 APNs 端點的通道、傳送 APNs HTTP/2 驗證要求,並確認 Apple 的實際
403 InvalidProviderToken回應會經由 Proxy 路徑傳回。 - 啟用:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_APNS_REACHABILITY=1 pnpm test:live src/infra/push-apns-http2.live.test.ts
- 選用逾時:
OPENCLAW_LIVE_APNS_TIMEOUT_MS=30000
即時:ACP 繫結冒煙測試(/acp spawn ... --bind here)
- 測試:
src/gateway/gateway-acp-bind.live.test.ts - 目標:使用即時 ACP 代理程式驗證實際的 ACP 對話繫結流程:
- 傳送
/acp spawn <agent> --bind here - 就地繫結合成的訊息頻道對話
- 在同一對話中傳送一般的後續訊息
- 驗證後續訊息已進入繫結的 ACP 工作階段轉錄記錄
- 傳送
- 啟用:
pnpm test:live src/gateway/gateway-acp-bind.live.test.tsOPENCLAW_LIVE_ACP_BIND=1
- 預設值:
- Docker 中的 ACP 代理程式:
claude,codex,gemini - 用於直接
pnpm test:live ...的 ACP 代理程式:claude - 合成頻道:Slack 私訊式對話內容
- ACP 後端:
acpx
- Docker 中的 ACP 代理程式:
- 覆寫:
OPENCLAW_LIVE_ACP_BIND_AGENT=claudeOPENCLAW_LIVE_ACP_BIND_AGENT=codexOPENCLAW_LIVE_ACP_BIND_AGENT=droidOPENCLAW_LIVE_ACP_BIND_AGENT=geminiOPENCLAW_LIVE_ACP_BIND_AGENT=opencodeOPENCLAW_LIVE_ACP_BIND_AGENTS=claude,codex,geminiOPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND='npx -y @agentclientprotocol/claude-agent-acp@<version>'OPENCLAW_LIVE_ACP_BIND_CODEX_MODEL=gpt-5.6-lunaOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL=opencode/kimi-k2.6OPENCLAW_LIVE_ACP_BIND_IMAGE_PROBE=1(或on/true/yes)會強制開啟影像探測;任何其他值都會強制關閉。除opencode外,所有代理程式預設都會執行。OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.6-luna
- 附註:
- 此測試線會使用閘道
chat.send介面及僅限管理員使用的合成來源路由欄位,讓測試無須假裝向外部遞送,即可附加訊息頻道內容。 - 未設定
OPENCLAW_LIVE_ACP_BIND_AGENT_COMMAND時,測試會針對所選的 ACP 測試框架代理程式,使用內嵌acpx外掛的內建代理程式登錄。 - 繫結工作階段的排程 MCP 建立作業預設採盡力而為,因為外部 ACP 測試框架可能會在繫結/影像驗證通過後取消 MCP 呼叫;設定
OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1可讓該繫結後的排程探測採嚴格模式。
- 此測試線會使用閘道
範例:
OPENCLAW_LIVE_ACP_BIND=1 \ OPENCLAW_LIVE_ACP_BIND_AGENT=claude \ pnpm test:live src/gateway/gateway-acp-bind.live.test.tsDocker 操作方式:
pnpm test:docker:live-acp-bind單一代理程式 Docker 操作方式:
pnpm test:docker:live-acp-bind:claudepnpm test:docker:live-acp-bind:codexpnpm test:docker:live-acp-bind:droidpnpm test:docker:live-acp-bind:geminipnpm test:docker:live-acp-bind:opencodeDocker 附註:
- Docker 執行器位於
scripts/test-live-acp-bind-docker.sh。 - 預設會依序對彙總的即時命令列介面代理程式執行 ACP 繫結冒煙測試:
claude、codex,接著是gemini。 - 使用
OPENCLAW_LIVE_ACP_BIND_AGENTS=claude、OPENCLAW_LIVE_ACP_BIND_AGENTS=codex、OPENCLAW_LIVE_ACP_BIND_AGENTS=droid、OPENCLAW_LIVE_ACP_BIND_AGENTS=gemini或OPENCLAW_LIVE_ACP_BIND_AGENTS=opencode可縮小矩陣範圍。 - 它會將相符的命令列介面驗證資料暫存至容器中,接著在缺少時安裝要求的即時命令列介面(
@anthropic-ai/claude-code、@openai/codex、透過https://app.factory.ai/cli的 Factory Droid、@google/gemini-cli或opencode-ai)。ACP 後端本身是官方acpx外掛內嵌的acpx/runtime套件。 - Droid Docker 變體會暫存
~/.factory以供設定使用、轉送FACTORY_API_KEY,並要求提供該 API 金鑰,因為本機 Factory OAuth/鑰匙圈驗證無法移植至容器中。它使用 ACPX 內建的droid exec --output-format acp登錄項目。 - OpenCode Docker 變體是嚴格的單一代理程式迴歸測試線。它會從
OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL(預設為opencode/kimi-k2.6)寫入暫時的OPENCODE_CONFIG_CONTENT預設模型。 - 直接呼叫
acpx命令列介面僅是用於比較閘道外部行為的手動/因應措施路徑。Docker ACP 繫結冒煙測試會測試 OpenClaw 內嵌的acpx執行階段後端。
即時:Codex app-server 測試框架冒煙測試
- 目標:透過一般閘道
agent方法驗證外掛所屬的 Codex 測試框架:- 載入隨附的
codex外掛 - 透過
/model <ref> --runtime codex選取 OpenAI 模型 - 以要求的思考層級傳送第一輪閘道代理程式互動
- 向同一個 OpenClaw 工作階段傳送第二輪互動,並驗證 app-server 執行緒可繼續執行
- 透過相同的閘道命令
路徑執行
/codex status與/codex models - 選擇性執行兩項經 Guardian 審查且提高權限的 Shell 探測:一項應獲核准的無害 命令,以及一項應遭拒絕的假機密上傳,讓代理程式 回頭詢問
- 載入隨附的
- 測試:
src/gateway/gateway-codex-harness.live.test.ts - 啟用:
OPENCLAW_LIVE_CODEX_HARNESS=1 - 測試框架基準模型:
openai/gpt-5.6-luna - 全新 OpenAI API 金鑰選取預設值:
openai/gpt-5.6 - 預設思考:
low - 模型覆寫:
OPENCLAW_LIVE_CODEX_HARNESS_MODEL=openai/<model> - 思考覆寫:
OPENCLAW_LIVE_CODEX_HARNESS_THINKING=<level> - 非預設模型投入程度斷言:
OPENCLAW_LIVE_CODEX_HARNESS_EXPECTED_EFFORT=<level> - 矩陣覆寫:
OPENCLAW_LIVE_CODEX_HARNESS_TARGETS=<model>=<thinking>,... - 驗證模式:
OPENCLAW_LIVE_CODEX_HARNESS_AUTH=codex-auth(預設)使用 複製的 Codex 登入資料;api-key透過 Codex app-server 使用OPENAI_API_KEY。 - 選用影像探測:
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 - 選用 MCP/工具探測:
OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 - 選用 Guardian 探測:
OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 - 選用續接壓力測試:
OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS=1會加入 四輪歷史互動,接著關閉並重新啟動閘道與 Codex app-server 三次,同時要求維持相同的原生執行緒 ID 與對話 歷史記錄。使用OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS_HISTORY_TURNS(1-20)與OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS_RESTARTS(1-10)可覆寫有界次數。 - 選用扇出壓力測試:設定
OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE=1與OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_COUNT(1-12)。測試框架會同時啟動 每個子項目、等待每個終止執行完成,並驗證各個 不重複的子項目回覆與原生執行緒身分。 - 選用壓縮壓力測試:
OPENCLAW_LIVE_CODEX_HARNESS_COMPACTION_STRESS=1會產生有界的原生工具輸出、要求發生自動壓縮事件、 驗證持久化的壓縮次數與隱藏標記回想能力、重新啟動 閘道與實體 Codex app-server,接著重複輸出與 壓縮階段。使用OPENCLAW_LIVE_CODEX_HARNESS_COMPACTION_STRESS_TURNS(1-8)與OPENCLAW_LIVE_CODEX_HARNESS_LARGE_OUTPUT_BYTES(100000-800000)調整有界工作量。 - 完整直接 API 上下文:
OPENCLAW_LIVE_CODEX_HARNESS_FULL_CONTEXT=1會套用922000上下文與700000總壓縮限制、傳送密集且有界的 使用者互動、每個階段執行兩個明確的原生壓縮檢查點,並在 每個檢查點後繼續進行後續互動。它需要OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key以及絕對OPENCLAW_LIVE_CODEX_HARNESS_MODEL_CATALOG路徑。目錄必須以max_context_window: 922000公開 所選模型,Codex 才不會將 覆寫值限制回一般目錄視窗。上述一般的縮減臨界值 壓力測試會保留更嚴格的自動壓縮與隱藏標記 保留斷言。 - 選用迴圈轉送選擇停用探測:
OPENCLAW_LIVE_CODEX_HARNESS_DISABLE_LOOP_RELAY=1 - 要求的思考偏好可能會對應至 Codex 為該模型公告的最接近投入程度。
例如,Luna 會將
minimal對應至low。 - 已知的 Codex 目錄模型會自動推導出該確切的原生投入程度。 未知的模型覆寫必須指定預期的對應投入程度。
- 冒煙測試會強制使用供應商/模型
agentRuntime.id: "codex",因此損壞的 Codex 測試框架無法藉由無聲回復至 OpenClaw 而通過。 - 驗證:使用本機 Codex 訂閱登入的 Codex app-server 驗證,或在
OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key時使用OPENAI_API_KEY。Docker 可 複製~/.codex/auth.json與~/.codex/config.toml以執行訂閱測試。
本機操作方式:
OPENCLAW_LIVE_CODEX_HARNESS=1 \ OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 \ OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 \ OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 \ OPENCLAW_LIVE_CODEX_HARNESS_MODEL=openai/gpt-5.6-luna \ pnpm test:live -- src/gateway/gateway-codex-harness.live.test.tsDocker 操作方式:
pnpm test:docker:live-codex-harness重新啟動與歷史記錄壓力測試:
OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS=1 \pnpm test:docker:live-codex-harness扇出、大型輸出、壓縮與重新啟動壓力測試:
OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key \ OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_PROBE=1 \ OPENCLAW_LIVE_CODEX_HARNESS_SUBAGENT_COUNT=8 \ OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS=1 \ OPENCLAW_LIVE_CODEX_HARNESS_COMPACTION_STRESS=1 \ pnpm test:docker:live-codex-harness完整原生 Codex 922000 輸入預算壓縮壓力測試:
OPENCLAW_LIVE_CODEX_HARNESS=1 \ OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key \ OPENCLAW_LIVE_CODEX_HARNESS_FULL_CONTEXT=1 \ OPENCLAW_LIVE_CODEX_HARNESS_MODEL_CATALOG=/absolute/path/to/models-api-1m.json \ OPENCLAW_LIVE_CODEX_HARNESS_MODEL=openai/gpt-5.6-terra \ OPENCLAW_LIVE_CODEX_HARNESS_THINKING=medium \ OPENCLAW_LIVE_CODEX_HARNESS_COMPACTION_STRESS_TURNS=8 \ OPENCLAW_LIVE_CODEX_HARNESS_LARGE_OUTPUT_BYTES=800000 \ pnpm test:live -- src/gateway/gateway-codex-harness.live.test.tsGPT-5.6 原生 Codex 矩陣:
OPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-key \ OPENCLAW_LIVE_CODEX_HARNESS_TARGETS='openai/gpt-5.6-sol=ultra,openai/gpt-5.6-terra=ultra,openai/gpt-5.6-luna=max' \ pnpm test:docker:live-codex-harness即時:OpenAI 重複壓縮
- 目標:透過至少兩次真實的自動壓縮,執行內嵌的 OpenClaw
openai-responses代理程式迴圈,然後驗證持久性標記仍然存在。 - 測試:
src/agents/sessions/agent-session.openai-compaction.live.test.ts - 啟用:
OPENCLAW_LIVE_OPENAI_COMPACTION=1 - 預設模型:
gpt-5.6-luna - 模型覆寫:
OPENCLAW_LIVE_OPENAI_COMPACTION_MODEL=<model> - 一般壓力模式會使用縮減的用戶端上下文預算,以有限的 API 費用觸發相同的真實壓縮路徑。
- 完整上下文模式會將用戶端預算設為
922000,並將壓縮保留量設為222000,因此自動壓縮會在700000開始。它還要求觀察到的供應商輸入計數高於272000長上下文定價界線。
有限的即時測試做法:
OPENCLAW_LIVE_TEST=1 \ OPENCLAW_LIVE_OPENAI_COMPACTION=1 \ pnpm test:live -- src/agents/sessions/agent-session.openai-compaction.live.test.ts完整 922000 輸入預算做法:
OPENCLAW_LIVE_TEST=1 \ OPENCLAW_LIVE_OPENAI_COMPACTION=1 \ OPENCLAW_LIVE_OPENAI_COMPACTION_FULL=1 \ OPENCLAW_LIVE_OPENAI_COMPACTION_MODEL=gpt-5.6-terra \ pnpm test:live -- src/agents/sessions/agent-session.openai-compaction.live.test.ts全新 OpenAI API 金鑰預設值:
OPENCLAW_LIVE_GATEWAY_OPENAI_API_DEFAULT=1 \ OPENCLAW_LIVE_GATEWAY_PROVIDERS=openai \ OPENCLAW_LIVE_GATEWAY_THINKING=off \ pnpm test:live -- src/gateway/gateway-models.profiles.live.test.ts此驗證會讓 OPENCLAW_LIVE_GATEWAY_MODELS 保持未設定狀態,透過全新入門設定的推論選擇接合點解析模型、斷言 openai/gpt-5.6,然後使用解析出的模型執行一次真實的閘道回合。
GPT-5.6 內嵌 OpenClaw 矩陣:
OPENCLAW_LIVE_GATEWAY_THINKING=ultra \ OPENCLAW_LIVE_GATEWAY_PROVIDERS=openai \ OPENCLAW_LIVE_GATEWAY_MODELS='openai/gpt-5.6-sol,openai/gpt-5.6-terra,openai/gpt-5.6-luna' \ pnpm test:live -- src/gateway/gateway-models.profiles.live.test.tsDocker 注意事項:
- Docker 執行器位於
scripts/test-live-codex-harness-docker.sh。 - 它會傳遞
OPENAI_API_KEY、複製現有的 Codex 命令列介面驗證檔案、將@openai/codex安裝至可寫入且已掛載的 npm 前綴、暫存原始碼樹狀目錄,然後只執行 Codex 測試框架即時測試。 - Docker 預設會啟用映像、MCP/工具及 Guardian 探查。需要範圍較小的偵錯執行時,請設定
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=0、OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=0或OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=0。 - Docker 使用相同的明確 Codex 執行階段設定,因此舊版別名或 OpenClaw 後援機制無法掩蓋 Codex 測試框架的迴歸。
- 矩陣目標會在單一容器中依序執行。Docker 指令碼會根據目標數量調整預設的 35 分鐘逾時時間;任何外層殼層或 CI 逾時設定都必須容許相同的總時間。標準 CI 會將每個 GPT-5.6 目標置於不同的分片。
建議的即時測試做法
範圍較小且明確的允許清單速度最快,也最不容易出現不穩定情況:
-
單一模型,直接執行(不使用閘道):
OPENCLAW_LIVE_MODELS="openai/gpt-5.6-luna" pnpm test:live src/agents/models.profiles.live.test.ts
-
小型模型直接執行設定檔:
OPENCLAW_LIVE_MODELS=small pnpm test:live src/agents/models.profiles.live.test.ts
-
小型模型閘道設定檔:
OPENCLAW_LIVE_GATEWAY_MODELS=small pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Ollama Cloud API 冒煙測試:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_OLLAMA=1 OPENCLAW_LIVE_OLLAMA_BASE_URL=https://ollama.com OPENCLAW_LIVE_OLLAMA_MODEL=glm-5.1:cloud OPENCLAW_LIVE_OLLAMA_WEB_SEARCH=0 pnpm test:live -- extensions/ollama/ollama.live.test.ts
-
單一模型,閘道冒煙測試:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.6-luna" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
跨多個供應商的工具呼叫:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,google/gemini-3.5-flash,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
Z.AI Coding Plan GLM-5.2 直接冒煙測試:
ZAI_CODING_LIVE_TEST=1 pnpm test:live src/agents/zai.live.test.ts
-
Google 重點測試(Gemini API 金鑰 + Antigravity):
- Gemini(API 金鑰):
OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3.5-flash" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts - Antigravity(OAuth):
OPENCLAW_LIVE_GATEWAY_MODELS="google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-pro-high" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
- Gemini(API 金鑰):
-
Google 自適應思考冒煙測試(來自私有 QA 命令列介面的
qa manual— 需要OPENCLAW_ENABLE_PRIVATE_QA_CLI=1和原始碼簽出;請參閱 QA 概觀):- Gemini 3 動態預設值:
OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-3.1-pro-preview --alt-model google/gemini-3.1-pro-preview --message '/think adaptive Reply exactly: GEMINI_ADAPTIVE_OK' --timeout-ms 180000 - Gemini 2.5 動態預算:
OPENCLAW_ENABLE_PRIVATE_QA_CLI=1 pnpm openclaw qa manual --provider-mode live-frontier --model google/gemini-2.5-flash --alt-model google/gemini-2.5-flash --message '/think adaptive Reply exactly: GEMINI25_ADAPTIVE_OK' --timeout-ms 180000
- Gemini 3 動態預設值:
注意事項:
google/...使用 Gemini API(API 金鑰)。google-antigravity/...使用 Antigravity OAuth 橋接器(Cloud Code Assist 風格的代理程式端點)。google-gemini-cli/...使用你電腦上的本機 Gemini 命令列介面(具有獨立的驗證方式與工具特性)。- Gemini API 與 Gemini 命令列介面:
- API:OpenClaw 透過 HTTP 呼叫 Google 託管的 Gemini API(API 金鑰/設定檔驗證);這是大多數使用者所指的「Gemini」。
- 命令列介面:OpenClaw 透過殼層呼叫本機
gemini二進位檔;它具有自己的驗證方式,而且行為可能不同(串流/工具支援/版本差異)。
即時測試:模型矩陣(涵蓋範圍)
即時測試必須選擇啟用,因此沒有固定的「CI 模型清單」。OPENCLAW_LIVE_MODELS=modern/OPENCLAW_LIVE_GATEWAY_MODELS=modern(以及其 all 別名)會依下列優先順序,執行 src/agents/live-model-filter.ts 中來自 HIGH_SIGNAL_LIVE_MODEL_PRIORITY 的精選優先清單:
| 供應商/模型 | 注意事項 |
|---|---|
anthropic/claude-opus-5 |
|
anthropic/claude-opus-4-8 |
|
anthropic/claude-sonnet-5 |
|
anthropic/claude-sonnet-4-6 |
|
anthropic/claude-opus-4-7 |
|
google/gemini-3.1-pro-preview |
Gemini API |
google/gemini-3.5-flash |
Gemini API |
cohere/command-a-plus-05-2026 |
|
moonshot/kimi-k3 |
|
anthropic/claude-opus-4-6 |
|
deepseek/deepseek-v4-flash |
|
deepseek/deepseek-v4-pro |
|
minimax/MiniMax-M3 |
|
openai/gpt-5.5 |
|
openrouter/openai/gpt-5.2-chat |
|
openrouter/minimax/minimax-m2.7 |
|
opencode-go/glm-5 |
|
openrouter/ai21/jamba-large-1.7 |
|
xai/grok-4.5 |
|
xai/grok-4.20-0309-reasoning |
|
zai/glm-5.1 |
|
fireworks/accounts/fireworks/models/glm-5p1 |
|
minimax-portal/minimax-m3 |
精選的小型模型清單(OPENCLAW_LIVE_MODELS=small/OPENCLAW_LIVE_GATEWAY_MODELS=small)來自 SMALL_LIVE_MODEL_PRIORITY:
| 供應商/模型 |
|---|
lmstudio/qwen/qwen3.5-9b |
vllm/qwen/qwen3-8b |
sglang/qwen/qwen3-8b |
ollama/gemma3:4b |
openrouter/qwen/qwen3.5-9b |
openrouter/z-ai/glm-5.1 |
openrouter/z-ai/glm-5 |
zai/glm-5.1 |
新版清單的注意事項:
codex和codex-cli供應商不包含在預設的新版全面測試中(它們涵蓋命令列介面後端/ACP 行為,已於上方分別測試)。openai/gpt-5.5本身預設會透過 Codex 應用程式伺服器測試框架進行路由;請參閱即時測試:Codex 應用程式伺服器測試框架冒煙測試。fireworks、google、openrouter和xai在新版全面測試中只會執行明確精選的模型 ID(不會自動展開為「此供應商的所有模型」)。- 在
OPENCLAW_LIVE_GATEWAY_MODELS中至少包含一個支援映像的模型(Claude/Gemini/OpenAI 系列視覺變體等),以執行映像探查。
使用手動挑選的跨供應商集合,執行包含工具和映像的閘道冒煙測試:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.6-luna,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3.5-flash,google-antigravity/claude-opus-4-6-thinking,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M3" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts精選清單以外的選用額外涵蓋範圍(最好包含;選擇一個你已啟用且支援「工具」的模型):
- Mistral:
mistral/... - Cerebras:
cerebras/...(如果你有存取權) - LM Studio:
lmstudio/...(本機;工具呼叫取決於 API 模式)
彙整器/替代閘道
如果你已啟用金鑰,也可以透過下列方式測試:
- OpenRouter:
openrouter/...(數百個模型;使用openclaw models scan尋找支援工具與映像的候選項目) - OpenCode:Zen 使用
opencode/...,Go 使用opencode-go/...(透過OPENCODE_API_KEY/OPENCODE_ZEN_API_KEY驗證)
可納入即時測試矩陣的其他供應商(如果你有認證資訊/設定):
- 內建:
anthropic、cerebras、github-copilot、google、google-antigravity、google-gemini-cli、google-vertex、groq、mistral、openai、openrouter、opencode、opencode-go、xai、zai - 透過
models.providers(自訂端點):minimax(雲端/API),以及任何與 OpenAI/Anthropic 相容的 Proxy(LM Studio、vLLM、LiteLLM 等)
認證資訊(絕不可提交)
即時測試會使用與命令列介面相同的方式探索認證資訊。實務上的影響如下:
-
如果命令列介面可以運作,即時測試應該也能找到相同的金鑰。
-
如果即時測試顯示「沒有認證資訊」,請使用與偵錯
openclaw models list/模型選擇相同的方式偵錯。 -
每個代理程式的驗證設定檔:
~/.openclaw/agents/<agentId>/agent/auth-profiles.json(這就是即時測試中「設定檔金鑰」的含義) -
設定:
~/.openclaw/openclaw.json(或OPENCLAW_CONFIG_PATH) -
舊版 OAuth 目錄:
~/.openclaw/credentials/(若存在,會複製到暫存的即時測試主目錄,但不是主要的設定檔金鑰存放區) -
本機即時測試執行會將作用中的設定(移除
agents.*.workspace/agentDir覆寫)及每個代理程式的auth-profiles.json複製到暫存的測試主目錄,而不會複製該代理程式目錄的其餘部分,因此workspace/和sandboxes/資料絕不會進入暫存主目錄;此外也會複製舊版credentials/目錄,以及支援的外部命令列介面驗證檔案/目錄(.claude.json、.claude/.credentials.json、.claude/settings*.json、.claude/backups、.codex/auth.json、.codex/config.toml、.gemini、.minimax)。
如果要依賴環境金鑰,請在本機測試前匯出它們,或使用下方的 Docker 執行器並明確指定 OPENCLAW_PROFILE_FILE。
Deepgram 即時測試(音訊轉錄)
- 測試:
extensions/deepgram/audio.live.test.ts - 啟用:
DEEPGRAM_API_KEY=... DEEPGRAM_LIVE_TEST=1 pnpm test:live extensions/deepgram/audio.live.test.ts
BytePlus 編碼方案即時測試
- 測試:
extensions/byteplus/live.test.ts - 啟用:
BYTEPLUS_API_KEY=... BYTEPLUS_LIVE_TEST=1 pnpm test:live extensions/byteplus/live.test.ts - 選用模型覆寫:
BYTEPLUS_CODING_MODEL=ark-code-latest
ComfyUI 工作流程媒體即時測試
- 測試:
extensions/comfy/comfy.live.test.ts - 啟用:
OPENCLAW_LIVE_TEST=1 COMFY_LIVE_TEST=1 pnpm test:live -- extensions/comfy/comfy.live.test.ts - 範圍:
- 執行隨附的 comfy 映像、影片及
music_generate路徑 - 除非已設定
plugins.entries.comfy.config.<capability>,否則會略過各項功能 - 適合在變更 comfy 工作流程提交、輪詢、下載或外掛註冊後使用
- 執行隨附的 comfy 映像、影片及
映像產生即時測試
- 測試:
test/image-generation.runtime.live.test.ts - 命令:
pnpm test:live test/image-generation.runtime.live.test.ts - 測試框架:
pnpm test:live:media image - 範圍:
- 列舉每個已註冊的影像生成提供者外掛
- 在探測前使用已匯出的提供者環境變數
- 預設優先使用即時/環境 API 金鑰,而非已儲存的驗證設定檔,因此
auth-profiles.json中過時的測試金鑰不會遮蔽真正的 shell 認證資訊 - 略過沒有可用驗證/設定檔/模型的提供者
- 透過共用影像生成執行階段執行每個已設定的提供者:
<provider>:generate- 當提供者宣告支援編輯時,執行
<provider>:edit
- 目前涵蓋的內建提供者:
deepinfrafalgoogleminimaxopenaiopenroutervydraxai
- 選用的縮小範圍設定:
OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="openai,google,openrouter,xai"OPENCLAW_LIVE_IMAGE_GENERATION_PROVIDERS="deepinfra"OPENCLAW_LIVE_IMAGE_GENERATION_MODELS="openai/gpt-image-2,google/gemini-3.1-flash-image,openrouter/google/gemini-3.1-flash-image-preview,xai/grok-imagine-image"OPENCLAW_LIVE_IMAGE_GENERATION_CASES="google:flash-generate,google:pro-edit,openrouter:generate,xai:default-generate,xai:default-edit"
- 選用的驗證行為:
- 使用
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1強制採用設定檔儲存區驗證,並忽略僅限環境變數的覆寫
- 使用
對於已發布的命令列介面路徑,請在提供者/執行階段即時測試通過後,新增一項 infer 煙霧測試:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_INFER_CLI_TEST=1 pnpm test:live -- test/image-generation.infer-cli.live.test.tsopenclaw infer image providers --jsonopenclaw infer image generate \ --model google/gemini-3.1-flash-image \ --prompt "最簡約的扁平測試影像:白色背景上有一個藍色正方形,沒有文字。" \ --output ./openclaw-infer-image-smoke.png \ --json這涵蓋命令列介面引數剖析、設定/預設代理程式解析、內建外掛啟用、共用影像生成執行階段,以及即時提供者請求。預期在載入執行階段前,外掛相依套件皆已存在。
音樂生成即時測試
- 測試:
extensions/music-generation-providers.live.test.ts - 啟用:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/music-generation-providers.live.test.ts - 測試框架:
pnpm test:live:media music - 範圍:
- 測試共用的內建音樂生成提供者路徑
- 目前涵蓋
fal、google、minimax和openrouter - 在探測前使用已匯出的提供者環境變數
- 預設優先使用即時/環境 API 金鑰,而非已儲存的驗證設定檔,因此
auth-profiles.json中過時的測試金鑰不會遮蔽真正的 shell 認證資訊 - 略過沒有可用驗證/設定檔/模型的提供者
- 可用時執行兩種已宣告的執行階段模式:
generate使用僅含提示詞的輸入- 當提供者宣告
capabilities.edit.enabled時,執行edit
comfy有自己的獨立即時測試檔案,不在此共用掃描中
- 選用的縮小範圍設定:
OPENCLAW_LIVE_MUSIC_GENERATION_PROVIDERS="google,minimax"OPENCLAW_LIVE_MUSIC_GENERATION_MODELS="google/lyria-3-clip-preview,minimax/music-2.6"
- 選用的驗證行為:
- 使用
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1強制採用設定檔儲存區驗證,並忽略僅限環境變數的覆寫
- 使用
影片生成即時測試
- 測試:
extensions/video-generation-providers.live.test.ts - 啟用:
OPENCLAW_LIVE_TEST=1 pnpm test:live -- extensions/video-generation-providers.live.test.ts - 測試框架:
pnpm test:live:media video - 範圍:
- 跨
alibaba、byteplus、deepinfra、fal、google、minimax、openai、openrouter、pixverse、qwen、runway、together、vydra、xai測試共用的內建影片生成提供者路徑 - 預設採用適合發布的煙霧測試路徑:每個提供者提出一次文字轉影片請求、使用一秒鐘的龍蝦提示詞,並套用來自
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS的每個提供者操作上限(預設為180000) - 預設略過 FAL,因為提供者端的佇列延遲可能佔用大部分發布時間;傳入
OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"(或清除略過清單)即可明確執行 - 在探測前使用已匯出的提供者環境變數
- 預設優先使用即時/環境 API 金鑰,而非已儲存的驗證設定檔,因此
auth-profiles.json中過時的測試金鑰不會遮蔽真正的 shell 認證資訊 - 略過沒有可用驗證/設定檔/模型的提供者
- 預設僅執行
generate - 設定
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1,以便在可用時一併執行已宣告的轉換模式:- 當提供者宣告
capabilities.imageToVideo.enabled,且所選提供者/模型在共用掃描中接受以緩衝區為基礎的本機影像輸入時,執行imageToVideo - 當提供者宣告
capabilities.videoToVideo.enabled,且所選提供者/模型在共用掃描中接受以緩衝區為基礎的本機影片輸入時,執行videoToVideo
- 當提供者宣告
- 共用掃描中目前已宣告但略過的
imageToVideo提供者:vydra(此測試通道不支援以緩衝區為基礎的本機影像輸入)
- Vydra 的提供者專屬涵蓋範圍:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts- 該檔案會執行
veo3文字轉影片,以及kling影像轉影片測試通道;後者預設使用遠端影像 URL 測試資料(可用OPENCLAW_LIVE_VYDRA_KLING_IMAGE_URL覆寫)。
- xAI 的提供者專屬涵蓋範圍:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_XAI_VIDEO=1 pnpm test:live -- extensions/xai/xai.live.test.ts -t "classic Grok Imagine"- 傳統案例會先生成正方形的本機 PNG 首格影像、省略幾何設定、請求一秒鐘的影像轉影片片段、輪詢至完成,並驗證下載的緩衝區。
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_XAI_VIDEO=1 pnpm test:live -- extensions/xai/xai.live.test.ts -t "Grok Imagine Video 1.5"- 1.5 案例會生成本機 PNG 首格影像、請求一秒鐘的 1080P 影像轉影片片段、輪詢至完成,並驗證下載的緩衝區。
- 目前的
videoToVideo即時測試涵蓋範圍:- 僅當所選模型解析為
gen4_aleph時執行runway
- 僅當所選模型解析為
- 共用掃描中目前已宣告但略過的
videoToVideo提供者:alibaba、google、openai、qwen、xai,因為這些路徑目前需要遠端http(s)參考 URL,而非以緩衝區為基礎的本機輸入
- 跨
- 選用的縮小範圍設定:
OPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="deepinfra,google,openai,runway"OPENCLAW_LIVE_VIDEO_GENERATION_MODELS="google/veo-3.1-fast-generate-preview,openai/sora-2,runway/gen4_aleph"- 使用
OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS="",將所有提供者納入預設掃描,包括 FAL - 使用
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000,降低每個提供者的操作上限,以執行更積極的煙霧測試
- 選用的驗證行為:
- 使用
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1強制採用設定檔儲存區驗證,並忽略僅限環境變數的覆寫
- 使用
媒體即時測試框架
- 命令:
pnpm test:live:media - 進入點:
test/e2e/qa-lab/media/hosted-media-provider-live.ts,它會針對每個所選測試套件執行pnpm test:live -- <suite-test-file>,因此心跳偵測與安靜模式行為會與其他pnpm test:live執行保持一致。 - 用途:
- 透過單一儲存庫原生進入點執行共用的影像、音樂及影片即時測試套件
- 從
~/.profile自動載入缺少的提供者環境變數 - 預設會自動將每個測試套件縮小至目前具有可用驗證的提供者
- 旗標:
--providers <csv>是全域提供者篩選器;--image-providers/--music-providers/--video-providers會將篩選器範圍限定至單一測試套件--all-providers會略過依據驗證狀態進行的自動篩選- 若篩選後沒有可執行的提供者,
--allow-empty會以0結束 --quiet/--no-quiet會傳遞至test:live
- 範例:
pnpm test:live:mediapnpm test:live:media image video --providers openai,google,minimaxpnpm test:live:media video --video-providers openai,runway --all-providerspnpm test:live:media music --quiet
相關內容
- 測試-單元、整合、QA 與 Docker 測試套件