إنتقل إلى المحتوى الرئيسي

المهام طويلة المدى والوكلاء الفرعيون

تم تصميم Anda Bot للتعامل مع الأهداف المعقدة التي تتطلب الاستمرارية، وليس مجرد تقديم إجابة واحدة. يحافظ العمل طويل المدى على الهدف الأصلي، ويتحقق من التقدم المحرز، ويكثف السياق عند الحاجة، ويستمر في العمل على المهمة كما هو مطلوب.

استخدام /goal​

يقوم الأمر /goal بتمييز الطلب كهدف طويل المدى:

/goal إنهاء التحضير لهذا الإصدار: تشغيل الاختبارات، والتحقق من سجل التغييرات، والتحقق من وثائق سكريبت التثبيت، وتلخيص المخاطر.

عندما يكون الوكيل الرئيسي خاملاً، يقوم مدقق الأهداف (goal checker) بتقييم ما إذا كانت النتيجة الحالية كاملة. إذا كان هناك حاجة لمزيد من العمل، فإنه ينشئ متابعة للوكيل الرئيسي. وإذا كان العمل لا يمكن أن يستمر إلا بمدخلاتك، مثل قرار أو بيانات اعتماد أو موافقة، يتوقف الهدف مؤقتاً ويوضح ما يحتاج إليه؛ وتستأنفه رسالتك التالية. وإذا أصبح سياق المحادثة طويلاً جداً، يقوم Anda بتكثيف الحالة الحالية وفتح محادثة مرتبطة لمواصلة الجلسة نفسها.

استخدام /loop​

يقوم الأمر /loop بتشغيل سؤال أو أمر شرطة مائلة بشكل متكرر. يمكنك وصف الفاصل الزمني في الطلب بأي لغة طبيعية، مثل every 5 minutes (كل 5 دقائق) أو 5m أو وحدات زمنية محلية. يفسر النموذج هذا الفاصل الزمني ويمكنه إنشاء مهمة مجدولة (cron) للوكيل في الخلفية إذا لزم الأمر:

/loop كل 5 دقائق /side تحقق من طابور النشر ولخص العقبات.

إذا لم تحدد فاصلاً زمنياً، يترك Anda للنموذج تحديد وتيرته الخاصة في الحلقة ومتابعة العمل عندما يكون هناك حاجة لمزيد من المهام:

/loop استمر في التحقق من الترحيل حتى يتم إثبات اكتمال كل خطوة تحقق بنجاح.

المهام المجدولة​

يدعم Cron تعبيرات cron وفواصل every والمهام التي تُنفّذ مرة واحدة باستخدام at أو once. يفحص المجدول المهام كل خمس ثوانٍ ويشغّل ثماني مهام كحد أقصى في الوقت نفسه. تنتظر مهام الوكيل اكتمال العمل المرسل، بما فيه الأدوات التي تعمل في الخلفية، وتنتظر مهام shell انتهاء العملية. يبدأ حساب فاصل every من وقت الاكتمال، ولا تُعاد مرات التشغيل الدورية الفائتة واحدةً تلو الأخرى. يُقرّب وقت المهمة المنفردة إلى الثانية التالية حتى لا تبدأ قبل الموعد المطلوب. تستخدم تعبيرات cron الحقول الخمسة القياسية، حيث يمثل 0 أو 7 يوم الأحد؛ أما الصيغ ذات الستة والسبعة حقول فتضيف الثواني والسنة وتعدّ أيام الأسبوع بدءًا من 1 = الأحد، لذا استخدم فيها أسماء الأيام مثل MON-FRI.

يحافظ تعديل مهمة متوقفة مؤقتًا على توقفها؛ استخدم manage_cron_job مع resume لاستئنافها. إعادة إرسال الجدول الحالي مع تعديلات أخرى تُبقي موعد التشغيل التالي كما هو. تظهر المهمة المنفردة التي نُفذت بالفعل على أنها completed وليست متوقفة مؤقتًا، ولا يمكن استئنافها؛ امنحها جدولًا جديدًا لتشغيلها مرة أخرى. يؤدي تعيين origin=true في update_cron_job إلى نقل مرات التشغيل المستقبلية إلى المستدعي والمحادثة الحاليين. يحتفظ التنفيذ الذي بدأ بالفعل بمسار الرد الأصلي. تعرض قوائم المهام وسجل التشغيل معاينات نصية محدودة فقط؛ استخدم manage_cron_job مع get لعرض المهمة كاملة وآخر نتيجة لها. يحتفظ حذف المهمة بسجلها ولا يلغي تنفيذًا بدأ بالفعل.

تقتصر أدوات cron على المستخدمين الموثوقين. تتحقق المهام المنشأة من CLI الخاص بالمالك من دليل العمل المسجل وتحفظ الإذن باستخدامه، ويظل الإذن صالحًا بعد إعادة التشغيل أو انتهاء التسجيل المؤقت في CLI. للمهام القديمة التي لا تملك إذنًا محفوظًا، أعد توصيل CLI في الدليل المطلوب وحدّث المهمة مرة واحدة باستخدام origin=true. لا تكفي بيانات الطلب الوصفية وحدها للسماح بدليل جديد.

استخدام /side​

تضع الأوامر /side أو /btw الطلب في مهمة جانبية مستقلة. هذا مفيد جداً من أجل:

  • التحقيق في خطر معين.
  • طلب مراجعة النتيجة الحالية من وجهة نظر أو دور آخر.
  • جمع معلومات السياق دون مقاطعة المحادثة الرئيسية.
/side تحقق مما إذا كان تحديث التبعية هذا يؤثر على مستخدمي macOS arm64.

استخدام /skill​

توجد مهارات (Skills) بيئة التشغيل الشخصية في ~/.anda/skills ، بينما يتم تحميل المهارات المدمجة الموزعة مع الإصدارات الرسمية من ~/.anda/bundled-skills. عندما تريد تشغيل سير عمل معين لمعالجة الطلب، استخدم:

/skill git-assistant قم بصياغة رسالة commit متوافقة مع Conventional Commit من التغييرات الحالية (diff).

ماذا يفعل الوكلاء الفرعيون​

يمكن للوكلاء الفرعيين تولي أدوار متخصصة مثل البحث والتقصي، والتنفيذ، والمراجعة، والإشراف. تحتفظ الجلسة الرئيسية بالهدف العام والقرار النهائي، بينما يتعامل الوكلاء الفرعيون مع العمل المركز.

هذا الهيكل مناسب جداً لـ:

  • أعمال البحث التي تتطلب قراءة ملفات متعددة أو مراجع وثائقية.
  • مهام البرمجة حيث يجب فصل التنفيذ والمراجعة بشكل واضح.
  • الأهداف التي تتطلب تحققات متكررة مما إذا كان العمل قد اكتمل بالفعل.
  • الأعمال التي تتطلب استخدام أدوات خارجية دون فقدان مسار المحادثة الرئيسية.

الأدوات ومساحة العمل المحلية​

تتضمن أدوات Anda الأساسية الذاكرة، والـ shell، وقراءة/كتابة الملفات، والمهارات، والمهام المجدولة (cron)، والوكلاء الفرعيين. تعمل أدوات الملفات والـ shell بشكل افتراضي في ~/.anda/workspace.

عندما تتضمن المهمة المستودع الحالي أو أدوات خارجية، حدد بوضوح الهدف ومعايير القبول وحدود المهمة.

/goal إصلاح بناء الوثائق في المستودع الحالي. لا تقم بتحرير كود Rust. الاكتمال يعني نجاح تشغيل أمر pnpm --dir docsite build.

متى يجب تجنب استخدام /goal أو /loop​

الأسئلة والأجوبة البسيطة، والتفسيرات لمرة واحدة، والبحث السريع عن الأوامر لا تتطلب استخدام /goal أو /loop. بالنسبة لهذه الحالات، أرسل رسالة عادية. احفظ /goal للأعمال التي تتطلب تدقيقاً للاكتمال، و /loop للمتابعات المتكررة أو المهام ذاتية التوجيه.