Saltar al contenido
CCAR-F English

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 equivocadaRestricción de salida
Deriva entre turnosSystem prompt poco especificado
Estructura alucinadaEjemplos few-shot
El parser sigue rompiéndoseSalida estructurada en la API
Tool errónea desde el turno 1La descripción (condición de exclusión)
Tool errónea tras N turnosLa ventana de contexto
Error de tool al reintentar tras corteBloque a medio construir
Units pasan, e2e fallaLa costura → test de integración
Inconsistente entre ejecucionesAlucinación
Fallo reproduciblePrompt o capacidad del modelo

Bucle agéntico

Control del buclestop_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 toolis_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.

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.

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 salidamax_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.

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 CCAR-F · 3

Esto no lo evalúa el CCAR-F. Se deja accesible porque saber qué no entra también ahorra tiempo, pero no lo estudies para este examen.

Cifras

Corte720 / 1000
Batch50% descuento · 100.000 req o 256 MB · expira 24 h · resultados 29 días · sin streaming
Estados de batchSolo in_progress y ended
Caché TTL5 min · 1 h extendido
Caché precioescritura 1,25× / 2× · lectura 0,1× → amortiza a la lectura (5 min), 2ª (1 h)
BreakpointsMáximo 4
Invalida todoCambiar tools · también el effort (se renderiza en el prompt)
ToolsDegrada por encima de 30-50 · descripción mín. 3-4 frases
MCP conectados5 servidores ≈ 55.000 tokens antes de trabajar
Strict outputs20 tools · 24 opcionales · 16 uniones · 180 s compilación
Imagen⌈an/28⌉ × ⌈al/28⌉ · alta res 2576px/4784 · estándar 1568px/1568
Timeout no-streaming10 minutos
Reintentos SDK2 por defecto, backoff exponencial
RAG sin RAGCabe 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ón3-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.

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.