للبدء السريع، ومشغّلي ضمان الجودة، ومجموعات اختبارات الوحدة/التكامل، وتدفقات Docker، راجع الاختبار. تغطي هذه الصفحة مجموعات الاختبار المباشرة (التي تلامس الشبكة): مصفوفة النماذج، وخلفيات CLI، وACP، واختبارات مزوّدي الوسائط المباشرة، إضافة إلى التعامل مع بيانات الاعتماد.Documentation Index
Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
مباشر: أوامر smoke للملف الشخصي المحلي
نفّذ مصدر~/.profile قبل الفحوصات المباشرة المخصصة حتى تتطابق مفاتيح المزوّدين ومسارات الأدوات
المحلية مع الصدفة لديك:
voicecall smoke تشغيل تجريبي جاف ما لم يكن --yes موجودًا أيضًا. استخدم --yes فقط
عندما تريد عمدًا إجراء مكالمة تنبيه حقيقية. بالنسبة إلى Twilio وTelnyx وPlivo،
يتطلب فحص الجاهزية الناجح عنوان Webhook عامًا؛ ويتم رفض بدائل
loopback المحلية فقط/الخاصة عن قصد.
مباشر: فحص قدرات عقدة Android
- الاختبار:
src/gateway/android-node.capabilities.live.test.ts - السكربت:
pnpm android:test:integration - الهدف: استدعاء كل أمر مُعلَن عنه حاليًا بواسطة عقدة Android متصلة والتحقق من سلوك عقد الأمر.
- النطاق:
- إعداد مسبق/يدوي (لا تقوم المجموعة بتثبيت/تشغيل/إقران التطبيق).
- تحقق
node.invokeعبر Gateway أمرًا بأمر لعقدة Android المحددة.
- الإعداد المسبق المطلوب:
- تطبيق Android متصل ومقترن بالفعل بالـ Gateway.
- إبقاء التطبيق في المقدمة.
- منح الأذونات/موافقة الالتقاط للقدرات التي تتوقع نجاحها.
- تجاوزات الهدف الاختيارية:
OPENCLAW_ANDROID_NODE_IDأوOPENCLAW_ANDROID_NODE_NAME.OPENCLAW_ANDROID_GATEWAY_URL/OPENCLAW_ANDROID_GATEWAY_TOKEN/OPENCLAW_ANDROID_GATEWAY_PASSWORD.
- تفاصيل إعداد Android الكاملة: تطبيق Android
مباشر: smoke للنماذج (مفاتيح الملف الشخصي)
تنقسم الاختبارات المباشرة إلى طبقتين حتى نتمكن من عزل الإخفاقات:- “النموذج المباشر” يخبرنا بأن المزوّد/النموذج يمكنه الإجابة أصلًا بالمفتاح المعطى.
- “Gateway smoke” يخبرنا بأن مسار Gateway+agent الكامل يعمل لذلك النموذج (الجلسات، والسجل، والأدوات، وسياسة sandbox، وما إلى ذلك).
الطبقة 1: إكمال النموذج المباشر (بلا Gateway)
- الاختبار:
src/agents/models.profiles.live.test.ts - الهدف:
- تعداد النماذج المكتشفة
- استخدام
getApiKeyForModelلاختيار النماذج التي لديك بيانات اعتماد لها - تشغيل إكمال صغير لكل نموذج (وانحدارات مستهدفة عند الحاجة)
- طريقة التفعيل:
pnpm test:live(أوOPENCLAW_LIVE_TEST=1عند استدعاء Vitest مباشرة)
- عيّن
OPENCLAW_LIVE_MODELS=modern(أوall، وهو اسم مستعار للحديثة) لتشغيل هذه المجموعة فعليًا؛ وإلا فستتخطاها لإبقاءpnpm test:liveمركّزًا على Gateway smoke - طريقة اختيار النماذج:
OPENCLAW_LIVE_MODELS=modernلتشغيل قائمة السماح الحديثة (Opus/Sonnet 4.6+، وGPT-5.2 + Codex، وGemini 3، وDeepSeek V4، وGLM 4.7، وMiniMax M2.7، وGrok 4.3)OPENCLAW_LIVE_MODELS=allاسم مستعار لقائمة السماح الحديثة- أو
OPENCLAW_LIVE_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,..."(قائمة سماح مفصولة بفواصل) - تستخدم فحوصات modern/all حدًا منسقًا عالي الإشارة افتراضيًا؛ عيّن
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"(قائمة سماح مفصولة بفواصل)
- من أين تأتي المفاتيح:
- افتراضيًا: مخزن الملف الشخصي وبدائل env
- عيّن
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1لفرض مخزن الملف الشخصي فقط
- سبب وجود هذا:
- يفصل “API المزوّد معطل / المفتاح غير صالح” عن “مسار وكيل Gateway معطل”
- يحتوي على انحدارات صغيرة ومعزولة (مثال: إعادة تشغيل reasoning في OpenAI Responses/Codex Responses + تدفقات استدعاء الأدوات)
الطبقة 2: Gateway + smoke لوكيل التطوير (ما يفعله “@openclaw” فعليًا)
- الاختبار:
src/gateway/gateway-models.profiles.live.test.ts - الهدف:
- تشغيل Gateway داخل العملية
- إنشاء/ترقيع جلسة
agent:dev:*(تجاوز النموذج لكل تشغيل) - تكرار النماذج ذات المفاتيح والتحقق من:
- استجابة “ذات معنى” (بلا أدوات)
- عمل استدعاء أداة حقيقي (مجس قراءة)
- مجسات أدوات إضافية اختيارية (مجس exec+read)
- استمرار عمل مسارات انحدار OpenAI (أداة فقط → متابعة)
- تفاصيل المجسات (حتى تتمكن من شرح الإخفاقات بسرعة):
- مجس
read: يكتب الاختبار ملف nonce في مساحة العمل ويطلب من الوكيلreadله وإرجاع nonce. - مجس
exec+read: يطلب الاختبار من الوكيل أن يكتب nonce باستخدامexecفي ملف مؤقت، ثم يقرأه باستخدامread. - مجس الصورة: يرفق الاختبار PNG مُنشأ (cat + رمز عشوائي) ويتوقع من النموذج إرجاع
cat <CODE>. - مرجع التنفيذ:
src/gateway/gateway-models.profiles.live.test.tsوsrc/gateway/live-image-probe.ts.
- مجس
- طريقة التفعيل:
pnpm test:live(أوOPENCLAW_LIVE_TEST=1عند استدعاء Vitest مباشرة)
- طريقة اختيار النماذج:
- الافتراضي: قائمة السماح الحديثة (Opus/Sonnet 4.6+، وGPT-5.2 + Codex، وGemini 3، وDeepSeek V4، وGLM 4.7، وMiniMax M2.7، وGrok 4.3)
OPENCLAW_LIVE_GATEWAY_MODELS=allاسم مستعار لقائمة السماح الحديثة- أو عيّن
OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"(أو قائمة مفصولة بفواصل) للتضييق - تستخدم فحوصات Gateway من modern/all حدًا منسقًا عالي الإشارة افتراضيًا؛ عيّن
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” + رمز عشوائي (
src/gateway/live-image-probe.ts) - يرسله عبر
agentattachments: [{ mimeType: "image/png", content: "<base64>" }] - يحلل Gateway المرفقات إلى
images[](src/gateway/server-methods/agent.ts+src/gateway/chat-attachments.ts) - يمرر الوكيل المضمّن رسالة مستخدم متعددة الوسائط إلى النموذج
- التحقق: يحتوي الرد على
cat+ الرمز (سماحية OCR: يُسمح بأخطاء طفيفة)
- ينشئ الاختبار PNG صغيرًا مع “CAT” + رمز عشوائي (
- مجس
مباشر: smoke لخلفية CLI (Claude أو Codex أو Gemini أو CLIs محلية أخرى)
- الاختبار:
src/gateway/gateway-cli-backend.live.test.ts - الهدف: التحقق من مسار Gateway + agent باستخدام خلفية CLI محلية، من دون لمس إعداداتك الافتراضية.
- تعيش افتراضيات smoke الخاصة بكل خلفية مع تعريف
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="codex-cli/gpt-5.5"OPENCLAW_LIVE_CLI_BACKEND_COMMAND="/full/path/to/codex"OPENCLAW_LIVE_CLI_BACKEND_ARGS='["exec","--json","--color","never","--sandbox","read-only","--skip-git-repo-check"]'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للاشتراك في مجس loopback لـ MCP/الأدوات. تعطل وصفات Docker هذا افتراضيًا ما لم يُطلب صراحة.
gemini --debug mcp list لإثبات أن
خادمًا محفوظًا بقيمة transport: "streamable-http" يُطبع إلى شكل HTTP MCP الخاص بـ Gemini
ويمكنه الاتصال بخادم MCP محلي من نوع streamable-HTTP.
وصفة Docker:
- يوجد مشغّل Docker في
scripts/test-live-cli-backend-docker.sh. - يشغّل smoke خلفية CLI المباشر داخل صورة Docker الخاصة بالمستودع كمستخدم
nodeغير جذر. - يحل بيانات smoke الوصفية لـ CLI من Plugin المالكة، ثم يثبت حزمة CLI المطابقة لـ Linux (
@anthropic-ai/claude-codeأو@openai/codexأو@google/gemini-cli) في بادئة قابلة للكتابة ومخزنة مؤقتًا عندOPENCLAW_DOCKER_CLI_TOOLS_DIR(الافتراضي:~/.cache/openclaw/docker-cli-tools). - يتطلب
pnpm test:docker:live-cli-backend:claude-subscriptionOAuth محمولًا لاشتراك Claude Code عبر إما~/.claude/.credentials.jsonمعclaudeAiOauth.subscriptionTypeأوCLAUDE_CODE_OAUTH_TOKENمنclaude setup-token. يثبت أولًا تشغيلclaude -pالمباشر في Docker، ثم يشغّل دورين لخلفية Gateway CLI من دون الحفاظ على متغيرات env الخاصة بمفاتيح Anthropic API. يعطل مسار الاشتراك هذا مجسات Claude MCP/الأدوات والصور افتراضيًا لأن Claude يوجه حاليًا استخدام تطبيقات الطرف الثالث عبر فوترة استخدام إضافية بدلًا من حدود خطة الاشتراك العادية. - يمارس smoke خلفية CLI المباشر الآن التدفق الكامل نفسه لـ Claude وCodex وGemini: دور نصي، ثم دور تصنيف صورة، ثم استدعاء أداة
cronفي MCP مُتحقق منه عبر Gateway CLI. - يقوم smoke الافتراضي لـ Claude أيضًا بترقيع الجلسة من Sonnet إلى Opus ويتحقق من أن الجلسة المستأنفة لا تزال تتذكر ملاحظة سابقة.
مباشر: قابلية وصول وكيل APNs HTTP/2
- الاختبار:
src/infra/push-apns-http2.live.test.ts - الهدف: النفاذ عبر وكيل HTTP CONNECT محلي إلى نقطة نهاية APNs sandbox الخاصة بـ Apple، وإرسال طلب تحقق APNs HTTP/2، والتحقق من أن استجابة Apple الحقيقية
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
مباشر: smoke لربط 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.5OPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL=opencode/kimi-k2.6OPENCLAW_LIVE_ACP_BIND_REQUIRE_TRANSCRIPT=1OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1OPENCLAW_LIVE_ACP_BIND_PARENT_MODEL=openai/gpt-5.5
- ملاحظات:
- يستخدم هذا المسار سطح
chat.sendالخاص بالـ gateway مع حقول مسار منشأ اصطناعية مخصصة للمسؤول فقط كي تتمكن الاختبارات من إرفاق سياق قناة الرسائل من دون الادعاء بالتسليم خارجيًا. - عندما لا تكون
OPENCLAW_LIVE_ACP_BIND_AGENT_COMMANDمضبوطة، يستخدم الاختبار سجل الوكلاء المدمج في Pluginacpxالمضمن لوكيل حزمة ACP المحدد. - إنشاء MCP الخاص بـ Cron للجلسة المرتبطة يبذل أفضل جهد افتراضيًا لأن حزم ACP الخارجية يمكن أن تلغي استدعاءات MCP بعد نجاح إثبات الربط/الصورة؛ اضبط
OPENCLAW_LIVE_ACP_BIND_REQUIRE_CRON=1لجعل فحص Cron بعد الربط صارمًا.
- يستخدم هذا المسار سطح
- مشغّل Docker موجود في
scripts/test-live-acp-bind-docker.sh. - افتراضيًا، يشغّل اختبار smoke لربط 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لتضييق المصفوفة. - يحمّل
~/.profile، ويرحّل مادة مصادقة CLI المطابقة إلى الحاوية، ثم يثبّت CLI المباشر المطلوب (@anthropic-ai/claude-codeأو@openai/codexأو Factory Droid عبرhttps://app.factory.ai/cliأو@google/gemini-cliأوopencode-ai) إذا كان مفقودًا. خلفية ACP نفسها هي حزمةacpx/runtimeالمدمجة من Pluginacpxالرسمي. - متغير Docker الخاص بـ Droid يرحّل
~/.factoryللإعدادات، ويمررFACTORY_API_KEY، ويتطلب مفتاح API هذا لأن مصادقة Factory المحلية عبر OAuth/مخزن المفاتيح غير قابلة للنقل إلى الحاوية. يستخدم إدخال سجل ACPX المدمجdroid exec --output-format acp. - متغير Docker الخاص بـ OpenCode هو مسار انحدار صارم لوكيل واحد. يكتب نموذجًا افتراضيًا مؤقتًا في
OPENCODE_CONFIG_CONTENTمنOPENCLAW_LIVE_ACP_BIND_OPENCODE_MODEL(الافتراضيopencode/kimi-k2.6) بعد تحميل~/.profile، ويتطلبpnpm test:docker:live-acp-bind:opencodeسجل مساعد مرتبطًا بدل قبول التخطي العام لما بعد الربط. - استدعاءات CLI المباشرة لـ
acpxهي فقط مسار يدوي/حل بديل لمقارنة السلوك خارج Gateway. اختبار smoke الخاص بربط ACP في Docker يختبر خلفية تشغيلacpxالمدمجة في OpenClaw.
مباشر: اختبار smoke لحزمة Codex app-server
- الهدف: التحقق من حزمة Codex المملوكة للـ Plugin عبر Gateway العادي
بطريقة
agent:- تحميل Plugin
codexالمضمن - اختيار
openai/gpt-5.5، والذي يوجّه أدوار وكيل OpenAI عبر Codex افتراضيًا - إرسال أول دور وكيل عبر Gateway إلى
openai/gpt-5.5مع تحديد حزمة Codex - إرسال دور ثانٍ إلى جلسة 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.5 - فحص الصورة الاختياري:
OPENCLAW_LIVE_CODEX_HARNESS_IMAGE_PROBE=1 - فحص MCP/الأدوات الاختياري:
OPENCLAW_LIVE_CODEX_HARNESS_MCP_PROBE=1 - فحص Guardian الاختياري:
OPENCLAW_LIVE_CODEX_HARNESS_GUARDIAN_PROBE=1 - يجبر اختبار smoke تكوين المزوّد/النموذج
agentRuntime.id: "codex"بحيث لا يمكن لحزمة Codex المعطلة أن تنجح عبر الرجوع بصمت إلى PI. - المصادقة: مصادقة Codex app-server من تسجيل دخول اشتراك Codex المحلي. يمكن لاختبارات smoke في Docker
أيضًا توفير
OPENAI_API_KEYللفحوصات غير الخاصة بـ Codex عند الانطباق، إضافة إلى النسخ الاختياري لـ~/.codex/auth.jsonو~/.codex/config.toml.
- مشغّل Docker موجود في
scripts/test-live-codex-harness-docker.sh. - يحمّل
~/.profileالمركّب، ويمررOPENAI_API_KEY، وينسخ ملفات مصادقة Codex CLI عند وجودها، ويثبّت@openai/codexفي بادئة npm مركّبة قابلة للكتابة، ويرحّل شجرة المصدر، ثم يشغّل اختبار Codex-harness المباشر فقط. - يفعّل 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 الصريح نفسه، لذلك لا يمكن للأسماء المستعارة القديمة أو الرجوع إلى PI إخفاء انحدار في حزمة Codex.
الوصفات المباشرة الموصى بها
قوائم السماح الضيقة والصريحة هي الأسرع والأقل تقلبًا:-
نموذج واحد، مباشر (بلا Gateway):
OPENCLAW_LIVE_MODELS="openai/gpt-5.5" pnpm test:live src/agents/models.profiles.live.test.ts
-
نموذج واحد، اختبار smoke عبر Gateway:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
استدعاء الأدوات عبر عدة مزوّدين:
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
-
تركيز Google (مفتاح Gemini API + Antigravity):
- Gemini (مفتاح API):
OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3-flash-preview" 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):
-
اختبار smoke للتفكير التكيفي في Google:
- إذا كانت المفاتيح المحلية موجودة في ملف تعريف الصدفة:
source ~/.profile - الافتراضي الديناميكي لـ Gemini 3:
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 الديناميكية:
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
- إذا كانت المفاتيح المحلية موجودة في ملف تعريف الصدفة:
- يستخدم
google/...واجهة Gemini API (مفتاح API). - يستخدم
google-antigravity/...جسر Antigravity OAuth (نقطة نهاية وكيل بنمط Cloud Code Assist). - يستخدم
google-gemini-cli/...Gemini CLI المحلي على جهازك (مصادقة منفصلة + غرائب في الأدوات). - Gemini API مقابل Gemini CLI:
- API: يستدعي OpenClaw واجهة Gemini API المستضافة لدى Google عبر HTTP (مصادقة مفتاح API / الملف الشخصي)؛ وهذا ما يقصده معظم المستخدمين بـ “Gemini”.
- CLI: يشغّل OpenClaw ملف
geminiثنائيًا محليًا عبر الصدفة؛ لديه مصادقته الخاصة ويمكن أن يتصرف بشكل مختلف (دعم البث/الأدوات/اختلاف الإصدارات).
مباشر: مصفوفة النماذج (ما نغطيه)
لا توجد “قائمة نماذج CI” ثابتة (المباشر اختياري)، لكن هذه هي النماذج الموصى بها لتغطيتها بانتظام على جهاز تطوير يحتوي على مفاتيح.مجموعة smoke حديثة (استدعاء الأدوات + الصورة)
هذا هو تشغيل “النماذج الشائعة” الذي نتوقع أن يستمر في العمل:- OpenAI (غير Codex):
openai/gpt-5.5 - OpenAI Codex OAuth:
openai-codex/gpt-5.5 - Anthropic:
anthropic/claude-opus-4-6(أوanthropic/claude-sonnet-4-6) - Google (Gemini API):
google/gemini-3.1-pro-previewوgoogle/gemini-3-flash-preview(تجنب نماذج Gemini 2.x الأقدم) - Google (Antigravity):
google-antigravity/claude-opus-4-6-thinkingوgoogle-antigravity/gemini-3-flash - DeepSeek:
deepseek/deepseek-v4-flashوdeepseek/deepseek-v4-pro - Z.AI (GLM):
zai/glm-5.1 - MiniMax:
minimax/MiniMax-M2.7
OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.5,openai-codex/gpt-5.5,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-flash,deepseek/deepseek-v4-flash,zai/glm-5.1,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts
خط الأساس: استدعاء الأدوات (Read + Exec اختياري)
اختر واحدًا على الأقل لكل عائلة مزوّدين:- OpenAI:
openai/gpt-5.5 - Anthropic:
anthropic/claude-opus-4-6(أوanthropic/claude-sonnet-4-6) - Google:
google/gemini-3-flash-preview(أوgoogle/gemini-3.1-pro-preview) - DeepSeek:
deepseek/deepseek-v4-flash - Z.AI (GLM):
zai/glm-5.1 - MiniMax:
minimax/MiniMax-M2.7
- xAI:
xai/grok-4.3(أو أحدث متاح) - Mistral:
mistral/… (اختر نموذجًا واحدًا قادرًا على “الأدوات” قمت بتفعيله) - Cerebras:
cerebras/… (إذا كان لديك وصول) - LM Studio:
lmstudio/… (محلي؛ يعتمد استدعاء الأدوات على وضع API)
الرؤية: إرسال صورة (مرفق → رسالة متعددة الوسائط)
ضمّن نموذجًا واحدًا على الأقل قادرًا على الصور فيOPENCLAW_LIVE_GATEWAY_MODELS (متغيرات Claude/Gemini/OpenAI القادرة على الرؤية، وما إلى ذلك) لاختبار فحص الصورة.
المجمّعات / البوابات البديلة
إذا كانت لديك مفاتيح مفعّلة، ندعم أيضًا الاختبار عبر:- OpenRouter:
openrouter/...(مئات النماذج؛ استخدمopenclaw models scanللعثور على مرشحين قادرين على الأدوات+الصور) - OpenCode:
opencode/...لـ Zen وopencode-go/...لـ Go (المصادقة عبرOPENCODE_API_KEY/OPENCODE_ZEN_API_KEY)
- مدمج:
openai،openai-codex،anthropic،google،google-vertex،google-antigravity،google-gemini-cli،zai،openrouter،opencode،opencode-go،xai،groq،cerebras،mistral،github-copilot - عبر
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) -
دليل الحالة القديم:
~/.openclaw/credentials/(يُنسخ إلى المنزل الحي المرحلي عند وجوده، لكنه ليس مخزن مفاتيح ملف التعريف الرئيسي) -
تنسخ عمليات التشغيل المحلية الحية افتراضياً الإعدادات النشطة، وملفات
auth-profiles.jsonلكل وكيل، وcredentials/القديمة، وأدلة مصادقة CLI الخارجية المدعومة إلى منزل اختبار مؤقت؛ وتتخطى المنازل الحية المرحليةworkspace/وsandboxes/، كما تُزال تجاوزات مساراتagents.*.workspace/agentDirبحيث تبقى المجسات بعيدة عن مساحة عمل مضيفك الحقيقية.
~/.profile لديك)، فشغّل الاختبارات المحلية بعد source ~/.profile، أو استخدم مشغّلات Docker أدناه (يمكنها تركيب ~/.profile داخل الحاوية).
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، أو الاستطلاع، أو التنزيلات، أو تسجيل Plugin
- يختبر مسارات comfy المضمّنة للصور والفيديو و
توليد الصور الحي
- الاختبار:
test/image-generation.runtime.live.test.ts - الأمر:
pnpm test:live test/image-generation.runtime.live.test.ts - الحاضنة:
pnpm test:live:media image - النطاق:
- يحصي كل Plugin مزود مسجل لتوليد الصور
- يحمّل متغيرات بيئة المزود الناقصة من صدفة تسجيل الدخول لديك (
~/.profile) قبل الفحص - يستخدم مفاتيح 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لفرض مصادقة مخزن ملفات التعريف وتجاهل التجاوزات المعتمدة على البيئة فقط
infer بعد نجاح الاختبار الحي للمزود/وقت التشغيل:
توليد الموسيقى الحي
- الاختبار:
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 - النطاق:
- يختبر مسار مزود توليد الموسيقى المضمّن المشترك
- يغطي حالياً Google وMiniMax
- يحمّل متغيرات بيئة المزود من صدفة تسجيل الدخول لديك (
~/.profile) قبل الفحص - يستخدم مفاتيح API الحية/البيئية قبل ملفات تعريف المصادقة المخزنة افتراضياً، بحيث لا تحجب مفاتيح الاختبار القديمة في
auth-profiles.jsonبيانات اعتماد الصدفة الحقيقية - يتخطى المزودين الذين لا يملكون مصادقة/ملف تعريف/نموذجاً صالحاً للاستخدام
- يشغّل نمطي وقت التشغيل المعلنين عند توفرهما:
generateمع إدخال يتضمن مطالبة فقطeditعندما يعلن المزودcapabilities.edit.enabled
- تغطية المسار المشترك الحالية:
google:generate,editminimax:generatecomfy: ملف 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 - النطاق:
- يختبر مسار مزود توليد الفيديو المضمّن المشترك
- يستخدم افتراضياً مسار دخان آمناً للإصدار: مزودون غير FAL، وطلب واحد من نص إلى فيديو لكل مزود، ومطالبة جراد بحر لمدة ثانية واحدة، وحد عملية لكل مزود من
OPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS(180000افتراضياً) - يتخطى FAL افتراضياً لأن زمن انتظار الطابور لدى المزود قد يهيمن على وقت الإصدار؛ مرّر
--video-providers falأوOPENCLAW_LIVE_VIDEO_GENERATION_PROVIDERS="fal"لتشغيله صراحة - يحمّل متغيرات بيئة المزود من صدفة تسجيل الدخول لديك (
~/.profile) قبل الفحص - يستخدم مفاتيح API الحية/البيئية قبل ملفات تعريف المصادقة المخزنة افتراضياً، بحيث لا تحجب مفاتيح الاختبار القديمة في
auth-profiles.jsonبيانات اعتماد الصدفة الحقيقية - يتخطى المزودين الذين لا يملكون مصادقة/ملف تعريف/نموذجاً صالحاً للاستخدام
- يشغّل
generateفقط افتراضياً - عيّن
OPENCLAW_LIVE_VIDEO_GENERATION_FULL_MODES=1لتشغيل أنماط التحويل المعلنة أيضاً عند توفرها:imageToVideoعندما يعلن المزودcapabilities.imageToVideo.enabledويقبل المزود/النموذج المحدد إدخال صورة محلية مدعوماً بمخزن مؤقت في المسح المشتركvideoToVideoعندما يعلن المزودcapabilities.videoToVideo.enabledويقبل المزود/النموذج المحدد إدخال فيديو محلياً مدعوماً بمخزن مؤقت في المسح المشترك
- مزودو
imageToVideoالمعلنون حالياً لكن المتخطون في المسح المشترك:vydraلأنveo3المضمّن نصي فقط وklingالمضمّن يتطلب URL صورة بعيداً
- تغطية Vydra الخاصة بالمزود:
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_VYDRA_VIDEO=1 pnpm test:live -- extensions/vydra/vydra.live.test.ts- يشغّل ذلك الملف
veo3من نص إلى فيديو بالإضافة إلى مسارklingيستخدم تجهيز URL صورة بعيداً افتراضياً
- تغطية
videoToVideoالحية الحالية:runwayفقط عندما يكون النموذج المحددrunway/gen4_aleph
- مزودو
videoToVideoالمعلنون حالياً لكن المتخطون في المسح المشترك:alibaba,qwen,xaiلأن تلك المسارات تتطلب حالياً URLs مراجعhttp(s)/ MP4 بعيدةgoogleلأن مسار Gemini/Veo المشترك الحالي يستخدم إدخالاً محلياً مدعوماً بمخزن مؤقت، وهذا المسار غير مقبول في المسح المشتركopenaiلأن المسار المشترك الحالي يفتقر إلى ضمانات وصول خاصة بالمؤسسة لتلوين/إعادة مزج الفيديو
- تضييق اختياري:
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=""لإدراج كل مزود في المسح الافتراضي، بما في ذلك FALOPENCLAW_LIVE_VIDEO_GENERATION_TIMEOUT_MS=60000لتقليل حد كل عملية مزود من أجل تشغيل دخان صارم
- سلوك مصادقة اختياري:
OPENCLAW_LIVE_REQUIRE_PROFILE_KEYS=1لفرض مصادقة مخزن ملفات التعريف وتجاهل التجاوزات المعتمدة على البيئة فقط
حاضنة الوسائط الحية
- الأمر:
pnpm test:live:media - الغرض:
- يشغّل مجموعات الاختبارات الحية المشتركة للصور والموسيقى والفيديو عبر نقطة دخول أصلية للمستودع واحدة
- يحمّل تلقائياً متغيرات بيئة المزود الناقصة من
~/.profile - يضيّق تلقائياً كل مجموعة إلى المزودين الذين لديهم حالياً مصادقة صالحة للاستخدام افتراضياً
- يعيد استخدام
scripts/test-live.mjs، بحيث يبقى سلوك Heartbeat والوضع الهادئ متسقاً
- أمثلة:
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