Tutoriais

Escrever prompts eficazes para o Bob

Maximize o output do Bob escrevendo prompts eficazes.

IBM Bob é um assistente de programação e tecnologia, mas Bob não consegue ler a sua mente. Bob depende das suas instruções para entregar bons resultados. Aprender as noções básicas de escrita de prompts melhora a sua experiência com o Bob, poupa tempo e dá-lhe o que quer.

O que é um prompt?

Um prompt é um conjunto de instruções que você dá ao Bob para obter o output desejado. Um prompt pode ser uma pergunta, um pedido ou um comando. Pode ser tão simples como "Qual é a capital da França?" ou tão complexo como "Escreve uma função Python que recebe uma lista de números e retorna a média."

Pensa no princípio de desenvolvimento de software "garbage in, garbage out". Se deres ao Bob um prompt vago ou incompleto, podes obter uma resposta vaga ou incompleta.

Quando escreves prompts de maior qualidade, obtens respostas de maior qualidade. Um bom prompt é claro, específico e fornece contexto suficiente para que o Bob entenda o que queres.

Componentes de um prompt

Para escrever um prompt eficaz, deves incluir os seguintes componentes:

  • Instrução: Orienta o Bob sobre qual tarefa executar. A instrução é escrita como um comando claro, como "Resume esta função Python" ou "Gera um SBOM para esta API." Instruções fortes reduzem a ambiguidade e levam a resultados mais relevantes.
  • Papel: Atribui ao Bob um papel ou persona específico para adotar ao gerar a resposta. Por exemplo, podes dizer "És um engenheiro de software sênior com expertise em Python." Isso ajuda o Bob a adaptar a sua resposta à perspetiva desse papel.
  • Contexto: O contexto fornece informações de fundo adicionais ou detalhes que moldam a resposta do Bob. O contexto pode incluir uma descrição da situação, o tom, o público ou informações-chave que queres incorporar. O contexto ajuda o Bob a manter-se alinhado com a tarefa.
  • Exemplo: Os exemplos incluem um ou mais exemplos que demonstram o padrão, formato ou tom desejado. Fornecer exemplos é especialmente útil quando queres que o output siga um estilo ou estrutura específicos. Os exemplos ajudam o Bob a interpretar o que constitui uma boa resposta.
  • Dicas: Uma dica é um breve fragmento de texto que introduz o tipo de resposta que queres. As dicas são frequentemente colocadas no final do prompt para orientar a geração do output do Bob na direção certa.

À medida que aperfeiçoas as tuas habilidades de escrita de prompts, podes guardar os teus prompts num ficheiro para reutilizá-los e partilhá-los com a tua equipa.

Boas práticas para prompts

As seguintes boas práticas podem ajudar-te a escrever prompts eficazes para o Bob.

  • Sê específico: Quanto mais específico for o teu prompt, melhor o Bob pode entender o que queres. Em vez de perguntar "Como escrevo uma função Python?", pergunta "Como escrevo uma função Python que recebe uma lista de números e retorna a média?"
  • Fornece contexto: Se o teu prompt for sobre um projeto ou base de código específico, fornece algum contexto sobre isso. Isso ajuda o Bob a gerar uma resposta que seja relevante para a tua situação. Usa as menções de contexto @ do Bob para referenciar ficheiros específicos.
  • Divide as tarefas: Como farias ao refinar uma tarefa no teu backlog, divide tarefas complexas em etapas menores e mais gerenciáveis. Isso pode ajudar o Bob a gerar respostas mais precisas e focadas.
  • Inclui exemplos: Se estás a adicionar uma nova API, indica ao Bob que reveja APIs bem escritas na tua base de código para usar como exemplos. Podes também incluir exemplos no teu prompt para mostrar ao Bob o formato ou estilo que queres.

Escrever um prompt

Nesta seção, escreverás um prompt vago para o Bob e revisarás o output. Em seguida, refinarás o teu prompt com base nas boas práticas para melhorar a qualidade da resposta.

O objetivo é que o Bob gere uma função Python que imprima a data e hora atuais no formato UTC. A função deve estar bem documentada e incluir tratamento de erros.

Se a interface de chat estiver fechada, abre-a clicando no ícone do Bob ao lado da barra de navegação ou usa o atalho Option + Command + B (Mac) ou Ctrl + Alt + B (Windows).

Painel de chat do Bob aberto no IBM Bob IDE

Seleciona Ask no seletor de modo da interface de chat.

Insere o seguinte prompt:

Write a Python function that prints the date and time.

O Bob irá gerar uma resposta, mas ela pode não satisfazer todos os teus requisitos.

from datetime import datetime

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

O Bob gerou uma função, mas provavelmente não inclui tratamento de erros ou não está no formato UTC.

Inicia um novo chat para limpar a janela de contexto.

Agora, refina o teu prompt para dar ao Bob um papel e incluir instruções, exemplos e contexto mais específicos.

  • Adiciona um papel: Dá ao Bob um papel para ajudá-lo a entender a perspetiva que deve adotar ao gerar a resposta. Por exemplo, "És um engenheiro de software sênior com expertise em Python."

  • Adiciona instruções específicas: Sê claro sobre o que queres. Por exemplo, "Escreve uma função Python 3 que imprime a data e hora atuais no formato UTC."

  • Adiciona contexto: Fornece qualquer informação adicional que possa ajudar o Bob a gerar uma melhor resposta. Por exemplo, "A função deve estar bem documentada e incluir tratamento de erros."

  • Exemplo: Inclui um exemplo de como queres que o output pareça. Se tens exemplos na tua base de código, podes referenciá-los usando as menções de contexto @ do Bob, ou ligar a exemplos externos como documentação ou fontes autoritativas como Real Python.

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

A resposta do Bob deverá agora estar mais alinhada com os teus requisitos, demonstrando a importância de escrever prompts eficazes.

IBM SkillsBuild

IBM SkillsBuild é uma plataforma de aprendizagem online gratuita que oferece cursos e recursos para te ajudar a desenvolver as tuas competências em vários domínios tecnológicos, incluindo IA e aprendizagem automática. Podes encontrar cursos sobre como escrever prompts eficazes para assistentes de IA como o Bob, bem como outros tópicos relacionados com o desenvolvimento de software e tecnologia.

Para saber mais sobre a escrita eficaz de prompts, faz o curso Craft Precise Prompts for AI Models.

Próximos passos

Neste tutorial, aprendeste os componentes de um prompt eficaz e refinaste um prompt vago num que produz de forma fiável o output que queres.

Avança para Usar uma skill para transformar um prompt bem escrito num workflow reutilizável e repetível que o Bob pode aplicar automaticamente.

Como está este tópico?