كتابة أوامر فعّالة لـ Bob Shell

اكتب أوامر فعّالة لـ Bob Shell عن طريق إضافة دور وسياق وأمثلة، ثم حسّن طلبًا مبهمًا إلى كود Python موثّق مع معالجة الأخطاء.

ينتج IBM Bob Shell كودًا أكثر دقة عندما يُسمّي أمرك المهمة والدور والسياق ومثالاً. في هذا الدرس، أعد صياغة طلب مبهم إلى أمر منظّم، ثم قارن النتائج.

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

للتحقق من تثبيت Bob Shell، افتح طرفية وتحقق من الإصدار:

bob --version

ما هو الأمر؟

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

مكونات الأمر

يجمع الأمر الفعّال المكونات التالية:

المكوّنالغرضمثال
التعليماتتخبر Bob بالمهمة التي يجب تنفيذها. التعليمات القوية تقلل الغموض."Generate a software bill of materials (SBOM) for this API."
الدوريُعيّن شخصية حتى يُكيّف Bob الرد وفق تلك الزاوية."You are a senior software engineer with expertise in Python."
السياقيضيف خلفية، مثل الوضع والجمهور والنبرة أو القيود."The function runs in a production service and must include error handling."
المثاليُظهر النمط أو التنسيق أو الأسلوب الذي تريد أن يتبعه Bob."Follow the structure of @src/api/users.py."
الإشارةيقود إلى الرد الذي تريده، عادةً في نهاية الأمر."Return only the function, starting with def."

يمكنك حفظ أوامرك كـ أوامر slash مخصصة لإعادة استخدامها ومشاركتها مع فريقك.

ما الذي يجعل الأمر فعّالاً؟

الممارسات التالية تساعدك في كتابة أوامر فعّالة لـ Bob.

  • كن محددًا: كلما كان أمرك أكثر تحديدًا، كلما استطاع Bob فهم ما تريده بشكل أفضل. بدلاً من السؤال "How do I write a Python function?"، اسأل "How do I write a Python function that takes a list of numbers and returns the average?"
  • وفّر السياق: إذا كان أمرك يتعلق بمشروع أو قاعدة كود محددة، قدّم بعض السياق عنها. هذا يساعد Bob على توليد رد ملائم لوضعك. استخدم مراجع @، مثل @src/main.py، للإشارة إلى ملفات محددة.
  • قسّم المهام: كما تفعل عند تحسين مهمة في قائمة العمل، قسّم المهام المعقدة إلى خطوات أصغر وأكثر قابلية للإدارة. هذا يمكن أن يساعد Bob في توليد ردود أكثر دقة وتركيزًا.
  • أدرج أمثلة: إذا كنت تضيف API جديدة، وجّه Bob لمراجعة الـ APIs المكتوبة بشكل جيد في قاعدة الكود لاستخدامها كأمثلة. يمكنك أيضًا تضمين أمثلة في أمرك لإظهار التنسيق أو الأسلوب الذي تريده.

تحسين أمر مبهم

في هذا القسم، تكتب أمرًا مبهمًا لـ Bob وتراجع المخرجات. ثم تُحسّن أمرك بناءً على الممارسات الجيدة لتحسين جودة الرد.

الهدف هو أن يُولّد Bob دالة Python تطبع التاريخ والوقت الحالي بتنسيق UTC. يجب أن تكون الدالة موثّقة جيدًا وتتضمن معالجة للأخطاء.

افتح طرفية وابدأ جلسة تفاعلية في وضع Agent:

bob chat --mode agent

أدخل الأمر التالي:

Write a Python function that prints the date and time.

يولّد Bob ردًا، لكنه قد لا يلبي جميع متطلباتك.

from datetime import datetime

def print_datetime():
    now = datetime.now()
    print(now.strftime("%Y-%m-%d %H:%M:%S"))

الدالة لا تتضمن معالجة أخطاء وتطبع التوقيت المحلي، وليس UTC.

أدخل /clear لإعادة تعيين سجل المحادثة، حتى لا يؤثر الرد الأول على الرد التالي:

/clear

حسّن أمرك باستخدام مكونات الأمر:

  • الدور: "You are a senior software engineer with expertise in Python 3."
  • التعليمات: "Write a Python 3 function that prints the current date and time in UTC format."
  • السياق: "The function should be well documented and include error handling."
  • المثال: وجّه Bob إلى مصدر موثوق، مثل Real Python exception handling best practices.

أدخل الأمر المُحسَّن:

You are a senior software engineer with expertise in Python 3. 
Write a Python 3 function that prints the current date and time in UTC format. 
The function should be well documented and include error handling, 
modeled after https://realpython.com/ref/best-practices/exception-handling/.
"""
utc_datetime.py — Utility for printing the current UTC date and time.
"""

from datetime import datetime, timezone

def print_utc_datetime() -> None:
    """Print the current date and time in UTC (ISO 8601 format).

    Retrieves the current moment from the system clock, attaches UTC timezone
    info, formats it as an ISO 8601 string, and writes it to stdout.

    Returns:
        None

    Raises:
        OSError: If the system clock cannot be read (e.g., hardware failure or
            OS-level permission restrictions).
        ValueError: If datetime formatting unexpectedly fails (e.g., year out
            of the supported range).

    Example:
        >>> print_utc_datetime()
        Current UTC date and time: 2025-07-15T13:42:00.123456+00:00
    """
    try:
        now_utc: datetime = datetime.now(tz=timezone.utc)
    except OSError as exc:
        # System clock is unavailable or inaccessible.
        raise OSError("Failed to read the system clock.") from exc

    try:
        formatted: str = now_utc.isoformat()
    except ValueError as exc:
        # Extremely unlikely, but guard against out-of-range datetime values.
        raise ValueError(
            f"Failed to format the datetime object: {now_utc!r}"
        ) from exc

    print(f"Current UTC date and time: {formatted}")


if __name__ == "__main__":
    print_utc_datetime()

الأمر المُحسَّن يُنتج دالة تستخدم UTC وتتضمن docstrings وتعالج الاستثناءات.

IBM SkillsBuild

IBM SkillsBuild هو منصة تعليمية مجانية عبر الإنترنت تحتوي على دورات حول كتابة أوامر فعّالة لمساعدي الذكاء الاصطناعي مثل Bob.

لمعرفة المزيد حول كتابة الأوامر الجيدة، خذ دورة Craft Precise Prompts for AI Models.

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

في هذا الدرس، تعلمت مكونات الأمر الفعّال وحسّنت أمرًا مبهمًا إلى أمر يُنتج بشكل موثوق المخرجات التي تريدها.

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

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