Una buena petición lleva objetivo, límites y ejemplo
Pedir bien a un asistente de código es escribir una petición con un objetivo claro, el contexto necesario, los límites y un ejemplo. Una petición clara ahorra más tiempo que cualquier truco.
Una tienda de Sevilla quiere una función que aplique un descuento a un pedido. Con "haz un descuento" recibirá algo, pero seguramente no lo que necesita.
Al final de esta lección
Nota
Puedo escribir una petición con objetivo, contexto, límites y un ejemplo.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Objetivo | lo que quieres conseguir | |
| Restricción | una condición que la respuesta debe cumplir | sin bibliotecas |
| Ejemplo | una entrada y la salida que esperas | |
| Formato de salida | cómo quieres recibir la respuesta | |
| Iterar | mejorar la petición a partir de la respuesta |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Una petición vaga obliga a adivinar
Cuando falta algo, el asistente rellena el hueco con lo más habitual. Elige un lenguaje, un redondeo y unas reglas que tú no pediste.
Cada hueco es una decisión que toma por ti. Si no la ves, no la revisas.
Ejemplo: la misma idea pedida de dos formas
| Petición | Texto | Qué deja al azar |
|---|---|---|
| Vaga | Haz una función de descuento | Lenguaje, reglas, unidades y forma de devolver |
| Clara | Escribe en Python descuento(unidades, precio) que devuelva euros. Desde 10 unidades, un 5 %. Sin bibliotecas. Ejemplo: descuento(10, 2.0) devuelve 19.0 | Casi nada: cada decisión está dicha |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Una petición se monta con cinco partes
Piensa en cinco preguntas: ¿qué quiero? ¿en qué lenguaje y con qué datos? ¿qué límites hay? ¿cómo es un caso de ejemplo? ¿cómo quiero la respuesta?
No todas pesan lo mismo en cada petición. Pero si no puedes contestar una, todavía no sabes qué quieres.
Monta una petición con sus partes
# Una petición se monta con partes. Cada una responde a una pregunta.
objetivo = "una función que calcule el precio con descuento"
lenguaje = "Python, sin bibliotecas"
limite = "con 10 o más unidades se aplica un 5 % de descuento"
ejemplo = "descuento(10, 2.0) devuelve 19.0"
salida = "solo el código, con un comentario por función"
peticion = "Escribe " + objetivo + ". Usa " + lenguaje + ". "
peticion = peticion + limite + ". Ejemplo: " + ejemplo + ". "
peticion = peticion + "Responde con " + salida + "."
print(peticion)
# Cambia el límite por otra regla y vuelve a pulsar Ejecutar.
Pide en pasos pequeños y mejora la petición
Un asistente acierta más con un trabajo pequeño que con uno enorme. Pide una función, mírala y pide la siguiente.
Si la respuesta no sirve, no repitas la misma petición. Itera: añade lo que faltaba, como un límite o un caso que falló. También puedes pedirle que diga qué ha supuesto.
Un error frecuente
Advertencia
Mucha gente cree que una petición larga siempre es mejor. No es así. Una petición mejora cuando añade datos que cambian la respuesta, como un límite o un ejemplo. Si solo añade palabras, el asistente tiene más texto que leer y las mismas dudas.
Busca en el proyecto el contexto que darías
Antes de pedir algo sobre el proyecto de la cantina, reúne lo que el asistente no puede adivinar. Estas órdenes solo leen. Una te dice en qué unidad van los precios, otra qué productos existen y otra qué puede hacer el agente sin preguntarte.
Lee la primera línea del programa
docker exec -w /home/node/project agent head -n 1 shop.jsSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Busca dónde se usan los precios
docker exec -w /home/node/project agent grep -n PRICES shop.jsSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Mira qué permisos tiene el agente
docker exec agent grep permission /home/node/.config/opencode/opencode.jsonSe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.