Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Enrutamiento ponderado por coste

Cuando hay varios modelos disponibles — Opus, Sonnet, Haiku o modelos locales detrás de una pasarela odysseus autoalojada — PRECC enruta cada tarea hacia aquel que minimiza el coste esperado en dólares, no el recuento de tokens. Un token de un modelo barato y un token de uno caro no cuestan lo mismo; el enrutador optimiza el dólar, sujeto a un umbral mínimo de éxito medido y a un umbral mínimo de capacidad por categoría.

La unidad de coste es un dólar, no un token

Para una tarea de categoría c, sobre los modelos candidatos m aptos por capacidad, el enrutador minimiza el coste esperado ponderado por precio. E[$ | task, m] es el coste medio de tokens medido del modelo para esa categoría multiplicado por su precio por token. Una ejecución de Haiku que usa más tokens que Opus puede ganar igualmente, porque Haiku es varias veces más barato por token. Cada número del objetivo es o bien medido (medias de tokens del oráculo, éxito registrado, precios publicados de los modelos) o bien una probabilidad previa explícitamente etiquetada — nunca inventado.

choose argmin_m   E[$ | task, m]
       subject to  P(success | task, m) >= min_success
                   capability(m) >= capability_floor(category)

Enrutar una tarea

precc route "<task>" categoriza la tarea, aplica el umbral de capacidad, clasifica los modelos aptos por los dólares esperados e imprime la decisión. Con --execute despacha la tarea al modelo elegido a través de la API de sesiones de odysseus. Cada decisión también se siembra en el oráculo de predicción para que su coste real y su resultado puedan registrarse una vez ejecutada la tarea.

$ precc route "fix the broken parser"
  category   : fix (capability floor 0)
  → model    : anthropic/claude-haiku-4-5  [Measured, confidence 0.60]
  est. cost  : $0.0096 (12000 tok)
  reason     : measured cheapest-capable for `fix` (by cost): claude-haiku-4-5
  prediction : #42 (seeded; learner will auto-close after the task runs)

Ahorro en dólares

precc savings añade una sección de dólares siempre que se hayan completado tareas enrutadas. Por cada tarea enrutada, tarifa los tokens realmente gastados según la tarifa del modelo elegido y los compara con una base de referencia que siempre usa el modelo por defecto — los tokens se mantienen fijos, solo varía el precio. Esta es la vista de “recorta coste, no solo tokens”; la sección permanece oculta hasta que existan datos reales de enrutamiento, de modo que nunca muestra filas inventadas.

$ precc savings
Routing cost (USD) — baseline: always claude-opus-4-5
  claude-haiku-4-5   :    1 task(s)  $   0.0096 chosen  vs $   0.0600 baseline
  claude-sonnet-4-6  :    1 task(s)  $   0.1200 chosen  vs $   0.2000 baseline
  total              :    2 task(s)  $   0.1296 chosen  vs $   0.2600 baseline
  → saved $0.1304 (50.2% of baseline spend)

El bucle de retroalimentación

El enrutamiento se mejora a sí mismo: route → execute → record → retrain. Cada decisión enrutada se siembra en el oráculo; el demonio en segundo plano precc-learner recupera el mensaje completado, registra los tokens reales, el modelo y el éxito, y cierra la fila. A medida que se va completando la tabla por (model, category), el enrutador pasa de probabilidades previas del más barato capaz a elecciones medidas, y el predictor de tokens gana una dimensión por modelo.

Exploración

Para evitar explotar para siempre un único modelo barato con datos obsoletos, el enrutador puede muestrear deliberadamente una celda (model, category) poco explorada antes de la elección codiciosa. La exploración es opcional, determinista (sin aleatoriedad — el hook debe ser reproducible) y acotada: nunca cruza los umbrales de capacidad ni de éxito medido, y un tope de arrepentimiento de precio evita que se desvíe hacia un modelo mucho más caro.

# ~/.config/precc/odysseus.toml
explore_n_min = 3     # sample each (model, category) cell ~3× before trusting it
explore_eps   = 1.0   # allow up to 2× the cheapest price while exploring

Medido, nunca supuesto

Solo se descarta un modelo por no superar el umbral de éxito cuando hay evidencia medida de que así es — un modelo no medido nunca se excluye con un número adivinado. Sin datos para una celda, el enrutador recurre a una probabilidad previa conservadora del más barato capaz y etiqueta la decisión como arranque en frío, de modo que quien lo invoca siempre sabe si la elección se basa en evidencia o en una probabilidad previa.