الأتمتة
الأتمتة مفيدة عندما يكرر إنسان المهمة الرقمية نفسها يومياً. Anybot: Playwright وجدولة واستعادة وسجلات.
Anybot من هذه الفئة: Playwright وجدولة واستعادة وسجلات — حتى يكون تدفق العمل قابلاً للملاحظة، لا سكربتاً هشاً على جهاز أحدهم.
نمط فشل معظم الأتمتة هو سكربت يعمل مرة ثم ينكسر عندما يتغيّر تصميم صفحة، دون أن يلاحظ أحد حتى يسأل أحدهم لماذا لم يصل تقرير. تدفقات عمل Anybot هي سلاسل Playwright — تنقّل وملء ونقر واستخراج — تعمل على متصفح حقيقي بلا واجهة، فتعمل مواقع كثيفة الجافاسكريبت التي لا يقدر عليها كاشط HTTP بسيط، ويسجّل عارض السجلات الخطوة التي عملت وما فعلته، فيمكن تتبّع أي فشل إلى الخطوة الدقيقة بدل إعادة تشغيل عشوائية.
الجدولة واستعادة الأخطاء مدمجتان لا مُضافتان لاحقاً: يعمل تدفق العمل حسب مؤقت دون أن يشغّله أحد، ولا تتطلب خطوة فاشلة واحدة إعادة تشغيل التسلسل كاملاً. تُخبر إشعارات الـwebhook أنظمة أخرى عند إنجاز مهمة أو فشلها، فتندمج الأتمتة مع ما يستخدمه الفريق أصلاً بدل أن تصبح جزيرة منعزلة.
ليس كل شيء يجب أتمتته. إن كانت مهمة تتغيّر شكلاً في كل مرة أو تحتاج حكماً حقيقياً، سأقول ذلك بدل بناء شيء هش يبدو مؤتمتاً لكنه يحتاج مراقبة مستمرة.
مشاكل الأعمال
- إنسان يسجّل الدخول إلى نفس البوابة يومياً لتقديم نفس النموذج أو فحص نفس السعر، لأن لا واجهة برمجية موجودة لذلك المصدر.
- سكربت لمرة واحدة عمل مرة والآن يفشل بصمت كلما تغيّر تصميم صفحة، دون أن يلاحظ أحد حتى لا يصل تقرير.
- أتمتة تعمل بلا سجلات، فيعني العطل بدء التحقيق من الصفر.
- سكربت أتمتة متصفح يعمل على جهاز شخصي لأحدهم، فيتوقف بمجرد إغلاق الجهاز أو دخوله سكون النوم أو ذهاب الشخص في إجازة.
- لا تنبيه عندما يتوقف تدفق عمل عن العمل بصمت، فتمر أسابيع قبل أن يلاحظ أحد توقف تقرير عن التحديث.
- تدفق عمل يفترض أن الصفحة تُحمَّل فوراً دائماً، فينكسر أول مرة يكون فيها موقع مستهدف بطيئاً، دون استراتيجية إعادة محاولة أو مهلة لامتصاص ذلك.
- لا حد معدل على طلبات الأتمتة نفسها، فقد تبدو كهجوم على الموقع المستهدف ويُحظر الحساب أو عنوان IP.
منهج التطوير
- تعريف تدفق العمل كسلسلة خطوات متصفح — تنقّل وملء ونقر واستخراج — تعمل على متصفح حقيقي بلا واجهة باستخدام Playwright.
- إضافة جدولة واستعادة أخطاء وإشعارات webhook، حتى يعمل تدفق العمل دون مراقبة وتعرف الأنظمة الأخرى متى ينتهي أو يفشل.
- تسليم عارض سجلات يسجّل الخطوة التي عملت وما فعلته، حتى يُتتبَّع العطل إلى الخطوة الدقيقة بدل إعادة تشغيل عشوائية.
- تشغيل تدفقات العمل على خادم لا جهاز محمول، حتى تعمل حسب الجدول بصرف النظر عمن متصل أو أي جهاز مُشغَّل.
- التنبيه على الصمت لا الفشل فقط — تدفق عمل يجب أن يعمل يومياً ولم يعمل منذ يومين هو نفسه إشارة إلى خلل ما.
- إضافة مهلات وإعادة محاولات صريحة بتأخير متصاعد لكل خطوة تعتمد على الشبكة، حتى تتدهور صفحة بطيئة أو اتصال متقطع بسلاسة بدل تعطيل تدفق العمل.
- كبح معدل طلبات الأتمتة نفسها لتبدو حركة معقولة، لا اندفاعاً يُعلّم حساباً أو يحظر عنوان IP من الموقع المستهدف.
ما تحصل عليه
- مئات المهام اليدوية أُتمتت وأصبحت قابلة للملاحظة بدل أن تعمل بصمت على جهاز أحدهم.
- تشغيل دون تدخل بعد الإعداد — يعمل تدفق العمل حسب الجدول ولا يظهر إلا حين يحتاج شيء فعلاً إلى الانتباه.
- تدفق عمل يستمر بالعمل حين يغيّر موقع مستهدف تفصيلاً صغيراً، لأن الأعطال مرئية وقابلة للتتبع لا صامتة.
- تدفقات عمل تستمر بالعمل سواء كان شخص معيّن متصلاً أم لا، لأنها تعيش على بنية تحتية لا جهاز محمول.
- مشاكل يكشفها تنبيه على تشغيلات مفقودة، لا تُكتشف بعد أسابيع حين يسأل أحدهم أخيراً عن تقرير قديم.
- تدفقات عمل تتحمّل موقعاً مستهدفاً بطيئاً أو متقطعاً بدل أن تتعطل أول مرة تستغرق فيها صفحة وقتاً أطول من المتوقع.
- أتمتة تبقى تحت رادار كشف الروبوتات الأساسي، لأن أنماط الطلبات صُممت لتبدو معقولة لا كهجوم.
مشاريع مختارة
أسئلة شائعة
Is this RPA?
Similar outcome, different shape. I build targeted automation with code, queues and monitoring rather than a heavy RPA suite unless you already have one.