Repaso Flash
Lo que hay que tener fresco. En orden de peso, no de temario.
Si solo lees una cosa
El molde de casi todos los ítemsSíntoma → qué técnica falta. La opción «reformula el prompt con más detalle» casi siempre es el distractor. Y ante dos opciones válidas, gana la que quita la capacidad o verifica contra la fuente, no la que audita después.
Ante cualquier duda de modelo o arquitecturaLo más pequeño y simple que pase la eval. Nunca «usa el más capaz». Nunca «adopta el framework». Nunca «añade un agente» si un workflow lo hace.
Diagnóstico: síntoma → qué falta
| Forma equivocada | Restricción de salida |
| Deriva entre turnos | System prompt poco especificado |
| Estructura alucinada | Ejemplos few-shot |
| El parser sigue rompiéndose | Salida estructurada en la API |
| Tool errónea desde el turno 1 | La descripción (condición de exclusión) |
| Tool errónea tras N turnos | La ventana de contexto |
| Error de tool al reintentar tras corte | Bloque a medio construir |
| Units pasan, e2e falla | La costura → test de integración |
| Inconsistente entre ejecuciones | Alucinación |
| Fallo reproducible | Prompt o capacidad del modelo |
Bucle agéntico
Control del bucle
stop_reason: sigue en tool_use, termina en end_turn. Nunca parsear lenguaje natural ni usar tope de iteraciones como criterio.Devolver resultadosMensaje
role: user con bloques tool_result + tool_use_id. No existe rol tool. Van primeros en content, texto después, o 400.Fallo de tool
is_error: true. Nunca excepción, nunca resultado vacío (el modelo lo lee como dato).SubagentesContexto fresco: solo cruza el string del prompt. Vuelve solo el mensaje final. No precargan skills. Paralelizar = varias llamadas de spawn en una sola respuesta.
CosteAgente ~4× un chat · multi-agente ~15×. Solo se gana en tareas que se dividen en partes paralelas independientes.
Workflow o agente
La fraseWorkflow si puedes escribir los pasos exactos en código. Agente si puedes dar objetivo y tools pero no el camino.
Parallelization vs orchestrator-workersLa única diferencia: si las subtareas estaban predefinidas. En orchestrator las decide el modelo en runtime.
Human-in-the-loopSi una tool hace algo irreversible, el checkpoint entra antes de cablear el bucle. Un log es forense, no preventivo.
Cifras
| Corte | 720 / 1000 |
| Batch | 50% descuento · 100.000 req o 256 MB · expira 24 h · resultados 29 días · sin streaming |
| Estados de batch | Solo in_progress y ended |
| Caché TTL | 5 min · 1 h extendido |
| Caché precio | escritura 1,25× / 2× · lectura 0,1× → amortiza a la 1ª lectura (5 min), 2ª (1 h) |
| Breakpoints | Máximo 4 |
| Invalida todo | Cambiar tools · también el effort (se renderiza en el prompt) |
| Tools | Degrada por encima de 30-50 · descripción mín. 3-4 frases |
| MCP conectados | 5 servidores ≈ 55.000 tokens antes de trabajar |
| Strict outputs | 20 tools · 24 opcionales · 16 uniones · 180 s compilación |
| Imagen | ⌈an/28⌉ × ⌈al/28⌉ · alta res 2576px/4784 · estándar 1568px/1568 |
| Timeout no-streaming | 10 minutos |
| Reintentos SDK | 2 por defecto, backoff exponencial |
| RAG sin RAG | Cabe bajo 200k tokens → todo al prompt con caché |
| Contextual retrieval | −35% · −49% con BM25 · −67% con reranking · top-20 de top-150 |
| Tool outputs producción | 3-5× más que los fixtures |
Errores
429 vs 529429 = tu cuota. 529 = sobrecarga global de la API, no tuya. Ambos con backoff.
StreamingErrores como
event: error tras HTTP 200. Bloque cerrado en content_block_stop, turno en message_stop. Tool use y thinking no se recuperan parcialmente.Clasificar fallos¿Lo resolvería esperar? Sí → backoff con tope y presupuesto, nunca bucle. No → fallback con nombre, o la excepción se convierte en el comportamiento por defecto.
Ventana de contextoNo cabe → error antes de generar. Se agota a mitad → truncado con
model_context_window_exceeded. Gestionar el historial es trabajo de la app.Seguridad — el patrón de respuesta
CorrectoQuitar la capacidad. Contenido no confiable solo en
tool_result. JSON-encodear. Hook PreToolUse que bloquea y registra antes.DistractoresLoggear para auditar después · pedir confirmación · instruir en el system prompt · «nuestros usuarios son de confianza» (la inyección llega por el contenido que lee) · un modelo más capaz (puede ser más susceptible).
Cliente reguladoIdentidad → OAuth · credenciales → variables de entorno · auditoría → hook
PostToolUse · configuración → managed settings. Y plantearlo en scoping, no tras suspender la revisión.Claude Code y MCP
PermisosOrden deny → ask → allow, primer match decide, la especificidad no altera el orden. El modo es una decisión de riesgo; la regla deny cubre lo que el modo no.
CLAUDE.mdSe concatena, no se sobrescribe. Se reinyecta en cada request (por eso sobrevive a la compactación).
4 mecanismos, 4 problemasCLAUDE.md = memoria (se diluye) · reglas = ámbito · hooks = determinismo · subagentes = contexto aparte. Meterlo todo en CLAUDE.md es el anti-patrón.
Transporte y scopestdio = local · HTTP = remoto o multi-desarrollador. Un stdio en
.mcp.json parece compartible y no lo es. Equipo = HTTP y scope de proyecto.Primitivas MCPTools → el modelo · Resources → la aplicación · Prompts → el usuario.
Evals
CuándoAntes de construir. Define el éxito mientras el diseño puede cambiar.
Grader según la salidaUna forma correcta → exact match · estructurada → código · abierta → juez calibrado antes contra casos humanos. Orden: código → LLM → humano («evítalo si puedes»).
Volumen sobre calidadMás casos con grading automático > pocos calificados a mano. Contraintuitivo y literal.
NivelesUnit = dentro · integración = la costura · e2e = dice que falla, no dónde. La traza dice qué paso.
Despliegue y empaquetado
Pin, no aliasFijar la versión concreta del modelo y mantener la anterior disponible. Un alias es «la edición actual del libro»: el texto puede cambiar. Con pin, adoptas el cambio deliberadamente y tienes vuelta atrás.
Elegir plataformaPor la nube y la postura de cumplimiento del cliente. Se defiende midiendo: latencia desde la región del cliente, cumplimiento contra su certificación, y coste total por llamada, no precio por token.
ComplianceEn cliente regulado es pasa o no pasa. Se plantea en scoping, o rechaza el build en la revisión de contrato.
Data processorBedrock → AWS (por eso el ZDR de Anthropic no aplica) · Claude Platform on AWS → Anthropic · Vertex → Google · Foundry → Anthropic. FedRAMP/IL4/IL5 o «AWS único procesador» → Bedrock.
Empaquetar en calienteUn acelerador guarda la lógica reutilizable, expone lo específico del cliente como parámetros documentados, y trae la eval y el log de auditoría. Saber qué era específico del cliente es lo más caro de reconstruir después.
ContribuirUn maintainer acepta lo que puede verificar: código acotado, ejemplo ejecutable, un test y las asunciones escritas. Derechos de licencia confirmados antes de la revisión técnica.
CosturasUna aplicación es tan contenida como su costura más privilegiada. La confianza no se hereda del componente que envía el dato. Costura que no se puede asegurar → dueño humano, no se despliega.
Trampas de versión
Ya no son válidasPrefill con
{ para forzar JSON · budget_tokens de extended thinking · sampling y roots en MCP · «descarta el turno parcial» (la doc dice reanudar).CuidadoLa guía llama
Task a la tool de subagentes; la doc actual la llama Agent. En el examen, ancla en la guía.Salida que no cumple el esquemaSolo dos casos:
refusal (200 y se factura) y max_tokens. Los enum no garantizan mayúsculas.En el examen: 120 minutos. Marca y sigue: no te atasques. Lee cuántas respuestas pide cada ítem. Si aparece código, léelo como forma (qué pasa y qué falla), no como sintaxis. Y ante el empate, elige la opción que sigue siendo correcta dentro de seis meses y con diez veces más volumen.
Fuera del alcance del CCDV-F · 2
Esto no lo evalúa el CCDV-F. Se deja accesible porque saber qué no entra también ahorra tiempo, pero no lo estudies para este examen.
Los nueve patrones que se repiten
1 · Causa raíz sobre síntomaPrevenir en la generación gana a filtrar después. Si una opción arregla el origen y otra limpia el resultado, gana la primera.
2 · Tres mecanismos, tres problemasConvenciones del proyecto → contexto persistente. Criterio y generalización → ejemplos few-shot. Garantías estructurales → contratos (tool use, JSON Schema, tools por propósito).
3 · El mecanismo correcto de la plataformaAñadir al prompt por defecto en vez de reemplazarlo · forzar la tool y dejar el enriquecimiento para turnos posteriores · topes de iteraciones y de gasto · batch solo cuando la latencia lo permite.
4 · Recuperación dirigida sobre carga masivaBuscar para localizar, leer solo los aciertos, seguir referencias. Nunca volcar el repositorio entero «para que tenga contexto».
5 · Preservar información, no aplanarlaMetadatos separados del contenido · cada tipo de dato en su formato · la incertidumbre explícita · un índice de fuentes en vez de las fuentes enteras.
6 · Nunca fabricar datos para que pase la validaciónRecalcular un total a partir de las líneas es la trampa más clara: genera un dato falso que ahora sí valida. Peor que revisión manual.
7 · Los esquemas fijos envejecenSi la distribución evoluciona, prefiere el juicio del modelo o una válvula de escape («other» más detalle) a una lista cerrada o un clasificador entrenado.
8 · Contexto aislado en subagentesNo hay herencia automática ni memoria compartida. Todo viaja en el prompt.
9 · Paralelismo y observabilidadParalelizar es emitir varias llamadas en un mismo mensaje, y el coordinador sigue siendo quien lanza y agrega. Si la ejecución se sale de él, pierdes la traza.
Errores recurrentes en los distractores
Confundir entrada con salida
max_tokens limita el output. No arregla un documento que no cabe ni un error de contexto excedido.Premisas técnicas falsasLa concurrencia no baja el precio por token · el orden del array de tools no da prioridad · hay flags de CLI que sencillamente no existen.
Ocultar el fallo en vez de resolverloHacer opcionales los campos que no se extraen · documentar la limitación · aceptar el comportamiento como normal.
Reintentar con el mismo promptSin feedback del error concreto, se reproduce el mismo fallo de forma determinista.
Keywords o regex donde hace falta criterioFiltrar por palabras suprime también los casos en que el patrón sí es un problema real.
Añadir infraestructura cuando piden evitarlaSi el enunciado dice «antes de añadir complejidad», la respuesta no es un clasificador.