0Pricing
AI Prompt Engineering · Lección

Eliminar la ambigüedad de las instrucciones

Técnicas para eliminar interpretaciones múltiples en sus instrucciones.

Eliminar la ambigüedad de las instrucciones es una lección gratuita de AI Prompt Engineering en CoddyKit. Esta es la lección 2 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.

Qué efecto tiene la ambigüedad en la IA

Los prompts ambiguos obligan al modelo a elegir entre varias interpretaciones válidas. Elige una —por lo general, la más común— y la desarrolla con seguridad, sin indicar que ha tenido que tomar una decisión.

El resultado: obtiene una respuesta perfectamente bien formulada para la pregunta equivocada. Reconocer y eliminar la ambigüedad antes de enviar el prompt es más rápido que reescribir el resultado después.

El clásico: «Mejóralo»

«Mejóralo» es quizá el prompt más ambiguo que existe. ¿Mejorarlo cómo?

  • ¿Más corto? ¿Más largo?
  • ¿Más formal? ¿Más informal?
  • ¿Más ejemplos? ¿Menos?
  • ¿Un tono diferente? ¿Una estructura diferente?
  • ¿Corregir la gramática? ¿Utilizar un vocabulario diferente?

El modelo elige una dimensión y la modifica. Si esa no es la dimensión que quería cambiar, se queda atrapado en un ciclo de reescrituras.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

original_text = (
    'Our software helps companies manage their data. '
    'It has many features. Customers like it a lot.'
)

# Ambiguous improvement request
vague = f'Make this better:\n\n{original_text}'

# Unambiguous improvement request
specific = (
    f'Rewrite this product description to be exactly 50% shorter, '
    f'more confident in tone, and replace vague phrases like "many features" '
    f'and "a lot" with specific claims. Do not add new features I have not mentioned.\n\n'
    f'{original_text}'
)

for label, prompt in [('VAGUE', vague), ('SPECIFIC', specific)]:
    response = client.messages.create(
        model='claude-opus-4-5',
        max_tokens=200,
        messages=[{'role': 'user', 'content': prompt}]
    )
    print(f'--- {label} ---')
    print(response.content[0].text)
    print()

Múltiples interpretaciones: ejemplos prácticos

Cualquier prompt que contenga un pronombre sin referente definido, un adjetivo relativo o un sujeto omitido puede ser ambiguo. Ejemplos:

  • «Mejore el rendimiento»: ¿el de qué? ¿La velocidad, la precisión o la interacción de los usuarios?
  • «Escriba sobre el impacto»: ¿positivo, negativo, económico o social?
  • «Corrija esto»: ¿la lógica, el estilo, el formato o la gramática?
  • «Hágalo profesional»: ¿vocabulario formal? ¿Párrafos estructurados? ¿Eliminar los emojis?
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Disambiguating 'fix this code'
buggy_code = 'def divide(a, b): return a / b'

ambiguous = f'Fix this:\n{buggy_code}'

unambiguous = (
    f'Fix only the division-by-zero bug in this function. '
    f'Add a guard that raises a ValueError with message "b cannot be zero" when b=0. '
    f'Do not change anything else — keep the function signature and return type identical.\n\n'
    f'{buggy_code}'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{'role': 'user', 'content': unambiguous}]
)
print(response.choices[0].message.content)

Técnica de desambiguación: indique la interpretación

Si sabe que su prompt podría interpretarse de varias maneras, indique explícitamente qué interpretación desea.

Plantilla: «Cuando digo [término ambiguo], me refiero a [definición específica]»

Ejemplos:

  • «Cuando digo editar, me refiero únicamente a corregir la gramática y la ortografía; no cambie el contenido».
  • «Cuando digo breve, me refiero a un máximo de 3 oraciones».
  • «Cuando digo profesional, me refiero a no utilizar pronombres en primera persona ni contracciones».
import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=256,
    messages=[{
        'role': 'user',
        'content': (
            'Edit the following paragraph. '
            'When I say "edit", I mean: fix grammar and punctuation only. '
            'Do NOT change vocabulary, sentence structure, or content. '
            'When done, list each change you made in a numbered list below the edited text.\n\n'
            'The team have went to the meeting early, but the manager '
            'werent there so they waited for alot of time before leaving.'
        )
    }]
)
print(response.content[0].text)

Técnica de desambiguación: defina el alcance

La ambigüedad del alcance es frecuente al solicitar mejoras o ampliaciones. Resuélvala definiendo exactamente qué está incluido y qué queda fuera del alcance.

Dentro del alcance: lo que el modelo puede cambiar
Fuera del alcance: lo que debe permanecer sin cambios

Esto es especialmente importante en tareas de edición de código, revisión de documentos y procesamiento de conjuntos de datos, donde los cambios involuntarios pueden causar problemas graves.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

code_block = '''
def calculate_tax(income, rate):
    return income * rate

def calculate_net(income, tax):
    return income - tax
'''

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Add Python type hints to the following code.\n'
            'IN SCOPE: adding type hints to parameters and return values only.\n'
            'OUT OF SCOPE: changing function names, logic, docstrings, or formatting.\n'
            'Do not add any comments or docstrings.\n\n'
            + code_block
        )
    }]
)
print(response.choices[0].message.content)

Técnica de desambiguación: especifique el formato de salida

La ambigüedad del resultado aparece cuando desea un formato específico, pero no lo indica. «Deme los datos»: ¿en un párrafo? ¿En una lista? ¿En una tabla? ¿En un objeto JSON?

Indique siempre el formato de salida exacto que espera. Cuando se le informa explícitamente, el modelo lo reproduce con precisión.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

candidates_text = (
    'Alice: 5 years Python, worked at Stripe, has a CS degree.\n'
    'Bob: 3 years JavaScript, worked at a startup, self-taught.\n'
    'Carol: 8 years Java, worked at Google, has an MS in CS.'
)

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{
        'role': 'user',
        'content': (
            'Extract the candidate data below into a JSON array. '
            'Each object must have exactly these keys: name, years_experience, primary_language, '
            'previous_employer, education_level. '
            'education_level values: DEGREE, MASTERS, SELF_TAUGHT.\n\n'
            + candidates_text
        )
    }]
)
print(response.content[0].text)

Técnica de desambiguación: pida al modelo que aclare

Al redactar un prompt complejo que sabe que es ambiguo, puede indicar al modelo que formule preguntas aclaratorias antes de intentar realizar la tarea.

Esto resulta especialmente útil al crear asistentes de IA: quiere que el modelo recopile información en lugar de hacer suposiciones, tal como lo haría un buen consultor humano.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[
        {
            'role': 'system',
            'content': (
                'You are a professional copywriter. '
                'Before starting any writing task, ask exactly 3 clarifying questions '
                'that would most improve the output quality. '
                'Only proceed to write after the user answers those questions.'
            )
        },
        {
            'role': 'user',
            'content': 'Write a landing page headline for my business.'
        }
    ]
)
print(response.choices[0].message.content)

Términos relativos que necesitan un punto de referencia

Los términos relativos no tienen un significado fijo: significan cosas diferentes para distintas personas:

  • «Breve»: ¿1 oración? ¿3 oraciones? ¿1 párrafo?
  • «Formal»: ¿sin contracciones? ¿estilo de citación académica? ¿lenguaje jurídico?
  • «Sencillo»: ¿nivel de lectura de quinto grado? ¿sin términos técnicos? ¿solo oraciones cortas?
  • «Exhaustivo»: ¿abarcar todos los casos principales? ¿incluir casos límite? ¿con ejemplos?

Sustituya cada término relativo por un equivalente concreto y medible.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# Relative terms mapped to concrete equivalents
mapping = [
    ('Give me a brief summary',   'Summarize in exactly 2 sentences'),
    ('Write something formal',    'Write using no contractions, no first person, and Flesch-Kincaid grade 12+'),
    ('Make it simple',            'Use only words a 10-year-old would know; max 15 words per sentence'),
    ('Be comprehensive',          'Cover at least 5 distinct subtopics with one example each'),
]

for vague, concrete in mapping:
    print(f'Vague:    "{vague}"')
    print(f'Concrete: "{concrete}"')
    print()

Ambigüedad del sujeto: ¿quién realiza la acción?

La ambigüedad del sujeto se produce cuando no queda claro a quién o a qué se aplica la instrucción.

«Reescriba la introducción»: ¿la de qué? ¿La del documento que pegó? ¿La del documento que comentamos hace 5 turnos? ¿Una nueva?

«Traduzca esto»: ¿qué parte? ¿Toda la respuesta? ¿Solo la sección de resumen? ¿Los comentarios del código?

Indique siempre el objeto o la sección específicos a los que se refiere, especialmente en conversaciones de varios turnos.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

# Clear subject reference prevents wrong-section edits
contract_text = (
    '## Section 1: Payment Terms\nPayment is due within 30 days.\n\n'
    '## Section 2: Termination\nEither party may terminate with 30 days notice.'
)

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'In the contract below, rewrite ONLY Section 2 (Termination). '
            'Change the notice period from 30 days to 90 days. '
            'Do not change Section 1 or any other text.\n\n'
            + contract_text
        )
    }]
)
print(response.choices[0].message.content)

Ambigüedad temporal: ¿cuándo?

Las referencias temporales en los prompts pueden ser ambiguas: «reciente», «actual», «más reciente», «ahora».

El entrenamiento del modelo tiene una fecha de corte: no sabe qué significa «ahora» a menos que se lo indique. Proporcione siempre fechas explícitas para las tareas que dependan del tiempo.

  • «Investigaciones recientes» → «Investigaciones publicadas en 2024 o 2025»
  • «Prácticas recomendadas actuales» → «Prácticas recomendadas a fecha de enero de 2025»
  • «Versión más reciente» → «Versión 3.12 (publicada en octubre de 2024)»
import anthropic
from datetime import date

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

today = date.today().isoformat()

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=256,
    system=f'Today is {today}. Use this as the reference for any time-related words.',
    messages=[{
        'role': 'user',
        'content': (
            'Describe the best practices for Python async programming '
            'as of January 2025. If your knowledge does not cover this timeframe, '
            'say so explicitly and share what you know up to your cutoff.'
        )
    }]
)
print(response.content[0].text)

Creación de un radar de ambigüedad

Antes de enviar cualquier prompt, revíselo para detectar estas señales de ambigüedad:

  • Pronombres sin referentes claros: lo, esto, eso, ellos
  • Adjetivos relativos: mejor, más corto, formal, sencillo, exhaustivo, reciente
  • Verbos vagos: corregir, mejorar, actualizar, hacer, ocuparse de algo
  • Alcance no definido: no se indica qué está dentro y qué está fuera del alcance
  • Formato no definido: no se especifica el formato de salida
  • Contexto insuficiente: quién es la audiencia y para qué se utilizará el resultado
def scan_prompt_for_ambiguity(prompt):
    '''Simple heuristic scanner for common ambiguity patterns.'''
    warnings = []
    vague_verbs = ['fix', 'improve', 'make it', 'update', 'change it', 'redo']
    relative_adj = ['better', 'shorter', 'longer', 'formal', 'simple', 'recent', 'comprehensive']
    missing_format = ['json', 'table', 'list', 'bullet', 'paragraph', 'word', 'sentence']

    lower = prompt.lower()
    for v in vague_verbs:
        if v in lower:
            warnings.append(f'Vague verb detected: "{v}" — specify what change exactly')
    for a in relative_adj:
        if a in lower:
            warnings.append(f'Relative adjective: "{a}" — anchor with a measurable definition')
    if not any(f in lower for f in missing_format):
        warnings.append('No output format specified — add format, length, or structure')
    return warnings

test = 'Make the report better and more formal.'
print('Prompt:', test)
for w in scan_prompt_for_ambiguity(test):
    print(' WARNING:', w)

Comprobación de conocimientos

Un desarrollador envía este prompt: «Simplifique el código». La IA acorta el código, pero el desarrollador quería que utilizara nombres de variables más legibles, no que lo hiciera más corto. ¿Cuál era el problema principal?

Eliminar la ambigüedad: resumen

La ambigüedad obliga al modelo a adivinar, y su elección es la interpretación más promedio, no la suya. Técnicas clave de desambiguación:

  • Indique la interpretación: «Cuando digo X, me refiero a Y»
  • Defina el alcance: enumere qué está dentro y qué está fuera del alcance
  • Indique el formato de salida: JSON / tabla / párrafo / número de oraciones
  • Establezca un punto de referencia para los términos relativos: «breve» → «2 oraciones», «formal» → «sin contracciones»
  • Indique el sujeto: «Sección 2», no «esta parte»
  • Solicite aclaraciones: indique al modelo que formule preguntas antes de continuar

Preguntas frecuentes

¿La lección «Eliminar la ambigüedad de las instrucciones» es gratis?

Sí — el texto completo de «Eliminar la ambigüedad de las instrucciones» 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 «Eliminar la ambigüedad de las instrucciones»?

Técnicas para eliminar interpretaciones múltiples en sus instrucciones. 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 2 de 4.

¿Cuánto tiempo toma la lección «Eliminar la ambigüedad de las instrucciones»?

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

  1. Por qué es importante la especificidad
  2. Eliminar la ambigüedad de las instrucciones
  3. Añadir detalles concretos
  4. Comparación entre instrucciones vagas y específicas
← Volver a AI Prompt Engineering