> ## Documentation Index
> Fetch the complete documentation index at: https://comfyui-mcp.artokun.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# الخلفيات / المزوّدون

> يعمل وكيل اللوحة على أي نموذج لغوي: Claude أو ChatGPT أو Gemini أو Grok أو Kimi أو GLM على اشتراكك/خطتك، أو نموذج محلي مجاني عبر Ollama / LM Studio / llama.cpp (بلا حساب أصلًا)، أو أي نموذج مستضاف عبر نقطة نهاية متوافقة مع OpenAI. كيف يعمل منفذ AgentBackend المحايد تجاه المزوّد، وأداة الاختيار، ومصفوفة القدرات.

وكيل [اللوحة الجانبية](/docs/docs/ar/panel) **محايد تجاه المزوّد**. اختر **Claude** أو
**ChatGPT** أو **Gemini** أو **Ollama (محلي)** فيعمل الوكيل المطابق في الخلفية —
الاشتراكات بلا حاجة إلى مفتاح API، والنماذج المحلية بلا حاجة إلى حساب أصلًا.
وتتحدث خلفية Ollama أيضًا **أي نقطة نهاية متوافقة مع OpenAI** (OpenRouter أو
DeepSeek أو GLM أو MiMo أو vLLM أو LM Studio)، فيغطّي «أحضر نموذجك» كل شيء من
نموذج 4B مجاني على وحدة GPU لديك إلى الطليعة. ويشارك كل المزوّدين أدوات لوحة
الرسم الحيّة نفسها، ومعرفة النماذج نفسها، وتحميلات سير العمل دفعة واحدة نفسها،
وحاجز التكلفة نفسه. وتقيّم [حلبة النماذج اللغوية](/docs/docs/ar/arena) أيًا منها على
مهام ComfyUI حقيقية.

```
panel (pick a provider) ⇄ loopback bridge ⇄ orchestrator (Claude · ChatGPT · Gemini · any LLM) ⇄ your graph
```

## اختر مزوّدًا، لا منفذًا

تعرض اللوحة **أداة اختيار خلفية** — شرائح Claude / ChatGPT / Gemini /
Antigravity / Grok / Kimi / GLM / Ollama / LM Studio / llama.cpp /
OpenRouter / نقطة نهاية مخصّصة
(تظهر المزوّدون التجريبيون مثل Copilot خلف مفتاح التجريبي). والنقر على واحدة
يتصل بذلك المزوّد على المنسّق المشترك الواحد (منفذ جسر واحد يخدم كل المزوّدين؛
ويختار كل تبويب لوحة مزوّده أثناء المصافحة). ويعيش عنوان الجسر تحت **خيارات
متقدّمة** للمنسّقين الذين يديرهم المستخدم.

تبديل المزوّدين **يبدأ محادثة جديدة** — لا تُشارَك المحادثات عبر المزوّدين —
وتنشر اللوحة ملاحظة نظام تقول ذلك. ويتبع العنصر النائب في مربع الكتابة الخلفية
النشطة («اسأل Claude…» / «اسأل Ollama…»).

## سجّل الدخول (مرة لكل مزوّد — أو لا تسجّل أصلًا)

* **Claude** — `claude` (أو `claude setup-token`) — OAuth على claude.ai (اشتراك).
* **ChatGPT (Codex)** — `codex login` — تسجيل دخول ChatGPT (اشتراك)؛ يعمل عبر
  app-server الخاص بـ Codex.
* **ChatGPT (OAuth مباشر)** — لا خطوة إضافية إن كنت قد شغّلت `codex login`
  يومًا: تعيد خلفية `chatgpt` استخدام `~/.codex/auth.json` وتتحدّث إلى ChatGPT
  مباشرة (بلا عملية Codex). إن قال الإقرار إن ملف المصادقة ناقص، شغّل
  `codex login` مرة واحدة.
* **Gemini** — `gemini` — تسجيل دخول Google. لاحظ أن تسجيل الدخول الفردي المجاني
  إلى Google أُحيل إلى التقاعد في 2026-06-18: تحتاج خلفية Gemini CLI الآن إلى
  `GEMINI_API_KEY` أو حساب مؤسسي/Code Assist. والمشتركون الأفراد: استخدم
  **Antigravity** أدناه.
* **Antigravity (اشتراك Google)** — ثبّت واجهة Antigravity الرسمية من
  [antigravity.google](https://antigravity.google)، وشغّل `agy` مرة واحدة وأكمل
  تسجيل الدخول بحساب Google (مستويات AI Pro/Ultra والمجانية). تقود الخلفية
  `agy -p` لكل دور مع استمرارية محادثة `--continue`، وتقرأ كتالوج النماذج الحيّ
  من `agy models`، وتوصل أدوات ComfyUI + MCP اللوحة عبر ملف
  `.agents/mcp_config.json` في مساحة العمل آمن الدمج. قدرات مخفَّضة بالتصميم
  (لا تدفّق أحداث مقروء آليًا موثَّق): يتدفّق نص الإجابة النهائية، لكن لا تقدّم
  لكل أداة ولا إدخال صور. وتستخدم استمرارية المحادثة `agy --continue` (آخر
  محادثة للحساب)، فاشغّل تبويب antigravity **واحدًا** في كل مرة — فتبويب ثانٍ،
  أو جلسة `agy` تفاعلية في طرفية، يستطيع سرقة الخيط.
  يثبّت `COMFYUI_MCP_ANTIGRAVITY_MODEL` نموذجًا،
  ويشير `COMFYUI_MCP_ANTIGRAVITY_PATH` إلى تثبيت غير قياسي.
* **Grok** — ثبّت واجهة Grok (xAI / Grok Build) وشغّل `grok` مرة واحدة لتسجيل
  الدخول؛ تقوده الخلفية في وضع ACP. وتعرض اللوحة أيضًا صف تسجيل دخول OAuth داخل
  اللوحة حين لا يكون Grok جاهزًا.
* **Kimi (موصى به)** — ثبّت [واجهة Kimi Code](https://moonshotai.github.io/kimi-code/)
  وشغّل `kimi login` (تدفّق رمز جهاز)؛ وتعيد الخلفية استخدام ذلك الدخول من
  `~/.kimi-code/credentials/kimi-code.json` (ما يزال المسار القديم `~/.kimi`
  يُقرأ احتياطيًا). يستخدم هذا **اشتراك Kimi Code** لديك وهو الطريقة المفضّلة
  لتشغيل Kimi — أرخص وأعلى حدًا من مفتاح Moonshot بالرمز أدناه. اضبط
  `KIMI_API_KEY` بدلًا من ذلك فقط للاستخدام في CI / بلا واجهة، أو
  `KIMI_CODE_HOME` للإشارة إلى دليل اعتمادات غير افتراضي (ما يزال `KIMI_SHARE_DIR`
  محترمًا لمن ضبط الاسم الأقدم). ويُعرَض تسجيل دخول OAuth داخل اللوحة أيضًا.
* **GLM** — اضبط `ZAI_API_KEY` (Z.AI Coding Plan؛ يُقبل أيضًا `GLM_API_KEY` /
  `ZHIPUAI_API_KEY`). بلا واجهة سطر أوامر.
* **Kimi K3 (Moonshot)** — **البديل بالدفع لكل رمز** حين لا يكون لديك اشتراك
  Kimi Code (فضّل مسار **Kimi** أعلاه إن كان لديك). اضبط
  `MOONSHOT_API_KEY` من
  [platform.kimi.ai](https://platform.kimi.ai/console/api-keys). بلا واجهة سطر
  أوامر. هذا مفتاح **منصة** Moonshot (النموذج الافتراضي `kimi-k3`، والأساس
  `https://api.moonshot.ai/v1`) — متميّز عن مزوّد **Kimi** أعلاه، الذي هو اشتراك
  برمجة Kimi Code. تجاوز النموذج بـ `COMFYUI_MCP_MOONSHOT_MODEL` والأساس بـ
  `COMFYUI_MCP_MOONSHOT_BASE_URL`.
* **MiniMax** — اضبط `MINIMAX_API_KEY` من
  [platform.minimax.io](https://platform.minimax.io/console/api-keys). بلا واجهة
  سطر أوامر. النموذج الافتراضي `MiniMax-M3` والأساس الافتراضي نقطة النهاية
  العالمية `https://api.minimax.io/v1` (متوافق مع OpenAI، مصادقة Bearer عادية).
  لمنطقة الصين، اضبط `COMFYUI_MCP_MINIMAX_BASE_URL=https://api.minimaxi.com/v1`.
  تجاوز النموذج بـ `COMFYUI_MCP_MINIMAX_MODEL`.
* **Copilot (تجريبي)** — سجّل الدخول من صف المزوّد التجريبي في اللوحة. متوقّف
  افتراضيًا؛ فعّل الخلفيات التجريبية في الإعدادات أولًا.
* **Ollama (محلي)** — بلا تسجيل دخول. ثبّت Ollama واسحب نموذجًا يدعم استدعاء
  الأدوات (`ollama pull gemma4:e4b`). ولنموذج **مستضاف** بدلًا من ذلك، اضبط
  `COMFYUI_MCP_OLLAMA_API=openai`، و`COMFYUI_MCP_OLLAMA_BASE_URL` (مثل
  `https://openrouter.ai/api/v1`)، ومفتاح API
  (`COMFYUI_MCP_OLLAMA_API_KEY` / `OPENROUTER_API_KEY`).
* **نقطة النهاية المخصّصة** — بلا تدفّق تسجيل دخول. وجّهها إلى أي `/v1` متوافق
  مع OpenAI (vLLM أو DeepSeek أو Together أو Azure أو llama-server بعيد) في
  الإعدادات ← نقطة النهاية المخصّصة؛ وأضف مفتاح API هناك إن كان الخادم يطلبه
  (إدخال مخفي، يُخزَّن 0600 لدى المنسّق). راجع
  [النماذج المحلية ← نقطة النهاية المخصّصة](/docs/docs/ar/local-llms#نقطة-النهاية-المخصّصة-أي-خادم-متوافق-مع-openai).

### الجاهزية والتهيئة عند الاتصال

تتراجع كل شريحة مزوّد **بصدق** حين لا تكون جاهزة: يخبرك إقرار الاتصال بالخطوة
الناقصة بالضبط («اضبط ZAI\_API\_KEY…»، «شغّل `codex login`…»، «سجّل الدخول من
الصف التجريبي…») بدل الفشل عند أول رسالة منك — ومزوّد تظهر اعتماداته لاحقًا
ينقلب إلى جاهز عند الاتصال التالي بلا إعادة تشغيل.

تكتشف اللوحة جاهزية كل مزوّد عند **الاتصال** — واجهة سطر أوامر في `PATH` إضافةً
إلى تسجيل دخول على القرص لمزوّدي الاشتراك، وملف تنفيذي حاضر لـ Ollama (تتراجع
خدمة متوقّفة بلطف عند الاتصال). ولا تحتاج إلى تخمين أي مزوّد معدّ:

* تظهر **بطاقة تهيئة** فقط حين **لا يكون أي** مزوّد جاهزًا، بخطوة الإعداد لمرة
  واحدة لكل مزوّد (ولـ Ollama ذلك تثبيت + سحب نموذج، لا تسجيل دخول).
* إن لم يكن اختيارك المحفوظ صالحًا للاستخدام، فإن اللوحة **تنتقل تلقائيًا إلى
  مزوّد جاهز** (ويُستعاد تفضيلك المحفوظ متى أعددته).
* يصير صف مزوّد غير جاهز إجراء **«إعداد»** يبذر موجّه إعداد للوكيل العامل.

## كيف يُقاد كل مزوّد

يعتمد المنسّق على منفذ **`AgentBackend`** محايد تجاه المزوّد (حقن اعتماديات).
وكل مزوّد محوّل:

|                         | Claude                           | ChatGPT (Codex)                           | Gemini                                    | Ollama / أي نموذج لغوي                                                                                          |
| ----------------------- | -------------------------------- | ----------------------------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
| السائق                  | Claude Agent SDK — جلسة بث دائمة | JSON-RPC لـ `codex app-server`            | `gemini --acp` (بروتوكول عميل الوكيل)     | HTTP مباشر — Ollama `/api/chat` أو أي `/v1/chat/completions` متوافق مع OpenAI؛ تملك الخلفية الحلقة الوكيلة كلها |
| المصادقة                | OAuth على claude.ai              | تسجيل دخول ChatGPT                        | تسجيل دخول Google                         | لا شيء (محلي) / مفتاح bearer (مستضاف)                                                                           |
| أدوات لوحة الرسم الحيّة | خادم MCP لـ SDK داخل العملية     | MCP عبر HTTP قابل للبث على العنوان المحلي | MCP عبر HTTP قابل للبث على العنوان المحلي | [موجّه الأدوات الستة](/docs/docs/ar/local-llms) عبر MCP العنوان المحلي نفسه                                          |
| MCP `comfyui` بلا واجهة | داخل العملية                     | stdio معلَن في الإعداد                    | stdio معلَن في الإعداد                    | عملية فرعية stdio في الوضع المضغوط خلف الموجّه                                                                  |

تعيش تعريفات أدوات `panel_*` في **قائمة مشتركة واحدة**، مسجَّلة على كل مسار،
فيكون سطح لوحة الرسم الحيّة (بما فيه بوابة تأكيد العمليات المدمِّرة لـ
`panel_clear` / `panel_restart_comfyui`) متطابقًا عبر المزوّدين. والتكافؤ تلقائي
— لا يعيد أي مسار تنفيذ أداة. وتلفّ خلفية Ollama/أي-نموذج-لغوي إضافةً سطحي
الأدوات خلف ست أدوات موجّه حتى لا تغرق النماذج الصغيرة في المخططات — راجع
[النماذج المحلية والوكلاء الآخرون](/docs/docs/ar/local-llms).

## مصفوفة القدرات

يسمح واصف قدرة لكل خلفية للوحة بـ **التراجع بلطف** عن الميزات التي لا يستطيع
مزوّد فعلها:

| القدرة                           | Claude          | ChatGPT (Codex)        | Gemini               | Ollama / أي نموذج لغوي                    |
| -------------------------------- | --------------- | ---------------------- | -------------------- | ----------------------------------------- |
| قناة دائمة (دفع أدوار عبر الزمن) | ✅               | ✅ (خيط + `turn/start`) | ✅                    | ✅ (سجل في الذاكرة)                        |
| دلتا البث                        | ✅               | ✅                      | ✅                    | ✅ (NDJSON / SSE)                          |
| مقاطعة أثناء الدور               | ✅               | ✅ (`turn/interrupt`)   | ✅ (`session/cancel`) | ✅ (إجهاض الطلب)                           |
| استرجاع المحادثة (تفرع عند دور)  | ✅ `forkSession` | ⚠️ معطَّل              | ⚠️ معطَّل            | ⚠️ معطَّل                                 |
| أدوات MCP داخل العملية           | ✅               | ❌                      | ❌                    | ❌ (موجّه فوق عملاء MCP)                   |
| تعداد النماذج                    | ✅               | ✅ (`config/read`)      | كتالوج ثابت          | ✅ (`/api/tags` أو `/models`)              |
| الرؤية (إدخال صور)               | ✅               | ✅                      | ✅                    | ❌ (يعتمد على النموذج؛ متوقّف الآن)        |
| إدخال الصوت                      | ❌               | ❌                      | ❌                    | ✅ Ollama (مفحوص) · ⚠️ غيرها (غير متحقَّق) |
| أوامر المزوّد المختصرة           | ✅               | ❌                      | ❌                    | ❌                                         |

### إدخال الصوت — أي الخلفيات، بصراحة

يستطيع الوكيل قيادة أدوات الصوت في ComfyUI على كل خلفية. أمّا **سماع** ملف صوتي
فأضيق، والجدول أعلاه محافظ عمدًا لأن مرفقًا يُسقَط بصمت أسوأ من مرفوض:

* **Ollama (خلفية `ollama`، `/api/chat` الأصلي) — مدعوم، مفحوص القدرة، ومتحقَّق
  من طرف إلى طرف.** يركب الصوت مصفوفة `images[]`، وهي حامل Ollama نفسه للصوت لا
  حيلة. تأكَّد حيًّا ضد Ollama محلي مع `gemma4:e2b`، الذي فرّغ WAV حقيقيًا.
  * **لكل نموذج، لا لكل مزوّد.** قبل إرسال أي شيء، تسأل الخلفية `POST /api/show`
    عمّا إذا كان *هذا* النموذج يبلّغ عن قدرة `audio`. إن لم يفعل، يُرفَض المرفق
    بالاسم، وتُقتبَس قائمة القدرات المبلَّغ عنها لك، وتُخبَر أي النماذج تستطيع
    السماع (`ollama pull gemma4:e2b` / `gemma4:e4b` / `nemotron3:33b`). لاحظ أن
    `GET /api/tags` يُرجع أيضًا مصفوفة `capabilities` و**ليست** الإجابة نفسها —
    بلّغ النموذج نفسه عن لا صوت هناك وصوت من `/api/show` — لذا يُستشار
    `/api/show` فقط.
  * تُعاد فحص القدرة في كل دور يحمل صوتًا، لأن وسم Ollama قابل للتغيير: يستطيع
    `ollama pull` استبدال الأوزان تحت الاسم نفسه، وقد يعيش حكم مخزَّن أطول من
    النموذج الذي وصفه.
* **LM Studio / llama.cpp / OpenRouter / GLM / Kimi / Moonshot / MiniMax /
  Copilot / نقاط النهاية المخصّصة المتوافقة مع OpenAI — محاوَل، غير مفحوص
  القدرة.** تتحدّث كلها `/v1/chat/completions`، الذي لا نقطة نهاية قدرة ليسألها،
  فيُرسل الصوت كجزء محتوى `input_audio` وتُخبَر، في ذلك الدور، أن التسليم
  **غير مؤكَّد**: *«لا أستطيع تأكيد أن النموذج يستقبلها فعلًا — إن لم يعكس الرد
  ما في الملف، فإنه لم يسمعه.»* والرفض بدل ذلك سيحرم الصوت عن كل نقطة نهاية
  ليس لديها واجهة قدرة فحسب؛ وحارس لا يستطيع العمل ليس حكمًا. وشُكِل
  `input_audio` نفسه مقابل نقطة نهاية Ollama المتوافقة مع OpenAI؛ وما إذا كان
  *مضيف طرف ثالث معيّن* يحترمه ليس شيئًا نستطيع فحصه، ولا ندّعي ذلك.
* **Claude، وChatGPT (Codex)، وواجهة Codex، وGemini، وGrok، وAntigravity، وpi**
  — لا إدخال صوت في هذا البناء. يُرفَض إرفاق الصوت قبل بناء الدور، وتُخبَر أنت
  والنموذج، بتسمية المزوّد وما سيعمل بدلًا من ذلك.

  على Gemini/Grok هذا حذف متعمَّد لا فجوة بروتوكول: *يعرّف* ACP كتلة محتوى
  `audio`، لكنه يتطلّب أن يعلن الوكيل قدرة موجّه `audio` أولًا، ولم يُرَ أي من
  الواجهتين يفعل ذلك. ومسار إرسال لا يمكن ممارسته أبدًا، نمط فشله مرفق لا يُخبَر
  المستخدم أنه لم يصل، أسوأ من رفض صادق — لذا لا يُشحن.

مفتاح **محجوب** عن *البكسلات*: يحجب الصور و**لا** يحجب الصوت.

يصل إنفاذ محجوب إلى **أدوات الوكيل الأصلية** أيضًا، لا سطح comfyui MCP فحسب:
تعمل خلفية Claude المدمجة ببوابة PreToolUse ترفض `Read`/`WebFetch` الخاصتين بها
على محتوى الصور (ملفات نقطية بالامتداد *وببايتات السحر*، وملفات PDF، ومخرجات
الدفاتر، وروابط ComfyUI `/view`) متى كان محجوب مفعَّلًا — تُقرأ حيًّا لكل
استدعاء، فيربط تبديل أثناء الجلسة استدعاء الأداة التالي مباشرة. ومسارات
API/المحلي (عائلة Ollama، وGLM، وKimi، ونقاط النهاية المخصّصة) تحمل سطح أدواتنا
فقط، فيغطّي تنظيف MCP إياها بالكامل. أمّا **مسارات واجهات سطر الأوامر** (Codex
وGemini وGrok وAntigravity وpi وCopilot) فتشغّل ثنائيات وكيلها الخاصة التي لا
نستطيع ربط أدوات ملفاتها المدمجة — وتفعيل محجوب هناك ينشر تحذيرًا ظاهرًا يقول
ذلك بالضبط، بدل الإيحاء بضمان لا نستطيع حفظه.

#### كيف يصل ملف صوتي إلى دور

يقبل المنسّق الصوت على إطار `message` في اللوحة بطريقتين:

```jsonc theme={null}
{ "type": "message", "text": "what key is this in?",
  "audio":  [{ "filename": "song.mp3", "type": "input" }],   // preferred
  "images": [{ "filename": "song.mp3", "type": "input" }] }  // also routed to audio
```

يوجد الشكل الثاني لأن بناء لوحة لا يعرف إلا عن `images` كان سيسلّم ملفًا صوتيًا
وإلا إلى جزء محتوى رؤية. وأي شيء بامتداد صوتي يُنقَل إلى مسار الصوت تلقائيًا —
بما فيها الصيغ التي لا نستطيع ترميزها (`.wma`، `.mid`، `.aiff`)، فتحصل على
«حوّله إلى واحد من…» بدل خطأ صورة.

وإرسال الملف نفسه في **كلي** المصفوفتين (كما يفعل المثال أعلاه) آمن: يُعرَّف
مرجع باسم الملف + المجلد الفرعي + النوع، فيُسلَّم مرة ويُعدّ مرة مقابل حد
مرفقين لكل دور. ولا يُخطَأ على أنه ملف ثانٍ ثم يُرفَض لأنه لا يتّسع.

<Note>
  يعيش **تحكّم مربع الكتابة** لاختيار ملف صوتي في اللوحة (`comfyui-mcp-panel`)،
  وهي مستودع منفصل — وذلك الجزء ليس في هذا الإصدار. حتى يهبط، العقد أعلاه هو ما
  يرسله عميل، ويُمارَس المسار من طرف إلى طرف من جانب المنسّق.
</Note>

مسار Ollama الأصلي أعلاه وحده متحقَّق من طرف إلى طرف، وهو الوحيد حيث يُثبَت
«يستطيع هذا النموذج السماع» لا يُفترَض. ومسار المتوافق مع OpenAI محاولة صادقة
بتحفّظ صادق؛ وكل شيء آخر في هذا القسم يصف رفضًا، لا قدرة.

**استرجاع المحادثة** (تفرع الدردشة رجوعًا إلى دور سابق) لـ Claude فقط؛ أمّا
استرجاع **الشيفرة/المخطط** (`/revert`، وضغط Esc مرتين، ولقطات لكل دور) فيعمل
على كل خلفية لأنه يعيش في المنسّق، لا المزوّد.

## مستوى الجهد عبر تبديل المزوّد

أداة اختيار الجهد/النموذج **لكل مزوّد**. ينجو جهد مختار من تبديل مزوّد بالتعيين
إلى أقرب مستوى صالح للخلفية الهدف (تفعل اللوحة وخلفيات المنسّق التعيين نفسه):

* **Claude:** `low` · `medium` · `high` · `xhigh` · `max`
* **ChatGPT (Codex):** `none` · `minimal` · `low` · `medium` · `high` · `xhigh` · `max` · `ultra`
  (`max` / `ultra` على نماذج فئة GPT-5.6)
* **Gemini / Ollama:** لا مقياس جهد يواجه المستخدم — تُخفى أداة الاختيار.

## تكافؤ المعرفة والتكلفة

لأن Claude وحده يستطيع تحميل مهارات أصلية، تُنشَر الخبرة المرفقة كأداة MCP واحدة
يستطيع أي خلفية استدعاءها — `list_packs`، التي تغطّي إجراءاتها المهارات
(`skill_list`، `skill_read`)، وحزم التثبيت (`list`، `read_workflow`) وقوالب
الخادم (`list_templates`) — إضافةً إلى حاجز GPU المحلي مقابل API المدفوع
(`action: "check_runtime"`) و`panel_load_workflow` دفعة واحدة. راجع
[المهارات والحزم وتكلفة التشغيل](/docs/docs/tools/skills-knowledge).

## اطّلع أيضًا

* [اللوحة الجانبية](/docs/docs/ar/panel) — تجربة اللوحة كاملة
* [النماذج المحلية والوكلاء الآخرون](/docs/docs/ar/local-llms) — موجّه الأدوات الستة، ومتطلبات النموذج، وإعداد Hermes/OpenClaw/Copilot
* [حلبة النماذج اللغوية](/docs/docs/ar/arena) — قيّم نموذجك على مهام ComfyUI حقيقية
* [المهارات والحزم وتكلفة التشغيل](/docs/docs/tools/skills-knowledge) — أدوات التكافؤ + التكلفة
* وثيقة التصميم: [`design/agent-backend-injection.md`](https://github.com/artokun/comfyui-mcp/blob/main/design/agent-backend-injection.md)
