M2 · Enterprise Integration & Production — Resumen de estudio
Curso 2 de 5 · 20 pantallas, 5 secciones, 6 checkpoints
Es lo que separa un prototipo de un sistema en producción: evals → cost/reliability → sizing/feasibility → integración → A/B y observabilidad.
1. Evals como criterio de aceptación (se escriben ANTES del código)
Por qué antes:
- Obligan a definir el éxito en términos medibles.
- Exponen supuestos de diseño cuando todavía es barato cambiarlos.
- Dan un gate para cada cambio (modelo, prompt, retrieval).
"Si no puedes escribir un eval para un comportamiento, no tienes forma de medir si está presente."
Workflow del eval (cada etapa produce un artefacto):
- Define the task: especificación + prompt + criterios de aprobación.
- Golden dataset: entradas representativas, edge cases y contraejemplos, con salidas esperadas.
- Automated checks: pasa/falla por ítem.
- Score with a judge: puntaje + razonamiento para lo interpretativo.
- Interpret & act: desglose por categoría. Subir la media degradando edge cases no es mejorar.
Tipos de eval:
| Tipo | Para qué | Costo | Límite |
|---|---|---|---|
| Code-based | Lo inequívoco: schema, regex, JSON, longitud, comparación con dato autoritativo | Casi cero | No evalúa tono, razonamiento ni utilidad |
| Model-based (LLM judge) | Lo interpretativo: calidad, seguimiento de instrucciones, razonamiento, seguridad | 1 llamada por ítem | Inconsistente en casos límite; pide razonamiento junto al puntaje |
| Human review | Alto riesgo, capacidades nuevas, calibrar jueces | El más alto | Lento y no escala (usar muestreo) |
Grading ladder: code primero → LLM judge (rúbrica detallada, veredictos restringidos, calibrado contra etiquetas humanas, un modelo distinto al evaluado para evitar el sesgo de autopreferencia) → humano como último recurso.
- Un juez sin calibrar es peor que no tener nota, porque parece confiable.
- Volumen > perfección: muchos casos auto-calificables valen más que unos pocos perfectos.
De requisito a criterio de éxito:
- Comportamiento específico: "extraer nombre, número de claim, fecha y monto".
- Umbral que sale del requisito de negocio, no de lo que logró el prototipo (p. ej. 100% en campos estructurados, <2% de hallucination, 99.5% dentro del schema).
- Failure modes como categorías del dataset.
- Entradas adversariales (campos faltantes, manuscritos, formatos raros).
- Multi-turn evals: categoría aparte con su propio golden dataset de conversaciones completas.
- Un eval suite desactualizado da falsa confianza. El momento de mayor riesgo es cuando los evals existen pero están viejos.
⚠️ Watch out: se probó con 10 contratos "conocidos", se cambió el prompt sin actualizar el dataset y fallaron los contratos con obligaciones no estándar. Fueron dos errores: dataset no representativo y no actualizado. Los spot-checks manuales no reemplazan un eval.
Checkpoint (code vs model): code = 1 JSON schema, 3 longitud <500 tokens, 5 claim number vs fuente, 7 secciones presentes · model = 2 razonamiento, 4 queja emocional, 6 resumen captura lo importante, 8 tono de marca.
2. De POC a producción: costo, latencia, confiabilidad y failure modes
Las 4 dimensiones son invisibles en una demo. Además, mide en el POC la métrica de negocio: un costo dentro del presupuesto sin mejora medible sigue siendo un fracaso.
- Costo: volumen × tokens × tier. La distribución de tokens tiene cola: los requests largos pueden consumir la mayor parte del gasto, y un modelo basado en el promedio subestima 2–3×.
- Latencia: diseña para p95, no para la mediana.
- Prompt caching: la mayor palanca cuando el system prompt es largo y estable. Las lecturas de caché cuestan una fracción de la tarifa normal (verificar en la página de pricing). Riesgo: si el contenido cacheado debe reflejar live state, se abre una ventana de inconsistencia.
Controles de confiabilidad (cada uno en su capa):
| Control | Qué hace | Dónde va |
|---|---|---|
| Retries con exponential backoff | 429, timeouts, 5xx (529 = overloaded) | Junto a la llamada a la API |
| Fallback chains | Otro tier o respuesta cacheada en vez de mostrar un error (pruébalo en los evals) | Capa de orquestación |
| Circuit breaker | Corta cuando el error rate supera un umbral; falla rápido | Límite del servicio |
Failure modes por arquitectura:
- Agent: tool use sin límite y contexto creciente → presupuestos por turno, máximo de tool calls, criterios de parada, set mínimo de tools; evalúa también el comportamiento de parada.
- RAG: deriva en la calidad de retrieval → precision/recall como métricas; separar live state de conocimiento estático.
- Document pipeline: sin camino de excepción → confidence scoring y cola humana para baja confianza.
- Orchestrator-workers: límites difusos y trazas fragmentadas → recuperable vs no recuperable, trace ID compartido, reconciliar coverage.
Model version pinning aplica a todas: fija versiones, monitorea la página de deprecations y ten un runbook de actualización.
⚠️ Watch out: se usó el costo del POC como el costo de producción. (1) Volumen equivocado. (2) La cola de documentos largos se llevaba el 80% del gasto. (3) Un error 529 en el pico tumbó todo porque no había fallback. El POC prueba capacidad, no costo ni confiabilidad.
Calculadora (checkpoint): 50k req/mes, system prompt de 5k tokens, techo de $800 y p95 ≤3 s → la palanca es B: prompt caching (el prompt estable es el principal costo de input).
3. Sizing y feasibility
Sizing (4 pasos, antes del código):
- Volumen: pídeselo al dueño del negocio, no lo saques de un dataset de muestra.
- Token budget: modela la distribución, no el promedio. El caching requiere marcadores
cache_control; escribir en caché cuesta más que el input normal y el TTL por defecto es de 5 min. - Costo mensual: input × tarifa de input + output × tarifa de output (son distintas), usando la tarifa de lectura de caché para lo cacheado. Considera la Batch API (~50% de descuento y hasta 100k requests por batch, verificar) si el SLA permite procesamiento asíncrono. En entornos regulados, verifica que el BAA lo cubra.
- Análisis de sensibilidad: ¿qué pasa si se duplica el volumen o la cola crece?
Scoping (4 pasos): requisito → lista de capacidades → esquema de arquitectura (Claude / sistemas / humano) → boundary conditions → alcance en el SOW.
Feasibility con las 4 propiedades:
- Next-token: ¿generación probabilística o precisión en valores? → generator-verifier, code evals, tool calls.
- Knowledge: ¿información rara o reciente? → RAG (estable) o tools (live).
- Working memory: ¿cabe en la ventana? → chunking, carga progresiva, pipeline. Es la que más se pasa por alto.
- Steerability: ¿instrucciones concretas? → schemas, structured outputs, code execution, evaluator-optimizer.
3 veredictos:
- Feasible as scoped: documenta los supuestos.
- Feasible with constraints: cada constraint se documenta junto con su failure mode; son parte de la arquitectura.
- Not feasible: di cuál es la constraint que descalifica y qué reducción de alcance cambiaría el veredicto.
ROI / business value:
- 5 pilares: efficiency, transformation, productivity, solution cost, performance SLAs.
- 4 pasos:
- Baseline medido en la unidad que usa el negocio.
- Proyección en la misma unidad, incluyendo el costo de la revisión humana.
- Restar el run cost del sizing (la distribución, no el promedio).
- Payback period + sensibilidad.
- Errores típicos: baseline estimado, suponer automatización total cuando hay HITL, usar el costo promedio.
⚠️ Watch out: se confirmó feasibility antes de preguntar volumen, tamaño y latencia (800 contratos/día, hasta 300 páginas, <30 s). Que entren en el context window depende del tier (1M vs 200k). A 800/día (1 cada 108 s) el volumen presiona el costo, no la latencia.
Checkpoint: Esc. 1 = B (feasible as scoped) · Esc. 2 = C (feasible with constraints: precisión de extracción en una escritura transaccional, code eval + gate humano) · Esc. 3 = A (not feasible as described: brecha de live state; validar que el round-trip del feed quepa en 2 s).
4. Patrones de integración empresarial
Orden: compliance → entry point/route → patrón de integración → identity → authorization → data handling → observability.
Entry points (vista de integración):
- Direct API: control total; mantienes retries y streaming tú mismo.
- SDK: capa de conveniencia.
- Claude Code: solo flujos de desarrollador, nunca backend multi-tenant.
- Agent SDK: loop gestionado multi-turn dentro de tu producto.
- MCP: separa la integración de tools de la orquestación; depurar es más difícil.
Matriz restricción → integración:
- Privilege: API detrás de la app de la firma + gateway con logging + SSO; la identidad la asigna el servidor.
- HIPAA: API directa (con BAA de Anthropic), Bedrock o Vertex; el BAA cubre una configuración específica. PHI mínima y referencias por ID.
- GDPR / residencia:
- Bedrock o Vertex con región fija, o la API con
inference_geo("us"/"global"; no fija la UE). - Si se exige residencia en la UE → ruta cloud. Con la API, el DPA es con Anthropic; con una CSP, se hereda del contrato cloud.
- La residencia en la UE de Foundry está "coming 2026".
- Bedrock o Vertex con región fija, o la API con
- FedRAMP: Claude for Government, Bedrock GovCloud, Vertex Assured Workloads. Claude Enterprise en la API directa NO está autorizado para FedRAMP.
- Política interna: la ruta aprobada por el CIO; los logs van a la infraestructura existente.
Las 5 capas y qué se rompe:
- Compliance: se construye sobre una ruta que no pasará la revisión.
- Identity/SSO: la identidad se inyecta del lado del servidor en el system prompt. Si se pasa como texto del usuario ("soy gerente…"), es manipulable.
- Authorization: la capa de Claude debe respetar el mismo modelo de permisos; si no, abre un camino de acceso no autorizado.
- Data/PII: el context window no es una frontera de gobierno de datos. Anthropic no retiene el contenido por defecto, pero tu capa de aplicación sí lo registra en logs. Solo entra lo necesario; usa IDs de referencia.
- Observability: loguea request (versión del modelo, tokens de input, ID del prompt), response (tokens de output, latencia, stop reason), context (rol, sesión, cache hit) y outcome (si el sistema downstream aceptó la salida).
- Least-privilege tools: cada tool es superficie de ataque y costo. Elimina las que solo son "convenientes" y acota las tools de cada subagent.
- Multi-tenant: una API key por tenant (Workspaces: keys acotadas a un workspace, con límites de gasto y rate por workspace; máximo 100 workspaces por organización). Una key compartida hace imposible atribuir los rate limits.
- Una acción agentic que no queda en el log es, para seguridad, una acción no permitida.
⚠️ Watch out: resumen de intake clínico con nombre, fecha de nacimiento, SSN e Insurance ID en el user message → miles de SSN en texto plano en los logs. Filtro correcto: la necesidad, no la conveniencia. Solución: redacción del lado del servidor + retrieval solo de los campos necesarios.
Checkpoint (diagrama SaaS): problemas = Claude Code como backend, API key compartida, "soy premium" como control de capacidades, número de cuenta y email en los logs, escritura al CRM sin log · correctos = auth del lado del servidor, aislamiento por tenant en storage.
5. A/B testing y observabilidad
Experimento:
- Hipótesis específica y falsable: tratamiento + métrica + umbral + restricción. Ej.: "extraer 3 action items sube el task success ≥5% sin empeorar la p95".
- Asignación aleatoria consistente por usuario o sesión.
- Una métrica primaria definida ANTES (elegirla después es outcome-shopping).
- Tamaño de muestra según el efecto mínimo detectable, el baseline y la confianza. Los LLM tienen más varianza → muestras más grandes.
Leer resultados: significancia ≠ relevancia. ¿El efecto justifica el costo operativo? ¿Se degradó alguna métrica secundaria? Ojo con las interacciones con tipos de input (picos estacionales).
Shadow testing: la nueva versión recibe copia del tráfico real, sus salidas se registran sin servirse y se califican offline. Úsalo cuando un solo error es demasiado riesgoso o hay poco tráfico (en industrias reguladas suele ser la única opción). Lo que se pierde es la señal de comportamiento del usuario.
Observabilidad (4 capas):
- Tracing por request (modelo, versión, tokens, latencia, stop reason, tool calls).
- Métricas agregadas con desglose por request: un agregado sano puede esconder una cola cara o errónea.
- Anomalías (p. ej. costo >150% del promedio de 7 días, p95 por encima del SLA, comparación periódica de distribuciones para drift).
- Atribución del cambio: model drift vs data drift vs model update.
Failure taxonomy:
- Prompt failure: se arregla el prompt.
- Hallucination: grounding con retrieval, tools o verificación; no "más instrucciones".
- Model mismatch: selección de modelo con eval.
- Orchestrator-workers: traza que cubra ambos.
Discernment (competencia 4D): clasifica cada salida como aceptable, necesita revisión o necesita override, y alimenta los evals con eso.
Capa de traducción a negocio: task success → first-contact resolution, latencia → handle time. Se construye en el diseño, no después del primer business review.
⚠️ Watch out: 50 vs 50 sesiones (68% vs 62%) → a las dos semanas, 61%. Muestra pequeña, distribución sin controlar, métrica elegida a posteriori. Era confirmación, no evidencia.
Checkpoint (plano efecto × confianza):
- A, wording de FAQ → small · low
- B, intake médico → high confidence (manda la consecuencia)
- C, nueva categoría al 30% → large · high
- D, Sonnet → Haiku en formato → large (costo) · moderate
- E, prompt de RAG a 200/día → small · moderate
Ejercicios resueltos (clave)
Eval framework de la aseguradora:
- Extracción = code.
- Latencia = code.
- Seguridad = code para "no auto-deny" + LLM judge para la fidelidad del resumen.
- Fuga entre claimants = code (buscar identificadores ajenos, aunque sea de alto riesgo).
- Costo = code.
Production readiness (consultora, 800 req/día, $3k, p95 <8 s):
- Evals: schema de citas = code; relevancia del borrador = judge; golden set con RFPs anonimizados.
- Costo: ~24k req/mes, ~5,200 tokens de input y ~600 de output, Sonnet + caching → dentro del techo, pero son promedios y el corpus es bimodal, así que hay que hacer análisis de sensibilidad.
- Confiabilidad: fallback de Sonnet a Haiku.
- Riesgo principal: deriva en la calidad de retrieval.
- Feasibility: el corpus es de ~175M tokens, así que RAG es obligatorio (un documento de 80 páginas ≈ 29k tokens sí cabe). Las metodologías se resuelven indexándolas. Feasible with constraints; la boundary condition es la cobertura y frescura del índice.
- Integración: token de Okta verificado del lado del servidor, rol inyectado, retrieval filtrado por permisos de engagement, nombres de clientes anonimizados.
- A/B: 70% → 75%, 80% de power, α 5% → ~1,500 sesiones por grupo ≈ 4 días; controlar la complejidad de los RFP.
Para recordar
- Evals antes del código y siempre actualizados; son el gate de todo cambio.
- Modela costo y p95 a volumen real; retries, fallbacks y circuit breakers desde el diseño.
- Las 4 propiedades → veredicto en 3 formas + boundary condition documentada.
- Identidad del lado del servidor, datos mínimos en contexto, observabilidad desde el diseño.
- Métrica primaria y tamaño de muestra antes; desglose por request; traducción a métricas de negocio.