Patrón de prompt: encabezado-cuerpo-pie
Estructura de prompt coherente que se adapta a prompts complejos con varias tareas.
Patrón de prompt: encabezado-cuerpo-pie es una lección gratuita de AI Prompt Engineering en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AI Prompt Engineering, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AI Prompt Engineering incluye 4 lecciones en total.
Los prompts como documentos
Los documentos extensos —informes, artículos y correos electrónicos— utilizan una estructura de Encabezado/Cuerpo/Pie porque es fácil de recorrer cognitivamente. Los lectores saben qué esperar en cada zona.
El mismo principio se aplica a los prompts. Cuando los prompts superan unas pocas oraciones, una estructura de Encabezado/Cuerpo/Pie facilita su lectura rápida, mantenimiento y coherencia.
Este patrón funciona con distintos modelos y se adapta desde prompts sencillos hasta prompts muy complejos.
La sección de encabezado
El Encabezado responde a dos preguntas: ¿Quién es usted? y ¿Cuál es la tarea?
Establece la identidad del modelo (persona o rol) e indica el objetivo principal del prompt. Todo lo demás se construye sobre esta base.
Un encabezado sólido es conciso, normalmente de 2 a 4 oraciones. No incluye ejemplos, restricciones ni reglas de salida.
header = '''
<header>
You are an expert technical writer specializing in API documentation.
Your task is to write clear, developer-friendly documentation
for the API endpoint described in the body of this prompt.
</header>
'''
print(header)La sección del cuerpo
El Cuerpo contiene el contenido o contexto que el modelo necesita para realizar la tarea. Esta es la zona principal de datos:
- Documentos de origen que se deben procesar
- Historial de la conversación
- Datos estructurados (fragmentos de JSON y CSV)
- Material de referencia
- La entrada real del usuario
El cuerpo es la sección más extensa y la que se inyecta con mayor frecuencia de forma dinámica en tiempo de ejecución.
def build_body(endpoint_spec):
return f'''
<body>
<endpoint_specification>
{endpoint_spec}
</endpoint_specification>
</body>
'''
spec = 'POST /api/v2/users\nRequest body: {email: string, role: admin|user}\nReturns: {id: string, created_at: ISO8601}'
print(build_body(spec))La sección del pie
El Pie contiene las instrucciones de formato y el esquema de salida. Aparece al final porque:
- El modelo lee de arriba abajo y aplica las reglas de formato a lo que acaba de procesar
- Es menos probable que ignore las instrucciones de formato situadas cerca del final
- El pie suele poder reutilizarse en prompts con el mismo tipo de salida
El pie debe ser explícito: Devuelva un objeto JSON con estos campos, no dé formato de manera atractiva.
footer = '''
<footer>
Format your response as a JSON object with these fields:
{
"endpoint": "string",
"summary": "string (one sentence)",
"parameters": [{"name": "string", "type": "string", "required": true|false, "description": "string"}],
"response_example": "string (JSON)",
"error_codes": [{"code": "number", "meaning": "string"}]
}
Do not include any text outside the JSON object.
</footer>
'''
print(footer)Ensamblaje del patrón completo
Combinación del Encabezado, el Cuerpo y el Pie en una función de prompt completa y reutilizable:
def build_api_doc_prompt(endpoint_spec):
header = '<header>\nYou are an expert technical writer. Document the API endpoint in the body.\n</header>'
body = f'<body>\n<endpoint>\n{endpoint_spec}\n</endpoint>\n</body>'
footer = '<footer>\nReturn JSON: {"summary": str, "parameters": [...], "response_example": str}\nNo text outside JSON.\n</footer>'
return '\n\n'.join([header, body, footer])
spec = 'GET /api/products/:id\nReturns product details by ID'
print(build_api_doc_prompt(spec))Por qué funciona este orden
El orden Encabezado/Cuerpo/Pie refleja la forma en que los modelos procesan el contexto:
- Primero, el Encabezado — establece la identidad y el objetivo, y prepara al modelo para lo que sigue
- Después, el Cuerpo — el modelo procesa el contenido a través del rol y la tarea establecidos
- Por último, el Pie — las instrucciones de formato aparecen justo antes de que el modelo genere su respuesta, lo que maximiza su influencia en la estructura de salida
Colocar las instrucciones de formato en el encabezado (al principio) hace que el modelo las olvide parcialmente cuando llega el momento de redactar su respuesta.
Escalar a prompts complejos
El patrón Header/Body/Footer escala de forma natural cuando los prompts se vuelven complejos:
def build_complex_prompt(persona, task, context_docs, constraints, output_schema):
header = f'<header>\n{persona}\nTask: {task}\n</header>'
docs = '\n'.join(f'<document id="{i+1}">\n{d}\n</document>' for i, d in enumerate(context_docs))
body = f'<body>\n{docs}\n</body>'
constraint_list = '\n'.join(f'- {c}' for c in constraints)
footer = f'<footer>\n<constraints>\n{constraint_list}\n</constraints>\n<output_schema>\n{output_schema}\n</output_schema>\n</footer>'
return '\n\n'.join([header, body, footer])Reutilizar plantillas de footer
Como el footer define la estructura de salida, es la sección más reutilizable. Plantillas de footer habituales:
FOOTER_JSON = '<footer>\nReturn a valid JSON object. No text outside JSON. No markdown code fences.\n</footer>'
FOOTER_MARKDOWN = '<footer>\nFormat your response as markdown.\nUse ## for section headers.\nUse bullet points for lists.\nMaximum 500 words.\n</footer>'
FOOTER_STRUCTURED = '<footer>\nRespond using this exact structure:\n1. Summary (1 sentence)\n2. Key Findings (bullet list)\n3. Recommendation (1 paragraph)\n</footer>'
print('Footer templates ready for reuse.')Inyectar contenido dinámico en el body
El body es la sección que se construye dinámicamente con más frecuencia durante la ejecución. Prácticas recomendadas para inyectar contenido dinámico:
- Envuelva siempre el contenido inyectado en etiquetas XML con nombre
- Sanitice la entrada del usuario antes de inyectarla para evitar la inyección de prompts
- Trunque los documentos muy largos y registre el truncamiento en el body
- Etiquete claramente cada elemento inyectado (document_1, user_query, chat_history)
def safe_inject(user_content, max_chars=3000):
safe = user_content.replace('<', '<').replace('>', '>')
if len(safe) > max_chars:
safe = safe[:max_chars] + '... [TRUNCATED]'
return f'<user_input>\n{safe}\n</user_input>'
raw = 'User provided text here. Could be very long.'
print(safe_inject(raw))Estructura coherente en todo el código base
El verdadero poder de Header/Body/Footer aparece cuando toda la aplicación utiliza el mismo patrón de forma coherente. Ventajas:
- Los nuevos miembros del equipo entienden cualquier prompt al instante
- La revisión de prompts durante la revisión de código es más sencilla: los revisores saben exactamente dónde buscar
- Las pruebas automatizadas pueden validar cada sección de forma independiente
- Migrar un prompt entre modelos es sencillo: solo cambia el contenido, no la estructura
Errores habituales en Header/Body/Footer
Errores que perjudican la eficacia del patrón:
- Instrucciones de formato en el header — están demasiado alejadas de la generación de la respuesta; el modelo las ignora parcialmente
- Descripción de la tarea oculta en el body — el modelo puede tratarla como datos que debe procesar, no como una directiva
- Restricciones divididas entre varias secciones — son difíciles de auditar y provocan contradicciones
- Ausencia de footer — la estructura de salida se vuelve impredecible a medida que aumenta la complejidad del prompt
Comprobación rápida
¿Dónde deben colocarse las instrucciones sobre el formato de salida en el patrón Header/Body/Footer y por qué?
Header/Body/Footer — conclusiones clave
El patrón Header/Body/Footer aporta disciplina de estructura documental a la ingeniería de prompts:
- Header: quién es usted y cuál es la tarea; establece el marco para todo lo que sigue
- Body: contenido y contexto; se inyecta dinámicamente y se envuelve en etiquetas XML semánticas
- Footer: instrucciones de formato y esquema de salida; se coloca al final para influir al máximo en la estructura de salida
- El patrón escala de forma natural desde prompts sencillos hasta prompts muy complejos
- Las plantillas de footer se pueden reutilizar en prompts con el mismo tipo de salida
- La coherencia en todo el código base hace que los prompts sean fáciles de revisar, probar y mantener
Preguntas frecuentes
¿La lección «Patrón de prompt: encabezado-cuerpo-pie» es gratis?
Sí — el texto completo de «Patrón de prompt: encabezado-cuerpo-pie» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AI Prompt Engineering, actualiza a CoddyKit PRO. El curso de AI Prompt Engineering incluye 4 lecciones en total.
¿Qué aprenderé en «Patrón de prompt: encabezado-cuerpo-pie»?
Estructura de prompt coherente que se adapta a prompts complejos con varias tareas. Practicas AI Prompt Engineering con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar AI Prompt Engineering?
No se requiere experiencia previa. AI Prompt Engineering en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Patrón de prompt: encabezado-cuerpo-pie»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de AI Prompt Engineering?
Sí. Cada lección de AI Prompt Engineering incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Usar etiquetas XML como delimitadores
- Secciones modulares de prompts
- Patrón de prompt: encabezado-cuerpo-pie
- Buenas prácticas para organizar prompts