لا شيء هنا يطلب منك كتابة شيفرة أو كتابة JSON أو تعلّم واجهة برمجية. إن كنت
قد طلبت من شخص «افتح سير عمل البورتريه لدي وارفع الخطوات إلى 30»، فأنت تعرف
الواجهة أصلًا.
الأداة شيء يستطيع الوكيل فعله، لا شيء تكتبه أنت
وحده، لا يستطيع نموذج الدردشة إلا إنتاج نص. يستطيع وصف سير عمل؛ ولا يستطيع فتح واحد. الأداة إجراء محدّد ومسمّى نسلّمه للنموذج حتى يصل فعلًا إلى ComfyUI لديك — تحميل ملف، وإدراج معالجة في قائمة الانتظار، وتثبيت حزمة عقد، والنظر إلى الصورة التي خرجت. ولا يحق للنموذج اختراع هذه الإجراءات. يحصل على قائمة ثابتة، وكل عنصر في القائمة يقول بالضبط ما يحتاجه. لا تختار أنت من تلك القائمة أبدًا. تقول ما تريد، بالكلمات التي تأتي طبيعيًا، ويختار الوكيل.
لاحظ الصف الثاني: جملة واحدة، أداتان، بترتيب لم يكن عليك معرفته. وهذا بيت القصيد
من الترتيب كله. لا يُتوقَّع منك أن تعرف أن إيجاد ملف وقراءة ملف عمليتان منفصلتان.
إذًا، ما فائدة كل هذا JSON في صفحات المرجع؟
تعرض كل صفحة أداة كتلة كهذه:تأتي الأدوات من مكانين
هناك سطحان، وهما موجودان لأنهما يجيبان عن أسئلة مختلفة.اللوحة الجانبية
تعيش داخل ComfyUI، في تبويب الوكيل. أدواتها (
panel_*) تعمل على المخطط
الذي تنظر إليه الآن — لوحة الرسم الفعلية، بتغييراتك غير المحفوظة عليها.عميل خارجي
Claude Desktop، أو Claude Code، أو محرّر، أو هاتفك. أدواته تعمل على
الخادم: ملفات على القرص، وقائمة انتظار المهام، والنماذج، وحزم العقد،
وعملية ComfyUI نفسها.
- قراءة المخطط أمامك (
panel_graph_outline) - تشغيله، تمامًا كما لو ضغطت Queue Prompt بنفسك (
panel_run) - توصيل عقدة، وتغيير عنصر تحكّم، وإخبارك لماذا احمرّت عقدة (
panel_add_node،panel_set_widget،panel_get_errors) - تحميل سير عمل كامل على لوحة الرسم، أو حفظ ما هناك (
panel_load_workflow،panel_save_workflow)
أداة واحدة، عدّة مهام
ستلاحظ أن بعض الأدوات تأخذaction:
workspace موضوع — أي تثبيت ComfyUI نتحدّث عنه —
وaction تقول أي سؤال تطرحه عن ذلك الموضوع: اقرأه، أو غيّر الافتراضي، أو اسرد
ما هو متاح.
يُقرأ تمامًا كالكلام العادي، حيث الفعل والمفعول كلمتان منفصلتان:
لم يُحذف شيء
هذا الشكل جديد نوعًا ما، ويسهل قراءته على أنه اقتطاع للقدرة. وهو ليس كذلك، والخلط يستحق صرفه مباشرة، لأنه ظهر فعلًا. كان هناك أداة واحدة لكل سؤال — اسم منفصل لقراءة مساحة عمل، وآخر لضبطها، وآخر لسردها. اختفت تلك الأسماء، وإن راقبت عدد الأدوات ستراه يهبط، بحدّة. ما حدث فعلًا هو أن الأدوات ذات الصلة دُمجت، لا حُذفت:
الشيفرة نفسها في الأسفل، والسلوك نفسه، والإجابات نفسها. تغيّرت اللافتة في الواجهة
فقط.
والسبب أن القائمة طالت بما يكفي لتؤذي. يجب تسليم الوصف الكامل لكل أداة إلى النموذج
قبل أن يستطيع الاختيار، وبعد حجم معيّن يتدهور الاختيار نفسه — فالنماذج الأصغر
خصوصًا تبدأ باختيار جار يبدو معقولًا بدل الصحيح. أدوات أقل وأوسع مع
action
واضحة تصلح ذلك قياسًا. ويعني أيضًا أن النموذج ينفق انتباهه على طلبك بدل قراءة
كتالوج.
لا ينبغي أن تلاحظ أيًا من هذا. لم تكتب الاسم القديم أنت أيضًا؛ كنت تقول «أي
ComfyUI أنا عليه؟»، وما يزال ذلك يعمل.
إن مدّ دليل أقدم أو ذاكرة النموذج نفسه يده إلى اسم لم يعد موجودًا، تحصل على
خطأ محدّد يسمّي البديل بدل «unknown tool» فارغ — مثلًا: removed in 0.49.0.
Call workspace (action:“get”) instead. ويستطيع الوكيل عادة تصحيح نفسه وإعادة
المحاولة دون أن تفعل شيئًا.
طلب شيء مختلف
تسرد كل صفحة أداة معاملات —max_chars، limit، depth، fields. وسؤال عادل
أين يُفترَض أن تكتبها، والإجابة الصادقة: في أي مكان. لا يوجد مربع إعدادات لـ
max_chars، لأنه ليس إعدادًا. إنه وسيط يملؤه الوكيل، من جديد، في كل مرة
يستدعي الأداة.
وهذا لا يخرجك من الأمر. إنه يغيّر شكل التحكّم:
لا تضبط معاملًا. تطلب واحدًا — في الجملة نفسها التي كنت ستكتبها على أي حال.
طريقتان للطلب
كلاهما يعمل. يفشلان على نحو مختلف، وهذا السبب الوحيد لمعرفة الاثنين.
تسمية الأداة والوسيط ليست الشكل الصحيح — إنها الشكل القسري. أبقها لإعادة
المحاولة.
عندما تُقطع الإجابة
تُسقَف القراءات الطويلة حتى لا يبتلع مخطط هائل المحادثة كلها. ويمكن لسقفين مختلفين أن يوقفا القراءة نفسها — عدد العقد المسرودة (limit) وميزانية الأحرف
(max_chars) — ورفع الذي لم يكن المشكلة لا يغيّر شيئًا، وهذا يُقرأ تمامًا كما لو
أن إعادة المحاولة فشلت.
لا يُتوقَّع منك أن تعرف أيهما. على ملف محفوظ، تسمّي الملاحظة الذراع الذي أُطلق
وتستبعد الآخر، بالحرف:
… truncated at 40 of 300 byوحين تكون الذراع أصلًا عند سقفها تقول ذلك بدل أن ترسلك لرفعها مجددًا، لأنه لم يتبقَّ شيء لرفعه.limit=40 — raiselimitup to 200, or narrow withtypes/where/ids/depth.max_charsis not the constraint here.
على لوحة الرسم الحيّة (
panel_query_graph) تُنفَّذ القراءة نفسها بنسخة اللوحة
الخاصة من هذا المحرّك، التي لم تلحق بعد بتلك الصياغة. إن سمّت ملاحظة هناك وسيطًا
ورفعه لم يغيّر شيئًا، جرّب الآخر قبل أن تستنتج أن الأداة معطوبة.قُطع ذلك — اقرأ الملاحظة وأعد الاستعلام نفسه، رافعًا الحد الذي تسمّيه.
أين تقع الجدران
هذه الأرقام للأداتين اللتين تقرآن مخططًا بميزانية —panel_query_graph (لوحة
الرسم الحيّة) وget_workflow مع action: "query" (ملف محفوظ):
على هاتين الأداتين، يُرفَض الطلب بعد سقف كوسيط غير صالح بدل أن يُقرَّب بهدوء إلى
الأسفل، فيعلم الوكيل فورًا ويستطيع تصحيح نفسه. والأرقام ليست عامة أيضًا: تأخذ
عدّة أدوات أخرى
max_chars وتضع سقفها الخاص، المذكور في وصف تلك الأداة.
النطاق يتفوّق على الميزانية
رفع السقف هو الشيء الثاني الذي تجرّبه، لا الأول. على سير عمل من 600 عقدة، تشتري ميزانية أكبر في الغالب المزيد من العقد الخاطئة، ودفن الإجابة بين مئات غير ذات صلة يفسد الرد حتى حين تتسع تقنيًا. ضيّق أولًا، بالكلمات التي تأتي طبيعيًا:
ثم، إن ظلّت مقطوعة، وسّع.
عندما يقول لا
رفض أداة ليس عادة خطأً. فمعظم الرفض حارس أُطلق لأن الاستدعاء كان سيفعل شيئًا لم تطلبه.«رفض ولا أعرف السبب»
سترى نصًا بلغة واضحة بدل تتبّع مكدّس — شيئًا يسمّي ما لم يرد فعله وما تفعله بدل ذلك. اقرأه على أن الوكيل حذر، لا عالق. رفض صادق شائع:- لا يستطيع تمييز أي سير عمل تقصد. أكثر من تبويب مفتوح، أو ليس للمخطط هوية محفوظة بعد. احفظه، أو قل أيّهما.
- كان سيستبدل شيئًا. اطلب اسم ملف جديدًا فيمضي.
- الشيء غير موجود فعلًا. ملف نموذج، أو حزمة عقد، أو خادم قيد التشغيل.
«هذه اللوحة قديمة جدًا»
أشيع رفض له إصلاح حقيقي. يُقرأ تقريبًا هكذا:This ComfyUI-MCP panel is too old for ”…” — update the ComfyUI-MCP panel, then reconnect.اللوحة الجانبية وهذا الخادم قطعتان منفصلتان تُشحنان منفصلتين، فيمكن لإحداهما أن تتأخّر عن الأخرى. وحين يطلب الخادم شيئًا لا تستطيع اللوحة المثبَّتة فعله بأمان، يرفض بدل التخمين — فلوحة قديمة لا تستطيع تأكيد أي سير عمل تهبط عليه أمر قد تطبّق تعديلك على التبويب الخطأ، فتُحبَس على القراءات حتى تُحدَّث. الإصلاح ثلاث خطوات، والثالثة هي التي يتخطّاها الناس:
1
حدّث اللوحة
اطلب من الوكيل تحديثها (
install_comfyui(action:'panel', panel_action:'update'))، أو افعلها
من ComfyUI-Manager، حيث تُدرَج باسم comfyui-agent-panel.2
أعد تشغيل ComfyUI
التحديث لا يعيد تشغيل أي شيء وحده. اطلب من الوكيل، أو أعد تشغيله بنفسك.
3
حدّث تبويب متصفح ComfyUI تحديثًا قسريًا
Ctrl+Shift+R (Cmd+Shift+R على Mac). يخزّن متصفحك شيفرة اللوحة القديمة،
وإعادة التشغيل وحدها لن تهزّها. تخطَّ هذه فيعود الرسالة نفسها فورًا، ولهذا يبدو
أن التحديث فشل حين لم يفعل.
«لا توجد لوحة متصلة»
مشكلة مختلفة، ورسالة متشابهة المظهر. تعني أن الوكيل الخارجي لا يجد تبويب متصفح ComfyUI لديك. ويكاد يكون دائمًا واحدًا من:- ComfyUI غير مفتوح في متصفح أصلًا — افتحه وانظر إلى تبويب الوكيل في الشريط الجانبي.
- أُعيد تشغيل ComfyUI للتو، أو أعدت تحميل التبويب. ذلك يسقط الاتصال. أعد تحميل تبويب ComfyUI فيعود فورًا.
- تبويب الوكيل مفتوح لكنه لم يتصل أبدًا. تلتصق اللوحة حين تختار مزوّدًا وتنقر اتصال، لا عند التحميل أبدًا، فتبويب مفتوح حديثًا لا يعرض شيئًا هو الحالة العادية لا عطلًا.
- اللوحة غير مثبَّتة بعد. راجع دليل اللوحة.
عندما لا يقول شيئًا
الفشل الأصعب هو الذي لا خطأ فيه على الإطلاق. لا يستدعي الوكيل أداة، ولا يرفض، ولا يشكو. يكتفي بالكلام: يصف ما يحتويه سير عملك على الأرجح، أو يعرض كتابة سكربت لك. يبدو مفيدًا، ولم ينظر إلى أي شيء أبدًا. ثلاث حالات مختلفة تمامًا تنتج ذلك السلوك نفسه، ومن حيث تجلس لا يمكن تمييزها:غائبة
لم يحصل عميلك على الأدوات أصلًا. ليست في القائمة التي يسلّمها للنموذج، فلا
يوجد ما يُستدعى.
محجوبة
لدى عميلك الأدوات ولن يدع النموذج يشغّلها. يُوقَف الاستدعاء داخل عميلك.
لم تُطلب
كل شيء يعمل. الشيء الذي أردته موجود تحت اسم لم يرد ذكره قط، فلم يمد أحد يده
إليه.
سؤالان يفرّقان بينها
اسأل الوكيل، بكلمات واضحة:1
اسأل عمّا يستطيع رؤيته
ما الأدوات التي لديك من comfyui-mcp؟ اسرد الأسماء فقط.قائمة بعشرات الأسماء أمر طبيعي وصحي — هذا هو السطح المباشر، وهو الافتراضي منذ 0.50.0.ثلاثة أسماء —
list_tools، describe_tool، call_tool — أيضًا طبيعية
وصحية. هذا هو الوضع المضغوط،
الذي تحصل عليه بتمرير --compact، والذي ما تزال النماذج المحلية الصغيرة
تختاره تلقائيًا. وبقية الكتالوج على بعد استدعاء list_tools واحد، فاسأله
بتشغيل ذلك وسترى القائمة الحقيقية. ولا تعني أي إجابة أن شيئًا محجوب.لا أسماء على الإطلاق، أو «ليست لدي أي أدوات لـ ComfyUI»، تستبعد الحالة
الثالثة ولا شيء غيرها. وهي لا تعني غائبة. يمكن لسياسة أذونات أن تحجب
الأدوات عن القائمة التي يُعرَض للنموذج، فخادم مثبَّت ومتصل ويعمل ينتج هذه
الإجابة بالضبط. والغائبة والمحجوبة لا يمكن تمييزهما في هذه الخطوة، وهذا هو
الفرع الذي كلّف مستخدمًا أيامًا — لكونه واثقًا أنه التوصيل.فحص واحد يضيّق، وهو ليس شيئًا يستطيع الوكيل رؤيته: افتح قائمة خوادم MCP
الخاصة بعميلك — المكان الذي يعرض أي خوادم اتصل بها، وهي قائمة مختلفة عن
الأدوات التي يسلّمها للنموذج.- comfyui-mcp ليس هناك، أو يظهر فاشلًا → غائبة. مشكلة توصيل من جانب العميل، لا عطل لوحة أو خادم. وتنقسم مجددًا إلى اثنتين — لم يُوصَل قط، أو مضيف لا يستطيع حملها أصلًا — والقائمة أدناه تفرّق بينهما.
- موجود ومتصل، وما يزال النموذج لا يسرد شيئًا → وصلت الأدوات إلى عميلك. وأين توقّفت بعد ذلك ما يزال مفتوحًا: قد تُحجَب عن النموذج بقاعدة أذونات، أو ربما فشل النموذج ببساطة أو رفض سردها، وهذا يبدو متطابقًا من هنا. لا تبدأ بتخفيف الأذونات على هذا وحده. إن أظهرت قائمة الخوادم تلك أيضًا أي أدوات أخذتها من comfyui-mcp، فهذا يحسمه: أدوات مسرودة هناك لا لدى النموذج تعني أن النموذج هو المشكلة، لا أذوناتك؛ ولا شيء مسرود هناك يعني أنها تُصفَّى قبل أن يراها النموذج. وإن لم يعرض عميلك ذلك — وكثير لا يفعل — فلا شيء في متناولك يميّز الاثنين هنا، والخطوة 2 فرصة أفضل، لأن الرفض يعود بكلمات.
2
اطلب منه أن يجرّب، وأن يبلّغ حرفيًا
الآن استدعِ تلك التي تستخدمها للشيء الذي لا يعمل، والصق بالضبط ما يعود — بما في ذلك أي خطأ. لا تلتف حوله.تفصيلان في تلك الجملة يقومان بالعمل.الأداة التي تستخدمها للشيء الذي لا يعمل، تحديدًا. فقواعد الأذونات تُكتب عادة لكل أداة، فنجاح أداة مختلفة لا يثبت شيئًا عن تلك التي تهتم بها — وهذا بالضبط كيف يختبئ حجب. إن كانت لوحة الرسم هي ما لا يُقرأ، يجب أن يكون الاختبار قراءة لوحة رسم.لا تلتف حوله. نمط الفشل كله وكيل يلتف بهدوء حول عائق بدل تسميته، وإن تُرك لنفسه سيفعل ذلك مجددًا.
- نتيجة حقيقية — تلك الأداة تعمل. أنت في الحالة الثالثة.
- «رُفض ذلك» / «غير مسموح» / «أحتاج إلى إذن» — محجوبة، داخل عميلك. وهذا قاطع: سأل الوكيل ورُفض.
- «ليست لدي تلك الأداة» — غائبة أو محجوبة، ما تزال. أداة محجوبة وأداة ناقصة تبدوان متطابقتين من مقعد النموذج، فلا تتصرف على هذا وحده: أعده إلى قائمة خوادم الخطوة 1، وإن لم تُظهر تلك القائمة أدوات لكل خادم أيضًا، فلا شيء تصل إليه يفرّق الاثنين والخطوة الصادقة التالية هي السؤال في متتبّع المشكلات بدل البدء بتغيير الإعدادات.
- المزيد من النثر، وما يزال لا استدعاء — اسأل بصراحة: «هل استدعيت أداة؟ إن لم تفعل، لماذا؟» ووكيل يراوغ مرتين يعمل عادة حول شيء لم يذكره.
ما نستطيع رؤيته من هنا، وما لا نستطيع
الواقعة نفسها تقطع الاتجاه الآخر، وهذا الجزء الذي يضلل الناس: سجل صامت ليس دليلًا على أنه لم يُحاوَل شيء. فالغائبة والمحجوبة ولم-تُطلب كلها تبدو صمتًا من هنا. ولهذا فإن السؤالين أعلاه هما التشخيص الحقيقي. يعملان لأنهما يسألان المشارك الوحيد الذي كان في الغرفة — وكيلك — أن يقول ما جرّبه، ويرفضان خيار الالتفاف حول الإجابة.من أين تأتي كل إجابة عادةً
محجوبة — قواعد أذونات عميلك نفسه. في Claude Code ذلك هو كتلةpermissions
في settings.json (~/.claude/settings.json، أو .claude/settings.json الخاص
بالمشروع)؛ وتظهر أدوات MCP هناك بأسمائها ذات النطاق، mcp__comfyui__<tool>.
وقائمة allow صارمة لا تذكرها أبدًا توقف كل استدعاء قبل إرساله. وهذه الحالة التي
كلّفت مستخدمًا عدّة أيام: بدت الأدوات كأنها تعمل، بالضبط لأن الأخطاء التي كان
يطاردها لم يكن ممكنًا أن تظهر.
غائبة، وقابلة للإصلاح — لم يُوصَل قط. يتحدّث العميل MCP لكنه لم يُخبَر عن هذا
الخادم، أو أُخبر والمدخل خاطئ. وهذه الشائعة وهي تعديل إعدادات؛ راجع
البدء السريع للمدخل الذي يتوقّعه عميلك.
غائبة، وغير قابلة للإصلاح — مضيف بلا عميل MCP أصلًا. بعض الوكلاء لا تتحدّث
MCP، ولا يغيّر أي قدر من الإعداد ذلك. pi واحد منها: لديه أدوات صدفة ومحرّر مدمجة
خاصة به ولا عميل MCP، فلا يمكن تسليمه أدواتنا مهما ثُبِّت غيره. وتقول اللوحة ذلك
صراحة حين تختاره — «ليس لدى pi أدوات ComfyUI (لا يوجد MCP)». وذلك السطر هو
الإجابة، لا عَرَضًا لتشخيصه؛ والإصلاح اختيار خلفية مختلفة.
إمّا — شيء يجلس في الوسط. بوابة أو وكيل أو موجّه يحمل حركة MCP لديك قد يمرّر
جزءًا فقط من السطح. إن اختلف الكتالوج وعمّا يعمل فعلًا، اشتبه في الوسط.
إن تبيّن أنها الحالة الثالثة
عندها لم يكن شيء معطوبًا ولم يُخطئ أحد في الإعداد: كانت قدرة موجودة ولم يكن لديك سبيل لمعرفة ذلك. وهذا فشلنا لا فشلك، ويستحق إخبارنا — اطلب من الوكيل تقديمه فسيرفق إعدادك نيابة عنك. ميزة لا يستطيع أحد إيجادها هي، من حيث تجلس، ميزة لم نشحنها.إذا كنت تشغّل نموذجًا محليًا صغيرًا
تسليم القائمة كلها لنموذج يكلّف كثيرًا من القراءة قبل أن يقول كلمة. وعلى نموذج مستضاف كبير هذا مقبول. وعلى نموذج صغير يعمل على جهازك غالبًا ما يكون الفرق بين العمل وعدمه. لذا فافتراضيًا يحصل الوكيل على ثلاث أدوات بدل المجموعة الكاملة: واحدة لتصفّح الكتالوج، وواحدة للنظر في أداة واحدة بالتفصيل، وواحدة لتشغيلها. يجلب ما يحتاجه، حين يحتاجه، بدل قراءة كل شيء مقدمًا. لا تحتاج إلى فعل أي شيء للحصول على هذا — إنه الافتراضي. والضوابط موجودة إن أردتها:COMFYUI_MCP_TOOL_MODE=compact أو
COMFYUI_MCP_TOOL_MODE=full.
المقايضة جولتان إضافيتان قبل أول إجراء حقيقي، مقابل نموذج يبقى لديه متسع للتفكير.
وعادة ما تكون النماذج الكبيرة أسعد مع --full. راجع النماذج المحلية
لمعرفة أي النماذج تتحمّل أي وضع.
إلى أين بعد ذلك
البدء السريع
ثبّته وولّد أول صورة لك.
اللوحة الجانبية
وكيل ComfyUI الداخلي، وما يستطيع فعله بلوحة رسمك.
مرجع الأدوات
كل أداة، مع أمثلة عملية لما يبدو عليه استدعاء حقيقي.
حل المشكلات
حين لا يكون رفضًا وشيء معطوب فعلًا.