Pisanie skutecznych promptów dla Bob Shell
Pisz skuteczne prompty dla Bob Shell, dodając rolę, kontekst i przykłady, a następnie przekształć niejasne żądanie w udokumentowany kod Python z obsługą błędów.
IBM Bob Shell generuje dokładniejszy kod, gdy twój prompt zawiera nazwę zadania, rolę, kontekst i przykład. W tym samouczku przepiszesz niejasne żądanie na strukturalny prompt, a następnie porównasz wyniki.
Wymagania wstępne
Aby potwierdzić, że Bob Shell jest zainstalowany, otwórz terminal i sprawdź wersję:
bob --versionCo to jest prompt?
Prompt to pytanie, prośba lub polecenie, które dajesz Bobowi, aby uzyskać pożądany output. Niejasne prompty dają niejasne odpowiedzi. Dobry prompt jest jasny, konkretny i dostarcza wystarczającego kontekstu, aby Bob rozumiał, czego chcesz.
Składniki prompta
Skuteczny prompt łączy następujące składniki:
| Składnik | Cel | Przykład |
|---|---|---|
| Instrukcja | Mówi Bobowi, jakie zadanie wykonać. Silne instrukcje zmniejszają niejednoznaczność. | „Wygeneruj software bill of materials (SBOM) dla tego API." |
| Rola | Przypisuje personę, aby Bob dostosował odpowiedź do tej perspektywy. | „Jesteś starszym inżynierem oprogramowania z doświadczeniem w Python." |
| Kontekst | Dodaje tło, takie jak sytuacja, odbiorcy, ton lub ograniczenia. | „Funkcja działa w usłudze produkcyjnej i musi zawierać obsługę błędów." |
| Przykład | Pokazuje wzorzec, format lub styl, który chcesz, aby Bob zastosował. | „Zastosuj strukturę z @src/api/users.py." |
| Wskazówka | Prowadzi do odpowiedzi, której chcesz, zwykle na końcu prompta. | „Zwróć tylko funkcję, zaczynając od def." |
Możesz zapisać swoje prompty jako niestandardowe polecenia ukośnikowe do ponownego wykorzystania i udostępniania swojemu zespołowi.
Co sprawia, że prompt jest skuteczny?
Poniższe najlepsze praktyki mogą pomóc ci pisać skuteczne prompty dla Boba.
- Bądź konkretny: Im bardziej konkretny jest twój prompt, tym lepiej Bob może zrozumieć, czego chcesz. Zamiast pytać „Jak napisać funkcję Python?", zapytaj „Jak napisać funkcję Python, która przyjmuje listę liczb i zwraca średnią?"
- Dostarczaj kontekst: Jeśli twój prompt dotyczy konkretnego projektu lub bazy kodu,
podaj trochę kontekstu na jego temat. Pomaga to Bobowi wygenerować odpowiedź, która jest
trafna dla twojej sytuacji. Użyj odwołań
@, takich jak@src/main.py, aby wskazać Bobowi konkretne pliki. - Dziel zadania: Tak jak przy dzieleniu zadania w backlogu, podziel złożone zadania na mniejsze, łatwiejsze do zarządzania kroki. Może to pomóc Bobowi generować dokładniejsze i bardziej ukierunkowane odpowiedzi.
- Dołączaj przykłady: Jeśli dodajesz nowe API, wskaż Bobowi, aby przejrzał dobrze napisane API w twojej bazie kodu jako przykłady. Możesz też uwzględnić przykłady w swoim prompcie, aby pokazać Bobowi format lub styl, jaki chcesz.
Udoskonal niejasny prompt
W tej sekcji napiszesz niejasny prompt dla Boba i przejrzysz output. Następnie udoskonalisz swój prompt w oparciu o najlepsze praktyki, aby poprawić jakość odpowiedzi.
Celem jest, aby Bob wygenerował funkcję Python drukującą bieżącą datę i czas w formacie UTC. Funkcja powinna być dobrze udokumentowana i zawierać obsługę błędów.
Otwórz terminal i uruchom sesję interaktywną w trybie Agent:
bob chat --mode agentWprowadź następujący prompt:
Write a Python function that prints the date and time.Bob generuje odpowiedź, ale może ona nie spełniać wszystkich twoich wymagań.
from datetime import datetime
def print_datetime():
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))Funkcja nie ma obsługi błędów i drukuje czas lokalny, nie UTC.
Wprowadź /clear, aby zresetować historię rozmowy, tak żeby pierwsza odpowiedź
nie wpływała na następną:
/clearUdoskonal swój prompt używając składników prompta:
- Rola: „Jesteś starszym inżynierem oprogramowania z doświadczeniem w Python 3."
- Instrukcja: „Napisz funkcję Python 3, która drukuje bieżącą datę i czas w formacie UTC."
- Kontekst: „Funkcja powinna być dobrze udokumentowana i zawierać obsługę błędów."
- Przykład: Wskaż Bobowi autorytatywne źródło, takie jak najlepsze praktyki obsługi wyjątków w Real Python.
Wprowadź udoskonalony prompt:
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()Udoskonalony prompt generuje funkcję używającą UTC, zawierającą docstringi i obsługę wyjątków.
IBM SkillsBuild
IBM SkillsBuild to bezpłatna platforma nauki online oferująca kursy dotyczące pisania skutecznych promptów dla asystentów AI takich jak Bob.
Aby dowiedzieć się więcej o dobrym pisaniu promptów, skorzystaj z kursu Craft Precise Prompts for AI Models.
Następne kroki
W tym samouczku poznałeś składniki skutecznego prompta i udoskonaliłeś niejasny prompt w taki, który niezawodnie generuje pożądany output.
Przejdź do Tworzenie i używanie skilli, aby przekształcić dobrze napisany prompt w wielokrotnie używalny, powtarzalny workflow, który Bob może stosować automatycznie.