Modelos y esfuerzo
/emet elige automáticamente un modelo y un esfuerzo de razonamiento por rol; no hay nada que cambiar a mano durante una ejecución. Todas las claves están en la referencia de configuración.
| Rol | Modelo | Esfuerzo | Definido por |
|---|---|---|---|
| Planificación (fases 1–4) | Opus, vía opusplan |
el de tu sesión | tú, una sola vez |
| Coordinador, desde la fase 5 | Sonnet, vía opusplan |
el de tu sesión | tú, una sola vez |
| Workers (fase 7) | Sonnet | medium |
agents/emet-worker.md, o models.worker |
Revisión, nivel passive (diff solo de documentación) |
ninguno | — | emet assess |
Revisión, nivel medium (cambio de código habitual) |
Opus | medium |
models.reviewer.medium |
Revisión, nivel high (rutas o puntos sensibles) |
Opus | medium por defecto |
models.reviewer.high |
| Triaje de logs de CI (fase 8) | Haiku | — | models.triage |
Las dos definiciones de agente (instaladas por install.sh en ~/.claude/agents/) fijan su propio model/effort en el frontmatter, de modo que la elección de modelo/esfuerzo del propio coordinador nunca se filtra a un worker ni al revisor. emet doctor informa (sin bloquear nunca) si falta alguno de los dos archivos. emet preflight sí bloquea el despacho cuando falta emet-worker o emet-reviewer, porque la fase 6 y la fase 8 despachan por subagent_type.
Enrutamiento por nivel de riesgo
La fase 8 ejecuta emet assess --base <trunk> --head <integration branch>, que clasifica el diff de forma determinista e imprime JSON con el nivel, los motivos y el modelo/esfuerzo recomendados para el revisor:
passive: diff solo de documentación; no se despacha ningún revisor.medium: el revisor se ejecuta conmodels.reviewer.medium.high: el diff toca autenticación, seguridad, pagos, webhooks, CI, el instalador, lockfiles, migraciones, un punto sensible peligroso (SQL sin procesar, pipe-to-shell y similares) o una ruta que coincide conreview.highRiskPaths. El revisor se ejecuta conmodels.reviewer.high, y el auto-merge aterriza el PR solo con checks en verde y sin hallazgos de revisión abiertos.
Un ticket que toca rutas de alto riesgo puede llevar una línea Model: (por ejemplo Model: opus o Model: opus/high), que reemplaza a models.worker solo para ese worker.
Triaje con Haiku
El coordinador nunca lee un log de CI completo. Un check que falla se entrega a un agente con models.triage (por defecto haiku), que devuelve como máximo unos 2k tokens con punteros file:line para la corrección.
Configuración
Todas las claves son opcionales, y los valores por defecto reproducen la tabla anterior:
{ "models": { "worker": { "model": "sonnet", "effort": "medium" }, "reviewer": { "medium": { "model": "opus", "effort": "medium" }, "high": { "model": "opus", "effort": "medium" } }, "triage": "haiku" }, "review": { "highRiskPaths": [] }}review.highRiskPaths es una lista de subcadenas de ruta adicionales, sin distinguir mayúsculas, que fuerzan el nivel high. Para obtener más escrutinio en las oleadas riesgosas, sube models.reviewer.high.effort (por ejemplo a high).
Por qué un solo revisor
Por qué un único revisor de contexto limpio en lugar de un abanico de múltiples ángulos: ningún benchmark público compara ambos directamente, pero un abanico vuelve a leer todo el diff una vez por ángulo y se ha quedado colgado durante más de una hora en este repositorio, mientras que informes de Anthropic y de terceros sobre modelos de nivel Opus sugieren que la mejora del modelo aporta tanto como lo harían los ángulos adicionales. Para una oleada de alto riesgo, ejecuta /code-review ultra a mano después; /emet nunca lo despacha por su cuenta.
Lo que configuras una vez, tú mismo
/emet no puede cambiar esto durante una ejecución:
model: "opusplan"en~/.claude/settings.json: esto es lo que hace que las fases 1–4 se ejecuten en Opus y de la fase 5 en adelante en Sonnet, sin necesidad de/model.emet doctoravisa (sin editar nunca tu configuración) si no está definido.- Un esfuerzo de sesión de
mediumohighen lugar dexhigh: los workers y el revisor ya llevan su propio esfuerzo sin importar el tuyo, y un valor global alto por defecto sobre todo añade costo a los turnos del propio coordinador (gestión de despachos, merges, informes) que no lo necesitan. - Un
permissions.defaultModecapaz de ejecutarse sin supervisión (auto,acceptEditsobypassPermissions), más reglaspermissions.denyque bloqueengit push * main|masterygit push --force *.emet doctoravisa de ambos, porque una oleada que se detiene en una solicitud de permiso, o que puede forzar su camino más allá de la rama troncal, anula el sentido de ejecutar sin supervisión.
Son puntos de partida, no cifras definitivas. Opus 5.5 se lanzó el 2026-09-22, y la elección de esfuerzo y modelo para los agentes de programación sigue siendo un área activa; vuelve a ajustar tras unas cuantas oleadas reales en lugar de tratar esta tabla como final.