Écrire des prompts efficaces pour Bob Shell
Écris des prompts efficaces pour Bob Shell en ajoutant un rôle, du contexte et des exemples, puis affine une demande vague en code Python documenté avec gestion des erreurs.
IBM Bob Shell produit un code plus précis lorsque ton prompt nomme la tâche, un rôle, du contexte et un exemple. Dans ce tutoriel, réécris une demande vague en prompt structuré, puis compare les résultats.
Prérequis
Pour confirmer que Bob Shell est installé, ouvre un terminal et vérifie la version :
bob --versionQu'est-ce qu'un prompt ?
Un prompt est une question, une demande ou une commande que tu donnes à Bob pour obtenir le résultat que tu veux. Les prompts vagues produisent des réponses vagues. Un bon prompt est clair, spécifique et fournit suffisamment de contexte pour que Bob comprenne ce que tu veux.
Composants d'un prompt
Un prompt efficace combine les composants suivants :
| Composant | Objectif | Exemple |
|---|---|---|
| Instruction | Dit à Bob quelle tâche effectuer. Des instructions fortes réduisent l'ambiguïté. | "Generate a software bill of materials (SBOM) for this API." |
| Rôle | Attribue une persona pour que Bob adapte la réponse à cette perspective. | "You are a senior software engineer with expertise in Python." |
| Contexte | Ajoute du contexte, comme la situation, le public, le ton ou les contraintes. | "The function runs in a production service and must include error handling." |
| Exemple | Montre le schéma, le format ou le style que tu veux que Bob suive. | "Follow the structure of @src/api/users.py." |
| Amorce | Introduit la réponse souhaitée, généralement à la fin du prompt. | "Return only the function, starting with def." |
Tu peux sauvegarder tes prompts en tant que commandes slash personnalisées pour les réutiliser et les partager avec ton équipe.
Qu'est-ce qui rend un prompt efficace ?
Les bonnes pratiques suivantes peuvent t'aider à écrire des prompts efficaces pour Bob.
- Sois spécifique : Plus ton prompt est spécifique, mieux Bob peut comprendre ce que tu veux. Au lieu de demander "How do I write a Python function?", demande "How do I write a Python function that takes a list of numbers and returns the average?"
- Fournis du contexte : Si ton prompt concerne un projet ou une base de code spécifique,
fournis-en le contexte. Cela aide Bob à générer une réponse pertinente
pour ta situation. Utilise des références
@, comme@src/main.py, pour pointer Bob vers des fichiers spécifiques. - Décompose les tâches : Comme tu le ferais en affinant une tâche dans ton backlog, décompose les tâches complexes en étapes plus petites et plus gérables. Cela peut aider Bob à générer des réponses plus précises et ciblées.
- Inclure des exemples : Si tu ajoutes une nouvelle API, indique à Bob de consulter les APIs bien écrites dans ta base de code pour les utiliser comme exemples. Tu peux aussi inclure des exemples dans ton prompt pour montrer à Bob le format ou le style souhaité.
Affiner un prompt vague
Dans cette section, tu écris un prompt vague pour Bob et examines le résultat. Tu affines ensuite ton prompt en appliquant les bonnes pratiques pour améliorer la qualité de la réponse.
L'objectif est que Bob génère une fonction Python qui affiche la date et l'heure actuelles au format UTC. La fonction doit être bien documentée et inclure une gestion des erreurs.
Ouvre un terminal et démarre une session interactive en mode Agent :
bob chat --mode agentSaisis le prompt suivant :
Write a Python function that prints the date and time.Bob génère une réponse, mais elle ne répond peut-être pas à toutes tes exigences.
from datetime import datetime
def print_datetime():
now = datetime.now()
print(now.strftime("%Y-%m-%d %H:%M:%S"))La fonction n'a pas de gestion des erreurs et affiche l'heure locale, pas UTC.
Saisis /clear pour réinitialiser l'historique de la conversation, afin que la première réponse ne
influence pas la suivante :
/clearAffine ton prompt avec les composants d'un prompt :
- Rôle : "You are a senior software engineer with expertise in Python 3."
- Instruction : "Write a Python 3 function that prints the current date and time in UTC format."
- Contexte : "The function should be well documented and include error handling."
- Exemple : Pointe Bob vers une source faisant autorité, comme les Real Python exception handling best practices.
Saisis le prompt affiné :
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()Le prompt affiné produit une fonction qui utilise UTC, inclut des docstrings et gère les exceptions.
IBM SkillsBuild
IBM SkillsBuild est une plateforme d'apprentissage en ligne gratuite avec des cours sur l'écriture de prompts efficaces pour les assistants IA comme Bob.
Pour en savoir plus sur l'écriture de bons prompts, suis le cours Craft Precise Prompts for AI Models.
Prochaines étapes
Dans ce tutoriel, tu as appris les composants d'un prompt efficace et affiné un prompt vague en un prompt qui produit de manière fiable le résultat que tu veux.
Passe à Créer et utiliser des skills pour transformer un prompt bien écrit en un workflow réutilisable et répétable que Bob peut appliquer automatiquement.