أقسام قاعدة المعرفة ▾

التنقل

▸ ابدأ من هنا حسب الدور

الفئات

أدوات 52
قاموس المصطلحات 12

الأدوات

MiMo Code + JoinGonka Gateway: وكيل Xiaomi على نماذج شبكة Gonka

MiMo Code (الأمر mimo) — هو وكيل برمجي يعتمد على سطر الأوامر من مختبر Xiaomi MiMo: يقرأ ويكتب الأكواد، ويشغل الأوامر، ويعمل مع Git، ويحتفظ بذاكرة دائمة للمشروع بين الجلسات. إنه نسخة (fork) من OpenCode: كل ما يستطيع الأصل فعله موجود، بالإضافة إلى نقاط فحص الجلسة (session checkpoints)، واستعادة السياق، والوكلاء الفرعيين، وسير العمل الجاهز للاستخدام. الكود مفتوح بموجب ترخيص MIT؛ المشروع ناشئ ويتغير بسرعة، لذا كل ما يلي مرتبط بالإصدار 0.1.15 الذي صدر في 22 سبتمبر 2026.

طبقة النماذج في MiMo Code قابلة للاستبدال: يمكن توصيل أي واجهة برمجة تطبيقات (API) متوافقة مع OpenAI كمزود خاص بها — من خلال وصف في mimocode.jsonc ومفتاح في auth.json. بوابة JoinGonka Gateway هي كذلك تمامًا، لذا فإن التوصيل يقتصر على أمر تثبيت واحد.

لا توجد نماذج MiMo خاصة في شبكة Gonka: الشبكة اللامركزية تخدم DeepSeek V4 Flash و GLM-5.3 Flash و MiniMax M2.7 — جميعها بنفس السعر، $0.0069 لكل مليون توكن مدخل. الوكيل غير مرتبط بنماذج Xiaomi: المزودون فيه قابلون للتغيير، وكل ما يحيط به — الذاكرة، نقاط الفحص، الوكلاء الفرعيون — يعمل فوق النموذج الذي اخترته. تم التحقق من الأوامر والملفات والرسائل أدناه من خلال تشغيل حي لـ MiMo Code عبر البوابة في 23 سبتمبر 2026. بعد تأكيد العنوان، سيصل إلى حسابك 3M توكن مجاني — وهي كافية لتكرار كل هذا بنفسك.

بداية سريعة: التثبيت وأمر واحد

الخطوة 1: تثبيت MiMo Code. الطرق الرسمية من README المشروع:

# macOS and Linux
curl -fsSL https://mimo.xiaomi.com/install | bash

# Windows (PowerShell)
powershell -ep Bypass -c "irm https://mimo.xiaomi.com/install.ps1 | iex"

# via npm, on any system
npm install -g @mimo-ai/cli

يثبّت السكربت الملف التنفيذي في ~/.mimocode/bin ويسجّل هذا المجلد في PATH عبر ملف تعريف الصدفة (والعلم --no-modify-path يعطّل ذلك). وهو ينزّل البناء من مستودع Xiaomi؛ وإن تعذّر التنزيل فثبّت عبر npm — فهذا هو الإصدار نفسه، وقد وصلنا في كلا الطريقين الإصدار 0.1.15. للتحقق استخدم mimo --version.

الخطوة 2: الحصول على المفتاح. سجّل في gate.joingonka.ai/register، وأكّد بريدك، وأنشئ مفتاحاً بالبادئة jg- من قسم "مفاتيح API". مفتاح واحد ورصيد واحد يكفيان لجميع نماذج الشبكة.

الخطوة 3: تشغيل برنامج التثبيت.

npx @joingonka/setup --tool mimo-code

سيسألك برنامج التثبيت عن المفتاح — فلا يُمرَّر في وسائط سطر الأوامر — وسيكتب الملفين نفسيهما اللذين يكتبهما معالج مزوّدك داخل MiMo Code نفسه، لكن مع الكتالوج الكامل والحدود مباشرةً:

  • يسجّل المزوّد joingonka في الإعداد العام ~/.config/mimocode/mimocode.jsonc (أو في mimocode.json أو config.json إن كان MiMo Code يكتب هناك أصلاً): المحوّل @ai-sdk/openai-compatible، وعنوان البوابة مع /v1، وثلاثة نماذج من الشبكة بنوافذ سياقها وسقوف استجابتها ودعم الأدوات؛
  • يضع المفتاح في مخزن مفاتيح MiMo Code الخاص — ~/.local/share/mimocode/auth.json بصلاحيات 600. لا يوجد المفتاح في الإعداد نفسه، لذا يمكنك حفظه في ملفات الإعداد بأمان؛
  • يضبط النموذج الافتراضي — الحقل model — على DeepSeek V4 Flash، لكن فقط إن لم يكن هناك نموذج مختار أو كان النموذج المختار قد غادر الشبكة. أما اختيارك أنت، بما في ذلك في إعداد عام آخر، فلا يتجاوزه؛
  • يحتفظ بنسخ من الملفات السابقة، ولا يمسّ مزوّدي الآخرين ومفاتيحهم وتعليقاتهم، والملف الذي يتعذّر تحليله لا يُعاد كتابته — بل يتوقف ويخبرك بما يجب إصلاحه؛
  • في النهاية يرسل طلباً حياً إلى البوابة ويخبرك صراحةً هل قُبل المفتاح والعنوان والنموذج.

يراعي برنامج التثبيت المجلدات غير القياسية تلقائياً: MIMOCODE_HOME وXDG_CONFIG_HOME وXDG_DATA_HOME وMIMOCODE_CONFIG. ولتعيين نموذج افتراضي آخر استخدم العلم --model مع الاختصار deepseek أو glm أو minimax؛ ولملفات الإعداد والخوادم هناك وضع بلا أسئلة:

JOINGONKA_API_KEY=jg-your-key npx @joingonka/setup --tool mimo-code --non-interactive

إن كان MiMo Code قيد التشغيل فأعد تشغيله: فالمزوّد الجديد يُلتقط عند بدء التشغيل.

الإعداد اليدوي: mimocode.jsonc و auth.json

كل ما يفعله المثبّت يمكن كتابته يدويًا. هناك ملفان، ولكل منهما مهمته: ملف الإعدادات يصف المزوّد والنماذج، وauth.json يحفظ المفتاح. يربطهما معرّف المزوّد — يجب أن يكون joingonka متطابقًا في كلا الملفين. ملف الإعدادات، ~/.config/mimocode/mimocode.jsonc:

{\n  \"$schema\": \"https://mimo.xiaomi.com/mimocode/config.json\",\n  \"provider\": {\n    \"joingonka\": {\n      \"npm\": \"@ai-sdk/openai-compatible\",\n      \"name\": \"JoinGonka (Gonka)\",\n      \"options\": {\n        \"baseURL\": \"https://gate.joingonka.ai/v1\"\n      },\n      \"models\": {\n        \"deepseek-ai/DeepSeek-V4-Flash-0731\": {\n          \"name\": \"DeepSeek V4 Flash (Gonka)\",\n          \"tool_call\": true,\n          \"reasoning\": true,\n          \"limit\": { \"context\": 380000, \"output\": 32768 }\n        },\n        \"zai-org/GLM-5.3-Flash\": {\n          \"name\": \"GLM 5.3 Flash (Gonka)\",\n          \"tool_call\": true,\n          \"reasoning\": true,\n          \"limit\": { \"context\": 390000, \"output\": 8192 }\n        },\n        \"MiniMaxAI/MiniMax-M2.7\": {\n          \"name\": \"MiniMax M2.7 (Gonka)\",\n          \"tool_call\": true,\n          \"limit\": { \"context\": 200000, \"output\": 8192 }\n        }\n      }\n    }\n  },\n  \"model\": \"joingonka/deepseek-ai/DeepSeek-V4-Flash-0731\"\n}

المفتاح، ~/.local/share/mimocode/auth.json بأذونات 600:

{\n  \"joingonka\": { \"type\": \"api\", \"key\": \"jg-your-key\" }\n}
الحقلالقيمةما المهم
provider.joingonkaمعرّف المزوّدبحروف صغيرة؛ المفتاح نفسه — في auth.json، وإلا لن يربط MiMo Code المفتاح بالمزوّد
npm@ai-sdk/openai-compatibleمحوّل لواجهات API المتوافقة مع OpenAI — به يخاطب MiMo Code البوابة عبر Chat Completions
options.baseURLhttps://gate.joingonka.ai/v1مع /v1 في النهاية: المسار /chat/completions يضيفه MiMo Code بنفسه
modelsالمفاتيح — معرّفات نماذج الشبكةيُرسل المعرّف في الطلب كما هو، مع بادئة المورّد
limitcontext وoutput وفق القائمة أعلاهبدونها يعتبر MiMo Code نافذة النموذج مليون رمز ويبدأ ضغط السجل متأخرًا جدًا — فيصطدم الطلب بالحد الفعلي للنموذج
tool_calltrueالنموذج يستدعي الأدوات. بالنسبة لنماذجه الخاصة يعتبر MiMo Code ذلك افتراضيًا، والمثبّت يكتب العلامة صراحةً
reasoningtrueعلامة النموذج المُستدِلّ: يحصل عليها DeepSeek V4 Flash وGLM-5.3 Flash، أما مدخل MiniMax M2.7 فيخلو منها

يُكتب النموذج الافتراضي بصيغة provider/model-id؛ ويُفصل المزوّد عند أول شرطة مائلة، لذا تُكتب معرّفات الشبكة التي تحوي شرطة مائلة خاصة بها كما هي.

أين يمكن أن يوجد المفتاح أيضًا. يعرض README الخاص بـ MiMo Code أيضًا خيار وضع المفتاح مباشرة في ملف الإعدادات — options.apiKey. هذا يعمل، لكن يصبح من السهل حينها إيداع المفتاح مع ملفات الإعدادات الشخصية، كما أن مفتاحًا قديمًا منسيًا هناك سيتجاوز المفتاح الجديد من auth.json — لذلك يزيل المثبّت options.apiKey من كتلته. وفي ملف المشروع .mimocode/mimocode.jsonc لا تضع المفتاح من باب أولى.

أي ملف هو الأساس. يدمج MiMo Code الملفات العامة config.json وmimocode.json وmimocode.jsonc بهذا الترتيب، وكل لاحق يتجاوز ما قبله. وتُطبع النتيجة عبر mimo debug config، أما مسارات ملف الإعدادات والمفاتيح على نظامك فعبر mimo debug paths.

المزود من الواجهة، auth.json واختيار النموذج

يمكنك إعداد مزود الخدمة الخاص بك دون الحاجة إلى ملفات عبر المعالج المدمج. عند التشغيل الأول، يسأل MiMo Code في دليل المشروع عما إذا كنت تثق بالمجلد (Yes, I trust this folder): سيحصل الوكيل على صلاحية قراءة وتعديل وتشغيل الملفات فيه. بعد ذلك، يفتح الأمر /connect قائمة Select provider: في الأعلى يوجد مدخل لمنصة Xiaomi MiMo وCodex والاستيراد من Claude Code، وفي الأسفل دليل المزودين، وفي النهاية + Custom provider. يطرح المعالج ستة أسئلة:

الخطوةما يجب إدخالهملاحظة
Provider id (1/6)joingonkaنفس المعرف الخاص بالمثبت: إذا تم تشغيله لاحقاً، فسيقوم بتحديث هذا السجل بدلاً من إنشاء سجل ثانٍ
Display name (2/6)JoinGonkaالاسم المعروض في القوائم؛ افتراضياً يطابق المعرف
Base URL (3/6)https://gate.joingonka.ai/v1مع اللاحقة /v1
API key (4/6)مفتاح jg-… الخاص بكيُحفظ في auth.json ولا يُكتب في ملف الإعدادات
First model id (5/6)deepseek-ai/DeepSeek-V4-Flash-0731المعرف الكامل للنموذج في الشبكة، مع بادئة البائع
First model name (6/6)DeepSeek V4 Flashالاسم المعروض؛ افتراضياً هو المعرف نفسه

في تجربتنا، قام المعالج بتسجيل كتلة المزود مع نموذج واحد بدون حدود وحقلين غير موجودين في المثبت: env مع اسم المتغير JOINGONKA_API_KEY، حيث سيبحث MiMo Code عن المفتاح، و options.setCacheKey: true. يعمل هذا مع البوابة، ولكن يجب استكمال الإعدادات: بدون limit سيظهر الأمر mimo models joingonka نافذة بـ 1M توكن. أسهل طريقة هي تشغيل المثبت مرة واحدة بعد المعالج، وسيقوم بإضافة الكتالوج الكامل مع الحدود إلى نفس الكتلة.

اختيار النموذج. الاختيار الدائم يتم عبر الحقل model في ملف الإعدادات. في الواجهة، يتم تغيير النموذج بالأمر /models، وللتشغيل لمرة واحدة — باستخدام العلم -m. تظهر النماذج التي يراها MiMo Code لدى المزود وحجم نافذة السياق التي يعمل بها بواسطة الأمر mimo models joingonka — جنباً إلى جنب مع العتبة التي سيبدأ عندها الوكيل في ضغط السجل:

joingonka/deepseek-ai/DeepSeek-V4-Flash-0731 — window 380K, compacts at 342K
joingonka/MiniMaxAI/MiniMax-M2.7 — window 200K, compacts at 180K
joingonka/zai-org/GLM-5.3-Flash — window 390K, compacts at 351K

سعر جميع نماذج الشبكة واحد، لذا الاختيار يعتمد على السلوك. هكذا كان أداؤها في تجربتنا mimo run في مهمة واحدة — قراءة ملف والعثور على خطأ:

النموذجالسياق / الاستجابةكيف يعمل في MiMo Code
DeepSeek V4 Flash380K / 32768يحل المهمة بشكل صحيح؛ أكبر سقف للاستجابة في الشبكة — وهو ما يضعه المثبت افتراضياً
GLM-5.3 Flash390K / 8192استجابة نظيفة في خطوتين وبضع ثوانٍ. نموذج استدلال: الاستدلال يدخل ضمن سقف الاستجابة
MiniMax M2.7200K / 8192يحل المهمة بشكل صحيح. استدلال النموذج يأتي منفصلاً عن الاستجابة: افتراضياً mimo run يظهر فقط الاستجابة واستدعاء الأدوات، وعلم --thinking يُظهر الاستدلال أيضاً

تم تحليل سبب اختيار DeepSeek V4 Flash كخيار افتراضي في مراجعة النموذج.

التحقق: ما الذي يجب أن يحدث

أولًا، تأكّد من أن MiMo Code يتعرّف على المزوّد والمفتاح:

mimo models joingonka
mimo providers list

يسرد الأمر الأول نماذج الشبكة الثلاثة مع نوافذ السياق، كما في المثال أعلاه؛ أما الثاني فيطبع مسار مخزن المفاتيح وسطر joingonka api. بعد ذلك، لنُجرِ تشغيلًا واحدًا. ضع في مجلد المشروع ملفًا باسم calc.py يحتوي على خطأ واضح — مثل حساب مساحة مستطيل حيث يُجمع الضلعان بدل ضربهما — ثم اطلب منه اكتشافه:

mimo run "Read the file calc.py in the current project directory and tell me in one sentence whether it has a bug."

سيظهر في المخرجات الوكيل والنموذج (> build · deepseek-ai/DeepSeek-V4-Flash-0731)، واستدعاء الأداة (→ Read calc.py)، وإجابة مباشرة في صلب الموضوع — مع تحديد التعبير الخاطئ. يحوّل الخيار --format json المخرجات إلى تدفّق من الأحداث، حيث يحمل كل خطوة عدّاد رموز، بينما يُشغّل -m joingonka/<model-id> العملية على نموذج آخر. في تجربتنا، أكملت النماذج الثلاثة كلها حلقة «الطلب → استدعاء الأداة → النتيجة → الإجابة».

أما الفحص الثالث فهو من جهة البوابة: في لوحة التحكم، في قسم «الاستخدام»، سيظهر الطلب ضمن تفصيل «حسب النماذج»، وفي كتلة «حسب المفاتيح» سيُحدَّث وقت آخر طلب.

وإذا حدث خطأ ما، فعادةً يكفي قراءة الرسالة لتشخيص السبب:

ما يظهرماذا يعنيما الذي يجب فعله
Error: Invalid API keyالبوابة لم تقبل المفتاحتحقّق من المفتاح في auth.json أو شغّل برنامج التثبيت مرة أخرى؛ واعلم أن options.apiKey في كتلة المزوّد يتجاوز auth.json
Error: Method Not Allowedلا تحتوي baseURL على اللاحقة /v1يجب أن يكون العنوان بالضبط https://gate.joingonka.ai/v1
Error: Model not found: joingonka/… Did you mean: …?النموذج غير موجود في قائمة models الخاصة بالمزوّد — وغالبًا ما يكون السبب أن المعرّف كُتب بدون بادئة المزوّدخُذ المعرّف الكامل من التلميح أو من mimo models joingonka
permission requested: external_directory (…); auto-rejecting، وتنتهي العملية دون إجابةفي mimo run يُرفض الوصول خارج المشروع، فتتوقف العملية. يحدث هذا عندما يبحث النموذج عن ملف خارج المشروع — مثلًا في المجلد الرئيسيوضّح أن الملف داخل مجلد المشروع؛ وتمنح القاعدة permission.external_directory وصولًا دائمًا إلى المجلد المطلوب
في mimo models joingonka تظهر النافذة 1Mالنموذج لا يحتوي على limit — ويحدث هذا عادةً بعد معالج Custom providerحدّد limit في الإعدادات أو شغّل برنامج التثبيت
429 … is currently overloaded in the Gonka network (rate limit)لا تتوفّر حاليًا سعة حرة للنموذج في الشبكةأعد المحاولة بعد دقيقة أو انتقل إلى نموذج آخر بالأمر /models أو بالخيار -m؛ ويمكنك مراقبة الحالة على صفحة الحالة
402نفدت الأموال من الرصيداشحن الحساب من قسم «الفوترة»؛ والمفتاح لا يزال صالحًا للعمل
انقطعت الإجابة في منتصفهاانقطع تدفّق الإجابة أثناء الطريق — ويحدث هذا في ساعات الذروةيعيد mimo run -c "continue" متابعة الجلسة الأخيرة من حيث توقفت

كم يكلف ذلك

تستهلك أداة الوكيل التوكنات بشكل مختلف عن المحادثة: تضيف MiMo Code إلى كل جملة من جملك المطالبة النظامية (system prompt)، وأوصاف الأدوات وسياق خدمة الوكيل، وتستغرق المهمة عدة خطوات. في تشغيلنا، حمل كل طلب إلى النموذج 22-25 ألف توكن مدخل، وكلف فحص «قراءة ملف والعثور على خطأ» المكون من خطوتين حوالي 45-50 ألف توكن — تقريباً كلها مدخلات. لذلك فإن السعر لكل توكن هنا هو العامل الحاسم.

عبر JoinGonka Gateway تبلغ تكلفة التوكنات $0.0069 لكل مليون في المدخلات و $0.021 لكل مليون في المخرجات — السعر هو نفسه لجميع نماذج الشبكة ويتم استبداله في هذه الصفحة من مصدر حي.

السيناريوالاستهلاكعبر Gateway
مهمة لمرة واحدة: قراءة ملف، العثور على خطأ45-50K توكنجزء من السنت
يوم عمل نشط3-7M توكنبضع سنتات
شهر تطوير نشط~150M توكنحوالي دولار واحد

التقديرات في العمود الأيمن — وفقاً لأسعار سبتمبر 2026. للمقارنة — كيف يمكنك الدفع مقابل النماذج في MiMo Code:

الطريقةكيفية الدفعما هو مطلوب
منصة Xiaomi MiMoحسب شروط المنصةحساب Xiaomi MiMo، الدخول عبر المتصفح
Codexاشتراك ChatGPTخطة ChatGPT Plus أو Pro، الدخول عبر المتصفح
مفتاح المزود من الدليلمقابل توكنات حسب سعر المزودمفتاح منفصل لكل مزود
JoinGonka Gatewayمقابل توكنات من رصيد مسبق الدفعمفتاح jg-…؛ ثلاثة نماذج شبكة بسعر واحد، الاستهلاك مرئي في لوحة التحكم

تقديرك الخاص للتكلفة في MiMo Code لنماذج البوابة يساوي صفراً — سجلاتها لا تحتوي على حقل cost، وفي الأحداث --format json توجد القيمة "cost": 0. الاستهلاك الحقيقي والرصيد المتبقي موجودان في لوحة التحكم، في قسمي «الاستخدام» و «الفوترة».

ما يجب مراعاته في العمل

الأذونات. في واجهة MiMo Code، يتم طلب تأكيد للإجراءات الخطرة، ولكن في mimo run لا يوجد أحد لسؤاله — يقوم النظام برفض الوصول خارج نطاق المشروع تلقائيًا. بالنسبة للبيئات الموثوقة ذات الاستخدام الواحد، يوجد خيار --dangerously-skip-permissions (أو متغير البيئة MIMOCODE_DANGEROUSLY_SKIP_PERMISSIONS=1): وهو يسمح بكل ما لم يتم حظره بواسطة قاعدة صريحة — فقط داخل حاوية (container) أو بيئة معزولة (sandbox). في الواجهة، يمكن تفعيل وضع مشابه مؤقتًا لجلسة العمل عبر /skip-permissions.

الوكلاء (Agents). افتراضيًا، يعمل build مع مجموعة كاملة من الأدوات، وplan يكتفي بالقراءة والتحليل، بينما يقود compose العملية من المواصفات إلى الكود الموثق؛ يمكنك التبديل بينها باستخدام Tab.

السياق الطويل. عند الوصول إلى حد النافذة، يقوم MiMo Code بإعادة بناء السياق من آخر نقطة فحص (checkpoint)، وذاكرة المشروع، والرسائل الجديدة؛ ويحسب الحد بناءً على limit.context. يمكن الضغط في وقت مبكر باستخدام الأمر /context-limit، بشكل منفصل لكل نموذج.

ما يرتبط بحساب Xiaomi. الإدخال الصوتي (/voice) يتعرف على الكلام بواسطة نموذج منصة MiMo ويكون متاحًا بعد تسجيل الدخول إليها. الكود والأوامر والوكلاء الفرعيون يعملون عبر مزود متصل — في تجربتنا عملنا بدون أي تسجيل دخول.

الصور. نماذج الشبكة نصية: في /modalities اترك لها النص فقط، وبالنسبة للقطات الشاشة قم بإعداد مزود ثانٍ بنموذج يدعم الرؤية (vision).

MiMo Code وOpenCode أقارب بإعدادات مختلفة. لكل منهما ملفات ومجلدات خاصة، لذا لا يتم نقل الإعدادات من أحدهما للآخر:

OpenCodeMiMo Code
الأمرopencodemimo
الإعدادات~/.config/opencode/opencode.json~/.config/mimocode/mimocode.jsonc
المفاتيح~/.local/share/opencode/auth.json~/.local/share/mimocode/auth.json
المُثبّت--tool opencode--tool mimo-code

الإصدار. يتم تحديث المشروع بشكل متكرر؛ من أجل قابلية التكرار قم بتثبيت الإصدار: npm install -g @mimo-ai/[email protected] أو curl -fsSL https://mimo.xiaomi.com/install | bash -s — --version 0.1.15.

توجد وكلاء من المختبرات نفسها للعائلات التي تخدمها الشبكة: MiniMax Code يعمل على نموذج مزوده الخاص MiniMax M2.7، ولدى DeepSeek وZ.ai (مؤلفو GLM) وكلاء خاصون بهم. جميعهم يتصلون بنفس البوابة (gateway) بمفتاح واحد.

MiMo Code هو وكيل طرفية لـ Xiaomi MiMo، وهو نسخة مطورة من OpenCode مع ذاكرة مشروع ونقاط فحص. لا توجد نماذج MiMo في شبكة Gonka، ولكن المزود في الوكيل قابل للتغيير: npx @joingonka/setup --tool mimo-code سيقوم بكتابة المزود joingonka في ~/.config/mimocode/mimocode.jsonc (المهايئ @ai-sdk/openai-compatible، العنوان https://gate.joingonka.ai/v1، النماذج DeepSeek V4 Flash، GLM-5.3 Flash وMiniMax M2.7 مع limit عادل) وسيضع المفتاح jg-… في ملف auth.json الأصلي. يمكنك القيام بنفس الشيء يدويًا عبر المعالج /connect ← + Custom provider، وبعد ذلك أضف النماذج والحدود. للاختبار استخدم mimo models joingonka و mimo run؛ في التشغيل الفردي أبقِ المسارات داخل المشروع.

تريد معرفة المزيد؟

استكشف الأقسام الأخرى أو ابدأ في كسب GNK الآن.

احصل على المفتاح وتوكنات مجانية →