Testing
آزمایش: مجموعههای زنده
برای شروع سریع، اجراکنندههای تضمین کیفیت، مجموعهآزمونهای واحد/یکپارچهسازی و جریانهای Docker، به آزمایش مراجعه کنید. این صفحه آزمونهای زنده (دارای تعامل با شبکه) را پوشش میدهد: ماتریس مدل، بکاندهای CLI، ACP، ارائهدهندگان رسانه و مدیریت اعتبارنامهها.
زنده: فرمانهای بررسی سریع محلی
پیش از بررسیهای زنده موردی، کلید ارائهدهنده موردنیاز را در محیط فرایند صادر کنید.
بررسی سریع و ایمن رسانه:
pnpm openclaw infer tts convert --local --json \ --text "OpenClaw live smoke." \ --output /tmp/openclaw-live-smoke.mp3بررسی سریع و ایمن آمادگی تماس صوتی:
pnpm openclaw voicecall setup --jsonpnpm openclaw voicecall smoke --to "+15555550123"voicecall smoke اجرای آزمایشی است، مگر اینکه --yes نیز وجود داشته باشد؛ تنها زمانی از --yes استفاده کنید
که قصد برقراری یک تماس واقعی را دارید. برای Twilio، Telnyx و Plivo،
بررسی موفق آمادگی به یک نشانی Webhook عمومی نیاز دارد؛ نشانیهای local loopback/خصوصی
رد میشوند، زیرا این ارائهدهندگان نمیتوانند به آنها دسترسی پیدا کنند.
زنده: پیمایش قابلیتهای Node اندروید
- آزمون:
src/gateway/android-node.capabilities.live.test.ts - اسکریپت:
pnpm android:test:integration - هدف: فراخوانی تمام فرمانهایی که در حال حاضر اعلام میشوند توسط یک Node اندروید متصل و تأیید رفتار قرارداد فرمان.
- دامنه:
- راهاندازی دستی/دارای پیششرط (این مجموعه، برنامه را نصب/اجرا/جفت نمیکند).
- اعتبارسنجی
node.invokeدر Gateway، فرمانبهفرمان، برای Node اندروید انتخابشده.
- پیشنیازهای راهاندازی:
- برنامه اندروید از قبل به Gateway متصل و با آن جفت شده باشد.
- برنامه در پیشزمینه نگه داشته شود.
- مجوزها/رضایت ضبط برای قابلیتهایی که انتظار دارید موفق شوند، اعطا شده باشد.
- بازنویسیهای اختیاری هدف:
OPENCLAW_ANDROID_NODE_IDیاOPENCLAW_ANDROID_NODE_NAME.OPENCLAW_ANDROID_GATEWAY_URL/OPENCLAW_ANDROID_GATEWAY_TOKEN/OPENCLAW_ANDROID_GATEWAY_PASSWORD.
- جزئیات کامل راهاندازی اندروید: برنامه اندروید
زنده: بررسی سریع مدل (کلیدهای نمایه)
آزمونهای زنده مدل به دو لایه تقسیم شدهاند تا خرابیها از یکدیگر جدا شوند:
- «مدل مستقیم» مشخص میکند که آیا ارائهدهنده/مدل با کلید دادهشده اساساً میتواند پاسخ دهد.
- «بررسی سریع Gateway» مشخص میکند که آیا خط لوله کامل Gateway+عامل برای آن مدل کار میکند یا نه (نشستها، تاریخچه، ابزارها، خطمشی محیط ایزوله و غیره).
فهرستهای گزینششده مدل در ادامه، در src/agents/live-model-filter.ts قرار دارند و
بهمرور زمان تغییر میکنند؛ آرایههای آن فایل را منبع حقیقت بدانید، نه این
صفحه را.
MiniMax M3 از minimax/MiniMax-M3 بهعنوان ارجاع پیشفرض ارائهدهنده/مدل خود استفاده میکند.
لایه ۱: تکمیل مستقیم مدل (بدون Gateway)
- آزمون:
src/agents/models.profiles.live.test.ts - هدف:
- فهرستکردن مدلهای کشفشده
- استفاده از
getApiKeyForModelبرای انتخاب مدلهایی که اعتبارنامه آنها را دارید - اجرای یک تکمیل کوچک برای هر مدل (و آزمونهای رگرسیون هدفمند در صورت نیاز)
- نحوه فعالسازی:
pnpm test:live(یاOPENCLAW_LIVE_TEST=1در صورت فراخوانی مستقیم Vitest)- برای اجرای واقعی این مجموعه،
OPENCLAW_LIVE_MODELS=modern،smallیاall(نام مستعارmodern) را تنظیم کنید؛ در غیر این صورت رد میشود تا اجرای مستقلpnpm test:liveهمچنان بر بررسی سریع Gateway متمرکز بماند.
- نحوه انتخاب مدلها:
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استفاده میکند؛OPENCLAW_LIVE_OLLAMA_BASE_URLرا فقط برای نقاط پایانی شبکه محلی، سفارشی یا Ollama Cloud تنظیم کنید. - پیمایشهای modern/all و small بهطور پیشفرض طول فهرست گزینششده خود را بهعنوان سقف در نظر میگیرند؛ برای پیمایش کامل نمایههای انتخابشده،
OPENCLAW_LIVE_MAX_MODELS=0یا برای سقفی کوچکتر یک عدد مثبت تنظیم کنید. - پیمایشهای کامل برای مهلت زمانی کل آزمون مدل مستقیم از
OPENCLAW_LIVE_TEST_TIMEOUT_MSاستفاده میکنند. پیشفرض: ۶۰ دقیقه. - کاوشهای مدل مستقیم بهطور پیشفرض با موازیسازی ۲۰تایی اجرا میشوند؛ برای بازنویسی،
OPENCLAW_LIVE_MODEL_CONCURRENCYرا تنظیم کنید.
- نحوه انتخاب ارائهدهندگان:
OPENCLAW_LIVE_PROVIDERS="google,google-antigravity,google-gemini-cli"(فهرست مجاز جداشده با ویرگول)
- محل دریافت کلیدها:
- بهطور پیشفرض: مخزن نمایه و جایگزینهای محیطی
- برای الزام استفاده فقط از مخزن نمایه،
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1را تنظیم کنید
- دلیل وجود این آزمون:
- «API ارائهدهنده خراب است / کلید نامعتبر است» را از «خط لوله عامل Gateway خراب است» جدا میکند
- شامل آزمونهای رگرسیون کوچک و مجزا است (نمونه: بازپخش استدلال OpenAI Responses/Codex Responses و جریانهای فراخوانی ابزار)
لایه ۲: بررسی سریع Gateway + عامل توسعه (آنچه «@openclaw» واقعاً انجام میدهد)
- آزمون:
src/gateway/gateway-models.profiles.live.test.ts - هدف:
- راهاندازی یک Gateway درونفرایندی
- ایجاد/وصلهکردن یک نشست
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(یاOPENCLAW_LIVE_TEST=1در صورت فراخوانی مستقیم Vitest)
- نحوه انتخاب مدلها:
- پیشفرض: فهرست اولویت گزینششده با سیگنال بالا (
modern) OPENCLAW_LIVE_GATEWAY_MODELS=smallفهرست گزینششده مدلهای کوچک را از خط لوله کامل Gateway+عامل عبور میدهدOPENCLAW_LIVE_GATEWAY_MODELS=allنام مستعارmodernاست- یا برای محدودکردن،
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(یا فهرستی جداشده با ویرگول) را تنظیم کنید - پیمایشهای modern/all و small در Gateway بهطور پیشفرض طول فهرست گزینششده خود را بهعنوان سقف در نظر میگیرند؛ برای پیمایش کامل موارد انتخابشده،
OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0یا برای سقفی کوچکتر یک عدد مثبت تنظیم کنید.
- پیشفرض: فهرست اولویت گزینششده با سیگنال بالا (
- نحوه انتخاب ارائهدهندگان (برای جلوگیری از «همهچیز از OpenRouter»):
OPENCLAW_LIVE_GATEWAY_PROVIDERS="google,google-antigravity,google-gemini-cli,openai,anthropic,zai,minimax"(فهرست مجاز جداشده با ویرگول)
- کاوشهای ابزار و تصویر در این آزمون زنده همیشه فعالاند:
- کاوش
read+ کاوشexec+read(فشار ابزار) - کاوش تصویر زمانی اجرا میشود که مدل پشتیبانی از ورودی تصویر را اعلام کند
- جریان (در سطح کلی):
- آزمون یک PNG کوچک با «CAT» + کد تصادفی تولید میکند (
test/helpers/live-image-probe.ts) - آن را از طریق
agentوattachments: [{ mimeType: "image/png", content: "<base64>" }]ارسال میکند - Gateway پیوستها را به
images[]تجزیه میکند (src/gateway/server-methods/agent.ts+src/gateway/chat-attachments.ts) - عامل تعبیهشده یک پیام چندوجهی کاربر را به مدل ارسال میکند
- تأیید: پاسخ شامل
cat+ کد است (با اغماض OCR: خطاهای جزئی مجازند)
- آزمون یک PNG کوچک با «CAT» + کد تصادفی تولید میکند (
- کاوش
زنده: بررسی سریع بکاند CLI (Claude، Gemini یا دیگر CLIهای محلی)
- آزمون:
src/gateway/gateway-cli-backend.live.test.ts - هدف: اعتبارسنجی خط لوله Gateway + عامل با استفاده از یک بکاند CLI محلی، بدون دستزدن به پیکربندی پیشفرض شما.
- پیشفرضهای بررسی سریع مختص هر بکاند، در تعریف
cli-backend.tsمتعلق به Plugin مالک قرار دارند. - فعالسازی:
pnpm test:live(یاOPENCLAW_LIVE_TEST=1در صورت فراخوانی مستقیم Vitest)OPENCLAW_LIVE_CLI_BACKEND=1
- پیشفرضها:
- ارائهدهنده/مدل پیشفرض:
claude-cli/claude-sonnet-4-6 - رفتار فرمان/آرگومانها/تصویر از فراداده Plugin مالک بکاند CLI دریافت میشود.
- ارائهدهنده/مدل پیشفرض:
- بازنویسیها (اختیاری):
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"برای ارسال مسیر فایلهای تصویر بهعنوان آرگومانهای CLI، بهجای تزریق در پرامپت.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برای فعالسازی اختیاری کاوش local loopback ابزار/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بررسی سریع و کمهزینه پیکربندی MCP در Gemini:
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" به قالب HTTP MCP در Gemini
نرمالسازی میشود و میتواند به یک سرور محلی MCP با HTTP جریانی متصل شود.
دستورالعمل 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قرار دارد. - بررسی سریع زنده بکاند CLI را درون تصویر Docker مخزن، با کاربر غیرریشه
nodeاجرا میکند. - فراداده بررسی سریع CLI را از Plugin مالک استخراج میکند، سپس بسته CLI متناظر لینوکس (
@anthropic-ai/claude-codeیا@google/gemini-cli) را در پیشوند قابلنوشتن و کششده درOPENCLAW_DOCKER_CLI_TOOLS_DIR(پیشفرض:~/.cache/openclaw/docker-cli-tools) نصب میکند. codex-cliدیگر بکاند CLI همراهشده نیست؛ در عوض ازopenai/*با زماناجرای کارساز برنامه Codex استفاده کنید (به زنده: بررسی سریع هارنس کارساز برنامه Codex مراجعه کنید).pnpm test:docker:live-cli-backend:claude-subscriptionبه OAuth قابلحمل اشتراک Claude Code، از طریق~/.claude/.credentials.jsonباclaudeAiOauth.subscriptionTypeیاCLAUDE_CODE_OAUTH_TOKENحاصل ازclaude setup-tokenنیاز دارد. ابتدا اجرای مستقیمclaude -pرا در Docker اثبات میکند، سپس دو نوبت بکاند CLI در Gateway را بدون حفظ متغیرهای محیطی کلید API Anthropic اجرا میکند. این مسیر اشتراک، کاوشهای ابزار/MCP و تصویر Claude را بهطور پیشفرض غیرفعال میکند، زیرا محدودیتهای مصرف اشتراک واردشده را مصرف میکند و Anthropic میتواند رفتار صورتحساب و محدودیت نرخ Claude Agent SDK /claude -pرا بدون انتشار نسخهای از OpenClaw تغییر دهد.- Claude و Gemini از طریق پرچمهای بالا از مجموعه کاوش یکسانی (نوبت متنی، طبقهبندی تصویر، فراخوانی ابزار
cronدر MCP، پیوستگی تغییر مدل) پشتیبانی میکنند، اما هیچیک از این کاوشها بهطور پیشفرض اجرا نمیشوند؛ در صورت نیاز هرکدام را با پرچم مربوطه فعال کنید.
زنده: دسترسپذیری پراکسی HTTP/2 برای APNs
- آزمون:
src/infra/push-apns-http2.live.test.ts - هدف: ایجاد تونل از طریق یک پراکسی محلی HTTP CONNECT به نقطه پایانی آزمایشی APNs اپل، ارسال درخواست اعتبارسنجی HTTP/2 در APNs و تأیید اینکه پاسخ واقعی
403 InvalidProviderTokenاپل از مسیر پراکسی بازمیگردد. - فعالسازی:
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
- پیشفرضها:
- عاملهای ACP در Docker:
claude,codex,gemini - عامل ACP برای اجرای مستقیم
pnpm test:live ...:claude - کانال مصنوعی: زمینه مکالمه به سبک پیام خصوصی Slack
- پشتیبان ACP:
acpx
- عاملهای ACP در Docker:
- بازنویسیها:
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در Gateway همراه با فیلدهای مصنوعی مسیر مبدأ که فقط برای مدیر در دسترساند استفاده میکند تا آزمونها بتوانند بدون تظاهر به تحویل خارجی، زمینه کانال پیام را پیوست کنند. - وقتی
OPENCLAW_LIVE_ACP_BIND_AGENT_COMMANDتنظیم نشده باشد، آزمون از رجیستری داخلی عامل در Plugin تعبیهشدهacpxبرای عامل مهار آزمون ACP انتخابشده استفاده میکند. - ایجاد Cron MCP برای نشست متصل، بهطور پیشفرض بر مبنای بهترین تلاش است، زیرا مهارهای آزمون خارجی ACP ممکن است پس از موفقیت اثبات اتصال/تصویر، فراخوانیهای MCP را لغو کنند؛ برای سختگیرانهکردن این کاوش Cron پس از اتصال،
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.tsدستور Docker:
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:opencodeنکات Docker:
- اجراکننده Docker در
scripts/test-live-acp-bind-docker.shقرار دارد. - بهطور پیشفرض، آزمون دود اتصال ACP را بهترتیب در برابر عاملهای زنده تجمیعی CLI اجرا میکند: ابتدا
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استفاده کنید. - دادههای احراز هویت CLI منطبق را در کانتینر قرار میدهد، سپس اگر CLI زنده درخواستی موجود نباشد، آن را نصب میکند (
@anthropic-ai/claude-code،@openai/codex، Factory Droid از طریقhttps://app.factory.ai/cli،@google/gemini-cliیاopencode-ai). خود پشتیبان ACP، بسته تعبیهشدهacpx/runtimeاز Plugin رسمیacpxاست. - گونه Docker مربوط به Droid، مسیر
~/.factoryرا برای تنظیمات در کانتینر قرار میدهد،FACTORY_API_KEYرا منتقل میکند و به این کلید API نیاز دارد، زیرا احراز هویت محلی OAuth/جاکلیدی Factory قابل انتقال به کانتینر نیست. این گونه از ورودی رجیستری داخلیdroid exec --output-format acpدر ACPX استفاده میکند. - گونه Docker مربوط به OpenCode یک مسیر سختگیرانه رگرسیون تکعاملی است. این گونه، مدل پیشفرض موقت
OPENCODE_CONFIG_CONTENTرا ازOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODELمینویسد (پیشفرضopencode/kimi-k2.6). - فراخوانیهای مستقیم CLI مربوط به
acpxفقط مسیری دستی/راهکار موقت برای مقایسه رفتار خارج از Gateway هستند. آزمون دود اتصال ACP در Docker، پشتیبان زماناجرای تعبیهشدهacpxدر OpenClaw را آزمایش میکند.
زنده: آزمون دود مهار app-server مربوط به Codex
- هدف: اعتبارسنجی مهار Codex تحت مالکیت Plugin از طریق متد عادی
agentدر Gateway:- بارگذاری Plugin همراه
codex - انتخاب یک مدل OpenAI از طریق
/model <ref> --runtime codex - ارسال نخستین نوبت عامل در Gateway با سطح تفکر درخواستی
- ارسال نوبت دوم به همان نشست OpenClaw و تأیید اینکه رشته app-server میتواند از سر گرفته شود
- اجرای
/codex statusو/codex modelsاز طریق همان مسیر فرمان Gateway - اجرای اختیاری دو کاوش پوستهای ارتقایافته با بازبینی Guardian: یک فرمان بیخطر که باید تأیید شود و یک بارگذاری حاوی راز جعلی که باید رد شود تا عامل پرسش تکمیلی مطرح کند
- بارگذاری Plugin همراه
- آزمون:
src/gateway/gateway-codex-harness.live.test.ts - فعالسازی:
OPENCLAW_LIVE_CODEX_HARNESS=1 - مدل مبنای مهار:
openai/gpt-5.6-luna - پیشفرض انتخاب با کلید API تازه OpenAI:
openai/gpt-5.6 - تفکر پیشفرض:
low - بازنویسی مدل:
OPENCLAW_LIVE_CODEX_HARNESS_MODEL=openai/<model> - بازنویسی تفکر:
OPENCLAW_LIVE_CODEX_HARNESS_THINKING=<level> - بازنویسی ماتریس:
OPENCLAW_LIVE_CODEX_HARNESS_TARGETS=<model>=<thinking>,... - حالت احراز هویت:
OPENCLAW_LIVE_CODEX_HARNESS_AUTH=codex-auth(پیشفرض) از ورود کپیشده Codex استفاده میکند؛api-keyازOPENAI_API_KEYاز طریق app-server مربوط به Codex استفاده میکند. - کاوش اختیاری تصویر:
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 - کاوش اختیاری MCP/ابزار:
OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 - کاوش اختیاری Guardian:
OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 - آزمون دود، مقدار
agentRuntime.id: "codex"را برای ارائهدهنده/مدل اجباری میکند تا مهار خراب Codex نتواند با بازگشت خاموش به OpenClaw موفق شود. - احراز هویت: احراز هویت app-server مربوط به Codex از ورود محلی اشتراک Codex، یا
OPENAI_API_KEYوقتیOPENCLAW_LIVE_CODEX_HARNESS_AUTH=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.tsدستور Docker:
pnpm test:docker:live-codex-harnessماتریس بومی GPT-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پیشفرض کلید API تازه OpenAI:
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 را بررسی میکند و سپس یک نوبت واقعی Gateway را با مدل تعیینشده اجرا میکند.
ماتریس 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.tsنکات Docker:
- اجراکننده Docker در
scripts/test-live-codex-harness-docker.shقرار دارد. - این اجراکننده
OPENAI_API_KEYرا منتقل میکند، در صورت وجود فایلهای احراز هویت CLI مربوط به 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 مهلت زمانی پیشفرض ۳۵ دقیقهای خود را بر اساس تعداد هدفها مقیاس میدهد؛ هر مهلت زمانی پوسته بیرونی یا CI باید همین زمان کل را مجاز بداند. CI مرجع، هر هدف GPT-5.6 را در یک بخش جداگانه نگه میدارد.
دستورهای پیشنهادی اجرای زنده
فهرستهای مجاز محدود و صریح، سریعترین و کمنوسانترین گزینهاند:
-
یک مدل، مستقیم (بدون Gateway):
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
-
نمایه Gateway مدل کوچک:
OPENCLAW_LIVE_GATEWAY_MODELS=small pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
آزمون دود API ابری Ollama:
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
-
یک مدل، آزمون دود Gateway:
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
-
آزمون دود مستقیم GLM-5.2 در Z.AI Coding Plan:
ZAI_CODING_LIVE_TEST=1 pnpm test:live src/agents/zai.live.test.ts
-
تمرکز بر Google (کلید API مربوط به Gemini بههمراه 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 manualاز CLI خصوصی تضمین کیفیت — بهOPENCLAW_ENABLE_PRIVATE_QA_CLI=1و یک نسخه بررسیشده از منبع نیاز دارد؛ نمای کلی تضمین کیفیت را ببینید):- پیشفرض پویای 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/...از API مربوط به Gemini استفاده میکند (کلید API).google-antigravity/...از پل OAuth مربوط به Antigravity استفاده میکند (نقطه پایانی عامل به سبک Cloud Code Assist).google-gemini-cli/...از CLI محلی Gemini روی دستگاه شما استفاده میکند (احراز هویت جداگانه بههمراه ویژگیهای خاص ابزار).- API مربوط به Gemini در برابر CLI مربوط به Gemini:
- API: OpenClaw، API میزبانیشده Gemini در Google را از طریق HTTP فراخوانی میکند (کلید API / احراز هویت نمایه)؛ این همان چیزی است که بیشتر کاربران از «Gemini» منظور دارند.
- CLI: OpenClaw یک باینری محلی
geminiرا از طریق پوسته اجرا میکند؛ این باینری احراز هویت مختص خود را دارد و ممکن است رفتار متفاوتی نشان دهد (پشتیبانی از پخش جریانی/ابزار/ناهمترازی نسخهها).
زنده: ماتریس مدل (موارد تحت پوشش)
اجرای زنده اختیاری است، بنابراین هیچ «فهرست مدل CI» ثابتی وجود ندارد. OPENCLAW_LIVE_MODELS=modern / OPENCLAW_LIVE_GATEWAY_MODELS=modern (و نام مستعار all برای آنها) فهرست اولویت گزینششده از HIGH_SIGNAL_LIVE_MODEL_PRIORITY در src/agents/live-model-filter.ts را با این ترتیب اولویت اجرا میکنند:
| ارائهدهنده/مدل | یادداشتها |
|---|---|
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-k2.7-code |
|
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از پیمایش مدرن پیشفرض کنار گذاشته شدهاند (آنها رفتار بخش پشتی CLI/ACP را پوشش میدهند که در بالا جداگانه آزمایش شده است). خودopenai/gpt-5.5بهطور پیشفرض از طریق چارچوب آزمایشی سرور برنامهٔ Codex مسیریابی میشود؛ به اجرای زنده: آزمون دود چارچوب سرور برنامهٔ Codex مراجعه کنید. - در پیمایش مدرن،
fireworks،google،openrouterوxaiفقط شناسههای مدل صراحتاً گزینششدهٔ خود را اجرا میکنند (فهرست بهصورت خودکار به «تمام مدلهای این ارائهدهنده» گسترش نمییابد). - برای اجرای کاوش تصویر، دستکم یک مدل دارای قابلیت تصویر (گونههای بینایی خانوادههای Claude/Gemini/OpenAI و مانند آنها) را در
OPENCLAW_LIVE_GATEWAY_MODELSبگنجانید.
آزمون دود Gateway را با ابزارها و تصویر، روی مجموعهای دستچینشده از چند ارائهدهنده اجرا کنید:
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 بستگی دارد)
تجمیعکنندهها / Gatewayهای جایگزین
اگر کلیدها را فعال کردهاید، میتوانید از این مسیرها نیز آزمایش کنید:
- OpenRouter:
openrouter/...(صدها مدل؛ برای یافتن گزینههای دارای قابلیت ابزار و تصویر ازopenclaw models scanاستفاده کنید) - OpenCode:
opencode/...برای Zen وopencode-go/...برای 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 (LM Studio، vLLM، LiteLLM و غیره)
اطلاعات احراز هویت (هرگز ثبت نکنید)
آزمایشهای زنده، اطلاعات احراز هویت را به همان روشی کشف میکنند که CLI انجام میدهد. پیامدهای عملی:
-
اگر CLI کار میکند، آزمایشهای زنده نیز باید همان کلیدها را پیدا کنند.
-
اگر یک آزمایش زنده پیام «اطلاعات احراز هویت موجود نیست» میدهد، آن را به همان روشی اشکالزدایی کنید که
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/و فایلها/پوشههای احراز هویت پشتیبانیشدهٔ CLIهای خارجی (.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 - دامنه:
- مسیرهای داخلی تصویر، ویدئو و
music_generateدر comfy را اجرا میکند - هر قابلیت را رد میکند، مگر اینکه
plugins.entries.comfy.config.<capability>پیکربندی شده باشد - پس از تغییر ارسال گردشکار comfy، نظرسنجی، بارگیریها یا ثبت Plugin مفید است
- مسیرهای داخلی تصویر، ویدئو و
اجرای زندهٔ تولید تصویر
- آزمایش:
test/image-generation.runtime.live.test.ts - فرمان:
pnpm test:live test/image-generation.runtime.live.test.ts - چارچوب آزمایشی:
pnpm test:live:media image - دامنه:
- تمام Pluginهای ثبتشدهٔ ارائهدهندهٔ تولید تصویر را فهرست میکند
- پیش از کاوش، از متغیرهای محیطی ارائهدهنده که از قبل صادر شدهاند استفاده میکند
- بهطور پیشفرض کلیدهای API زنده/محیطی را مقدم بر نمایههای احراز هویت ذخیرهشده بهکار میگیرد تا کلیدهای آزمایشی منقضی در
auth-profiles.jsonاطلاعات احراز هویت واقعی پوسته را پنهان نکنند - ارائهدهندگانی را که احراز هویت/نمایه/مدل قابلاستفاده ندارند رد میکند
- هر ارائهدهندهٔ پیکربندیشده را از طریق زمان اجرای مشترک تولید تصویر اجرا میکند:
<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-preview,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استفاده کنید
- برای اجبار احراز هویت از مخزن نمایه و نادیدهگرفتن بازنویسیهایی که فقط در محیط هستند، از
برای مسیر CLI عرضهشده، پس از موفقیت آزمایش زندهٔ ارائهدهنده/زمان اجرا، یک آزمون دود 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-preview \ --prompt "تصویر آزمایشی تخت و مینیمال: یک مربع آبی روی پسزمینهٔ سفید، بدون متن." \ --output ./openclaw-infer-image-smoke.png \ --jsonاین کار تجزیهٔ آرگومانهای CLI، رفع پیکربندی/عامل پیشفرض، فعالسازی Plugin داخلی، زمان اجرای مشترک تولید تصویر و درخواست زندهٔ ارائهدهنده را پوشش میدهد. انتظار میرود وابستگیهای Plugin پیش از بارگذاری زمان اجرا موجود باشند.
اجرای زندهٔ تولید موسیقی
- آزمایش:
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اطلاعات احراز هویت واقعی پوسته را پنهان نکنند - ارائهدهندگانی را که احراز هویت/نمایه/مدل قابلاستفاده ندارند رد میکند
- هر دو حالت زمان اجرای اعلامشده را، در صورت موجودبودن، اجرا میکند:
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اعتبارنامههای واقعی پوسته را پنهان نکنند - ارائهدهندگانی را که احراز هویت/پروفایل/مدل قابلاستفاده ندارند، نادیده میگیرد
- بهطور پیشفرض فقط
generateرا اجرا میکند - برای اجرای حالتهای تبدیل اعلامشده در صورت دسترسبودن نیز،
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1را تنظیم کنید:imageToVideoهنگامی که ارائهدهندهcapabilities.imageToVideo.enabledرا اعلام کرده باشد و ارائهدهنده/مدل انتخابشده در پیمایش مشترک، ورودی تصویر محلی مبتنی بر بافر را بپذیردvideoToVideoهنگامی که ارائهدهندهcapabilities.videoToVideo.enabledرا اعلام کرده باشد و ارائهدهنده/مدل انتخابشده در پیمایش مشترک، ورودی ویدئوی محلی مبتنی بر بافر را بپذیرد
- ارائهدهندهٔ فعلی
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:- فقط
runway، هنگامی که مدل انتخابشده بهgen4_alephنگاشت شود
- فقط
- ارائهدهندگان فعلی
videoToVideoکه اعلام شدهاند اما در پیمایش مشترک نادیده گرفته میشوند:alibaba،google،openai،qwenوxai، زیرا این مسیرها در حال حاضر به URLهای مرجع راهدورhttp(s)نیاز دارند، نه ورودی محلی مبتنی بر بافر
- مسیر مشترک ارائهدهندگان همراهِ تولید ویدئو را در
- محدودسازی اختیاری:
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"- برای گنجاندن همهٔ ارائهدهندگان در پیمایش پیشفرض، از جمله FAL،
OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS="" - برای کاهش سقف زمانی هر عملیات ارائهدهنده در یک اجرای دود تهاجمی،
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>را اجرا میکند تا رفتار Heartbeat و حالت بیصدا با دیگر اجراهای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
مرتبط
- آزمون - مجموعههای واحد، یکپارچهسازی، تضمین کیفیت و Docker