Uso de IA en el trabajo

Crear una biblioteca reutilizable de plantillas de prompts para tareas recurrentes

Las tareas repetitivas con IA son más fáciles de revisar cuando los prompts siguen una estructura consistente. Esta guía muestra cómo crear una pequeña biblioteca de plantillas con variables, ejemplos y una lista de comprobación para cada tarea.

Ver el índice

La traducción se ha realizado con IA. Comprueba el código, las unidades y los valores junto con el original. La revisión por hablantes nativos de cada idioma aún no se ha completado. English

Para quién esPersonas que piden repetidamente a un asistente de chat con IA tareas similares y quieren prompts consistentes, fáciles de revisar, reutilizar y actualizar.

Preparación
  • Python 3.12
  • Conocimientos básicos para redactar prompts y editar archivos de texto

01Por qué guardar los prompts recurrentes como plantillas

Si pides repetidamente a una IA que resuma informes, extraiga tareas pendientes, revise código o reescriba mensajes, redactar el prompt de memoria cada vez introduce variaciones innecesarias. Pueden desaparecer restricciones importantes, cambiar el formato de salida o volverse inconsistentes los ejemplos. Una biblioteca de plantillas convierte cada tarea recurrente en una pequeña especificación que se puede reutilizar y revisar.

Una plantilla útil debe separar las instrucciones estables de los datos que cambian. La parte fija explica la tarea, las reglas, el formato de salida esperado y las comprobaciones. Las variables contienen valores que cambian en cada uso, como el nombre de un proyecto, la audiencia, el texto de origen, una fecha o el idioma solicitado.

02Crea una pequeña biblioteca sintética

Este ejemplo es sintético. Supongamos que usas habitualmente un asistente de chat con IA para dos tareas: resumir un registro semanal de trabajo y convertir notas de reuniones en acciones pendientes. Cada tarea puede almacenarse con cuatro partes: variables, instrucciones, un ejemplo y una lista de comprobación.

PlantillaVariablesSalida principal
weekly_summaryproject, audience, log_textResumen semanal conciso
meeting_actionsmeeting_name, notesLista de acciones pendientes

Las variables son marcadores de posición, no instrucciones. Por ejemplo, project puede convertirse en Atlas, audience en engineering team y log_text puede contener las notas de esa semana. Separar estos valores facilita distinguir si cambió la plantilla reutilizable o si solo cambió el contenido de entrada.

03Da a todas las plantillas la misma estructura

La consistencia importa más que una redacción elaborada. Una plantilla práctica puede contener una descripción de la tarea, marcadores de variables, reglas explícitas, un ejemplo de entrada y salida y una comprobación final. La lista debe centrarse en fallos que realmente puedas revisar, como inventar información, omitir campos obligatorios, modificar fechas o añadir conclusiones sin respaldo.

  1. Asigna a la tarea recurrente un identificador estable, como weekly_summary.
  2. Enumera todas las variables que deben proporcionarse antes de generar el prompt.
  3. Escribe la instrucción de la tarea sin incrustar detalles temporales del proyecto.
  4. Añade reglas de salida, como longitud, encabezados, columnas de tabla o claves JSON.
  5. Incluye un ejemplo pequeño cuando el formato requerido se entienda mejor mediante una demostración.
  6. Termina con una lista de comprobación que pueda aplicar el usuario o la IA al resultado.

Evita crear una plantilla tan genérica que pierda las reglas que hacen útil la tarea. Un único prompt universal con decenas de variables opcionales suele ser más difícil de mantener que varias plantillas pequeñas y específicas.

04Genera las plantillas con Python

El siguiente script, basado únicamente en la biblioteca estándar, define dos plantillas sintéticas, comprueba que estén presentes las variables obligatorias, genera la plantilla seleccionada y guarda el resultado en outputs. Se detiene si el archivo de destino ya existe para no sobrescribir accidentalmente un prompt generado anteriormente.

python
from pathlib import Path
from string import Template

TEMPLATES = {
    "weekly_summary": {
        "required": ["project", "audience", "log_text"],
        "template": Template(
            "Task: Summarize the weekly work log.\n\n"
            "Project: $project\n"
            "Audience: $audience\n\n"
            "Rules:\n"
            "- Use only information present in the log.\n"
            "- Separate completed work, open issues, and next steps.\n"
            "- Keep dates and numbers unchanged.\n"
            "- If something is unclear, label it as unclear instead of guessing.\n\n"
            "Example format:\n"
            "Completed:\n"
            "- Finished data cleanup.\n"
            "Open issues:\n"
            "- Waiting for test results.\n"
            "Next steps:\n"
            "- Review results when available.\n\n"
            "Checklist:\n"
            "- Every statement comes from the log.\n"
            "- Dates and numbers are preserved.\n"
            "- No unsupported status claims are added.\n\n"
            "Work log:\n$log_text\n"
        ),
    },
    "meeting_actions": {
        "required": ["meeting_name", "notes"],
        "template": Template(
            "Task: Extract action items from the meeting notes.\n\n"
            "Meeting: $meeting_name\n\n"
            "Rules:\n"
            "- Do not invent owners or deadlines.\n"
            "- Preserve names and dates exactly as written.\n"
            "- Mark missing owner or deadline as Not specified.\n\n"
            "Example format:\n"
            "Action | Owner | Deadline\n"
            "Send draft | Mina | 2026-09-25\n"
            "Check budget | Not specified | Not specified\n\n"
            "Checklist:\n"
            "- Each action is supported by the notes.\n"
            "- Owners are not inferred.\n"
            "- Deadlines are not invented.\n\n"
            "Meeting notes:\n$notes\n"
        ),
    },
}

selected = "weekly_summary"
values = {
    "project": "Atlas",
    "audience": "engineering team",
    "log_text": (
        "2026-09-14: Cleaned 120 test rows.\n"
        "2026-09-16: Compared two validation reports.\n"
        "Open issue: three records still have missing labels.\n"
        "Next: review those records with the team."
    ),
}

spec = TEMPLATES[selected]
missing = [name for name in spec["required"] if not values.get(name)]
if missing:
    raise SystemExit("Missing variables: " + ", ".join(missing))

rendered = spec["template"].substitute(values)

output_dir = Path("outputs")
output_dir.mkdir(exist_ok=True)
output_file = output_dir / f"{selected}_prompt.txt"

if output_file.exists():
    raise SystemExit(f"Stop: {output_file} already exists.")

output_file.write_text(rendered, encoding="utf-8")
print(f"Wrote {output_file}")

05Comprueba el prompt generado antes de enviarlo

En el ejemplo sintético weekly_summary, las variables obligatorias son project, audience y log_text, y las tres se proporcionan. Por tanto, el prompt generado debe contener Atlas, engineering team y el registro de trabajo de cuatro líneas. No debe quedar ningún marcador como $project.

  • Confirma que cada variable obligatoria tenga un valor no vacío.
  • Busca en el texto generado marcadores sin sustituir como $project o $notes.
  • Comprueba que el contenido de ejemplo esté claramente separado de la entrada real.
  • Asegúrate de que los datos temporales se guarden solo en variables y no se copien por error en la plantilla reutilizable.
  • Revisa que la lista de comprobación corresponda a los fallos reales de la tarea.
  • Conserva sin cambios el texto de origen cuando importen fechas, nombres, números o identificadores exactos.

06Organiza y actualiza la biblioteca

Una biblioteca pequeña puede vivir en un solo archivo Python o en una carpeta de texto plano. A medida que crezca, utiliza nombres de archivo o identificadores estables como summarize-weekly-log, extract-meeting-actions, review-code o classify-feedback. Mantén cada plantilla centrada en una sola tarea recurrente.

Cuando cambies un prompt, registra qué cambió y por qué. Por ejemplo, si la IA inventa repetidamente fechas límite, añade una regla y un punto de control que prohíban inferir plazos. Así, los cambios en la plantilla quedan vinculados a problemas observados en lugar de acumular instrucciones vagas con el tiempo.

También resulta útil conservar un pequeño caso de prueba sintético para cada plantilla. Después de modificarla, vuelve a generarla con las mismas variables de prueba y comprueba que sigan presentes las secciones, etiquetas y restricciones obligatorias. Esto no demuestra que la IA vaya a obedecer siempre el prompt, pero ayuda a detectar regresiones accidentales en la plantilla.

07Errores comunes y límites

Un error frecuente es tratar una plantilla de prompt como una garantía de calidad del resultado. Un prompt bien estructurado puede reducir la ambigüedad, pero la respuesta generada aún debe revisarse. Otro error es añadir tantas reglas que resulte difícil encontrar las más importantes. Coloca las restricciones principales cerca de la tarea y del formato de salida.

No incluyas contraseñas, secretos, claves privadas ni información personal innecesaria dentro de plantillas reutilizables o ejemplos. Las variables facilitan la gestión de prompts, pero por sí solas no proporcionan control de acceso ni protección de datos.

Por último, distingue entre validar el prompt y validar el resultado. Comprobar que todas las variables se insertaron correctamente verifica el proceso de construcción del prompt. No demuestra que la respuesta de la IA sea correcta desde el punto de vista factual. Para tareas recurrentes cuyo resultado contiene hechos, cálculos, clasificaciones o decisiones, mantén una lista de comprobación del prompt y otra separada para revisar la salida.

Registro de ejecución y verificación

2026-09-21 · hand-checked example · Python 3.12

  • Se comprobó que la plantilla sintética weekly_summary declara exactamente tres variables obligatorias: project, audience y log_text.
  • Se comprobó que los valores de ejemplo proporcionan las tres variables obligatorias: Atlas, engineering team y el registro sintético de trabajo de cuatro líneas.
  • Se comprobó que los marcadores de string.Template utilizados en la plantilla seleccionada coinciden con los nombres de las variables obligatorias.
  • Se comprobó que la ruta de salida es outputs/weekly_summary_prompt.txt para la plantilla sintética seleccionada.
  • Se comprobó que el script crea el directorio outputs si es necesario y se detiene sin sobrescribir el archivo si ya existe.
  • Se comprobó que la plantilla sintética incluye instrucciones de la tarea, reglas, un formato de ejemplo, una lista de comprobación y el texto de origen suministrado mediante variables.
  • Se comprobó que el contenido de ejemplo es sintético y no pretende representar registros de trabajo reales.
Límites de la verificación
  • No ejecuté el código Python; el flujo de control y el pequeño ejemplo sintético se revisaron por inspección.
  • Generar correctamente un prompt no garantiza que un asistente de chat con IA siga todas las instrucciones.
  • El ejemplo almacena las plantillas directamente en Python; una biblioteca mayor puede necesitar archivos separados, metadatos, pruebas o control de versiones.
  • El script comprueba si faltan valores obligatorios, pero no realiza una validación avanzada de tipos de variables, contenido sensible o calidad de la salida.

Criterios de redacción y verificación de todo el sitio

Fuentes de referencia

Las explicaciones y los ejemplos son de elaboración propia. Puedes consultar los comportamientos y conceptos relacionados en las siguientes fuentes oficiales.