Un modelo que escribe una respuesta y después se califica solo es un lazo cerrado: arrastra sus propios puntos ciegos y los aprueba sin chistar. Este es el prompt de verificación, listo para copiar y pegar, que usamos en ThinkTank AI: una segunda pasada independiente cuyo único trabajo es romper la afirmación, que corre en un contexto limpio y sin el razonamiento original delante. Te llevas el template, las variables que tienes que rellenar, las variantes para código y citas, y las trampas que en silencio terminan convirtiendo a un verificador en un adulador.

En resumen
- Un modelo que escribe y se califica solo es un lazo cerrado. La independencia, una pasada aparte que nunca ve el razonamiento original, es donde está todo el valor.
- Premia al verificador por encontrar fallos, no por estar de acuerdo. Que 'no encontré nada' sea un veredicto real y que cueste llegar a él, no la salida fácil.
- Córrelo en contexto limpio: pásale solo la afirmación y el material de fuente. Deja afuera el chain-of-thought original, o te lo va a aprobar sin mirarlo.
- Exige un veredicto estructurado, SÓLIDO, SÓLIDO-CON-RESERVAS, ROTO, para que una pasada a medias tintas no se cuele como aprobación.
- Con dos rondas de romper y reescribir suele alcanzar. Más allá tiende a dar vueltas sin llegar a nada.
Un LLM que produce una respuesta y después se pone a revisar su propia respuesta casi siempre termina aprobándose. Vuelve a leer su razonamiento, lo encuentra convincente, claro, lo escribió él, y le da el visto bueno. Los defectos sobreviven porque el mismo modelo que cometió el error es el que lo anda buscando. La solución a la que llegamos en ThinkTank AI es estructural, no de estilo: una segunda pasada premiada por encontrar fallos, que corre en un contexto limpio y que nunca ve el razonamiento que produjo la respuesta. Esta página te entrega ese prompt de verificación, listo para pegar, más cómo conectarlo, las variables que tienes que rellenar, variantes para código y citas, y los modos de fallo que en silencio lo dejan inservible.
01 · Por qué falla la autoverificación (y por qué la independencia la arregla)
Pídele a un modelo que "revise su respuesta dos veces" y casi siempre te da puro teatro. Repite la conclusión, le mete un "sí, esto se ve bien" lleno de seguridad, y sigue de largo. La razón es mecánica: la respuesta y la revisión comparten contexto, así que la revisión arrastra cada suposición, cada paso que se saltó, cada requisito que entendió mal y que la respuesta dejó cocinado adentro. Un punto ciego es, por definición, invisible desde adentro.
La independencia rompe eso. Tienen que cumplirse dos cosas a la vez:
- Incentivo distinto. Al verificador se le califica por los defectos que encuentra, no por estar de acuerdo. Si "esto está bien" es la salida fácil, el modelo va a tirar para ahí. Haz que el resultado vacío sea un veredicto deliberado, con nombre propio, al que tenga que comprometerse.
- Contexto distinto. El verificador recibe la afirmación y el material de soporte, nada más. Quítale el chain-of-thought original. Si lo dejas adentro, el verificador lee el razonamiento, lo encuentra convincente y lo confirma. Acabas de reconstruir el lazo cerrado, pero con pasos de más.
Importante
La independencia es todo el mecanismo. Un verificador que puede ver el razonamiento original no es un verificador: es un segundo voto del mismo votante. Todo lo demás en esta página existe para mantener esos dos contextos separados.
Es el mismo instinto que hay detrás del code review y del testing adversarial: quien escribió algo es la peor persona para encontrarle lo que está mal. No le estás pidiendo al modelo que sea más inteligente. Le estás pidiendo a una instancia limpia que ataque un trabajo en el que no tiene nada que perder.
02 · El prompt del verificador
Aquí tienes el template. Es directo a propósito: parte de que la respuesta está mal hasta que se demuestre lo contrario, trabaja afirmación por afirmación, y cierra con un veredicto sobre el que puedes ramificar en código. Pégalo como system prompt de un subagente verificador, o como primer mensaje de un chat nuevo, seguido nada más por la afirmación y sus fuentes.
Eres un verificador adversarial. Abajo hay una RESPUESTA producida por otro sistema.
Tu trabajo es encontrar por qué está MAL — no confirmarla, no mejorarla.
Asume que contiene al menos un defecto hasta que hayas intentado activamente
romperla y no lo hayas logrado. No encontrar nada es un resultado real, pero hay
que ganárselo, no asumirlo.
Solo puedes usar:
- La RESPUESTA de abajo.
- El MATERIAL DE FUENTE de abajo.
NO puedes usar ningún razonamiento, notas ni chain-of-thought del sistema original.
Si una afirmación no se puede comprobar contra el material de fuente, eso es un hallazgo.
Trabaja en este orden:
1. EXTRAE las afirmaciones clave — los enunciados de los que depende la respuesta.
Salta lo decorativo. Lístalas como C1, C2, C3...
2. Para cada afirmación, ponla a prueba:
- ¿Es comprobable contra el MATERIAL DE FUENTE? Si no → márcala SIN SOPORTE.
- Construye el contraejemplo, el caso límite que falla o la línea de fuente
que la contradice más fuerte que puedas. Cita el texto exacto en que te apoyas.
- Di si la afirmación sobrevive al ataque.
3. Revisa el CONJUNTO en busca de defectos que ninguna afirmación suelta muestra:
una suposición no declarada, un hueco entre dos pasos, una pregunta que la
respuesta redefinió por lo bajo, un alcance que recortó en silencio.
SALIDA, exactamente con esta estructura:
DEFECTOS (ordenados por impacto, peor primero):
- [Cn | severidad: alta/media/baja] <qué está mal> | <por qué importa> | <la
evidencia o el contraejemplo>
VEREDICTO: uno de
- SÓLIDO — de verdad intentaste romperla y no pudiste.
- SÓLIDO-CON-RESERVAS — se sostiene, pero con límites declarados o afirmaciones sin verificar.
- ROTO — al menos un defecto de severidad alta.
Si el VEREDICTO es SÓLIDO, incluye una línea: "Ataques intentados: <lista>" para
que quien lea vea el trabajo. Sin elogios. Sin repetir la respuesta. Sin sugerencias
de mejora — eso es otro trabajo.
Tres decisiones de diseño cargan con el trabajo pesado:
- "Asume que contiene al menos un defecto" le da vuelta al punto de partida, de aprobar a sospechar. Sin eso, el modelo trata la verificación como una confirmación.
- "No encontrar nada hay que ganárselo" más la línea de "Ataques intentados" evita que el modelo se vaya directo a SÓLIDO. Tiene que mostrar qué intentó.
- El enum fijo de veredicto hace que el resultado sea legible por máquina. Tu harness ramifica sobre tres tokens, no sobre el tono de un párrafo.
03 · Conectarlo a un loop de agentes
En un setup multi-agente, el verificador es un rol aparte con su propio contexto, no un turno más dentro de la conversación del autor. El patrón es así: el autor produce una respuesta, tú extraes la afirmación y las fuentes, levantas una llamada de verificación nueva con solo eso, y ramificas según el veredicto.
Un loop manual mínimo con el SDK de Anthropic. Fíjate que el verificador nunca recibe el historial de mensajes del autor, solo el texto de la afirmación y las fuentes.
import Anthropic from "@anthropic-ai/sdk"
const client = new Anthropic()
const MODEL = "claude-opus-4-8"
async function verify(claim: string, sources: string) {
const res = await client.messages.create({
model: MODEL,
max_tokens: 4000,
thinking: { type: "adaptive" },
output_config: { effort: "high" }, // la verificación es sensible a la corrección
system: VERIFIER_PROMPT, // el template de la sección 02
messages: [
{
role: "user",
content: `RESPUESTA:\n${claim}\n\nMATERIAL DE FUENTE:\n${sources}`,
},
],
})
const text = res.content.find((b) => b.type === "text")?.text ?? ""
const verdict = /VEREDICTO:\s*(SÓLIDO-CON-RESERVAS|SÓLIDO|ROTO)/.exec(text)?.[1]
return { verdict, report: text }
}
// Autor → verify → si sale ROTO, devuelve los defectos para un rewrite.
Nota
Corre el verificador en effort high y deja la adaptive thinking encendida. Es un trabajo sensible a la corrección, donde prefieres gastar tokens antes que dejar pasar un defecto real. Las pasadas del autor pueden correr más baratas; el verificador es donde pagas por el rigor. Aguántate las ganas de bajarlo a un modelo chico para ahorrar: un verificador débil encuentra defectos débiles.
Cuando el veredicto es ROTO, devuélvele al autor solo los defectos, no el transcript completo del verificador, y pídele una reescritura puntual. Después verificas de nuevo. Dos rondas es el punto justo al que seguimos llegando: la primera atrapa los errores obvios, la segunda atrapa lo que metió la reescritura. Pasadas las dos, el loop tiende a dar vueltas, el autor y el verificador se ponen a discutir criterios que ninguno puede zanjar solo con las fuentes, y te conviene más escalar a una persona.
04 · Variables, variantes y cómo adaptarlo
El template tiene unas cuantas piezas móviles que defines según el uso. Si las tienes claras, el prompt se mueve limpio entre dominios.
Las variables que rellenas
- «RESPUESTA»: la afirmación o el artefacto bajo prueba. Una respuesta coherente por corrida; no juntes afirmaciones que no tienen relación, porque el verificador termina dispersando su atención.
- «MATERIAL DE FUENTE»: la verdad de base contra la que la afirmación tiene que poder comprobarse: los documentos recuperados, el spec, las filas del dataset, el contrato de la API. Es contra esto que se mide el "SIN SOPORTE". Si es flojo, el verificador solo puede marcar afirmaciones sin soporte, no afirmaciones equivocadas.
- «barra de severidad»: qué cuenta como alta y qué como baja. El default (alta = cambia la conclusión) sirve para la mayoría; apriétala más en dominios de alto riesgo.
Variantes
Para código. Cambia el paso de extraer afirmaciones por uno de comportamiento: "Extrae las propiedades que este código dice garantizar (maneja input vacío, sin off-by-one, sin fuga de recursos). Para cada una, construye el input que la rompe." El material de fuente pasa a ser los requisitos o el test que falla. El veredicto ramifica igual.
Para citas / RAG. Agrega un paso antes del veredicto: "Para cada afirmación factual, ubica el fragmento exacto de la fuente que la respalda. Si ningún fragmento la respalda, la afirmación es SIN SOPORTE por más plausible que suene." Esto atrapa el fallo más común de RAG, una respuesta fluida que las fuentes en realidad no sostienen.
Para una recomendación de negociación o de decisión (el tipo de cosa que construimos para Proyección y el trabajo de opponent-modeling): replantea los ataques como "encuentra la jugada de la contraparte o el estado del mundo en el que esta recomendación sale peor." Mismo esqueleto, el marco adversarial apuntado a la decisión en vez de a un dato.
Consejo
Mantén el enum de veredicto idéntico en todas las variantes. Tu harness debería ramificar sobre los mismos tres tokens, ya sea que acabe de verificar un dato, una función o una jugada de negociación. Un solo camino de control de flujo, muchos sabores de verificador.
05 · Detalles que en silencio convierten al verificador en un adulador
Estas son las formas en que el patrón falla en la práctica. Cada una parece inofensiva y cada una termina reconstruyendo el lazo cerrado.
-
Dejar el chain-of-thought original en el contexto. El error más común, por lejos. El verificador lee el razonamiento del autor, lo encuentra convincente y lo confirma. Quítalo. Pásale la afirmación y las fuentes, nada más.
-
Dejar que "se ve bien" salga barato. Si el prompt no obliga a un "intenté estos ataques en concreto y fallaron", el modelo cae por default en una aprobación llena de seguridad. La línea de "Ataques intentados" no es adorno: es el costo que hace honesto al SÓLIDO.
-
Mismo modelo, cache compartido, contexto que se filtra. Si corres el verificador como otro turno en la misma conversación, el prompt caching y el historial de mensajes le pasan el contexto del autor de todas formas. Usa una llamada aparte, con su propio system prompt y una lista de mensajes limpia. La independencia se trata de los bytes que el modelo de verdad ve, no de tus buenas intenciones.
-
Pedirle que arregle y juzgue a la vez. Un verificador que además reescribe empieza a defender su propio arreglo y a suavizar su propio veredicto. Mantén los trabajos separados: el verificador encuentra defectos, el autor (una pasada distinta) los arregla.
-
Material de fuente flojo. Sin una verdad de base contra la cual comprobar, el verificador solo puede marcar afirmaciones como SIN SOPORTE. No puede decirte que están equivocadas. Si todos tus veredictos salen SÓLIDO-CON-RESERVAS, lo que falta suele ser fuentes, no un verificador más duro.
-
Rondas infinitas. Hacer loop hasta que salga SÓLIDO se siente riguroso, pero en realidad es quemar tokens mientras las dos pasadas negocian. Tópalo en dos y escala.
Córrelo con honestidad y el valor no está en que el modelo se vuelva correcto: está en que dejas de confiar en respuestas que nunca fueron atacadas. El veredicto te da dónde ramificar: despliega en SÓLIDO, pon una compuerta en SÓLIDO-CON-RESERVAS, reescribe en ROTO. Esa única pieza de estructura es lo que convierte el "lo dijo el modelo" en algo sobre lo que de verdad puedes construir.
Puntos clave
- El mecanismo es la independencia, no la astucia: un contexto limpio, un incentivo de encontrar defectos y sin acceso al razonamiento original.
- Quita el chain-of-thought original antes de que el verificador vea la afirmación, dejarlo adentro reconstruye el mismo lazo cerrado que querías romper.
- Exige un veredicto estructurado (SÓLIDO / SÓLIDO-CON-RESERVAS / ROTO) para que tu harness ramifique sobre tokens, no sobre el tono de un párrafo.
- Corre el verificador en effort high con adaptive thinking encendida, y mantén el encontrar defectos y el reescribir como trabajos separados.
- Tópale el loop en dos rondas; si no llegó a nada, escala a una persona en vez de quemar tokens.
Preguntas frecuentes
¿Por qué no decirle al modelo 'sé crítico' en vez de correr una segunda pasada?
Porque la crítica dentro del mismo contexto arrastra los mismos puntos ciegos. El modelo no puede criticar una suposición que nunca se dio cuenta de que hizo. El valor está en la independencia: una instancia limpia, un incentivo distinto y sin acceso al razonamiento original. 'Sé crítico' es una instrucción de tono; esto es un contexto aparte con un trabajo que solo rinde cuando encuentra algo.
¿El verificador debería usar un modelo distinto al del autor?
Ayuda, pero es secundario. La palanca grande es la independencia de contexto, mismo modelo, contexto limpio e incentivo de encontrar defectos ya atrapa la mayoría de lo que la autoverificación deja pasar. Un modelo distinto suma diversidad de puntos ciegos, lo cual es un buen extra. Eso sí: no le bajes el verificador a un modelo chico para ahorrar. Un verificador débil encuentra defectos débiles, y la verificación es justo donde quieres el modelo más fuerte y más effort.
¿Cuántas rondas de romper-y-reescribir antes de parar?
Dos, según nuestra experiencia. La primera ronda atrapa los errores obvios; la segunda atrapa los defectos que metió la reescritura. Pasadas las dos, el autor y el verificador se ponen a dar vueltas sobre criterios que ninguno puede zanjar solo con las fuentes, esa es tu señal para escalar a una persona en vez de hacer loop para siempre.
¿Y si todos los veredictos vuelven SÓLIDO-CON-RESERVAS?
Eso casi siempre quiere decir que el material de fuente está flojo, no que el verificador sea blando. Sin nada sólido contra qué comprobar, el verificador solo puede marcar afirmaciones como SIN SOPORTE. No puede probar que están mal, así que se cura en salud. Arregla los inputs primero: dale el spec real, los documentos recuperados, el dataset. Un verificador es tan filoso como la verdad de base que le pongas en la mano.
¿Esto funciona en una sola sesión de chat, o necesito un setup multi-agente de verdad?
Funciona en un solo chat si arrancas una conversación nueva y pegas solo la afirmación y las fuentes, pero la disciplina de no filtrar el razonamiento queda de tu lado. En producción sale más limpio como una llamada de API aparte, con su propio system prompt y una lista de mensajes limpia, así la independencia no es algo que tengas que andar recordando. De cualquier forma, la regla es la misma: el verificador ve la afirmación y las fuentes, nunca el chain-of-thought.
¿Puedo juntar varias afirmaciones en una llamada de verificación para ahorrar costo?
No lo hagas. El verificador dispersa su atención entre afirmaciones que no tienen relación y el veredicto deja de servir. No puedes ramificar tu harness sobre un solo token que cubre cinco respuestas distintas. Corre una respuesta coherente por llamada. Si lo que te preocupa es el costo, baja las pasadas del autor a un modelo más barato y mantén el verificador a plena fuerza; ese es el mejor cambio.
¿Prefieres que lo hagamos por ti?
Esto mismo lo construimos para negocios como el tuyo. La primera conversación es gratis y sin compromiso.
Escríbenos por WhatsAppPrimera conversación gratis. Te responde el fundador.
Recursos relacionados

Prompt orquestador-enrutador: descompón y enruta en vez de una sola llamada sobrecargada
Un prompt gigante que 'lo hace todo' se va degradando a medida que la tarea crece: el contexto se llena de detalles que no vienen al caso y la calidad se cae justo en el medio. Este es el prompt orquestador, listo para copiar y pegar, que está detrás de Agent Orchestra: un planificador ligero que parte una petición en las subtareas independientes más pequeñas posibles, manda cada una a un solo especialista y se niega a resolver nada por su cuenta. Te llevas la plantilla, las variables que tienes que rellenar, variantes para trabajo secuencial vs. paralelo, un esquema de cómo conectarlo y las trampas que terminan convirtiendo un enrutador de vuelta en un bloque que lo hace todo.

Hacer streaming de llamadas a herramientas de la API de Claude dentro de un bucle
Hacer streaming con herramientas es un bucle agéntico, no una sola llamada: vas emitiendo tokens para que la respuesta se sienta ágil, pausas cuando Claude pide una herramienta, la ejecutas, le devuelves el resultado y sigues con el streaming hasta que el turno se cierra. Esta guía recorre el bucle completo en TypeScript con eventos reales del SDK, las reglas de forma del mensaje que la API exige y los fallos que más duelen en producción.

Arma evals para tus agentes antes de confiar en ellos
Cada cambio de prompt en un agente que no puedes medir es una apuesta a ciegas. Una eval no es más que un test para sistemas no deterministas: un dataset pequeño y honesto, graders que corren en cada cambio y un pass rate que te dice al instante si tu "ajustito" rompió algo que ya funcionaba.