أخيرًا ما طلبتموه قد وصل! Ralph TUI، تصور Ralph Loop
أخيرًا ما طلبتموه قد وصل! Ralph TUI، تصور Ralph Loop
لقد كتبت سابقًا مقالًا تعليميًا حول ralph-loop، وبعد أن قام العديد من الأصدقاء بتشغيله، كانت ردود أفعالهم متطابقة: إنه رائع، أخيرًا يمكن لـ Claude Code أن يعمل لفترة طويلة. ولكن في بعض الأحيان عندما تلاحظ أنه يبدو ثابتًا، لا يسعك إلا أن تشعر بالقلق: "هل يتقدم حقًا، أم أنه يدور في مكانه؟"
هذا هو سبب قيامي مؤخرًا بتطوير ralph-tui.

ralph-tui لا يفرض ربط Claude Code، بل يرث ويطور جوهر ralph loop، ويجعل تنفيذ المهام والعملية مرئية، مما يقلل بشكل كبير من عتبة جعل النماذج الكبيرة تعمل لفترة طويلة. يمكنك تمامًا توصيل وكيل آخر، ونموذج آخر، نموذج محلي الصنع، رخيص، يمكنك تشغيله على المدى الطويل. مع ralph-tui، بالنسبة لنا نحن الأشخاص العاديين، فإن الأهمية لا تقل عن التبديل من ناقل حركة يدوي إلى ناقل حركة أوتوماتيكي مع مثبت السرعة.
ما هو بالضبط؟
يمكنك فهم ralph-tui على أنه "منظم تكرار لوكيل ترميز الذكاء الاصطناعي"، لكنه لا يكتفي بـ "القدرة على التشغيل"، بل يهتم أكثر بـ "أن تكون قادرًا على الرؤية والتحكم والاستعادة".
طريقة عمله الأساسية بسيطة:
- أنت تعطيه مجموعة من المهام (سواء كانت من PRD أو من نظام مهام آخر)
- يختار المهمة ذات الأولوية القصوى
- يجمع المطالبة
- يبدأ الوكيل لتنفيذها
- يحدد ما إذا كانت هذه المهمة تعتبر مكتملة
- يكتب الحالة
- الجولة التالية تستمر
التركيز على: يمكنك رؤية كل هذا في الوحدة الطرفية، ويمكنك التوقف والاستيلاء عليه في أي وقت. يكتب المسؤولون أيضًا تحديد الموقع الخاص به بشكل مباشر للغاية: منسق حلقة وكيل مع TUI تفاعلي، ويدعم TUI / headless / remote.
لماذا أقول أنه أكثر ملاءمة لـ "التشغيل على المدى الطويل"؟
أكبر مشكلة في تشغيل حلقة البرنامج النصي ليست عدم القدرة على التشغيل، ولكنك لا تعرف إلى أين وصلت.
ترى السجلات تتدفق بسرعة، والمروحة تدور بسعادة، لكنك لست متأكدًا:
- هل يقوم بإصلاح نفس الخطأ بشكل متكرر؟
- هل يقوم بتعديل نفس جزء التعليمات البرمجية ثم تعديله مرة أخرى؟
- هل اكتمل بالفعل، لكنه لم يخرج؟
- هل هو عالق في اختبار ما في حلقة لا نهائية؟

حل ralph-tui "هندسي" للغاية:
- لديه مفهوم الجلسة، وسيتم تسجيل الحالة على القرص (.ralph-tui/session.json)
- يمكن استئناف التشغيل بعد الانهيار (crash recovery)
- لديه آلية قفل لتجنب فتح عدة مثيلات وتحويل الدليل إلى فوضى
- يمكن أيضًا تشغيله headless في CI، وحتى remote لفتح مستمع في النهاية البعيدة، وربط TUI المحلي به
باختصار: إنه أشبه بـ "أنك تدير عاملًا يمكنه كتابة التعليمات البرمجية"، بدلاً من "أنك تراقب برنامجًا نصيًا ينهار".
كيفية التثبيت
تعتبر مجموعة ralph-tui هذه نظامًا بيئيًا لـ Bun/TypeScript، لذا فإن تثبيتها أمر سهل للغاية. قدم المسؤولون أيضًا صفحة تثبيت.
أولاً، تأكد من أن جهازك يحتوي على bun:
bun --version ثم قم بتثبيت ralph-tui (سأقدم هنا طريقة تثبيت نموذجية، وتخضع لصفحة التثبيت الرسمية):
bun add -g ralph-tui بعد التثبيت، تحقق:
ralph-tui --help إذا كنت من محبي Node ولا تريد لمس bun، فلا بأس:
npm i -g ralph-tui
لا تفعل أشياء كبيرة في البداية، قم بتشغيل حلقة مغلقة صغيرة
أقترح أنه في المرة الأولى التي تستخدم فيها، لا تفعل أي شيء مثل "إعادة هيكلة المستودع بأكمله". افعل شيئًا واحدًا فقط: اجعله يشغل مهمة صغيرة مقبولة.
التهيئة
افتح أي دليل:
mkdir ralph-tui-demo && cd ralph-tui-demo ralph-tui setup سيؤدي هذا إلى الدخول في عملية معالج تفاعلية، والتي هي في الأساس "تثبيت ralph-tui في هذا المستودع الخاص بك"، وسوف:- الكشف التلقائي عن الوكلاء (agents) المثبتين على جهازك (مثل Claude Code و OpenCode وما إلى ذلك)
- إنشاء ملف تكوين في المشروع: .ralph-tui/config.toml
- تثبيت المهارات (skills) المتعلقة بإنشاء PRD / تحويل المهام (حتى لا تضطر إلى القيام بذلك يدويًا لاحقًا)
أقترح شخصيًا: لا تكن كسولًا في المرة الأولى، يجب تشغيل setup مرة واحدة.
إنشاء PRD للمشروع
بعد تشغيل setup، الخطوة التالية هي الجزء الأساسي من البرنامج التعليمي الرسمي، وهو الأنسب لكتابة عرض توضيحي (demo) في حساب عام: create-prd.
الأمر ralph-tui create-prd --chat سيدخل في عملية حوارية، حيث سيسألك مثل مدير منتج عن أهداف المتطلبات والشروط الحدودية ومعايير القبول. بعد الانتهاء من السؤال، سيقوم بإخراج شيئين مباشرة في المشروع (وهذا هو الأهم):
- ملف markdown لـ PRD: ./tasks/prd-feature.md
- ملف مهام قابل للتنفيذ مباشرة: ./prd.json
في هذه المرحلة، تكون قد دخلت حقًا في "الحلقة القياسية المغلقة" لـ ralph-tui:
المتطلبات (PRD) ← المهام (prd.json) ← التنفيذ (run)
التشغيل (run)
بعد الحصول على prd.json، يصبح التشغيل أمرًا طبيعيًا:
ralph-tui run --prd ./prd.json سترى TUI قيد التشغيل، وتبدأ في التكرار (loop): اختيار مهمة ← تنفيذ ← تحديد الاكتمال ← كتابة الحالة ← إنهاء أو الجولة التالية.
أقترح بشدة إضافة حد أقصى للتكرارات في المرة الأولى، وتقييده في قفص:
ralph-tui run --prd ./prd.json --iterations 5 بعد التشغيل، يمكنك التحقق من التغييرات وتشغيل الاختبارات والتحقق مما إذا كان PRD والمهام يفيان بالتوقعات. بعد التأكد من أن هذه السلسلة تعمل، يمكنك تحرير التكرارات وتشغيل headless/remote، وهذا هو الإيقاع الموثوق.
في هذه المرحلة، يمكنك التأكد بشكل أساسي من: أن هذه الحلقة تعمل حقًا.
كيف تختار النموذج/الوكيل (Agent)؟ يجب أن نكون صادقين بشأن توفير المال
أعلم أن أكثر ما يهم الكثير من الناس هو: "هل يمكنني الاستغناء عن Claude Code؟ هل يمكنني استخدام نماذج أرخص؟"
الجواب هو: نعم.
يدعم ralph-tui نفسه تحديد الوكيل والنموذج (يوجد مثال في وثائق التشغيل الرسمية).
على سبيل المثال، باستخدام Claude Opus:
ralph-tui run --prd ./prd.json --agent claude --model opus ولكن بصراحة، لن أستخدم Opus للقيام بأشياء مثل "إكمال الاختبارات وإصلاح lint"، فهي باهظة الثمن للغاية. عادتي هي التقسيم إلى طبقات:
- نماذج رخيصة: لتشغيل الكثير من المهام المتكررة (إكمال الاختبارات، وإكمال التعليقات، وإصلاح التنسيق، وإضافة الحدود)
- نماذج باهظة الثمن: تظهر فقط في العقد الرئيسية (تعديلات البنية، والأخطاء الصعبة، والمنطق الأساسي)
إذا كنت مطورًا عاديًا، فإن هذه الطريقة أكثر أهمية. لأنك لست ميزانية شركة كبيرة، يجب أن تجعل التكاليف قابلة للتحكم حتى تتمكن من الاستمرار لفترة أطول.
هل تريد أن تكون أكثر متعة؟ اجعل الوكيل يكتب PRD أيضًا
يحتوي ralph-tui على تصميم يعجبني: فهو يدعم المهارات (skills) (ببساطة، هي مجموعة من الأوامر الإضافية للوكيل).
الطريقة الرسمية للتثبيت هي باستخدام add-skill:
bunx add-skill subsy/ralph-tui --all أو التثبيت على وكيل معين، مثل claude-code:
bunx add-skill subsy/ralph-tui -a claude-code -g -y بعد التثبيت، يمكنك استخدام أمر الشرطة المائلة (slash command) في محادثة الوكيل:
/ralph-tui-prd /ralph-tui-create-json /ralph-tui-create-beads هذا يشبه تثبيت مكون إضافي في IDE، إلا أن هذا المكون الإضافي مخصص للوكيل. أهميته هي تقليل وقت "نقل المتطلبات يدويًا"، وجعل المتطلبات ← المهام ← التنفيذ أشبه بخط تجميع.
متى يجب استخدامه؟ ومتى يجب تجنبه؟أنا لا أحب سردية "كل شيء يمكن إنجازه بالذكاء الاصطناعي"، فهي مضللة. الأداة هي مجرد أداة، وقيمتها تكمن في مدى ملاءمتها للمشهد.
المشاهد المناسبة لاستخدام ralph-tui
لديك مجموعة من هذه المهام:
- استكمال الاختبارات (خاصة المشاريع القديمة)
- إصلاح lint / format
- إعادة هيكلة صغيرة (تجميع التعليمات البرمجية المتكررة)
- إضافة أنواع وتعبئة الحدود على دفعات
- تقسيم المتطلبات ودفعها ببطء وفقًا لقائمة المهام
هذه المهام لها قاسم مشترك: العديد من المهام، درجة عالية من التكرار، يمكن قبولها، ويمكن دفعها بشكل متكرر.
المشاهد غير المناسبة لاستخدام ralph-tui بالقوة
ما تريد القيام به هو هذا:
- إعادة هيكلة كبيرة لمرة واحدة، ومعايير القبول غير واضحة
- المتطلبات نفسها غامضة، وتعتمد على المعرفة الضمنية في رأسك
- يتطلب الكثير من التواصل / التأكيد عبر الفرق
- يتطلب منك اتخاذ قرارات المنتج
في هذه الأنواع من المهام، ستؤدي حلقة الوكيل فقط إلى تضخيم الفوضى.
ما الفرق بينه وبين ralph-loop (ralph-claude-code)؟
ralph-claude-code يشبه إلى حد كبير "ملحق القيادة الذاتية لـ Claude Code": يقوم البرنامج النصي بتشغيله، وتشغيل الحلقة، والكشف عن الخروج، وتحديد المعدل، وقواطع الدائرة كلها تدعمك. ما تريده هو "السرعة"، وهو سريع جدًا.
ralph-tui يشبه إلى حد كبير "وحدة تحكم هندسية لحلقة الوكيل": لا يربط نموذجًا معينًا، ولا يربط نظام مهام معينًا. ما يحاول حله هو المشكلات الهندسية مثل "التشغيل طويل الأجل، والمراقبة، والتحكم، والاستعادة، والتحكم عن بعد".
إذن تسألني كيف أختار؟
- أنت مستخدم Claude Code، وتريد تشغيله بسرعة → ralph-claude-code
- تريد توصيل نماذج مختلفة، وتريد توفير المال، وتريد إدارة الحلقة كخدمة → ralph-tui
أخيرًا: لا تدعه يعامل مستودعك كمختبر
لدي بعض القواعد الحديدية لتشغيل حلقة الوكيل بنفسي، اكتبها هنا وافعلها، وسيكون احتمال التعرض لحادث أصغر بكثير:
- قم بتشغيله على فرع، ولا تحاول بشدة على main.
- في المرة الأولى التي تقوم فيها بتشغيله، تأكد من إضافة --iterations، وقم بتأكيد صغير أولاً أنه لن يصاب بالجنون.
- يجب أن تكون المهمة مقبولة: إما أن تكون قادرة على تشغيل الاختبارات، أو تشغيل lint، أو مقارنة ملفات الإخراج.
- يجب أن تتعلم التوقف: عندما ترى أنه بدأ يدور في دوائر، فإن التوقف مؤقتًا أكثر ذكاءً من الاستمرار في حرق الأموال.
- النماذج الرخيصة تقوم بالعمل الشاق، والنماذج باهظة الثمن تقوم بالعمل الحاسم: يتم تشغيل التكلفة، ولا يتم الدعاء بها.عنوان المشروع: https://github.com/subsy/ralph-tui





