الأعمال الجارية والحوادث
الأعمال الجارية والحوادث
Section titled “الأعمال الجارية والحوادث”تشغّل كاظمه أنواعًا كثيرة من الأعمال التي تمتد إلى ما بعد رسالة واحدة: أدوار المحادثة، ومهام السرب، والمهام المجدولة، ومهام المستندات، وجلسات البحث، وعمليات الزحف وخطوط البحث، ومنشورات X، ومهام الذاكرة، وجولات الصيانة. ويراقبها مشرف الأعمال كلها في مكان واحد. وحين يتوقف عمل عن التقدم أو يعلق أو يفشل، تفتح كاظمه حادثة وتخبرك بها في المحادثة التي بدأ منها العمل، مع أزرار للتصرف فيها.
ما الذي يُعدّ عالقًا
Section titled “ما الذي يُعدّ عالقًا”يُحكم على كل نوع بتقدّمه، لا بمجرد أن عمليته ما زالت حية:
| الحكم | معناه |
|---|---|
| متوقف عن التقدم | مالك العمل حيّ، لكن لم يتغير شيء ذو معنى خلال ميزانية النوع |
| عالق | مالكه ذهب: لا مهمة تشغّله، أو انقضت مهلة حجزه، أو ماتت عمليته |
| فشل | يقول مخزن النوع نفسه إنه انتهى بالفشل |
| بطيء | ما زال يتقدم، لكنه تجاوز مدته المتوقعة (يُعرض ولا تُرسل عنه رسالة أبدًا) |
الميزانيات: دور المحادثة 10 دقائق بلا خطوة، ومهمة السرب أو مهمة المستندات 10 دقائق، وجلسات البحث وعمليات الزحف 3 دقائق (ميزانية مراقب البحث). والعمل الذي ينتظرك، مثل بطاقة موافقة أو منشور محتجز للمراجعة، لا يُعدّ متوقفًا أبدًا. ولا يلغي الحكم أي شيء ولا يُفشله من تلقاء نفسه.
أين تُبلَّغ
Section titled “أين تُبلَّغ”- في المحادثة التي بدأ منها العمل، ببطاقة فيها زر لكل إجراء، على Telegram وDiscord وSlack. والعمل الذي لا محادثة له (مهمة ذاكرة في الخلفية، جولة صيانة) يذهب إلى قنوات التشغيل لديك.
- في لوحة التحكم، في بطاقة “الأعمال الجارية”، بالأزرار نفسها، وفي جرس الإشعارات الذي يربط بالحادثة.
- في أي محادثة، يعرض
/runsما يحتاج انتباهك وما يجري؛ راجع/runs.
تصلك رسالة واحدة لكل عمل وكل حالة، وملاحظة واحدة حين يعود عمل متوقف إلى
التقدم. ولبعض الحالات رسالتها الخاصة أصلًا: إخفاقات المهام المجدولة (صندوق
تنبيهاتها الصادر)، وتوقف البحث والزحف ونتائجهما (مراقب البحث)، وإخفاقات منشورات
X (إشعارات النشر)، والرسائل الميتة في الذاكرة. تسجّل كاظمه تلك الحوادث، بأزرارها
في لوحة التحكم وفي /runs، دون رسالة ثانية.
ما تفعله الأزرار
Section titled “ما تفعله الأزرار”| الزر | ما يفعله |
|---|---|
| إلغاء | إلغاء النوع نفسه: إلغاء صفحة السرب، أو صفحة المهام المجدولة، أو صفحة المستندات، أو زر الإيقاف في محادثة الويب |
| إعادة المحاولة | يشغّل العمل من جديد عبر زر إعادة المحاولة في صفحته |
| إعادة المحاولة (تحقّقت من آثاره) | إعادة المحاولة الوحيدة المتاحة حين تكون آثار العمل خارج كاظمه غير معروفة (ربما أرسل أو كتب شيئًا). تقرّ بأنك تحقّقت أولًا |
| إغلاق الدور | ينهي دور محادثة بقي مفتوحًا دون أن يشغّله شيء، لتستمر المحادثة |
| تجاهل | يترك العمل كما هو. ولا يُبلَّغ عن الفشل نفسه مرة أخرى |
| اطلب من كاظمه التشخيص | تنظر كاظمه في العمل بأدوات للقراءة فقط وتجيب في بضع جمل: ما الذي حدث، والسبب المرجّح، وأسلم خطوة تالية. ولا تفعل شيئًا غير ذلك |
يعمل الزر عبر الدالة نفسها التي تستخدمها صفحة النوع، بالفحوص نفسها. والقرار الأول هو النافذ في كل مكان: من يضغط بعده، في محادثة أخرى أو في لوحة التحكم، يُبلَّغ بما تقرّر ومن قرّره وأين. والضغط على زر عمل تغيّر منذ ذلك الحين لا يفعل شيئًا ويقول ذلك. والتصرف للمسؤول فقط.
إعادة المحاولة والإلغاء وإغلاق الدور والتجاهل تحسم الحادثة: على Telegram وDiscord تختفي أزرار البطاقة بعد الضغط على أحدها (ويُبقيها Slack، ومن يضغط بعدها يُبلَّغ بما تقرّر). أما “اطلب من كاظمه التشخيص” فلا يحسم شيئًا: تبقى الأزرار على البطاقة، ويصل التشخيص تحتها، فتقرؤه ثم تعيد المحاولة أو تتجاهل من البطاقة نفسها.
في /runs، العمل الذي سبق أن قرّرت بشأنه (أعدت محاولته أو تجاهلته) لم يعد
يُعدّ محتاجًا لانتباهك؛ ويعرضه /runs all ضمن ما انتهى خلال آخر يوم، على أنه
تم التعامل معه.
جرّبها
Section titled “جرّبها”لترى بطاقة دون انتظار فشل حقيقي، اطلب من كاظمه في Telegram أو Discord أو Slack أن تشغّل مهمة سرب بحدّ زمني أقصر من أن تكتمل فيه:
Use the swarm to research the history of kazma.ai in depth, with a 5-second timeout.
تنتهي مهلة المهمة (تأخذ dispatch_swarm الحدّ الذي تطلبه، من 5 ثوانٍ إلى 30
دقيقة؛ و5 دقائق حين لا تذكر حدًّا)، وفي غضون 30 ثانية تقريبًا تصل إلى المحادثة
نفسها بطاقة فيها: إعادة المحاولة، والتجاهل، واطلب من كاظمه التشخيص. والمهمة
المُعادة تأخذ الحدّ نفسه، فتفشل مجددًا وترسل بطاقة ثانية؛ تجاهلها حين تنتهي.
الخطوات الأولى التلقائية
Section titled “الخطوات الأولى التلقائية”في بطاقة “الأعمال الجارية” في لوحة التحكم، تحت الخطوات الأولى التلقائية، يمكنك أن تسمح لكاظمه باتخاذ خطوة واحدة قبل أن تسألك، لكل نوع من المشكلات:
- إعادة محاولة مهمة سرب فاشلة لم تغيّر شيئًا خارج كاظمه؛
- إعادة محاولة مهمة مستندات استنفدت محاولاتها؛
- إعادة محاولة مهمة ذاكرة استنفدت محاولاتها؛
- إغلاق دور محادثة بقي مفتوحًا دون أن يشغّله شيء.
كلٌّ منها معطّل حتى تفعّله. وتتخذ كاظمه خطوة واحدة كهذه على الأكثر لكل عمل في
اليوم (إعادة المحاولة التي تفشل مجددًا لا تُعاد من تلقاء نفسها)، ولا تتخذها
أبدًا على عمل آثاره غير معروفة، ثم تخبرك بما فعلت. والإعداد هو runs.runbooks.
إذا تعطّل المشرف نفسه
Section titled “إذا تعطّل المشرف نفسه”يفحص المشرف كل 30 ثانية. وإن عجز عن الفحص خمس دقائق (لأن قاعدة بياناته غائبة مثلًا)، تصلك رسالة واحدة “Run supervision is not working”، وأخرى حين يعود إلى العمل. والنوع الذي لا يمكن قراءة مخزنه يُعرض على أنه غير مقروء، لا على أنه “لا شيء يجري” أبدًا. وإعادة تشغيل كاظمه في منتصف إرسال رسالة لا ترسلها مرتين أبدًا: تسجّل الحادثة أن الرسالة ربما لم تصل. وإعادة التشغيل في منتصف إجراء لا تكرّره أبدًا: تسجّل الحادثة أن الإجراء انقطع.
أين يوجد
Section titled “أين يوجد”نموذج القراءة والأحكام والحوادث والقرارات في kazma_core/runs/ (contract.py،
وkinds.py، وregistry.py، وsupervisor.py، وincidents.py، وdecide.py،
وrunbooks.py، وdiagnose.py). ويقرأ محوّل كل نوع مخزنه الخاص ولا يكتب فيه
أبدًا. والحوادث في run_incidents.db في مجلد البيانات. والخطة، بمراحلها
وبواباتها، هي docs/plans/RUN_SUPERVISION_PLAN.md.

