تنسيق الوكلاء
الوكلاء الفرعيون
الوكلاء الفرعيون هي عمليات وكيل خلفية يتم إنشاؤها من عملية وكيل موجودة. تعمل في جلستها الخاصة (agent::subagent:) وعند انتهائها، تعلن عن نتيجتها مرة أخرى إلى قناة الدردشة للمطلب.
أمر الشرطة المائلة
استخدم /subagents لفحص أو التحكم في عمليات الوكلاء الفرعيين للـ الجلسة الحالية:
/subagents list/subagents kill <id|#|all>/subagents log <id|#> [limit] [tools]/subagents info <id|#>/subagents send <id|#>/subagents steer <id|#>/subagents spawn [--model ] [--thinking ]
أوامر التحكم في ربط الخيوط: تعمل هذه الأوامر على القنوات التي تدعم ربط الخيوط المستمر. انظر القنوات الداعمة للخيوط أدناه.
/focus <subagent-label|session-key|session-id|session-label>/unfocus/agents/session idle <duration|off>/session max-age <duration|off>
يظهر /subagents info بيانات وصفية عن التشغيل (الحالة، الطوابع الزمنية، معرف الجلسة، مسار النص، التنظيف).
سلوك الإنشاء
يبدأ /subagents spawn وكيلًا فرعيًا في الخلفية كأمر مستخدم، وليس كوسيلة إرسال داخلية، ويرسل تحديث إتمام نهائي واحدًا مرة أخرى إلى دردشة المطلب عند انتهاء التشغيل.
- أمر الإنشاء غير معطل؛ يعيد معرف التشغيل فورًا.
- عند الإتمام، يعلن الوكيل الفرعي عن رسالة ملخص/نتيجة مرة أخرى إلى قناة دردشة المطلب.
- للإنشاءات اليدوية، التسليم مرن:
- يحاول OpenClaw التسليم المباشر
agentأولاً بمفتاح ثبات مستقر. - إذا فشل التسليم المباشر، يتراجع إلى التوجيه عبر قائمة الانتظار.
- إذا كان توجيه قائمة الانتظار غير متاح أيضًا، تتم إعادة محاولة الإعلان بتراجع أسي قصير قبل الاستسلام النهائي.
- يحاول OpenClaw التسليم المباشر
- تسليم الإتمام إلى جلسة المطلب هو سياق داخلي مُنشأ أثناء التشغيل (وليس نصًا من تأليف المستخدم) ويتضمن:
Result(نص ردassistant، أو أحدثtoolResultإذا كان رد المساعد فارغًا)Status(completed successfully/failed/timed out/unknown)- إحصائيات موجزة عن وقت التشغيل/الرموز
- تعليمات تسليم تخبر وكيل المطلب بإعادة الصياغة بصوت المساعد العادي (وليس إعادة توجيه البيانات الوصفية الداخلية الخام)
--modelو--thinkingيتجاوزان الإعدادات الافتراضية لذلك التشغيل المحدد.- استخدم
info/logلفحص التفاصيل والمخرجات بعد الإتمام. /subagents spawnهو وضع التشغيل لمرة واحدة (mode: "run"). للجلسات المستمرة المرتبطة بالخيوط، استخدمsessions_spawnمعthread: trueوmode: "session".- لجلسات تسخير ACP (Codex، Claude Code، Gemini CLI)، استخدم
sessions_spawnمعruntime: "acp"وانظر وكلاء ACP.
الأهداف الأساسية:
- موازنة عمل "البحث / المهام الطويلة / الأدوات البطيئة" دون عرقلة التشغيل الرئيسي.
- الحفاظ على عزل الوكلاء الفرعيين افتراضيًا (فصل الجلسات + التقييد الاختياري).
- الحفاظ على سطح الأداة صعب الاستخدام الخاطئ: الوكلاء الفرعيون لا يحصلون على أدوات الجلسة افتراضيًا.
- دعم عمق التداخل القابل للتكوين لأنماط المنسق.
ملاحظة التكلفة: لكل وكيل فرعي سياقه الخاص واستخدام الرموز. للمهام الثقيلة أو المتكررة، اضبط نموذجًا أرخص للوكلاء الفرعيين واحتفظ بوكيلك الرئيسي على نموذج أعلى جودة. يمكنك تكوين هذا عبر agents.defaults.subagents.model أو التجاوزات لكل وكيل.
الأ داة
استخدم sessions_spawn:
- يبدأ تشغيل وكيل فرعي (
deliver: false، مسار عام:subagent) - ثم يقوم بخطوة إعلان وينشر رد الإعلان إلى قناة دردشة المطلب
- النموذج الافتراضي: يرث من المُنشئ ما لم تقم بتعيين
agents.defaults.subagents.model(أو لكل وكيلagents.list[].subagents.model)؛ النموذج الصريحsessions_spawn.modelلا يزال يفوز. - التفكير الافتراضي: يرث من المُنشئ ما لم تقم بتعيين
agents.defaults.subagents.thinking(أو لكل وكيلagents.list[].subagents.thinking)؛ مستوى التفكير الصريحsessions_spawn.thinkingلا يزال يفوز. - مهلة التشغيل الافتراضية: إذا تم حذف
sessions_spawn.runTimeoutSeconds، يستخدم OpenClawagents.defaults.subagents.runTimeoutSecondsعند تعيينه؛ وإلا يتراجع إلى0(بدون مهلة).
معلمات الأداة:
task(مطلوب)label?(اختياري)agentId?(اختياري؛ الإنشاء تحت معرف وكيل آخر إذا كان مسموحًا)model?(اختياري؛ يتجاوز نموذج الوكيل الفرعي؛ يتم تخطي القيم غير الصالحة ويعمل الوكيل الفرعي على النموذج الافتراضي مع تحذير في نتيجة الأداة)thinking?(اختياري؛ يتجاو ز مستوى التفكير لتشغيل الوكيل الفرعي)runTimeoutSeconds?(الافتراضي هوagents.defaults.subagents.runTimeoutSecondsعند تعيينه، وإلا0؛ عند تعيينه، يتم إجهاض تشغيل الوكيل الفرعي بعد N ثانية)thread?(الافتراضيfalse؛ عندما يكونtrue، يطلب ربط خيط القناة لهذه الجلسة الفرعية)mode?(run|session)- الافتراضي هو
run - إذا كان
thread: trueوتم حذفmode، يصبح الافتراضيsession - يتطلب
mode: "session"أن يكونthread: true
- الافتراضي هو
cleanup?(delete|keep، الافتراضيkeep)sandbox?(inherit|require، الافتراضيinherit؛requireيرفض الإنشاء ما لم يكن وقت تشغيل الهدف الفرعي مقيدًا)- لا يقبل
sessions_spawnمعلمات تسليم القناة (target,channel,to,threadId,replyTo,transport). للتسليم، استخدمmessage/sessions_sendمن التشغيل المُنشأ.