شو هي MiroFish وكيف بتشتغل
الرابط: github.com/666ghj/MiroFish · الموقع mirofish.ai · رخصة AGPL-3.0 · المحرّك مبني على OASIS من فريق CAMEL-AI، والمشروع محتضن من مجموعة Shanda. وصفهم لنفسهم: «محرّك ذكاء جماعي بسيط وعام، بيتوقّع أي شي». الفكرة الأصلية كانت توقّع الرأي العام على خبر أو سياسة، وبنفس الآلة بتجرّب فكرة مشروعك.
كيف بتشتغل، بالخمس مراحل اللي بالـ README:
- بناء الرسم المعرفي. بترفع «مواد بذرة» (فكرتك، عرض تقديمي، تقرير، نسخة أولية… أو حتى قصة) وبتكتب شو بدك تتوقّع بلغة عادية. بيستخرج منها الكيانات والعلاقات (GraphRAG).
- بناء البيئة. بيولّد شخصيات (personas): لكل وكيل اسم وخلفية ورأي وذاكرة طويلة، وبيضبط إعداداته.
- المحاكاة. بينزّل الوكلاء على منصتين سوشال ميديا بالتوازي؛ بينشروا، بيردّوا، بيتأثروا ببعض، وذاكرتهم بتتحدّث مع الوقت.
- التقرير. وكيل تقرير (ReportAgent) معه أدوات بيفحص فيها نتيجة المحاكاة وبيكتب لك تقرير مفصّل.
- التفاعل العميق. بتفتح العالم وبتحكي مع أي شخصية فيه لحالها، أو مع وكيل التقرير نفسه.
بدك تشوف شكل النتيجة قبل ما تركّب شي؟ الفريق حاطط عرض حي لمحاكاة جاهزة على حدث رأي عام (بدون تركيب، بس للمشاهدة).
شو بتحتاج على جهازك
طريقتين: على جهازك مباشرة (الموصى فيها بالـ README)، أو بـ Docker. لكل وحدة متطلباتها، والمفتاحين لازمين بالحالتين.
| الشي | الإصدار | افحص بـ | لمين |
|---|---|---|---|
| Node.js | 18 وما فوق (معه npm) | node -v | التركيب على الجهاز |
| Python | 3.11 أو 3.12 بالضبط (مش 3.13) | python --version | التركيب على الجهاز |
| uv (مدير حزم Python) | الأحدث | uv --version | التركيب على الجهاز |
| Docker Desktop | الأحدث | docker compose version | طريقة Docker بس |
| مفتاح LLM | أي API بصيغة OpenAI | القسم 1 | الثنتين |
| مفتاح Zep Cloud | الخطة المجانية بتكفي للتجربة | القسم 1 | الثنتين |
ناقصك uv؟ تركيبه سطر واحد (من وثائق uv الرسمية):
winget install astral-sh.uv
curl -LsSf https://astral.sh/uv/install.sh | sh
الأول لويندوز والثاني لماك ولينكس. وناقصك Python بإصدار مناسب؟ uv نفسه بيركّبه: uv python install 3.12. على ويندوز، لو python --version فتح لك متجر مايكروسوفت، جرّب py -3.12 --version.
المفاتيح أولاً، بعدها على جهازك أو بـ Docker. اختار طريقة وحدة.
مفتاح LLM ومفتاح Zep
مفتاح LLM: MiroFish بتحكي مع النموذج بصيغة OpenAI SDK، يعني أي مزوّد بيدعم هالصيغة بيشتغل. الـ README بينصح بنموذج Qwen-plus عبر منصة Bailian من علي بابا (رخيص، بس بده حساب على Alibaba Cloud). بدائل بنفس الصيغة: OpenAI نفسها، أو OpenRouter (مفتاح واحد لأي نموذج، بما فيها نماذج Claude)، أو Anthropic مباشرة عبر توافق OpenAI SDK تبعها. اللي بيهمّك: الاستهلاك عالي، فاختار نموذج رخيص للتجربة الأولى (القسم 7).
مفتاح Zep Cloud: Zep هي خدمة الذاكرة اللي بتخزّن الرسم المعرفي وذاكرة الوكلاء. سجّل على app.getzep.com وخذ مفتاح API. الـ README بيقول الحصة المجانية الشهرية بتكفي للاستعمال البسيط.
بعد ما تنزّل المشروع (القسم الجاي)، انسخ ملف المثال وعبّي القيم الأربع:
cp .env.example .env
LLM_API_KEY=your_api_key
LLM_BASE_URL=https://dashscope.aliyuncs.com/compatible-mode/v1
LLM_MODEL_NAME=qwen-plus
ZEP_API_KEY=your_zep_api_key
بدّل الرابط والاسم حسب مزوّدك (مثلاً OpenRouter: https://openrouter.ai/api/v1 واسم النموذج زي ما هو عندهم). وملف المثال فيه ثلاث أسطر اختيارية باسم LLM_BOOST_* لنموذج أسرع: إذا مش رح تستعملها، احذفها كلياً من الملف، الـ README بيحذّر إنه وجودها فاضية بيعمل مشكلة.
على جهازك: ثلاث أوامر
نزّل المشروع، عبّي المفاتيح، وركّب كل شي بأمر واحد (الجذر + الواجهة + الخلفية):
git clone https://github.com/666ghj/MiroFish.git
cd MiroFish
cp .env.example .env
npm run setup:all
أمر setup:all بيشغّل npm install للجذر وللواجهة، وبعدها uv sync للخلفية (بيعمل بيئة Python افتراضية لحاله). بياخد دقايق أول مرة.
شغّل الواجهة والخلفية مع بعض، من جذر المشروع:
npm run dev
افتح http://localhost:3000 بالمتصفح. الخلفية بتشتغل على المنفذ 5001. ولو بدك كل واحد لحاله (مثلاً عشان تقرأ أخطاء الخلفية بوضوح): npm run backend بطرفية وnpm run frontend بثانية.
أو بـ Docker: أمر واحد
لو ما بدك تركّب Node وPython على جهازك: Docker Desktop شغّال، نفس ملف .env بنفس المفاتيح، وأمر واحد:
git clone https://github.com/666ghj/MiroFish.git
cd MiroFish
cp .env.example .env
docker compose up -d
بيسحب الصورة الرسمية ghcr.io/666ghj/mirofish:latest وبيفتح نفس المنفذين (3000 للواجهة، 5001 للخلفية)، وبيخزّن ملفاتك المرفوعة بمجلد backend/uploads عندك عشان ما تضيع لما توقف الحاوية. للإيقاف: docker compose down.
من فكرة بورقة لحد تقرير بتقدر تناقشه.
اكتب فكرتك: قالب جاهز
«البذرة» هي كل اللي الوكلاء رح يعرفوه عن فكرتك. كل ما كانت أدق وأصدق، كان التقرير أنفع. اكتبها بملف نصي (أو PDF أو عرض) بالعربي، وبهالترتيب:
الفكرة: اشتراك أسبوعي لتوصيل قهوة مختصة للمكاتب بعمّان.
لمين: شركات من 10 لـ 50 موظف بمنطقة العبدلي والشميساني.
السعر: 3.5 دينار للكوب، حد أدنى 20 كوب باليوم.
البديل الحالي: ماكينة المكتب، أو الطلب من كافيه قريب بتوصيل 20 دقيقة.
الوعد: القهوة بتوصل الساعة 8:30 كل صباح، بنفس الجودة.
شو بدي أعرف: هل السعر مقبول؟ هل الاشتراك الأسبوعي عائق؟ شو اللي بيخلّي المدير يلغي بعد شهر؟
ومعها «متطلب التوقّع» (prediction requirement) بلغة عادية، هاد اللي بيوجّه المحاكاة كلها:
توقّع ردة فعل مدراء المكاتب والموظفين على الإعلان الأول عن الخدمة خلال أسبوع: نسبة اللي بيهتموا، أكثر اعتراض بيتكرّر، وشو بيطلبوا يتغيّر بالسعر أو بالشروط قبل ما يشتركوا.
ملاحظتين: أضف للبذرة أي شي حقيقي عندك (نتائج استبيان، تعليقات ناس، أسعار المنافسين)، فالوكلاء بيبنوا آراءهم منها. ولا تكتب الفكرة بأحسن صورة: لو خبّيت نقطة ضعف، التقرير رح يطلع متفائل كذباً.
شغّل المحاكاة
من الواجهة على localhost:3000 بتمشي بنفس ترتيب المراحل الخمس: ارفع ملف البذرة، اكتب متطلب التوقّع، خلّيه يبني الرسم المعرفي والشخصيات، وبعدها ابدأ المحاكاة. التحذير الوحيد اللي الـ README بيكتبه بالخط العريض:
- المحاكاة الأولى: بذرة قصيرة، أقل من 40 جولة، نموذج رخيص. الهدف تشوف الآلة بتشتغل وتعرف كلفة الجولة الوحدة عندك.
- الثانية: نفس البذرة مع تعديل واحد بس (السعر مثلاً) وقارن التقريرين. هيك بتعرف إذا الفرق بالنتيجة من التعديل ولا من عشوائية المحاكاة.
- بعدها: كبّر الجولات تدريجياً لما تشوف الآراء استقرّت وما عادت تتغيّر كثير.
المحاكاة بتشتغل على منصتين بالتوازي؛ هاد تصميم MiroFish مش إعداد لازم تعمله. والذاكرة بتتحدّث مع الوقت، فالوكيل اللي اعترض بالجولة 5 بيتذكّر اعتراضه بالجولة 30.
اقرأ التقرير واحكي مع الشخصيات
بالآخر بتاخد تقرير من وكيل التقرير، وعالم تفاعلي. كيف تستفيد منهم فعلاً:
- ابدأ من الاعتراضات، مش من المديح. المديح بالمحاكاة رخيص؛ الاعتراض اللي تكرّر عند شخصيات مختلفة هو الإشارة.
- افتح العالم ودوّر على أكثر شخصية عارضت. احكي معها: «ليش ما بتشترك؟ شو اللي لازم يتغيّر عشان تجرّب شهر؟». الحوار مع شخصية وحدة بيعطيك جمل بتقدر تستعملها بتسويقك.
- اسأل وكيل التقرير أسئلة مباشرة: «شو أكبر 3 أسباب للرفض؟ أي شريحة كانت الأكثر حماساً؟ شو السعر اللي ما حدا اعترض عليه؟».
- دوّن 3 فرضيات طلعت من التقرير، وجرّبها على 10 ناس حقيقيين قبل ما تبني. المحاكاة فلتر أول رخيص، مش بديل عن الناس.
أسئلة جاهزة لوكيل التقرير (انسخ وبدّل):
لخّص لي أكثر 3 اعتراضات تكرّرت، ومين قالها (الشريحة)، وكم مرة.
أي جملة بالإعلان سبّبت أكثر تفاعل سلبي؟ واقترح صياغة بديلة بناءً على ردود الوكلاء.
لو نزّلت السعر لـ 3 دنانير وشلت الحد الأدنى، مين كان رح يغيّر رأيه حسب المحاكاة؟ ومين ما بيفرق معه؟
لما تخلص وتقرّر تكمّل بالفكرة: خطة العمل والعرض التقديمي والرسائل التسويقية شغل Claude العادي، وهاد موضوع دليل Claude Cowork.
التكلفة، الأخطاء المتكررة، وشو المجاني بالضبط.
التكلفة بالضبط
| البند | الكلفة | ملاحظة |
|---|---|---|
| MiroFish نفسها | مجانية | مفتوحة المصدر، رخصة AGPL-3.0 |
| النموذج (LLM) | على حسابك عند المزوّد | أكبر بند. بيعتمد على عدد الوكلاء والجولات وسعر النموذج. ما في رقم رسمي؛ الـ README بيكتفي بـ «الاستهلاك عالي» |
| Zep Cloud | خطة مجانية شهرية | «بتكفي للاستعمال البسيط» حسب الـ README؛ الحصة بتتصفّر كل شهر وما بتتراكم |
| جهازك | صفر | Node + Python، أو Docker. ما بده كرت شاشة |
كيف تخلّيها رخيصة: نموذج رخيص للتجارب (Qwen-plus اللي الـ README بينصح فيه، أو نموذج صغير من OpenRouter)، أقل من 40 جولة، بذرة مركّزة، وراقب لوحة الاستهلاك عند مزوّدك بعد كل محاكاة. الرخصة AGPL-3.0 معناها شي واحد مهم: لو بنيت على MiroFish خدمة عامة للناس، لازم تفتح كودها.
أخطاء بتضيّع وقتك
تنبيهات صدق
- الأشخاص بالريل توضيحيين. سارة وعمر وأبو خالد و«348 منشور» أمثلة على نوع المخرجات، مش محاكاة حقيقية. الشاشة الحقيقية الوحيدة بالريل صفحة GitHub.
- الوكلاء مش ناس. آراؤهم انعكاس لما يعرفه النموذج عن شرايح الناس، وبتتأثر بصياغة بذرتك. استعملها لتوليد الفرضيات وترتيبها، مش لإثباتها.
- بياناتك بتطلع برّا جهازك. البذرة بتروح لمزوّد النموذج اللي اخترته، والذاكرة بتتخزّن على Zep Cloud. لا ترفع أسرار تجارية أو بيانات عملاء حقيقية.
- الواجهة بالإنجليزي والصيني. المشروع صيني الأصل؛ البذرة والأسئلة اكتبها بالعربي والنموذج بيتعامل معها، بس الواجهة نفسها مش معرّبة.
- مشروع شاب. المستودع من أواخر 2025 والإصدار المنشور على GitHub لسا 0.1.x يوم 2026-11-02، مع تحديثات متكررة. توقّع تغييرات بين نسخة ونسخة.
- الرقم بالريل. 82 ألف+ نجمة يوم التسجيل؛ يوم 2026-11-02 صار 83,525.