Disena el ensamblado de la ventana de contexto de un agente para maximizar reuso de prefix/KV cache (estatico-first) y mitigar dilucion softmax con edge placement (curva en U) y compactacion sobre umbral fijo.
Ingeniería para diseñar el ensamblado de la ventana de contexto de un agente de modo que (1) maximice el reuso de prefix cache (KV cache) y (2) minimice la pérdida de instrucciones por dilución softmax. Se logra organizando el contexto estático-first / dinámico-last —el prefijo estable se cachea y se reutiliza con factores cercanos a ~10x [SUPUESTO: verifica el factor real midiendo cache-hit rate en tu proveedor]— y colocando lo que el modelo no puede olvidar en los bordes del contexto (apertura y cierre), donde la atención es más alta (curva en U). Al acercarse al límite, se compacta por encima de un umbral fijo para preservar las instrucciones de borde. [DOC]
Cuándo NO usarla (anti-scope). Prompts de un solo turno sin reuso de prefijo (el caching no aporta); proveedores/SDKs sin prefix caching (la ganancia es nula, no inventes una); recortar el contenido del prompt por calidad de redacción —eso es prompt engineering, no ensamblado de ventana. [INFERENCIA]
<reminder> al cierre, después del prefijo estable. [DOC]<reminder>), nunca enterradas en el centro de un bloque largo. [DOC]# GOOD: estatico-first (cacheable), dinamico-last, reglas criticas en bordes
def build_context(turn_state: TurnState, history: list[Message]) -> list[Block]:
static_prefix = [
Block("role", ROLE_AND_TOOLS), # estable byte a byte -> cacheable
Block("policies", CRITICAL_RULES), # regla critica en el borde inicial
Block("schema", OUTPUT_SCHEMA),
]
compacted = compact_if_over(history, threshold=0.55) # umbral fijo, no toca bordes
dynamic_tail = [
Block("reminder", render_reminder(
now=turn_state.timestamp, # volatil -> SOLO aqui, al final
critical=CRITICAL_RULES_RESTATED, # reafirma regla en borde final
)),
]
return static_prefix + compacted + dynamic_tail# ANTI: timestamp al inicio invalida el cache; regla critica enterrada en el centro
def build_context(turn_state, history):
return [
Block("header", f"Current time: {turn_state.timestamp}"), # rompe prefix cache
Block("role", ROLE_AND_TOOLS),
Block("history", history), # regla critica queda sepultada aqui
Block("rules", CRITICAL_RULES), # zona de minima atencion (centro de la U)
]
# Sin umbral de compactacion -> al crecer el historial, las reglas se diluyen.Marca la skill como aplicada solo si TODO se cumple:
<reminder> al final del contexto. [DOC]grep de timestamp|now|request_id|uuid|counter dentro del bloque estático). [INFERENCIA]Declara el ensamblado ANTES de escribir prompts o adapters, y verifícalo con artefactos reproducibles:
assets/context-assembly-schema.json y assets/context-policy.json para declarar el ensamblado. [SUPUESTO: crea estos assets; aún no están en el repo de la skill]scripts/compile-context-window.py <contexto.json> --output <reporte.md> genera un reporte de prefijo, zona compactable, cola dinámica, reglas críticas y validaciones. [SUPUESTO: script por crear]bash skills/context-window-engineering/scripts/check.sh antes de marcar la skill como lista. [SUPUESTO: script por crear]katas-10, katas-11. [CONFIG]katas-prefix-caching, katas-context-dilution-mitigation. [CONFIG]fdad39c
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.