عن المشروع

Fermix هي منصة وكلاء ذكاء اصطناعي شخصية تعمل ذاتيًا ومكتوبة بلغة Elixir/OTP. تعمل كخدمة خلفية (daemon) على جهازك الخاص وتصل إليك عبر تطبيقات الدردشة التي تستخدمها بالفعل. أنت توفر مفتاح مزوّد النموذج الخاص بك—لا توجد سحابة Fermix، وتبقى إعداداتك وسجلك وملفات السجل تحت `~/.fermix`. **الميزات الرئيسية:** - **بيئة تشغيل واحدة:** كل شيء تطبيق Elixir/OTP واحد داخل BEAM VM واحدة—لا جسور HTTP، ولا مجموعات عمّال خارجية، ولا وسطاء رسائل. الوكلاء الدائمون والمحادثات المتزامنة والوكلاء الفرعيون داخل العملية كلها نتاج طبيعي لهذا التصميم. - **يصل إليك في أي مكان:** Telegram وWhatsApp وSlack وDiscord وSignal وواجهة سطر أوامر محلية تنتهي جميعها إلى حلقة الوكيل نفسها. تطبيق iPhone المرافق من الطرف الأول (قناة الجوال) هو أساس، خامل خلف علم إعدادات حتى إصدار التطبيق. - **أحضر نموذجك الخاص:** سبعة مزوّدين—OpenAI وOpenAI Codex وAnthropic وSpaceXAI وOpenRouter وMistral وOllama محلي بدون مفتاح—يُختار أحدهم كمزوّد أساسي مع سلسلة احتياطية تلقائية. يمكن تثبيت الوكلاء الفرعيين والمهام المجدولة على نموذج أرخص خاص بها. - **دائم التشغيل:** تشغّل المهام المجدولة ملخصات ومراقبات وتذكيرات وفحوصات—كل منها معزول ومحدود ومخزّن بشكل دائم ويُسلَّم عبر قنواتك. يستمر العمل بعد إعادة التشغيل. - **مكتفٍ ذاتيًا:** يُوزَّع كملف تنفيذي واحد ذاتي الاستخراج لكل منصة ويثبّت وحدة خدمة نظام التشغيل عند أول تشغيل. **البدء السريع:** ```bash brew install tezra-io/tap/fermix fermix setup ``` يقوم `fermix setup` بتثبيت الخدمة الخلفية وتشغيلها، ثم يطبع رابط الإعداد ويفتح `http://127.0.0.1:4030/setup` في متصفحك لإكمال الإعداد. على مضيف بلا واجهة رسومية يشغّل معالجًا طرفيًا بدلاً من ذلك (`--cli` يفرضه)؛ `--no-service` يهيّئ دون تثبيت الخدمة، و`--no-browser` يطبع الرابط بدلاً من فتحه. **التثبيت:** - Homebrew (macOS، Linux): `brew install tezra-io/tap/fermix` (يتطلب `cosign` للتحقق من الإضافات) - البناء من المصدر: يتطلب Elixir ≥ 1.17 وErlang/OTP 28 وZig 0.15.2. استنسخ، ثم `mix deps.get`، وترجم الأصول، وحزّم باستخدام Burrito، وثبّت الملف التنفيذي، ثم `fermix setup`. **الإعداد:** `fermix setup` هو نقطة الدخول الوحيدة لإعداد التشغيل الأول. يكتب لقطة مُنمّطة إلى `~/.fermix/config.toml` وينشئ جذور مساحة العمل (`skills`، `journals`، `realtime`، `traces`، `logs`، `auth.json`). أوضاع مصادقة المزوّد (مفتاح API مقابل OAuth)، وإعداد القنوات، والجدولة مشمولة في README. أسبقية وقت التشغيل: الإعدادات الافتراضية وقت الترجمة → حالة الإعداد المحفوظة → تجاوزات متغيرات البيئة. يمكن أن يستهدف تسليم المهام المجدولة هدفًا صريحًا لكل مهمة أو قناة افتراضية خاصة بـ cron في `config.toml`. نسخ الملاحظات الصوتية قابل للتوصيل (OpenAI، SpaceXAI، Deepgram). **متغيرات البيئة:** متغيرات بيانات الاعتماد اختيارية إذا استخدمت `fermix setup` (الذي يخزّن الأسرار في سلسلة مفاتيح نظام التشغيل لديك). لعمليات النشر بلا واجهة رسومية أو في الحاويات، عيّن `OPENAI_API_KEY` و`ANTHROPIC_API_KEY` و`XAI_API_KEY` و`OPENROUTER_API_KEY` و`MISTRAL_API_KEY`، بالإضافة إلى رموز القنوات (WhatsApp، Discord، Slack، Signal) ومقابض تشغيلية مثل `FERMIX_HOME` و`FERMIX_TRACE_DIR` و`FERMIX_LOG_FILE` و`FERMIX_HTTP_BIND` وإعدادات الصوت في Realtime. **الاستخدام:** - التحكم بالخدمة الخلفية: `fermix service install`، `start`، `status`، `ask`، `logs`، `stop`، `restart`، `service uninstall` - الرفيق الصوتي المحلي (FermixPet): تطبيق macOS أصلي اختياري يتحدث إلى الخدمة الخلفية عبر مقبس Unix؛ يُفعَّل من صفحة الإعداد، ويُفحص بـ `fermix voice status` - القنوات: Telegram (استقصاء طويل)، WhatsApp (webhook)، Slack (Events API)، Discord (Gateway)، Signal (`signal-cli`)، واجهة سطر الأوامر، والجوال (خامل) - نقاط HTTP: `/health/live`، `/health/ready`، `/health`، `/setup`، webhooks الخاصة بـ WhatsApp/Slack **مرجع واجهة سطر الأوامر:** يشمل `setup`، `auth login`، `run`، `service install/uninstall`، `start/stop/restart`، `status`، `health`، `voice status`، `pair`، `devices list/revoke`، `ask`/`chat`، `sandbox explain`، `grant path`، `revoke path`، `agents`، `capabilities`، `skills`، `plugins`، `memory`، `logs`، `upgrade`، `doctor`، `version`، `help`. **أوامر القنوات:** `/compact`، `/new`، `/clear`، `/help`، `/whoami`، `/background`، `/tasks`، `/stop`، `/ultra`، `/sandbox`، `/soul`—كلها تعمل عبر القنوات من خلال الموزّع المشترك. **البنية:** مشروع مظلة (umbrella) بأربعة تطبيقات: `fermix_core` (الوكلاء، المزوّدون، الأدوات، الذاكرة، الإعداد، واجهة سطر الأوامر، المصادقة، التتبع)، `fermix_channels` (Telegram، WhatsApp، Slack، Discord، Signal، واجهة سطر الأوامر)، `fermix_web` (Phoenix: Setup LiveView، الصحة، مدخل webhook)، و`fermix_nif` (C NIF لطبقة إشارات مجموعة العمليات). تدفق البيانات: محوّل القناة → Dispatcher → MainAgent → تنفيذ القدرات → المزوّد → LLM → الرد. تشمل الأدوات المدمجة `shell` و`file_read` و`file_write` و`file_edit` و`glob_search` و`content_search` و`git_read` و`git_write` و`web_fetch` و`web_search` و`place_search` و`subagents`. المهارات قدرات منفصلة قابلة للتثبيت من المستخدم لها تعليماتها الخاصة وحدود الأدوات المسموح بها. Fermix في حالة ألفا (ما قبل 1.0)، بترخيص MIT، ويتطلب Elixir ≥ 1.17 وErlang/OTP ≥ 28.