التنسيق
الوكيل الواحد يجيد أمرًا واحدًا. بعض الطلبات أكبر من ذلك: «ابحث في سوق X واكتب وثيقة تموضع»، «أنجز هذه الميزة من أولها إلى آخرها»، «دقق هذه الوحدة وأصلح ما تجده». التنسيق هو طريقة Control Center في هذه الطلبات: يقترح منسّق (غالبًا وكيل CEO) خطة للفريق كله، توافق عليها مرة واحدة، ويحوّلها مُجسِّد حتمي إلى خط أنابيب ينجز العمل.
يقع بين الطريقتين القائمتين لإنجاز العمل:
| عندما تريد… | استخدم |
|---|---|
| تسليم مهمة واحدة إلى وكيل واحد | رسالة في مساحة |
| تدوين عملية تعرفها مسبقًا، يدويًا | قالب خط أنابيب |
| قول الهدف وترك الفريق يضع الخطة | تنسيق |
شكل المقترح
قسم بعنوان “شكل المقترح”حين تعطي المنسّق هدفًا، يعيد OrchestrationProposal منظَّمًا: خطة ذات نوع يستطيع التطبيق التحقق منها وتنفيذها، لا نثرًا حرًا. يضم المقترح:
- الهدف: طلبك عالي المستوى، معادًا صياغته.
- الأدوار: من ينجز العمل. كل دور إما وكيل قائم تختاره، أو تعيين جديد ينشئه التنسيق عند الموافقة.
- التذاكر الفرعية: العمل، مفككًا إلى DAG من التذاكر.
- البحث (اختياري): مرحلة بحث تجري أولًا وتغذّي الباقي.
- النقاش (اختياري): جولة محدودة ينشر فيها كل دور موقفًا منظَّمًا قبل بدء العمل.
- التجميع: الخطوة الأخيرة التي تنتج المُخرَج.
- الميزانية: سقف تكلفة معلن.
أين تراجعه
قسم بعنوان “أين تراجعه”سطحان يعرضان التنسيق نفسه.
تعيش بطاقة المقترح في المحادثة التي أنتجت الخطة. هي رسالة واحدة تُعاد رسمها طوال دورة الحياة — مقترح، قيد التنفيذ، مكتمل — وعليها إجراء «الموافقة على الخطة» وإجراء «إلغاء التنسيق».
Plan Studio هو المحرّر: لوحة DAG، ومفتّش عقدة، ودرج للنسخ والفروق، وشريط موافقة يحمل التقدير. يُفتح لسان محرّر من تلك البطاقة مباشرة. يخلو الشريط الجانبي عمدًا من عنصر «الخطط»؛ و/plans و/plans/:kind/:id رابطان عميقان للمشاركة.
الموافقة للمشغّل وحده. لا أداة MCP لها: يستطيع الوكيل أن يقترح (propose_orchestration)، أو أن يسلّم خطة (submit_plan)، أو أن ينشئ تشغيلًا من كتيب تشغيل (run_playbook)، ولا يوافق إلا إنسان. وتُقيَّد النسخ التي يبدأها الوكيل أيضًا بمهلة دقيقتين، فتندمج إعادة التخطيط في دفعة واحدة بدل أن تغمر موجزك.
ما تستطيع تغييره قبل الموافقة هو ما يعرضه مفتّش العقدة: تغيير عنوان تذكرة فرعية أو إعادة كتابة متنها، وتغيير الدور الذي يملكها، وإعادة توصيل تبعياتها، وتحرير مخطط مخرجاتها، أو حذف العقدة تمامًا. العقد البنيوية (البحث، والنقاش، والتجميع) والعقد التي نُفّذت بالفعل تبقى للقراءة فقط. ومن المحرّر لا يمكن تثبيت دور على وكيل مسمّى بعينه، ولا تحرير الميزانية.
محرّران على خطة واحدة يُحسمان بالتزامن المتفائل، من غير دمج. كل تعديل يحمل base_revision الذي بُني عليه، ويُرفض التعديل المبني على نسخة قديمة برسالة «تقدّمت الخطة»، ولا يطمس تعديل غيره في صمت. والإرجاع ليس حذفًا — يُلحِق المقترح الأقدم كنسخة جديدة، فالخط الزمني للنسخ يزداد ولا ينقص.
تقديرات صادقة، أو لا شيء
قسم بعنوان “تقديرات صادقة، أو لا شيء”يُبنى التقدير في شريط الموافقة من سجل التشغيلات المكتملة الفعلي لكل دور، كنطاق ربيعي (p25–p75). مجاميع التكلفة تجمع العقد التي يمكن تقديرها، والمدة هي المسار الحرج عبر DAG لا حاصل الجمع (الفروع المتوازية تتداخل).
العقدة التي دورها بلا سجل تشغيلات مكتملة تُبلغ sampleSize: 0 ونطاقات null. يُعرض ذلك كما هو — غير معروف — ولا تُختلق قيمة نقطية أبدًا، فتقدير لا تثق به أسوأ من غياب التقدير. إذا كان لبعض العقد سجل ولبعضها لا، يُوسَم المجموع بـ«جزئي». لا يظهر نطاق التأثير إلا إذا أعلنت العقدة إحالات مصدر symbol أو file، والعقدة من دونهما تبقى «غير معروف»، ولا يُستنتج النطاق من النثر.
موافقة واحدة، ثم تنفيذ حتمي
قسم بعنوان “موافقة واحدة، ثم تنفيذ حتمي”الفكرة الجوهرية: الوكيل يخطّط، ودالة حتمية تنفّذ. عند الموافقة يحوّل OrchestrationMaterializer، وهي دالة نقية بلا LLM وبلا I/O، المقترح إلى خط أنابيب حقيقي. مع المقترح نفسه والأدوار المحسومة نفسها ينتج DAG نفسه دائمًا. ولهذا أهميته: خط الأنابيب المُولَّد يرث مجانًا كل ما يفعله المحرّك أصلًا، من تعليق واستئناف عبر إعادة التشغيل، واستعادة التعطل، وتجميعات التكلفة والرموز لكل تشغيل، وواجهة تفاصيل التشغيل.
وتنشئ الموافقة أيضًا الهيكل الذي يحتاجه العمل:
- تعيين أي دور معلَّم بأنه جديد (وتُسجَّل معرّفات الوكلاء المعيَّنين حتى يُستأنف بعد تعطل في أثناء الموافقة من غير تعيين مكرر)
- فريق يجمع الأدوار
- مشروع تُسجَّل فيه التذكرة الأم
- قالب خط الأنابيب وتشغيله اللذان يقودان ذلك كله
دورة الحياة
قسم بعنوان “دورة الحياة”proposed → approved → executing → synthesizing → completed ↘ ↘ failed ↘ ↘ cancelled| الحالة | المعنى |
|---|---|
proposed |
الخطة جاهزة وتنتظر موافقتك الواحدة قبل البدء |
approved |
وافقت عليها؛ والتجسيد جارٍ (التعيين، والفريق، والمشروع، وخط الأنابيب) |
executing |
خط الأنابيب المُولَّد يعمل: التذاكر الفرعية، والنقاش، والعمل |
synthesizing |
اكتملت التذاكر الفرعية، وخطوة التجميع تنتج المُخرَج |
completed |
تم: تُعلَّم التذكرة الأم مكتملة، ويُنشر المُخرَج في المساحة المشتركة |
failed |
فشل التجسيد، أو فشل تشغيل خط الأنابيب المُولَّد |
cancelled |
ألغيته أنت |
رقم نسخة رتيب يتابع المقترح بينما يعدّله المنسّق وهو ما زال proposed، ويسجّل التطبيق النسخة التي وافقت عليها. يرفض propose_orchestration أي نسخة جديدة ما إن تخرج الحالة من proposed.
يُفتح التنسيق دائمًا على تذكرة أم، ويشترك في مساحة نقاش واحدة، فيُنسب الجهد كله إلى بند عمل واحد ويتحدث الفريق في غرفة واحدة.
ماذا يحدث عند الانتهاء
قسم بعنوان “ماذا يحدث عند الانتهاء”يراقب مستمع مُبقًى حيًا خط الأنابيب المُولَّد، ويرد حالته النهائية إلى التنسيق والتذكرة الأم، فيظهر الإتمام والفشل في المواضع التي تراقبها أصلًا. ميزة التنسيق لا تحتاج محرّك تنفيذ خاصًا بها.
تستطيع إلغاء التنسيق في أي وقت، والإلغاء يفكك العمل الجاري.
انظر أيضًا
قسم بعنوان “انظر أيضًا”- خطوط الأنابيب والأتمتة: المحرّك الذي يعمل عليه التنسيق بعد تجسيده
- التذاكر والتفويض: التذكرة الأم التي يُثبَّت عليها التنسيق
- نموذج الوكيل: الأدوار التي يملؤها التنسيق أو يعيّنها
- تشغيل تنسيق
- العمل في Plan Studio