Effektive Prompts für Bob Shell schreiben

Schreibe effektive Prompts für Bob Shell, indem du Rolle, Kontext und Beispiele hinzufügst, und verfeinere dann eine vage Anfrage zu dokumentiertem Python-Code mit Fehlerbehandlung.

IBM Bob Shell produziert genaueren Code, wenn dein Prompt die Aufgabe, eine Rolle, Kontext und ein Beispiel nennt. In diesem Tutorial schreibst du eine vage Anfrage zu einem strukturierten Prompt um und vergleichst dann die Ergebnisse.

Voraussetzungen

Um zu bestätigen, dass Bob Shell installiert ist, öffne ein Terminal und prüfe die Version:

bob --version

Was ist ein Prompt?

Ein Prompt ist eine Frage, eine Anfrage oder ein Befehl, den du Bob gibst, um das gewünschte Ergebnis zu erhalten. Vage Prompts erzeugen vage Antworten. Ein guter Prompt ist klar, spezifisch und liefert Bob genug Kontext, um zu verstehen, was du willst.

Prompt-Bestandteile

Ein effektiver Prompt kombiniert folgende Bestandteile:

BestandteilZweckBeispiel
AnweisungSagt Bob, welche Aufgabe er ausführen soll. Starke Anweisungen reduzieren Mehrdeutigkeit."Generate a software bill of materials (SBOM) for this API."
RolleWeist eine Persona zu, damit Bob die Antwort aus dieser Perspektive anpasst."You are a senior software engineer with expertise in Python."
KontextFügt Hintergrund hinzu, z. B. die Situation, das Publikum, den Ton oder Einschränkungen."The function runs in a production service and must include error handling."
BeispielZeigt das Muster, Format oder den Stil, dem Bob folgen soll."Follow the structure of @src/api/users.py."
CueLeitet in die gewünschte Antwort über, meist am Ende des Prompts."Return only the function, starting with def."

Du kannst deine Prompts als benutzerdefinierte Slash-Befehle speichern, um sie wiederzuverwenden und mit deinem Team zu teilen.

Was macht einen Prompt effektiv?

Die folgenden Best Practices können dir helfen, effektive Prompts für Bob zu schreiben.

  • Sei spezifisch: Je spezifischer dein Prompt, desto besser versteht Bob, was du willst. Statt "How do I write a Python function?" frage lieber "How do I write a Python function that takes a list of numbers and returns the average?"
  • Kontext bereitstellen: Wenn dein Prompt ein bestimmtes Projekt oder eine Codebasis betrifft, liefere etwas Kontext dazu. Das hilft Bob, eine Antwort zu generieren, die für deine Situation relevant ist. Verwende @-Referenzen, z. B. @src/main.py, um Bob auf bestimmte Dateien hinzuweisen.
  • Aufgaben aufteilen: Wie bei der Verfeinerung einer Aufgabe in deinem Backlog, unterteile komplexe Aufgaben in kleinere, besser handhabbare Schritte. Das kann Bob helfen, genauere und fokussiertere Antworten zu generieren.
  • Beispiele einbeziehen: Wenn du eine neue API hinzufügst, weise Bob an, gut geschriebene APIs in deiner Codebasis als Beispiele zu verwenden. Du kannst auch Beispiele in deinen Prompt aufnehmen, um Bob das gewünschte Format oder den Stil zu zeigen.

Einen vagen Prompt verfeinern

In diesem Abschnitt schreibst du einen vagen Prompt für Bob und überprüfst das Ergebnis. Dann verfeinerst du deinen Prompt anhand der Best Practices, um die Qualität der Antwort zu verbessern.

Das Ziel ist, dass Bob eine Python-Funktion generiert, die das aktuelle Datum und die Uhrzeit im UTC-Format ausgibt. Die Funktion soll gut dokumentiert sein und eine Fehlerbehandlung enthalten.

Öffne ein Terminal und starte eine interaktive Sitzung im Agent-Modus:

bob chat --mode agent

Gib folgenden Prompt ein:

Write a Python function that prints the date and time.

Bob generiert eine Antwort, die aber möglicherweise nicht alle deine Anforderungen erfüllt.

from datetime import datetime

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

Die Funktion hat keine Fehlerbehandlung und gibt die Ortszeit aus, nicht UTC.

Gib /clear ein, um den Gesprächsverlauf zurückzusetzen, damit die erste Antwort die nächste nicht beeinflusst:

/clear

Verfeinere deinen Prompt mit den Prompt-Bestandteilen:

  • Rolle: "You are a senior software engineer with expertise in Python 3."
  • Anweisung: "Write a Python 3 function that prints the current date and time in UTC format."
  • Kontext: "The function should be well documented and include error handling."
  • Beispiel: Verweise Bob auf eine maßgebliche Quelle, z. B. Real Python exception handling best practices.

Gib den verfeinerten Prompt ein:

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

Der verfeinerte Prompt erzeugt eine Funktion, die UTC verwendet, Docstrings enthält und Ausnahmen behandelt.

IBM SkillsBuild

IBM SkillsBuild ist eine kostenlose Online-Lernplattform mit Kursen zum Schreiben effektiver Prompts für KI-Assistenten wie Bob.

Um mehr über gutes Prompt-Schreiben zu lernen, belege den Kurs Craft Precise Prompts for AI Models.

Nächste Schritte

In diesem Tutorial hast du die Bestandteile eines effektiven Prompts gelernt und einen vagen Prompt in einen umgeschrieben, der zuverlässig die gewünschten Ergebnisse liefert.

Fahre fort mit Skills erstellen und verwenden, um einen gut geschriebenen Prompt in einen wiederverwendbaren, wiederholbaren Workflow umzuwandeln, den Bob automatisch anwenden kann.

Wie ist dieses Thema?