البدء السريع

استخدم IBM Bob لبناء واجهة ويب لواجهة برمجة Node.js Express API موجودة وتشغيلها في Docker، باستخدام الأوضاع وسير عمل الموافقة والتكرار الوكيلي.

مقدمة

IBM Bob هو شريك ذكاء اصطناعي لدورة حياة تطوير البرمجيات (SDLC) يعزز سير عملك الحالي. في هذا الدرس التعليمي، تبدأ بواجهة برمجة TypeScript Express REST API موجودة تُدير قوائم المهام وتستخدم Bob لبناء واجهة ويب فوقها. لا تحتاج إلى خبرة في Node.js أو React أو TypeScript لإتمام هذا الدرس.

الميزات الرئيسية التي ستتعلمها

تستخدم ثلاث قدرات جوهرية في Bob لبناء واجهة المستخدم:

  • الأوضاع: شخصيات متخصصة تُكيّف سلوك Bob لمهام محددة.
  • سير عمل الموافقة: راجع خطط Bob قبل تنفيذها.
  • التكرار مع Bob: أجرِ محادثة مع Bob لتحسين العمل بعد رؤية النتيجة.

المتطلبات المسبقة

لإتمام هذا الدرس، تحتاج إلى ما يلي:

إعداد مساحة عملك

شغّل IBM Bob واستنسخ مستودع المثال للبدء بالعمل مع تطبيق Node.js.

تشغيل IBM Bob

شغّل تطبيق IBM Bob على حاسوبك.

فتح واجهة دردشة Bob

إذا لم تكن واجهة دردشة Bob مرئية، افتحها بالنقر على أيقونة Bob بجانب شريط التنقل أو باستخدام الاختصار Option + Command + B (Mac) أو Ctrl + Alt + B (Windows).

لوحة دردشة Bob مفتوحة في IBM Bob IDE

تتفاعل مع Bob بكتابة طلبات باللغة الطبيعية في حقل الإدخال.

استنساخ مستودع الدرس

استنسخ المستودع الذي يحتوي على التطبيق المثال باتباع الخطوات التالية:

  1. انقر أيقونة الملفات في الزاوية العلوية اليسرى من لوحة Bob IDE.
  2. انقر Clone Repository والصق URL المستودع التالي.
  3. عندما يسأل Bob أين تريد حفظ المستودع، اختر أي موقع تريده.
https://github.com/IBM/bob-demo.git

استنساخ المستودع في Bob IDE

فتح المستودع

عندما يسألك Bob إذا كنت تريد فتح المستودع المستنسخ انقر Open. إذا سأل Bob "Do you trust the authors of the files in the folder?"، انقر Yes, I trust the authors.

يعرض المستكشف ملفات المشروع، وتفتح لوحة دردشة Bob على الجانب. تعمل من مجلد bob-get-started/express-todo-api-modern.

ملفات المشروع معروضة في المستكشف مع لوحة دردشة Bob

الانتقال إلى المشروع

في حقل إدخال دردشة Bob، شغّل الأمر التالي للانتقال إلى مجلد express-todo-api-modern. سيطلب Bob إذنك لتشغيل أمر تغيير المجلد. انقر Run للسماح لـ Bob بتغيير المجلدات.

Navigate to the bob-get-started/express-todo-api-modern folder.

الانتقال إلى مجلد express-todo-api-modern في Bob IDE

يؤكد Bob انتقاله إلى المجلد ويصف محتوياته.

استكشاف الـ API بوضع Ask

قبل تغيير أي شيء، انتقل إلى وضع Ask في Bob. انقر قائمة اختيار الوضع المنسدلة على يسار حقل الإدخال واختر Ask، أو اكتب /ask في الدردشة.

قائمة اختيار الوضع المنسدلة تُظهر اختيار وضع Ask

يمكن لوضع Ask قراءة الملفات فقط، وليس كتابتها. لا يمكن لـ Bob تغيير أي شيء في هذا الوضع، لذا فهو آمن للاستكشاف. الأوضاع هي إحدى الطرق التي يحترم فيها Bob مبدأ الأذونات الدنيا.

اطلب من Bob شرح المشروع:

Explain what this application does and how it works.

سيقرأ Bob المشروع ويشرح ما يفعله.

تشغيل الـ API في Docker

التبديل إلى وضع Agent

اختر Agent في محدد الوضع، أو اكتب /agent في الدردشة. يتيح وضع Agent لـ Bob كتابة الكود وتعديله وإعادة هيكلته. لا يزال Bob يطلب الإذن قبل كل عملية.

إعداد الموافقة التلقائية

ابحث عن مبدّل الموافقة التلقائية في الزاوية السفلية اليمنى من النافذة تحت قائمة Permissions. تأكد من تحديد Read فقط للموافقة التلقائية. يُشغّل Bob الأوامر للقراءة فقط تلقائيًا، لكنه يطلب الموافقة لأي أمر يُعدّل الملفات أو يعمل في الطرفية.

مبدّل الموافقة التلقائية في Bob IDE

تهيئة Bob في مشروعك

شغّل /init في لوحة دردشة Bob ليُنشئ Bob ملف AGENTS.md الجذري وملفات قواعد AGENTS.md.

يُخبر ملف AGENTS.md الجذري Bob بالبنية العامة للمشروع واتفاقياته وأهدافه حتى يتمكن Bob من كتابة كود يناسب مشروعك. بدونه، يبدأ Bob من الصفر في كل مرة لأن Bob عديم الذاكرة.

ملفات القواعد في .bob هي المكان الذي يُنشئ فيه Bob ملفات AGENTS.md لكل من أوضاعه: Agent وPlan وAsk. لكل وضع مجموعة مختلفة من القواعد التي توجّه سلوك Bob في ذلك الوضع.

/init

سيطلب Bob الإذن لإنشاء ملفات AGENTS.md. انقر Approve todo tools for task لإنشاء الملفات. بمجرد إنشاء Bob لجميع ملفات AGENTS.md، سترى الملفات التالية:

ملفات AGENTS.md المُنشأة في مجلد المشروع

بناء وتشغيل الـ API في Docker

اطلب من Bob إنشاء Dockerfile وتشغيل الحاوية:

Create a Dockerfile for this API using Node 22 and run it on port 3000.
Don't install dependencies locally.
The Dockerfile handles all installations.

Once you create the Dockerfile, build the image and start the container.

سيطلب Bob منك الموافقة على بناء الصورة وتشغيل الحاوية. انقر Approve todo tools for task وApprove edit tools for task.

لأنك فعّلت الموافقة التلقائية للقراءة فقط، سيطلب Bob إذنك لتشغيل أوامر Execute. انقر I understand the risks ثم Approve للسماح لـ Bob بتنفيذ الأوامر نيابةً عنك.

قد يجد Bob مشكلة في NPM كما يلي. وافق على الإصلاحات التي يقترحها Bob:

The build failed because there's no package-lock.json file.
I need to update the Dockerfile to use npm install instead of npm ci:

Bob يطلب الإذن لتشغيل أوامر في الطرفية

الـ API الآن يعمل ومتاح.

إضافة مهمة إلى قائمة المهام

لاختبار الـ API، الصق الأمر التالي مباشرةً في لوحة دردشة Bob. يضيف هذا الأمر مهمة إلى قائمة المهام بإرسال طلب POST إلى الـ API:

curl -X POST http://localhost:3000/api/todos \
  -H "Content-Type: application/json" \
  -d '{"title": "Build a web UI"}'

  Give me the response in a table format with two columns: Field and Value

يعرض لك Bob الاستجابة التي تؤكد إمكانية إضافة مهام إلى قائمة المهام عبر الـ API. يعرض Bob استجابةً مشابهة لما يلي:

الحقلالقيمة
ida9d24d57-d242-4ed6-96f7-bb9f3f8c39a8
titleBuild a web UI
completedfalse
createdAt2026-06-08T17:22:39.643Z

إيقاف وإزالة الحاوية

اطلب من Bob إيقاف الحاوية وإزالتها. ستبني حاوية جديدة مع واجهة الويب في القسم التالي:

Stop and remove the running container and Docker image.

التخطيط لواجهة الويب مع Bob

بدء محادثة جديدة

انقر علامة الزائد في أعلى واجهة الدردشة لبدء محادثة جديدة ومسح نافذة السياق.

بدء محادثة جديدة في Bob IDE

بدء محادثة جديدة يمسح نافذة السياق، مما:

  • يمنع نقاش التخطيط السابق من استهلاك ميزانية token.
  • يُبقي سياق التنفيذ مُركّزًا على الخطة المعتمدة.
  • يقلل خطر تشابك تعليمات التخطيط والتنفيذ لدى Bob.

التخطيط لواجهة الويب

قبل تعديل الكود، انتقل إلى وضع Plan حتى يتمكن Bob من وضع خطة لكيفية بناء واجهة الويب. انقر قائمة الوضع المنسدلة واختر Plan، أو اكتب /plan في الدردشة.

اطلب من Bob التخطيط لواجهة الويب ui-plan.md في مجلد مشروع express-todo-api-modern. سيطلب Bob استخدام أدوات الـ skill والـ subagents لإنشاء الخطة. انقر Approve skill tools for task للسماح لـ Bob باستخدام أدوات الـ skill، وApprove subagent tools for task للسماح لـ Bob باستخدام subagents، وApprove edit tools for task لحفظ الخطة.

Make a plan to add a React TypeScript web UI to this todo app using Vite.

The UI needs to:
- Display all existing tasks fetched from GET /api/todos
- Add new tasks using POST /api/todos
- Mark tasks as complete or incomplete using PUT /api/todos/:id

Constraints:
- Do not modify the existing Express API or its endpoints
- Serve both the API and React frontend from a single Docker container using a multi-stage build
- Keep the implementation simple: no authentication, no client-side routing, no external state management library
- run `npm install` inside the Dockerfile

Save the plan to a file named `ui-plan.md` in the express-todo-api-modern project directory.

قد يطرح Bob أسئلة توضيحية لفهم المتطلبات بشكل أفضل. يمكنك الإجابة على الأسئلة أو إخبار Bob بفعل ما يوصي به.

تخطيط واجهة الويب مع Bob في وضع Plan

راجع الخطة قبل إخبار Bob بتنفيذها. انقر ui-plan.md في المستكشف لفتحها.

بناء واجهة ويب مع Bob

طلب من Bob بناء واجهة الويب

انتقل إلى وضع Agent بالنقر على قائمة الوضع المنسدلة واختيار Agent، أو اكتب /agent في الدردشة.

اطلب من Bob بناء واجهة المستخدم ووضعها في حاوية وتشغيلها:

Implement the plan `ui-plan.md` you outlined to build the web UI
containerize the application with Docker, and run it.
Don't install dependencies locally. The Dockerfile handles all installations.

سيقرأ Bob ui-plan.md، ويعرض الملفات التي سيُنشئها أو يعدّلها، ثم يبني الحاوية ويشغّلها. انقر Approve من طلبات أدوات Bob.

لأنك فعّلت الموافقة التلقائية للقراءة فقط، سيطلب Bob إذنك لتشغيل أوامر Execute. انقر I understand the risks ثم Approve للسماح لـ Bob بتنفيذ الأوامر نيابةً عنك.

إصلاح فشل الإنشاء

أحيانًا قد تفشل المحاولة الأولى لـ Bob في بناء واجهة المستخدم والحاوية بسبب أخطاء في الكود أو Dockerfile. يعرض Bob رسالة الخطأ ويقترح إصلاحًا. التكرار في التطوير جزء من كتابة الكود مع Bob.

فيما يلي بعض الأخطاء والإصلاحات المحتملة التي قد تواجهها:

The build failed because `npm ci` requires a package-lock.json file.
Let me update the Dockerfile to use `npm install` instead.
Vite can't find index.html. The issue is that index.html is in the `public` directory
but Vite expects it in the root. Let me move it to the correct location.

فتح واجهة الويب في متصفحك

بمجرد تشغيل الحاوية، يعطيك Bob ملخصًا لما أنجزه.

افتح http://localhost:3000/index.html في متصفحك. جرّب إضافة مهمة جديدة باستخدام حقل الإدخال للتأكد من أن الـ API يعمل بشكل صحيح.

واجهة الويب تعمل مع قائمة من المهام وحقل إدخال لإضافة مهام جديدة

تخصيص واجهة المستخدم

طلب من Bob تحديث الأنماط

خصّص واجهة المستخدم بإخبار Bob ما هو الخط ولون الخط ولون الخلفية الذي تريده. فيما يلي بعض الخطوط التي يمكنك الاختيار منها:

  • Inter: اختيار شائع لتطبيقات الويب
  • Georgia: خط serif كلاسيكي، دافئ وسهل القراءة
  • JetBrains Mono: خط monospace بإحساس أداة المطوّر

اختر لون خط ولون خلفية. في لوحة دردشة Bob، صِف اختياراتك باللغة الطبيعية. فيما يلي مثال على التخصيص:

Update the styles of the web UI.
Use the Inter font.
Dark navy background.
White text.

يقترح Bob تعديلات على أنماط مكوّن React. راجع الفرق وانقر Save لقبول التغييرات.

إعادة بناء الحاوية وعرض تغييراتك

الحاوية الجارية لا تزال تخدم الأنماط القديمة. اطلب من Bob إعادة البناء وإعادة التشغيل حتى ترى تغييراتك:

Rebuild the Docker image and restart the container with the updated styles.

حدّث http://localhost:3000/index.html في متصفحك لرؤية التصميم المحدّث.

لأن هذا الـ API يخزن بياناته في الذاكرة، عند إعادة بناء حاوية Docker، تُعاد تهيئة قائمة المهام إلى المهام الافتراضية. في تطبيق حقيقي مع قاعدة بيانات، ستستمر بياناتك عبر إعادة بناء الحاوية.

واجهة الويب المحدّثة بأنماط جديدة

التنظيف

عند الانتهاء، اطلب من Bob إيقاف الحاوية وإزالتها:

Stop and remove the running container and the Docker image.

سيطلب Bob الموافقة لتشغيل الأوامر ويؤكد عند إزالة الحاوية والصورة.

الخطوات التالية

في هذا الدرس، استخدمت Bob لبناء واجهة ويب لـ Express API موجودة وتشغيل النتيجة في Docker. استخدمت وضع Ask لاستكشاف المشروع بأمان، ووضع Plan لمراجعة نهج Bob، ووضع Agent لبناء واجهة المستخدم وتخصيصها، وسير عمل الموافقة للبقاء في السيطرة على كل تغيير. استمر في البناء على ما تعلمته بالموارد التالية:

ما رأيك في هذا الموضوع؟