CLI commands
الوكيل
openclaw agent
شغّل دورة واحدة للوكيل عبر Gateway. يعود إلى الوكيل المضمّن إذا فشل طلب 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المهلة--json: إخراج JSON
أمثلة
openclaw agent --to +15555550123 --message "status update" --deliveropenclaw agent --agent ops --message "Summarize logs"openclaw agent --agent ops --message-file ./task.mdopenclaw agent --agent ops --model openai/gpt-5.4 --message "Summarize logs"openclaw agent --session-key agent:ops:incident-42 --message "Summarize status"openclaw agent --agent ops --session-key incident-42 --message "Summarize status"openclaw agent --session-id 1234 --message "Summarize inbox" --thinking mediumopenclaw agent --to +15555550123 --message "Trace logs" --verbose on --jsonopenclaw agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"openclaw agent --agent ops --message "Run locally" --localملاحظات
- مرّر واحدًا فقط من
--messageأو--message-file. يزيل--message-fileعلامة BOM البادئة بترميز UTF-8 ويحافظ على المحتوى متعدد الأسطر؛ ويرفض الملفات غير الصالحة بترميز UTF-8. - لا يمكن تشغيل أوامر الشرطة المائلة (مثل
/compact) عبر--message. يرفضها CLI ويوجّهك بدلًا من ذلك إلى الأمر المخصص (openclaw sessions compact <key>لإجراء Compaction). - عمليات
--localوالعودة إلى التنفيذ المضمّن أحادية التشغيل: تُنهى موارد الاسترجاع الحلقي لـ MCP المضمّنة وجلسات Claude الدافئة عبر stdio التي فُتحت للتشغيل بعد الرد، بحيث لا تترك الاستدعاءات البرمجية عمليات فرعية محلية قيد التشغيل. أما عمليات التشغيل المدعومة بـ Gateway فتُبقي موارد الاسترجاع الحلقي لـ MCP التي يملكها Gateway ضمن عملية 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 والعودة إلى التنفيذ المضمّن إلى مخرج الخطأ القياسي كي تتمكن البرامج النصية من تحليل المخرج القياسي مباشرةً. - يتضمن JSON الخاص بالعودة إلى التنفيذ المضمّن
meta.transport: "embedded"وmeta.fallbackFrom: "gateway"كي تتمكن البرامج النصية من اكتشاف تشغيل العودة. - إذا قبل Gateway تشغيلًا لكن انتهت مهلة انتظار CLI للرد النهائي، تستخدم العودة إلى التنفيذ المضمّن معرّف جلسة/تشغيل جديدًا بالصيغة
gateway-fallback-*، وتبلغ عنmeta.fallbackReason: "gateway_timeout"إلى جانب حقول جلسة العودة، بدلًا من التسابق مع نص الجلسة الذي يملكه Gateway أو استبدال الجلسة الأصلية بصمت. - تقاطع
SIGTERM/SIGINTطلبًا مدعومًا بـ Gateway قيد الانتظار؛ وإذا كان Gateway قد قبل التشغيل بالفعل، يرسل CLI أيضًاchat.abortلمعرّف ذلك التشغيل قبل الخروج. تتلقى عمليات--localوالعودة إلى التنفيذ المضمّن الإشارة نفسها، لكنها لا ترسلchat.abort. إذا كان مفتاح إزالة تكرار التشغيل الداخلي يحتوي بالفعل على تشغيل نشط لهذه الجلسة، تبلغ الاستجابة عن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": "Report ready", "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?