Testing
آزمایش: مجموعههای زنده
برای شروع سریع، اجراکنندههای QA، مجموعهآزمونهای واحد/یکپارچهسازی و جریانهای Docker، به آزمایش مراجعه کنید. این صفحه آزمایشهای زنده (دارای ارتباط شبکهای) را پوشش میدهد: ماتریس مدل، بکاندهای CLI، ACP، ارائهدهندگان رسانه و مدیریت اطلاعات اعتبارسنجی.
آزمایشهای زنده در برابر Gateway واقعی شما
مجموعهآزمونهای زنده و آزمایشهای سریع موردی هرگز نباید Gatewayای را که از قبل ترافیک واقعی را سرویس میدهد (متعلق به شما یا اپراتوری دیگر) مختل کنند:
- Gateway خود را بیاورید: از Gateway درونپردازشی (لایه 2 در ادامه) استفاده کنید یا یک
نمونه توسعه را با دایرکتوری وضعیت ایزوله (
OPENCLAW_STATE_DIR=<scratch>) و یک پورت آزاد راهاندازی کنید. هنگامی که یک Gateway واقعی روی پورت پیشفرض Gateway (18789) در حال اجرا است، به آن پورت متصل نشوید. - سرویسی را که در این نشست راهاندازی نکردهاید، با
openclaw gateway stop/restart(یا معادلهایlaunchctl/systemctl/tmux) مدیریت نکنید — آن نمونه زنده اپراتور است. ابتدا تأیید صریح بگیرید. - به دادههای واقعگرایانه نیاز دارید؟ وضعیت/DB زنده را در دایرکتوری وضعیت توسعه خود کپی کنید و آزمایش را روی نسخه کپیشده انجام دهید. مهاجرت درجا روی وضعیت یک Gateway زنده نیز به تأیید صریح نیاز دارد.
زنده: فرمانهای آزمایش سریع محلی
پیش از بررسیهای زنده موردی، کلید ارائهدهنده موردنیاز را در محیط پردازش صادر کنید.
آزمایش سریع و ایمن رسانه:
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"voicecall smoke یک اجرای آزمایشی است، مگر اینکه --yes نیز وجود داشته باشد؛ از --yes فقط
زمانی استفاده کنید که قصد برقراری یک تماس واقعی را دارید. برای Twilio، Telnyx و Plivo،
بررسی موفق آمادگی به یک URL عمومی Webhook نیاز دارد؛ URLهای حلقهبازگشت محلی/خصوصی
رد میشوند، زیرا این ارائهدهندگان نمیتوانند به آنها دسترسی پیدا کنند.
زنده: پیمایش قابلیتهای Node در Android
- آزمایش:
src/gateway/android-node.capabilities.live.test.ts - اسکریپت:
pnpm android:test:integration - هدف: فراخوانی تمام فرمانهایی که در حال حاضر اعلام شدهاند توسط یک Node متصل Android و بررسی رفتار قرارداد فرمان.
- دامنه:
- راهاندازی پیششرطدار/دستی (مجموعهآزمون برنامه را نصب/اجرا/جفت نمیکند).
- اعتبارسنجی فرمانبهفرمان
node.invokeدر Gateway برای Node انتخابشده 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
زنده: آزمایش سریع مدل (کلیدهای نمایه)
آزمایشهای زنده مدل به دو لایه تقسیم میشوند تا خرابیها از هم جدا باشند:
- «مدل مستقیم» مشخص میکند که آیا ارائهدهنده/مدل با کلید دادهشده اساساً میتواند پاسخ دهد.
- «آزمایش سریع Gateway» مشخص میکند که آیا پایپلاین کامل Gateway+عامل برای آن مدل کار میکند (نشستها، تاریخچه، ابزارها، سیاست sandbox و غیره).
فهرستهای گزینششده مدل در ادامه، در src/agents/live-model-filter.ts قرار دارند و
با گذر زمان تغییر میکنند؛ آرایههای آنجا را منبع حقیقت در نظر بگیرید، نه این
صفحه را.
MiniMax M3 از minimax/MiniMax-M3 بهعنوان ارجاع پیشفرض ارائهدهنده/مدل خود استفاده میکند.
لایه 1: تکمیل مستقیم مدل (بدون 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را فقط برای نقاط پایانی LAN، سفارشی یا Ollama Cloud تنظیم کنید. - پیمایشهای مدرن/همه و کوچک، بهطور پیشفرض طول فهرست گزینششده خود را بهعنوان سقف در نظر میگیرند؛ برای پیمایش جامع نمایه انتخابشده،
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 ارائهدهنده خراب است / کلید نامعتبر است» را از «پایپلاین عامل Gateway خراب است» جدا میکند
- شامل رگرسیونهای کوچک و ایزوله است (مثال: بازپخش استدلال OpenAI Responses/Codex Responses و جریانهای فراخوانی ابزار)
لایه 2: آزمایش سریع Gateway + عامل توسعه (کاری که "@openclaw" واقعاً انجام میدهد)
- آزمایش:
src/gateway/gateway-models.profiles.live.test.ts - هدف:
- راهاندازی یک Gateway درونپردازشی
- ایجاد/اصلاح یک نشست
agent:dev:*(بازنویسی مدل در هر اجرا) - پیمایش مدلهای دارای کلید و بررسی موارد زیر:
- پاسخ «معنادار» (بدون ابزار)
- کارکرد یک فراخوانی واقعی ابزار (کاوش خواندن)
- کاوشهای اختیاری ابزار اضافی (کاوش اجرا+خواندن)
- مسیرهای رگرسیون OpenAI (فقط فراخوانی ابزار -> پیگیری) همچنان کار میکنند
- جزئیات کاوش (تا بتوانید خرابیها را سریع توضیح دهید):
- کاوش
read: آزمایش یک فایل nonce در فضای کاری مینویسد و از عامل میخواهد آن راreadکند و nonce را بازگرداند. - کاوش
exec+read: آزمایش از عامل میخواهد یک nonce را با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"(یا فهرست جداشده با ویرگول) را تنظیم کنید - پیمایشهای مدرن/همه و کوچک 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) - آن را از طریق
agentattachments: [{ 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برای فعالسازی اختیاری کاوش حلقهبازگشت 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 متناظر Linux (
@anthropic-ai/claude-codeیا@google/gemini-cli) را در پیشوند نوشتنی ذخیرهشده در حافظهٔ نهان درOPENCLAW_DOCKER_CLI_TOOLS_DIR(پیشفرض:~/.cache/openclaw/docker-cli-tools) نصب میکند. codex-cliدیگر یک بکاند CLI همراه نیست؛ بهجای آن ازopenai/*با زماناجرای app-server مربوط به Codex استفاده کنید (نگاه کنید به زنده: آزمون دود هارنس app-server مربوط به 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 اجرا میکند. این مسیر اشتراک، کاوشهای Claude MCP/ابزار و تصویر را بهطور پیشفرض غیرفعال میکند، زیرا از محدودیتهای استفادهٔ اشتراک واردشده مصرف میکند و Anthropic میتواند رفتار صورتحساب و محدودیت نرخ Claude Agent SDK /claude -pرا بدون انتشار نسخهای از OpenClaw تغییر دهد.- Claude و Gemini از طریق پرچمهای بالا از مجموعهکاوش یکسانی (نوبت متنی، دستهبندی تصویر، فراخوانی ابزار MCP
cronو تداوم تعویض مدل) پشتیبانی میکنند، اما هیچیک از این کاوشها بهطور پیشفرض اجرا نمیشوند؛ در صورت نیاز، هرکدام را با پرچم مربوط به آن فعال کنید.
زنده: دسترسیپذیری پراکسی HTTP/2 مربوط به APNs
- آزمون:
src/infra/push-apns-http2.live.test.ts - هدف: ایجاد تونل از طریق یک پراکسی محلی HTTP CONNECT به نقطهٔ پایانی sandbox مربوط به 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تنظیم نشده باشد، آزمون برای عامل هارنس ACP انتخابشده از رجیستری عامل داخلی Plugin تعبیهشدهٔacpxاستفاده میکند. - ایجاد 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_EXPECTED_EFFORT=<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 - تنش اختیاری ازسرگیری:
OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS=1چهار نوبت تاریخچه اضافه میکند، سپس Gateway و app-server مربوط به Codex را سه بار میبندد و دوباره راهاندازی میکند، درحالیکه همان شناسهٔ رشتهٔ بومی و تاریخچهٔ مکالمه را الزامی میداند. شمارهای محدودشده را با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) را تنظیم کنید. هارنس همهٔ فرزندها را همزمان آغاز میکند، منتظر اجرای پایانی همه میماند و هر پاسخ یکتای فرزند و هویت رشتهٔ بومی را تأیید میکند. - تنش اختیاری Compaction:
OPENCLAW_LIVE_CODEX_HARNESS_COMPACTION_STRESS=1خروجی محدودشدهٔ ابزار بومی را تولید میکند، رخدادهای Compaction خودکار را الزامی میداند، شمار Compaction ذخیرهشده و یادآوری نشانگر پنهان را تأیید میکند، Gateway و app-server فیزیکی Codex را دوباره راهاندازی میکند، سپس موج خروجی و Compaction را تکرار میکند. حجم کار محدودشده را با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و محدودیتهای کل Compaction به میزان700000را اعمال میکند، نوبتهای متراکم و محدودشدهٔ کاربر را میفرستد، در هر موج دو نقطهٔ بازرسی صریح Compaction بومی اجرا میکند و پس از هر نقطهٔ بازرسی با نوبتهای بعدی ادامه میدهد. این حالت بهOPENCLAW_LIVE_CODEX_HARNESS_AUTH=api-keyبهعلاوهٔ یک مسیر مطلقOPENCLAW_LIVE_CODEX_HARNESS_MODEL_CATALOGنیاز دارد. کاتالوگ باید مدل انتخابشده را باmax_context_window: 922000ارائه کند تا Codex بازنویسی را دوباره به پنجرهٔ عادی کاتالوگ خود محدود نکند. تنش عادی با آستانهٔ کاهشیافتهٔ بالا، ادعاهای سختگیرانهتر Compaction خودکار و حفظ نشانگر پنهان را نگه میدارد. - کاوش اختیاری انصراف از رلهٔ حلقه:
OPENCLAW_LIVE_CODEX_HARNESS_DISABLE_LOOP_RELAY=1 - ترجیح تفکر درخواستی ممکن است به نزدیکترین سطح تلاش اعلامشده
توسط Codex برای آن مدل نگاشت شود. برای مثال، Luna مقدار
minimalرا بهlowنگاشت میکند. - مدلهای شناختهشدهٔ کاتالوگ Codex، همان تلاش بومی دقیق را بهطور خودکار استخراج میکنند. بازنویسی مدلهای ناشناخته باید تلاش نگاشتشدهٔ مورد انتظار را مشخص کند.
- آزمون دود، ارائهدهنده/مدل را به
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تنش راهاندازی مجدد و تاریخچه:
OPENCLAW_LIVE_CODEX_HARNESS_RESUME_STRESS=1 \pnpm test:docker:live-codex-harnessتنش گسترش موازی، خروجی بزرگ، Compaction و راهاندازی مجدد:
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تنش Compaction برای بودجهٔ ورودی بومی 922000 در Codex:
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.tsماتریس بومی Codex برای GPT-5.6:
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زنده: Compaction تکرارشوندهٔ OpenAI
- هدف: اجرای حلقه عامل تعبیهشده OpenClaw
openai-responsesاز طریق حداقل دو Compaction خودکار واقعی، سپس بررسی ماندگاری یک نشانگر پایدار. - آزمایش:
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 به همان مسیر Compaction واقعی برسد.
- حالت زمینه کامل، بودجه کارخواه را روی
922000و ذخیره Compaction را روی222000تنظیم میکند، بنابراین Compaction خودکار از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پیشفرض کلید 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 را با مدل حلشده اجرا میکند.
ماتریس OpenClaw تعبیهشده GPT-5.6:
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را عبور میدهد، فایلهای احراز هویت Codex CLI را در صورت وجود کپی میکند،@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 را در یک شارد جداگانه نگه میدارد.
دستورالعملهای زنده پیشنهادی
فهرستهای مجاز محدود و صریح سریعتر و کمنوسانتر هستند:
-
یک مدل، مستقیم (بدون 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 Cloud:
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
-
آزمایش دود مستقیم Z.AI Coding Plan GLM-5.2:
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 خصوصی QA — نیازمند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/...از API Gemini (کلید API) استفاده میکند.google-antigravity/...از پل OAuth Antigravity (نقطه پایانی عامل به سبک Cloud Code Assist) استفاده میکند.google-gemini-cli/...از Gemini CLI محلی روی دستگاه استفاده میکند (احراز هویت جداگانه و ویژگیهای خاص ابزار).- API Gemini در برابر Gemini CLI:
- 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-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 |
API Gemini |
google/gemini-3.5-flash |
API Gemini |
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از پیمایش مدرن پیشفرض مستثنا هستند (آنها رفتار بکاند 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 - دامنه:
- مسیرهای داخلی تصویر و ویدئوی 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های ثبتشدهٔ ارائهدهندهٔ تولید تصویر را فهرست میکند
- پیش از کاوش، از متغیرهای محیطی ازپیش صادرشدهٔ ارائهدهنده استفاده میکند
- بهطور پیشفرض کلیدهای 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,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 \ --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با ورودی صرفاً پرامپتeditهنگامی که ارائهدهندهcapabilities.edit.enabledرا اعلام میکند
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"OPENCLAW_LIVE_VIDEO_GENERATION_SKIP_PROVIDERS=""برای گنجاندن همهٔ ارائهدهندگان در پیمایش پیشفرض، از جمله FALOPENCLAW_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
مرتبط
- آزمایش - مجموعههای واحد، یکپارچهسازی، QA و Docker