Removendo ambiguidades das solicitações
Técnicas para eliminar múltiplas interpretações em suas instruções.
Removendo ambiguidades das solicitações é uma aula grátis de AI Prompt Engineering no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de AI Prompt Engineering, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de AI Prompt Engineering inclui 4 aulas no total.
O que a ambiguidade causa na IA
Instruções ambíguas obrigam o modelo a escolher entre várias interpretações válidas. Ele escolhe uma — geralmente a mais comum — e prossegue com confiança, sem indicar que fez uma escolha.
O resultado: você recebe uma resposta perfeitamente bem formulada para a pergunta errada. Reconhecer e eliminar a ambiguidade antes do envio é mais rápido do que reescrever a saída depois.
O clássico: 'Torne isto melhor'
'Torne isto melhor' talvez seja a instrução mais ambígua que existe. Melhor de que maneira?
- Mais curta? Mais longa?
- Mais formal? Mais informal?
- Mais exemplos? Menos?
- Tom diferente? Estrutura diferente?
- Gramática corrigida? Vocabulário diferente?
O modelo escolhe uma dimensão e a altera. Se essa não for a dimensão que você queria, ficará preso em um ciclo de reescritas.
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últiplas interpretações: exemplos práticos
Qualquer instrução com um pronome sem referente definido, um adjetivo relativo ou um sujeito ausente pode ser ambígua. Exemplos:
- 'Melhore o desempenho' — de quê? Velocidade, precisão, envolvimento dos usuários?
- 'Escreva sobre o impacto' — positivo, negativo, econômico, social?
- 'Corrija isto' — corrija a lógica, o estilo, a formatação ou a gramática?
- 'Deixe profissional' — vocabulário formal? Parágrafos estruturados? Remover 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 desambiguação: declarar a interpretação
Se você sabe que sua instrução pode ser interpretada de várias maneiras, declare explicitamente qual interpretação deseja.
Modelo: 'Quando digo [termo ambíguo], quero dizer [definição específica].'
Exemplos:
- 'Quando digo editar, quero dizer corrigir apenas a gramática e a ortografia — não altere o conteúdo.'
- 'Quando digo breve, quero dizer no máximo 3 frases.'
- 'Quando digo profissional, quero dizer sem pronomes de primeira pessoa e sem contrações.'
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 desambiguação: definir o escopo
A ambiguidade de escopo é comum ao solicitar melhorias ou expansões. Resolva-a definindo exatamente o que está dentro e fora do escopo.
Dentro do escopo: o que o modelo tem permissão para alterar
Fora do escopo: o que deve permanecer inalterado
Isso é especialmente importante na edição de código, na revisão de documentos e em tarefas de processamento de conjuntos de dados, nas quais alterações não intencionais podem 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 desambiguação: especificar o formato da saída
A ambiguidade da saída ocorre quando você deseja um formato específico, mas não o informa. 'Dê-me os dados' — em um parágrafo? Em uma lista? Em uma tabela? Em um objeto JSON?
Sempre indique exatamente o formato de saída que espera. Quando receber essa informação explicitamente, o modelo o seguirá com precisão.
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 desambiguação: pedir esclarecimentos ao modelo
Ao escrever uma instrução complexa que você sabe ser ambígua, pode instruir o modelo a fazer perguntas de esclarecimento antes de tentar realizar a tarefa.
Isso é especialmente útil ao criar assistentes de IA — você quer que o modelo reúna informações em vez de fazer suposições, assim como faria um bom 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)Termos relativos que precisam de ancoragem
Os termos relativos não têm um significado fixo — eles significam coisas diferentes para pessoas diferentes:
- 'Breve' — 1 frase? 3 frases? 1 parágrafo?
- 'Formal' — sem contrações? Estilo de citação acadêmica? Linguagem jurídica?
- 'Simples' — nível de leitura do 5.º ano? Sem termos técnicos? Apenas frases curtas?
- 'Abrangente' — abranger todos os casos principais? Incluir casos-limite? Com exemplos?
Substitua cada termo relativo por um equivalente concreto e mensurável.
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()Ambiguidade do sujeito: quem executa a ação?
A ambiguidade do sujeito ocorre quando não está claro quem ou o que é afetado pela instrução.
'Reescreva a introdução' — de quê? Do documento que você colou? Daquele que discutimos há 5 interações? De um novo documento?
'Traduza isto' — qual parte? A resposta inteira? Apenas a seção de resumo? Os comentários do código?
Sempre indique o objeto ou a seção específica a que se refere, especialmente em conversas com várias interações.
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)Ambiguidade temporal: quando?
As referências temporais nas instruções podem ser ambíguas: 'recente', 'atual', 'mais recente', 'agora'.
O treinamento do modelo tem uma data de corte — ele não sabe o que 'agora' significa, a menos que você lhe diga. Sempre forneça datas explícitas para tarefas sensíveis ao tempo.
- 'Pesquisas recentes' → 'Pesquisas publicadas em 2024 ou 2025'
- 'Boas práticas atuais' → 'Boas práticas em janeiro de 2025'
- 'Versão mais recente' → 'Versão 3.12 (lançada em outubro 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)Criar um radar de ambiguidade
Antes de enviar qualquer instrução, analise-a em busca destes sinais de ambiguidade:
- Pronomes sem referentes claros: isto, isso, aquilo, eles
- Adjetivos relativos: melhor, mais curto, formal, simples, abrangente, recente
- Verbos vagos: corrigir, melhorar, atualizar, fazer, fazer algo a respeito
- Escopo ausente: nenhuma menção ao que está dentro ou fora do escopo
- Formato ausente: o formato da saída não foi especificado
- Contexto ausente: quem é o público e para que serve a saída
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)Verificação de conhecimento
Um desenvolvedor envia esta instrução: 'Simplifique o código.' A IA encurta o código, mas o desenvolvedor queria que ela usasse nomes de variáveis mais legíveis, não que o tornasse mais curto. Qual foi o problema central?
Eliminar a ambiguidade — recapitulação
A ambiguidade obriga o modelo a adivinhar — e a interpretação escolhida é a mais comum, não a sua. Principais técnicas de desambiguação:
- Declare a interpretação: 'Quando digo X, quero dizer Y'
- Defina o escopo: liste o que está dentro e fora do escopo
- Indique o formato da saída: JSON / tabela / parágrafo / contagem de frases
- Ancore os termos relativos: 'breve' → '2 frases', 'formal' → 'sem contrações'
- Indique o sujeito: 'Seção 2', não 'esta parte'
- Peça esclarecimentos: instrua o modelo a fazer perguntas antes de prosseguir
Perguntas Frequentes
A aula “Removendo ambiguidades das solicitações” é grátis?
Sim — o texto completo de “Removendo ambiguidades das solicitações” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de AI Prompt Engineering, atualize para CoddyKit PRO. O curso de AI Prompt Engineering inclui 4 aulas no total.
O que vou aprender em “Removendo ambiguidades das solicitações”?
Técnicas para eliminar múltiplas interpretações em suas instruções. Você pratica AI Prompt Engineering com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar AI Prompt Engineering?
Nenhuma experiência prévia é necessária. AI Prompt Engineering no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Removendo ambiguidades das solicitações”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de AI Prompt Engineering?
Sim. Cada aula de AI Prompt Engineering inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Por que a especificidade é importante
- Removendo ambiguidades das solicitações
- Adicionando detalhes concretos
- Comparando solicitações vagas e específicas