CLI commands
عامل
openclaw agent
یک نوبت عامل را از طریق Gateway اجرا کنید. پرچم صریح --local تنها مسیر اجرای تعبیهشده است.
حداقل یک انتخابگر نشست ارائه کنید: --to، --session-key، --session-id یا --agent.
مرتبط: ابزار ارسال عامل
گزینهها
-m, --message <text>: بدنه پیام--message-file <path>: خواندن بدنه پیام از یک فایل UTF-8-t, --to <dest>: گیرندهای که برای استخراج کلید نشست استفاده میشود--session-key <key>: کلید صریح نشست برای استفاده در مسیریابی--session-id <id>: شناسه صریح نشست--agent <id>: شناسه عامل؛ پیوندهای مسیریابی را نادیده میگیرد--model <id>: جایگزینی مدل برای این اجرا (provider/modelیا شناسه مدل)--thinking <level>: سطح تفکر عامل (off،minimal،low،medium،high، بهعلاوه سطوح سفارشی پشتیبانیشده توسط ارائهدهنده مانندxhigh،adaptiveیاmax)--verbose <on|off>: ماندگار کردن سطح جزئیات برای نشست--channel <channel>: کانال تحویل؛ برای استفاده از کانال اصلی نشست، آن را حذف کنید--reply-to <target>: جایگزینی مقصد تحویل--reply-channel <channel>: جایگزینی کانال تحویل--reply-account <id>: جایگزینی حساب تحویل--local: اجرای مستقیم عامل تعبیهشده (پس از پیشبارگذاری رجیستری Plugin)--deliver: ارسال پاسخ به کانال/مقصد انتخابشده--timeout <seconds>: جایگزینی مهلت نوبت عامل برای این فرمان (پیشفرض 600 یاagents.defaults.timeoutSeconds)؛0مهلت کلی را غیرفعال میکند. مقدار جایگزین 600 ثانیه متعلق به این فرمان CLI است، نه نوبتهای عادی Gateway که پیشفرضشان 48 ساعت است.--json: خروجی JSON
مثالها
openclaw agent --to +15555550123 --message "بهروزرسانی وضعیت" --deliveropenclaw agent --agent ops --message "گزارشهای ثبتشده را خلاصه کن"openclaw agent --agent ops --message-file ./task.mdopenclaw agent --agent ops --model openai/gpt-5.4 --message "گزارشهای ثبتشده را خلاصه کن"openclaw agent --session-key agent:ops:incident-42 --message "وضعیت را خلاصه کن"openclaw agent --agent ops --session-key incident-42 --message "وضعیت را خلاصه کن"openclaw agent --session-id 1234 --message "صندوق ورودی را خلاصه کن" --thinking mediumopenclaw agent --to +15555550123 --message "ردیابی گزارشهای ثبتشده" --verbose on --jsonopenclaw agent --agent ops --message "گزارش را تولید کن" --deliver --reply-channel slack --reply-to "#reports"openclaw agent --agent ops --message "بهصورت محلی اجرا کن" --localنکتهها
- دقیقاً یکی از
--messageیا--message-fileرا ارائه کنید.--message-fileنشان BOM ابتدایی UTF-8 را حذف و محتوای چندخطی را حفظ میکند؛ فایلهایی را که UTF-8 معتبر نیستند رد میکند. فایلهای بزرگتر از 4 MiB پیش از ارسال رد میشوند. - فرمانهای اسلش (برای مثال
/compact) را نمیتوان از طریق--messageاجرا کرد. CLI آنها را رد میکند و در عوض شما را به فرمان اختصاصی هدایت میکند (openclaw sessions compact <key>برای Compaction). - اجراهای
--localیکبارهاند: منابع بازگشتی MCP بستهبندیشده و نشستهای گرم stdio مربوط به Claude که برای اجرا باز شدهاند، پس از پاسخ خاتمه مییابند تا فراخوانیهای اسکریپتی هیچ فرایند فرزند محلی در حال اجرایی باقی نگذارند. اجراهای مبتنی بر Gateway در عوض منابع بازگشتی MCP تحت مالکیت Gateway را در فرایند در حال اجرای Gateway نگه میدارند. - اجرای مستقل تعبیهشده با
--localتا زمانی که بازیابی پس از راهاندازی مجدد در انتظار است، از استفاده مجدد نشست اصلی موجود خودداری میکند. نوبت را از طریق یک Gateway سالم اجرا کنید یا آن را در همانجا با/newیا/resetبازنشانی کنید؛ یک فرایند تعبیهشده مستقل نمیتواند مالک آن بازیابی را بهطور ایمن با اسکنر Gateway هماهنگ کند. - هنگام استفاده همزمان از
--agent،--channelو--to، مسیریابی نشست از گیرنده متعارف کانال وsession.dmScopeپیروی میکند. کانالهایی که هویت گیرنده پایدار و فقط خروجی دارند، از نشستی تحت مالکیت ارائهدهنده استفاده میکنند که از نشست اصلی عامل جداست.--reply-channelو--reply-accountفقط بر تحویل اثر میگذارند. --session-keyیک کلید صریح نشست را انتخاب میکند. کلیدهای دارای پیشوند عامل باید ازagent:<agent-id>:<session-key>استفاده کنند و اگر هر دو ارائه شوند،--agentباید با شناسه عامل کلید مطابقت داشته باشد. کلیدهای ساده و غیرنگهبان، در صورت ارائه--agentبه آن محدود میشوند؛ در غیر این صورت به عامل پیشفرض پیکربندیشده محدود خواهند شد؛ برای مثال--agent ops --session-key incident-42بهagent:ops:incident-42مسیریابی میشود. کلیدهای تحتاللفظیglobalوunknownفقط وقتی هیچ--agentارائه نشده باشد، بدون محدوده باقی میمانند.--jsonخروجی استاندارد را برای پاسخ JSON رزرو میکند؛ اطلاعات عیبیابی Gateway، Plugin و--localبه خطای استاندارد میروند تا اسکریپتها بتوانند خروجی استاندارد را مستقیماً تجزیه کنند.- پس از پایان یافتن تلاشهای مجدد گذرای دستدهی، پایان مهلت Gateway یا بسته شدن اتصال باعث شکست فرمان میشود؛ CLI هرگز نوبت را بیسروصدا بهصورت تعبیهشده دوباره اجرا نمیکند. قطع انتقال مبهم است — ممکن است Gateway نوبت را پذیرفته باشد و همچنان آن را به پایان برساند — بنابراین راهنمای خطای استاندارد توصیه میکند پیش از تلاش مجدد یا اجرای دوباره با
--local، برای جلوگیری از اجرای دوباره نوبت،openclaw gateway statusو رونوشت نشست را بررسی کنید. SIGTERM/SIGINTیک درخواست در حال انتظار مبتنی بر Gateway را متوقف میکنند؛ اگر Gateway از قبل اجرا را پذیرفته باشد، CLI پیش از خروج برای شناسه آن اجراchat.abortرا نیز ارسال میکند. اجراهای--localهمان سیگنال را دریافت میکنند، اماchat.abortرا ارسال نمیکنند. فرایند فرزند راهانداز که با نخستینSIGINTیاSIGTERMهدایتشده خاتمه یابد، بهترتیب با وضعیت 130 یا 143 خارج میشود. اگر کلید داخلی حذف اجرای تکراری از قبل برای این نشست اجرای فعالی داشته باشد، پاسخstatus: "in_flight"را گزارش میکند و CLI غیر JSON بهجای پاسخ خالی، اطلاعات عیبیابی را در خطای استاندارد چاپ میکند. برای پوششدهندههای خارجی cron/systemd، یک راهکار پشتیبان برای پایان اجباری مانندtimeout -k 60 600 openclaw agent ...نگه دارید تا اگر خاموششدن نتواند عملیات را تخلیه کند، ناظر بتواند فرایند را جمعآوری کند.- هنگامی که این فرمان بازتولید
models.jsonرا فعال میکند، اعتبارنامههای ارائهدهنده که با SecretRef مدیریت میشوند، بهصورت نشانگرهای غیرمحرمانه (برای مثال نام متغیرهای محیطی،secretref-env:ENV_VAR_NAMEیاsecretref-managed) ماندگار میشوند و هرگز به متن ساده محرمانه تبدیل نمیشوند. نوشتن نشانگرها از عکس فوری پیکربندی منبع فعال انجام میشود، نه از مقادیر محرمانه حلشده زمان اجرا.
وضعیت تحویل JSON
با --json --deliver، پاسخ JSON در CLI شامل deliveryStatus در سطح بالا است تا اسکریپتها بتوانند ارسالهای تحویلشده، سرکوبشده، جزئی و ناموفق را از هم تشخیص دهند:
{ "payloads": [{ "text": "گزارش آماده است", "mediaUrl": null }], "meta": { "durationMs": 1200 }, "deliveryStatus": { "requested": true, "attempted": true, "status": "sent", "succeeded": true, "resultCount": 1 }}پاسخهای CLI مبتنی بر Gateway همچنین شکل خام نتیجه Gateway را در result.deliveryStatus حفظ میکنند.
deliveryStatus.status یکی از موارد زیر است:
| وضعیت | معنا |
|---|---|
sent |
تحویل کامل شد. |
suppressed |
تحویل عمداً ارسال نشد (برای مثال یک هوک ارسال پیام آن را لغو کرد یا هیچ نتیجه قابلمشاهدهای وجود نداشت). نهایی است و تلاش مجدد ندارد. |
partial_failed |
حداقل یک بارِ داده پیش از شکست بارِ داده بعدی ارسال شد. |
failed |
هیچ ارسال ماندگاری کامل نشد یا بررسی پیش از تحویل شکست خورد. |
فیلدهای رایج:
requested: هنگام وجود شیء، همیشهtrueاست.attempted: پس از اجرای مسیر ارسال ماندگار،trueاست؛ برای شکستهای بررسی پیش از اجرا یا نبود بارِ داده قابلمشاهده،falseاست.succeeded:true،falseیا"partial"؛"partial"باstatus: "partial_failed"همراه است.reason: دلیل با حروف کوچک و قالب snake-case از تحویل ماندگار یا اعتبارسنجی پیش از اجرا. مقادیر شناختهشده شاملcancelled_by_message_sending_hook،no_visible_payload،no_visible_result،channel_resolved_to_internal،unknown_channel،invalid_delivery_targetوno_delivery_targetهستند؛ ارسالهای ماندگار ناموفق ممکن است مرحله ناموفق را نیز گزارش کنند. مقادیر ناشناخته را مبهم در نظر بگیرید، زیرا این مجموعه میتواند گسترش یابد.resultCount: تعداد نتایج ارسال کانال، در صورت موجود بودن.sentBeforeError: اگر در شکست جزئی، حداقل یک بارِ داده پیش از بروز خطا ارسال شده باشد،trueاست.error: برای ارسالهای ناموفق یا دارای شکست جزئی،trueاست.errorMessage: فقط زمانی وجود دارد که پیام خطای زیربنایی تحویل ثبت شده باشد. شکستهای پیش از اجرا دارایerror/reasonهستند، اماerrorMessageندارند.payloadOutcomes: نتایج اختیاری برای هر بارِ داده، همراه باindex،status،reason،resultCount،error،stage،sentBeforeErrorیا فراداده هوک، در صورت موجود بودن.
مرتبط
Was this useful?