تفاصيل العمل

JARVIS

## الفكرة

مساعد واحد، ثلاثة أجهزة، وتكلفة صفرية. أردت ذكاءً اصطناعيًا خاصًا يعيش داخل تطبيق "تيليجرام" (Telegram)، يدير حاسوبي وهاتفي، يتحدث بلهجتي، ولا يتطلب أي رسوم شهرية. كان هذا القيد مقصودًا: **الاعتماد حصريًا على المستويات المجانية (Free Tiers)**؛ فوجود القيود يدفع نحو هندسة برمجية حقيقية، بينما يؤدي توفر المال إلى إخفاء المشكلات التقنية.

## ما تم بناؤه

- بوت على "تيليجرام" يعمل على مدار الساعة طوال أيام الأسبوع على خادم افتراضي خاص (VPS) مجاني (باستخدام Node.js و systemd).

- نظام توجيه ذكي متعدد النماذج: أكثر من 20 نموذج ذكاء اصطناعي خلف واجهة واحدة، مع آليات بديلة (fallbacks) تراعي حدود الاستخدام (quotas).

- تحكم عن بُعد في الحاسوب (وكيل "الأيدي" على جهاز الكمبيوتر)، مع نظام تنبيه واضح وصريح عند حدوث أي فشل.

- تحكم في نظام "أندرويد" عبر ملفات إعدادات يتم إنشاؤها تلقائيًا لبرنامج MacroDroid (اعتماد نهج "الإعدادات ككود" بدلاً من بناء الأوامر يدويًا).

- "عيون الهاتف": قراءة الإشعارات مع تصفية حسب الأهمية؛ حيث يظل النظام صامتًا افتراضيًا، ولا ينبه المستخدم إلا في حالات المكالمات، الرسائل، مستوى البطارية، أو التنبيهات الأمنية، بينما تُحفظ بقية الإشعارات ليتم الاطلاع عليها عند الطلب.

- تنبيهات استباقية تدعم الرد المباشر: يتحول أي تنبيه إلى سلسلة محادثات يمكن الرد عليها مباشرة عبر السحب (swipe-reply).

- ذاكرة دائمة (تتضمن ملفًا شخصيًا، حقائق مكتسبة، وملاحظات)، مهام مجدولة، إمكانية إرسال المستندات والصور، واجهة برمجة تطبيقات (HTTP API) محمية بنظام الرموز (tokens)، بالإضافة إلى تطبيق واجهة مستخدم مبني بإطار عمل Flutter.

## الصعوبات ← الحلول (جوهر العمل الفعلي)

**1. تعارض "تيليجرام" (Telegram 409 Conflict):** وجود نظامين لجلب البيانات (pollers) لنفس البوت يؤدي إلى تعطل كليهما.

← اعتماد مبدأ "المُجلب الوحيد" (Single-poller): تتولى خدمة واحدة (systemd service) عملية جلب البيانات، مع تسجيل حالة الملكية في سجل سحابي؛ مما يمنع أي عملية أخرى من تولي المهمة بشكل مزدوج.

**2. استنفاد حصص الاستخدام (Quotas) في النماذج المجانية في أسوأ الأوقات.**

← استخدام موجه (router) ذكي يمتلك قائمة بدائل مرتبة لأكثر من 20 نموذجًا؛ بحيث لا يتم إرسال مهام تتطلب استدعاء أدوات (tool-calls) إلى نماذج لا تدعم هذه الميزة. أصبح استنفاد الحصة مجرد حدث يتم التعامل معه عبر إعادة التوجيه، بدلاً من التسبب في تعطل النظام.

**3. مؤشر إعادة التوجيه المُضلل.** كان طلب "كل شيء منذ الطابع الزمني X" من المُرحِّل

يُعيد لا شيء - أو يُعيد ذاكرة التخزين المؤقت بأكملها - حسب الرغبة. وقد نتج عن ذلك عمليات إعادة تشغيل خاطئة و

تكرارات غامضة.

← تم إلغاء المؤشرات؛ مخزن معرفات المشاهدة الدائم يبقى بعد إعادة التشغيل، بالإضافة إلى نافذة لإزالة التكرارات

يتم تهيئة الحالة قبل النشر حتى لا تتم إعادة تشغيل أي شيء عند بدء التشغيل.

الدرس المستفاد: لا تعتمد على دلالات الحافة غير الموثقة لخدمة مجانية.

**4. حلقة الإشعارات ذاتية التغذية.** كان قارئ الهاتف يلتقط إشعاراته "المُفعَّلة"

ويُضخِّم نفسه في كل دورة.

← ثلاث طبقات: حماية نصية صارمة لرسائل الحلقة، وفلتر للأهمية، و

نموذج "الخادم الصامت" - التخزين المؤقت بصمت، وإرسال ما هو مهم فقط، وقراءة السجل عند الطلب.

**5. مُنشئ ملفات PDF عشوائي.** كان المُحرك القديم يُفسد سطرًا عربيًا عشوائيًا في كل عملية عرض

نفس المُدخلات، ثلاث مُخرجات مُختلفة (مُثبتة بصريًا).

← تم تجاوزه: يُنشئ متصفح Chrome الحديث الملفات المُشوهة، ثم يتم تصديرها كصور/ملفات PDF.

الدرس: تحقق من المُخرجات المُنشأة بصريًا؛ لا يُمكن الوثوق بالمُحركات القديمة في

تنسيق النصوص المُعقدة.

**6. مسار نشر مُعادي.** نظام Windows→SSH يتجاهل علامات الاقتباس والأقواس بصمت، و

نهايات أسطر CRLF تُفسد البرامج النصية.

← انقل البايتات، لا الأحرف: يتم شحن البرامج النصية والرسائل كملفات، ويتم توحيد تنسيق LF قبل

التحميل، ولا يتم تضمينها أبدًا في الأوامر.

**7. مُشكلة الثقة.** إجراءات الهاتف التي تتطلب شاشة مفتوحة، أو جهاز كمبيوتر محمول في وضع السكون،

يمكن تزييفها بصمت على أنها "مكتملة".

← سياسة الفشل الصادق: أبلغ عن السبب بالضبط، ولا تُختلق النجاح أبدًا. المُساعد الذي

يكذب مرة واحدة يخسر كل شيء.

## ما يثبته هذا المشروع

- Node.js للإنتاج: خدمات طويلة الأمد، systemd، بدائل بدون توقف

- تنسيق الذكاء الاصطناعي متعدد الموفرين مع مراعاة قيود التكلفة

- تكامل الأجهزة بشكل كامل (جسر Android، وكيل سطح المكتب، مرحلات الإشعارات)

- معايير أمنية صارمة: البيانات السرية في بيئة التشغيل فقط، HTTP محمي برمز مميز، سجلات منقحة

- المهارة الأندر: تحديد ما يجب بناؤه بناءً على الاستخدام الفعلي، والتطوير المستمر يوميًا

التقنيات المستخدمة: Node.js · Gemini + 20 نموذجًا احتياطيًا · واجهة برمجة تطبيقات Telegram Bot · Flutter · MacroDroid

config-as-code · مرحلات على نمط ntfy · systemd على خادم افتراضي خاص مجاني.

قمت ببناء "جارفيس": مساعد ذكاء اصطناعي خاص يعمل على مدار الساعة طوال أيام الأسبوع على خادم افتراضي خاص مجاني، مع التزام صارم بعدم استخدام أي خدمات مدفوعة.

يدير جارفيس حاسوبي المحمول وهاتفي عن بُعد، ويقرأ إشعارات الهاتف المُفلترة،

ويُوجّه الطلبات عبر أكثر من 20 نموذجًا من نماذج الذكاء الاصطناعي مع تجاوز تلقائي للحصص في حالة الفشل،

ويُبلغ عن حالات الفشل بصدق بدلًا من تزييف النجاح. يستخدم جارفيس Node.js وsystemd وواجهة برمجة تطبيقات Telegram،

وعميل Flutter، وجسر Android عبر إعدادات مُولّدة — وهو قيد الاستخدام اليومي منذ عام 2026.

لان المهارات المتبعه كثيره سأكتبها هنا

Node.js

JavaScript

Telegram Bot

Telegram API

Chatbot

Multi-Model Routing

AI Integration

Quota Failover

API Integration

Webhooks

Automation

Android Automation

MacroDroid

Notification Filtering

Linux

System Administration

systemd

VPS Administration

Free-Tier Optimization

Token Authentication

Log Redaction

Flutter

Mobile Client

Task Scheduling

Persistent Memory

Document Generation

Image Generation

Text-to-Speech Calls

Bilingual Chat (AR/EN)

Sudanese Arabic

Honest Failure Reporting

Self-Hosted

Node.js Runtime

Cloud Runtime Sync

Config-as-Code

Push Relay Polling

Seen-ID Deduplication

Content Dedup

Importance Filter

Threaded Replies

Remote Device Control

System Monitoring

Quota Tracking

Fallback Brain Routing

Runtime Model Router

Zero-Paid-Infrastructure

24/7 Operation

---

ملفات مرفقة

بطاقة العمل