Tutorial

Tulis prompt yang efektif untuk Bob

Tulis prompt yang efektif untuk IBM Bob dengan menambahkan peran, konteks, dan contoh, lalu sempurnakan permintaan yang samar menjadi kode Python terdokumentasi dengan penanganan error.

IBM Bob menghasilkan kode yang lebih akurat ketika promptmu menyebutkan task, peran, konteks, dan contoh. Dalam tutorial ini, tulis ulang permintaan yang samar menjadi prompt terstruktur, lalu bandingkan hasilnya.

Prasyarat

Untuk menyelesaikan tutorial ini, kamu memerlukan:

  • Bob IDE terinstal dan sudah masuk.
  • Meski tidak wajib, pertimbangkan untuk melakukan tutorial Quickstart agar lebih familiar dengan antarmuka dan fitur Bob.

Apa itu prompt?

Prompt adalah pertanyaan, permintaan, atau perintah yang kamu berikan ke Bob untuk mendapatkan output yang kamu inginkan. Prompt yang samar menghasilkan jawaban yang samar. Prompt yang baik bersifat jelas, spesifik, dan memberikan konteks yang cukup agar Bob memahami apa yang kamu inginkan.

Komponen prompt

Prompt yang efektif menggabungkan komponen-komponen berikut:

KomponenTujuanContoh
InstruksiMemberitahu Bob task apa yang harus dilakukan. Instruksi yang kuat mengurangi ambiguitas."Generate a software bill of materials (SBOM) for this API."
PeranMemberikan persona agar Bob menyesuaikan respons dengan perspektif tersebut."You are a senior software engineer with expertise in Python."
KonteksMenambahkan latar belakang, seperti situasi, audiens, nada, atau batasan."The function runs in a production service and must include error handling."
ContohMenunjukkan pola, format, atau gaya yang ingin diikuti Bob."Follow the structure of @src/api/users.py."
PetunjukMengarahkan ke respons yang kamu inginkan, biasanya di akhir prompt."Return only the function, starting with def."

Kamu dapat menyimpan promptmu sebagai slash command kustom untuk digunakan kembali dan dibagikan kepada timmu.

Apa yang membuat prompt efektif?

Best practice berikut dapat membantumu menulis prompt yang efektif untuk Bob.

  • Jadilah spesifik: Semakin spesifik promptmu, semakin baik Bob memahami apa yang kamu inginkan. Daripada bertanya "How do I write a Python function?", tanyakan "How do I write a Python function that takes a list of numbers and returns the average?"
  • Berikan konteks: Jika promptmu tentang proyek atau codebase tertentu, berikan beberapa konteks. Ini membantu Bob menghasilkan respons yang relevan dengan situasimu. Gunakan @ context mentions Bob untuk mereferensikan file tertentu.
  • Pecah task: Seperti saat menyempurnakan task di backlog-mu, pecah task kompleks menjadi langkah-langkah yang lebih kecil dan mudah dikelola. Ini dapat membantu Bob menghasilkan respons yang lebih akurat dan terfokus.
  • Sertakan contoh: Jika kamu menambahkan API baru, arahkan Bob untuk meninjau API yang ditulis dengan baik di codebase-mu sebagai contoh. Kamu juga bisa menyertakan contoh dalam promptmu untuk menunjukkan format atau gaya yang kamu inginkan.

Sempurnakan prompt yang samar

Pada bagian ini, kamu akan menulis prompt yang samar untuk Bob dan meninjau outputnya. Kamu kemudian akan menyempurnakan promptmu berdasarkan best practice untuk meningkatkan kualitas respons.

Tujuannya adalah membuat Bob menghasilkan fungsi Python yang mencetak tanggal dan waktu saat ini dalam format UTC. Fungsi tersebut harus terdokumentasi dengan baik dan menyertakan penanganan error.

Jika antarmuka chat tertutup, buka dengan mengklik ikon Bob di sebelah navigation bar atau gunakan pintasan Option + Command + B (Mac) atau Ctrl + Alt + B (Windows).

Panel chat Bob terbuka di IBM Bob IDE

Pilih Agent dari pemilih mode di antarmuka chat. Untuk detailnya, lihat Mode Agent.

Masukkan prompt berikut:

Write a Python function that prints the date and time.

Bob akan menghasilkan respons, tapi mungkin tidak memenuhi semua persyaratanmu.

from datetime import datetime

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

Fungsi ini tidak memiliki penanganan error dan mencetak waktu lokal, bukan UTC.

Mulai chat baru untuk membersihkan context window.

Sempurnakan promptmu dengan komponen prompt:

  • Peran: "You are a senior software engineer with expertise in Python 3."
  • Instruksi: "Write a Python 3 function that prints the current date and time in UTC format."
  • Konteks: "The function should be well documented and include error handling."
  • Contoh: Arahkan Bob ke sumber terpercaya, seperti Real Python exception handling best practices.

Masukkan prompt yang disempurnakan:

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()

Respons Bob sekarang seharusnya lebih sesuai dengan persyaratanmu, menunjukkan betapa pentingnya menulis prompt yang efektif.

IBM SkillsBuild

IBM SkillsBuild adalah platform pembelajaran online gratis yang menawarkan kursus dan sumber daya untuk membantu kamu mengembangkan keahlian di berbagai bidang teknologi, termasuk AI dan machine learning. Kamu dapat menemukan kursus tentang cara menulis prompt yang efektif untuk asisten AI seperti Bob, serta topik lainnya terkait pengembangan software dan teknologi.

Untuk mempelajari lebih lanjut tentang penulisan prompt yang baik, ikuti kursus Craft Precise Prompts for AI Models.

Langkah berikutnya

Dalam tutorial ini, kamu telah mempelajari komponen-komponen prompt yang efektif dan menyempurnakan prompt yang samar menjadi prompt yang secara andal menghasilkan output yang kamu inginkan.

Lanjutkan ke Gunakan skill untuk mengubah prompt yang ditulis dengan baik menjadi alur kerja yang dapat digunakan kembali dan berulang yang dapat diterapkan Bob secara otomatis.

Bagaimana topik ini?