¿Necesitas preguntar algo a mitad de una tarea? /btw lo responde al momento, sin interrumpir

Conoces este momento: Hermes va a mitad de una tarea larga — refactorizar una base de código, reorganizar un repo, cuidar un deploy — y de pronto te surge una pregunta relacionada: «¿en qué archivo estaba ese error?». Antes tenías dos opciones igualmente malas: interrumpir al agente para que se reenfoque, o abrir una sesión nueva que no recuerda nada de lo que está pasando. Ambas hacen daño. El PR #97937 (fusionado el 29 de agosto, con el complementario #97974) convierte la tercera vía en un comando integrado: /btw <pregunta> responde tu pregunta paralela en el momento, usando todo el contexto de la conversación actual, sin detener la tarea. El mismo cambio retira /background y promueve /bg a comando canónico de tareas en segundo plano — /btw ya no es solo su alias.
Por qué antes era tan incómodo
/bg y /btw eran ambos alias de /background: «envía esta frase a una sesión en segundo plano y ejecútala». Suena bien hasta que aparece el defecto fatal: la sesión en segundo plano es nueva de fábrica y no sabe nada de tu contexto actual.
Así que el uso clásico se venía abajo:
/btw which file was that error in?
El agente en segundo plano, sin contexto, solo podía responder «no sé de qué error hablas» — o hacerte pegar el contexto. Todo el sentido de una pregunta paralela — tomar prestado el contexto de la conversación actual para obtener una respuesta rápida — nunca llegaba a materializarse.
Cómo funciona /btw ahora
La idea central: la pregunta nunca entra en la sesión principal. Se responde «a un lado», usando una instantánea de la sesión principal. La implementación (agent/side_question.py) tiene dos caminos, elegidos automáticamente:
Camino uno: un fork con paridad de caché (preferido). Si el agente de la sesión actual sigue vivo, /btw construye un «fork con paridad de caché» — el mismo mecanismo que usa la revisión de auto-mejora en segundo plano. El fork hereda el runtime del padre, un system prompt y una lista de tools byte-idénticos, y el session_id compartido; luego reproduce la instantánea de la conversación al pie de la letra. Como la caché de prefijo del provider ya está caliente para esa reproducción exacta, la respuesta paralela ve la conversación completa, sin truncar, al precio de lectura de caché. Toda llamada a tool se deniega en el dispatch (whitelist de hilos vacía), la persistencia queda totalmente desacoplada — sin escrituras en state.db, sin rotación de sesión, sin hooks de memoria externa. El uso se atribuye a la sesión padre.
Camino dos: un resumen de un solo uso (fallback). Si el agente de la sesión ha sido desalojado (p. ej. el gateway descartó el agente cacheado — la caché del provider ya está fría ahí), se degrada a generar un resumen en texto plano sesgado hacia lo reciente de la conversación y responde a través de una llamada auxiliar de un solo uso. El resumen excluye el system prompt y resume las llamadas a tools y sus resultados.
En ambos caminos, el historial de la sesión principal, la alternancia de roles y la caché de prompt quedan intactos por construcción — esa es la restricción dura del diseño.
Cómo usarlo
Disponible en la CLI, en la TUI y en las plataformas gateway (Telegram, Discord, Slack, …) — y funciona mientras el agente está ocupado (busy_policy="dispatch", así que puedes intercalar a mitad de ejecución):
# Task running, sudden question
/btw which file was that error in?
→ /btw answers with the full conversation context: it's in src/utils/parser.py, line 42 …
# A background question about the current task
/btw what approach did we settle on for retries?
¿Quieres que un modelo distinto responda las preguntas paralelas? Hay un ajuste dedicado de tarea auxiliar:
auxiliary:
side_question:
provider: anthropic
model: claude-sonnet-4-5
Sin él, se usa el modelo principal. Nota: un modelo distinto significa caché fría, así que se degrada al camino del resumen compacto.
El cambio paralelo: /bg se vuelve oficial
El nombre verboso /background desaparece (sugerencia de la comunidad: seguir la convención corta al estilo /btw). Las tareas en segundo plano tienen ahora exactamente un nombre:
/bg compile a report of every TODO in this directory
/btw y /bg tienen cada uno su carril: /bg despacha tareas independientes; /btw responde preguntas pequeñas usando el contexto actual. Si escribes /background por costumbre, toca reentrenar la memoria muscular.
Cuándo /btw rinde más
- A mitad de tareas largas: deploys, migraciones por lotes, revisiones de código en curso — pregunta «¿dónde estamos?» o «¿qué era esa advertencia?» sin pausar nada.
- Preguntas dependientes del contexto: «¿en qué convención de nombres quedamos?» «¿qué dice el AGENTS.md de este repo?» — la respuesta paralela ve toda la conversación.
- Mantener limpia la sesión principal: la instantánea es de solo lectura; sin rastros en el historial, sin impacto en la compresión ni en el caché.
Una advertencia honesta: ambos PRs aterrizaron el 29 de agosto, así que hoy solo existen en main — todavía no hay ningún release tag que los incluya (v0.20.6 se etiquetó el 27 de agosto). Para probarlos hoy, hermes update y ejecuta desde el código más reciente; si no, espera al próximo release.
Resumen
/btw convierte la necesidad tan frecuente de «hacer una pregunta pequeña con el contexto actual» en un comando de primera clase a coste cero: sin interrupciones, sin quemar caché en la sesión principal, sin contaminar el historial. Con /bg asumiendo el despacho de tareas, «preguntar» y «delegar» en una sesión quedan por fin limpiamente separados. La próxima vez que te surja una pregunta a mitad de ejecución, prueba a empezar con /btw — entiende de qué hablas mejor de lo que esperarías.
Para profundizar en el ecosistema de slash commands, echa un vistazo a nuestra guía de la command palette; para más formas de manejar un agente ocupado (intercalar, encolar, dirigir sin interrumpir), la familia /busy también merece la pena. Ambos PRs forman parte del flujo posterior a v0.20.6 en main — las notas del release v0.20.6 resumen toda esa ventana.