Scrivere prompt efficaci per Bob Shell
Scrivi prompt efficaci per Bob Shell aggiungendo un ruolo, contesto ed esempi, poi affina una richiesta vaga in codice Python documentato con gestione degli errori.
IBM Bob Shell produce codice più accurato quando il tuo prompt indica il compito, un ruolo, il contesto e un esempio. In questo tutorial riscrivi una richiesta vaga in un prompt strutturato, poi confronta i risultati.
Prerequisiti
Per verificare che Bob Shell sia installato, apri un terminale e controlla la versione:
bob --versionCos'è un prompt?
Un prompt è una domanda, una richiesta o un comando che dai a Bob per ottenere l'output desiderato. I prompt vaghi producono risposte vaghe. Un buon prompt è chiaro, specifico e fornisce abbastanza contesto perché Bob capisca cosa vuoi.
Componenti di un prompt
Un prompt efficace combina i seguenti componenti:
| Componente | Scopo | Esempio |
|---|---|---|
| Istruzione | Dice a Bob quale compito eseguire. Istruzioni chiare riducono l'ambiguità. | "Genera un software bill of materials (SBOM) per questa API." |
| Ruolo | Assegna una persona affinché Bob adatti la risposta a quella prospettiva. | "Sei un ingegnere software senior con competenze in Python." |
| Contesto | Aggiunge informazioni di background, come la situazione, il pubblico, il tono o i vincoli. | "La funzione gira in un servizio in produzione e deve includere la gestione degli errori." |
| Esempio | Mostra il pattern, il formato o lo stile che vuoi che Bob segua. | "Segui la struttura di @src/api/users.py." |
| Suggerimento | Introduce la risposta che vuoi, solitamente alla fine del prompt. | "Restituisci solo la funzione, iniziando con def." |
Puoi salvare i tuoi prompt come slash command personalizzati per riutilizzarli e condividerli con il tuo team.
Cosa rende un prompt efficace?
Le seguenti buone pratiche possono aiutarti a scrivere prompt efficaci per Bob.
- Sii specifico: Più specifico è il tuo prompt, meglio Bob può capire cosa vuoi. Invece di chiedere "Come scrivo una funzione Python?", chiedi "Come scrivo una funzione Python che prende una lista di numeri e restituisce la media?"
- Fornisci contesto: Se il tuo prompt riguarda un progetto o una codebase specifica,
fornisci del contesto. Questo aiuta Bob a generare una risposta rilevante
per la tua situazione. Usa i riferimenti
@, come@src/main.py, per indicare a Bob file specifici. - Suddividi le attività: Come faresti nel raffinare un'attività nel tuo backlog, suddividi le attività complesse in passi più piccoli e gestibili. Questo può aiutare Bob a generare risposte più accurate e mirate.
- Includi esempi: Se stai aggiungendo una nuova API, indica a Bob di esaminare API ben scritte nella tua codebase da usare come esempi. Puoi anche includere esempi nel tuo prompt per mostrare a Bob il formato o lo stile che vuoi.
Affinare un prompt vago
In questa sezione scrivi un prompt vago per Bob e ne esamini l'output. Poi affini il tuo prompt basandoti sulle buone pratiche per migliorare la qualità della risposta.
L'obiettivo è che Bob generi una funzione Python che stampi la data e l'ora attuali in formato UTC. La funzione deve essere ben documentata e includere la gestione degli errori.
Apri un terminale e avvia una sessione interattiva in modalità Agent:
bob chat --mode agentInserisci il seguente prompt:
Write a Python function that prints the date and time.Bob genera una risposta, ma potrebbe non soddisfare tutti i tuoi requisiti.
from datetime import datetime
def print_datetime():
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))La funzione non ha gestione degli errori e stampa l'ora locale, non UTC.
Inserisci /clear per azzerare la cronologia della conversazione, in modo che la prima risposta
non influenzi quella successiva:
/clearAffina il tuo prompt con i componenti del prompt:
- Ruolo: "Sei un ingegnere software senior con competenze in Python 3."
- Istruzione: "Scrivi una funzione Python 3 che stampi la data e l'ora attuali in formato UTC."
- Contesto: "La funzione deve essere ben documentata e includere la gestione degli errori."
- Esempio: Indica a Bob una fonte autorevole, come le best practice di gestione delle eccezioni di Real Python.
Inserisci il prompt affinato:
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()Il prompt affinato produce una funzione che usa UTC, include docstring e gestisce le eccezioni.
IBM SkillsBuild
IBM SkillsBuild è una piattaforma di apprendimento online gratuita con corsi sulla scrittura di prompt efficaci per assistenti IA come Bob.
Per saperne di più sulla buona scrittura dei prompt, segui il corso Craft Precise Prompts for AI Models.
Passi successivi
In questo tutorial hai imparato i componenti di un prompt efficace e hai affinato un prompt vago in uno che produce in modo affidabile l'output desiderato.
Passa a Creare e usare skill per trasformare un prompt ben scritto in un workflow riutilizzabile e ripetibile che Bob può applicare automaticamente.