Escribir prompts efectivos para Bob Shell

Escribe prompts efectivos para Bob Shell añadiendo un rol, contexto y ejemplos, y luego refina una solicitud vaga en código Python documentado con manejo de errores.

IBM Bob Shell produce código más preciso cuando tu prompt indica la tarea, un rol, contexto y un ejemplo. En este tutorial reescribe una solicitud vaga en un prompt estructurado, luego compara los resultados.

Prerrequisitos

Para confirmar que Bob Shell está instalado, abre una terminal y comprueba la versión:

bob --version

¿Qué es un prompt?

Un prompt es una pregunta, solicitud o comando que le das a Bob para obtener el output que deseas. Los prompts vagos producen respuestas vagas. Un buen prompt es claro, específico y proporciona suficiente contexto para que Bob entienda lo que quieres.

Componentes de un prompt

Un prompt efectivo combina los siguientes componentes:

ComponentePropósitoEjemplo
InstrucciónLe indica a Bob qué tarea realizar. Las instrucciones sólidas reducen la ambigüedad."Genera un software bill of materials (SBOM) para esta API."
RolAsigna una persona para que Bob adapte la respuesta a esa perspectiva."Eres un ingeniero de software senior con experiencia en Python."
ContextoAñade información de fondo, como la situación, la audiencia, el tono o las restricciones."La función se ejecuta en un servicio de producción y debe incluir manejo de errores."
EjemploMuestra el patrón, formato o estilo que quieres que Bob siga."Sigue la estructura de @src/api/users.py."
PistaIntroduce la respuesta que deseas, generalmente al final del prompt."Devuelve únicamente la función, comenzando con def."

Puedes guardar tus prompts como slash commands personalizados para reutilizarlos y compartirlos con tu equipo.

¿Qué hace que un prompt sea efectivo?

Las siguientes buenas prácticas pueden ayudarte a escribir prompts efectivos para Bob.

  • Sé específico: Cuanto más específico sea tu prompt, mejor puede Bob entender lo que quieres. En lugar de preguntar "¿Cómo escribo una función de Python?", pregunta "¿Cómo escribo una función de Python que tome una lista de números y devuelva el promedio?"
  • Proporciona contexto: Si tu prompt trata sobre un proyecto o base de código específico, proporciona algo de contexto al respecto. Esto ayuda a Bob a generar una respuesta que sea relevante para tu situación. Usa referencias @, como @src/main.py, para indicarle a Bob archivos específicos.
  • Divide las tareas: Como lo harías al refinar una tarea en tu backlog, divide las tareas complejas en pasos más pequeños y manejables. Esto puede ayudar a Bob a generar respuestas más precisas y enfocadas.
  • Incluye ejemplos: Si estás añadiendo una nueva API, indica a Bob que revise APIs bien escritas en tu base de código para usarlas como ejemplos. También puedes incluir ejemplos en tu prompt para mostrarle a Bob el formato o estilo que deseas.

Refinar un prompt vago

En esta sección, escribirás un prompt vago para Bob y revisarás el output. Luego refinarás tu prompt basándote en las buenas prácticas para mejorar la calidad de la respuesta.

El objetivo es que Bob genere una función de Python que imprima la fecha y hora actuales en formato UTC. La función debe estar bien documentada e incluir manejo de errores.

Abre una terminal e inicia una sesión interactiva en el modo Agent:

bob chat --mode agent

Ingresa el siguiente prompt:

Write a Python function that prints the date and time.

Bob genera una respuesta, pero es posible que no cumpla todos tus requisitos.

from datetime import datetime

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

La función no tiene manejo de errores e imprime la hora local, no UTC.

Introduce /clear para restablecer el historial de conversación, de modo que la primera respuesta no influya en la siguiente:

/clear

Refina tu prompt con los componentes de un prompt:

  • Rol: "You are a senior software engineer with expertise in Python 3."
  • Instrucción: "Write a Python 3 function that prints the current date and time in UTC format."
  • Contexto: "The function should be well documented and include error handling."
  • Ejemplo: Indica a Bob una fuente autorizada, como las buenas prácticas de manejo de excepciones de Real Python.

Ingresa el prompt refinado:

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

El prompt refinado produce una función que usa UTC, incluye docstrings y maneja excepciones.

IBM SkillsBuild

IBM SkillsBuild es una plataforma de aprendizaje en línea gratuita con cursos sobre cómo escribir prompts efectivos para asistentes de IA como Bob.

Para aprender más sobre la escritura de buenos prompts, realiza el curso Craft Precise Prompts for AI Models.

Próximos pasos

En este tutorial, aprendiste los componentes de un prompt efectivo y refinaste un prompt vago en uno que produce de forma confiable el output que deseas.

Avanza a Crear y usar skills para convertir un prompt bien escrito en un flujo de trabajo reutilizable y repetible que Bob puede aplicar automáticamente.

¿Cómo es este tema?