La utilidad baton traslada una sesión entre 5 agentes de IA de consola sin perder el contexto

El autor de baton, una utilidad escrita en Go, ha enseñado a los agentes de consola Claude Code, Codex, Antigravity CLI, Pi y Hermes a retomar las sesiones de los demás cuando a uno se le agota la cuota de cinco horas. La herramienta lee los registros guardados en disco en lugar de pedirle al modelo que resuma el historial. Así no gasta tokens de salida, que son caros, y conserva los números de línea y las hipótesis descartadas. El nuevo agente recibe el resumen del último /compact, y el volcado completo queda en una carpeta temporal. • Instantánea cifrada para otro PC: AES-256-GCM, la clave no se envía al servidor • Una skill SKILL.md en lugar de un servidor MCP: en el contexto solo ocupa una línea de descripción • Código sobre la biblioteca estándar de Go, licencia MIT, compilación en tres comandos

Procesado por IA desde Habr AI; editado por Hamidun News
La utilidad baton traslada una sesión entre 5 agentes de IA de consola sin perder el contexto
Fuente: Habr AI. Collage: Hamidun News.
Escuchar artículo
Ficha técnica y cifras clave
ParámetroDatos
Fuente originalHabr AI ↗
Editor jefe
Instantánea cifrada para otro PCAES-256-GCM, la clave no se envía al servidor
Dato clave #2Una skill SKILL.md en lugar de un servidor MCP: en el contexto solo ocupa una línea de descripción
Dato clave #3Código sobre la biblioteca estándar de Go, licencia MIT, compilación en tres comandos

Las cuotas de cinco horas de los planes de $20 suelen agotarse en mitad de una depuración, y no existe un puente oficial entre Claude Code, Codex, Antigravity CLI (agy), Pi y Hermes. El autor de baton ha escrito en Go una herramienta de consola que toma la sesión de los registros locales de un agente y se la entrega a otro, ya sea en la misma máquina o, a través de la red, en otro ordenador. El código fuente está en GitHub bajo licencia MIT.

Por qué HANDOFF.md no basta

El consejo habitual es pedirle al agente que, antes de despedirse, anote en un archivo HANDOFF.md el estado de la tarea, los pasos dados y el plan. El autor señala tres problemas.

El primero: cuando se agota el límite, el agente deja de responder y ya no hay nadie que pueda escribir el resumen. El segundo: incluso si se detecta el momento con antelación, el modelo cuenta su propia historia de memoria. La ventana de contexto admite entre 200 mil y un millón de tokens, pero la longitud de una sola respuesta está limitada a unas pocas decenas de miles, de modo que el resumen resulta inevitablemente comprimido.

Se pierden los argumentos exactos de los comandos, los números de línea, las hipótesis descartadas y los pequeños cambios. El tercero: los tokens de salida cuestan a los proveedores aproximadamente cinco veces más que los de entrada y consumen antes lo que queda de cuota.

Claude Code, para quien usa varias cuentas, tiene la opción --resume, pero al cambiar de cuenta se invalida la caché de prompts del servidor, y volver a procesar un historial largo se come una parte notable de la cuota nueva. Esta opción tampoco permite pasar a un agente de otro proveedor.

Cómo baton construye el resumen a partir de los registros

Cada agente ya escribe en disco un registro detallado. Claude Code guarda JSONL en ~/.claude/projects, Codex, archivos rollout en ~/.codex/sessions, agy, transcript.jsonl y capturas Protobuf en ~/.gemini/antigravity-cli, Pi, un JSONL v3 en forma de árbol con los campos id y parentId, y Hermes, una base de datos SQLite, state.db. El comando /compact no borra nada: los registros funcionan en modo de solo añadir, y al flujo se incorpora una entrada con el resumen de la conversación anterior.

baton recorre el registro desde la primera entrada (en Pi, por la rama activa del árbol; en Hermes, por la cadena parent_session_id), reúne la lista de archivos modificados y comandos ejecutados y, al llegar a un marcador de compresión, vacía el búfer de mensajes antiguos. El resumen operativo incluye el texto de la última compresión y todos los mensajes posteriores, completos. El historial íntegro y las salidas largas de los comandos van a /tmp/baton-handoff/<id-de-sesión>/ (en Windows, a %TEMP%); las carpetas con más de un día se eliminan y el árbol de trabajo queda limpio para git status.

En el chat se muestran los metadatos, el estado del repositorio, los archivos afectados, los últimos comandos y las rutas de los volcados. El agente recupera el detalle que necesite de full_dialogue.md o con el comando baton turn.

El flujo de trabajo gira en torno al par save y load. La sesión se nombra con el comando nativo del agente o con baton save; después, en otro agente, se escribe «Continúa la sesión auth-refactor» o «Retoma la última sesión». Si no se ha puesto nombre, baton list muestra una lista numerada de candidatos con la carpeta de trabajo, la hora de modificación y la primera petición.

El autor descartó deliberadamente un servidor MCP. Ese tipo de servidor arranca con cada sesión, permanece en memoria y las descripciones de sus funciones pasan al prompt del sistema, donde consumen tokens de entrada incluso cuando las sesiones no se trasladan durante semanas. Una skill SKILL.md mantiene en el contexto una sola línea, y la utilidad se ejecuta una vez y termina de inmediato. Los cinco agentes saben cargar skills bajo demanda.

Traslado a otro portátil sin commits

El segundo escenario consiste en dejar el PC de casa y seguir en el portátil sin subir código sin pulir a una rama compartida. El comando baton push empaqueta en un tar.gz el historial de la sesión, los archivos modificados y los nuevos sin seguimiento (según el historial de escritura del agente y el estado de Git, Fossil o SVN), los archivos locales de reglas (CLAUDE.md, AGENTS.md, GEMINI.md, .cursorrules, .agents/rules/) y una copia de las instrucciones globales.

El archivo se cifra en el cliente con AES-256-GCM y una clave aleatoria de 256 bits, y se envía a paste.rs (hasta 10 MiB); si falla, a dpaste.org y después a termbin.com:9999. También hay una opción con carpeta de sincronización local: Dropbox, Nextcloud, Syncthing. La clave, que es la parte del token posterior al símbolo #, no llega al servidor del servicio intermediario, y sin ella el paquete parece ruido aleatorio.

En el segundo ordenador basta con pegar el prompt generado en cualquier agente: este lee INSTALL.md, compila la utilidad y despliega la sesión. Si un archivo local difiere del que se va a sobrescribir, se crea al lado una copia con la extensión .baton.bak. Las reglas globales se descomprimen en un directorio temporal y no tocan las configuraciones del sistema de la segunda máquina.

Instalación, actualización y limitaciones

La compilación se resume en tres comandos: git clone, go build -ldflags="-s -w" y baton install. No hay dependencias externas, solo la biblioteca estándar de Go. baton install copia SKILL.md a los directorios de skills de los cinco agentes y añade el comando de barra /baton. El autor aconseja compilar desde el código fuente en lugar de usar las versiones ya compiladas. Las actualizaciones se comprueban en un proceso en segundo plano, como máximo una vez al día; baton update recompila la utilidad con go install y verificación en sum.golang.org, o bien descarga el binario de GitHub Releases y comprueba su SHA-256.

También hay limitaciones. Los pastebins públicos siguen siendo infraestructura ajena, y el token de traslado es en la práctica un secreto, porque contiene la clave de descifrado. Los formatos de los registros son internos y pueden cambiar con la actualización de cualquiera de los agentes. La velocidad «en una fracción de segundo» es una estimación del autor; no hay mediciones independientes. Él mismo admite que una herramienta parecida se puede montar en un día y propone considerar que el principal valor está en haber desentrañado los formatos de almacenamiento de sesiones.

Historia

Preguntas frecuentes sobre la noticia

¿Qué se sabe sobre Por qué HANDOFF.md no basta?

El consejo habitual es pedirle al agente que, antes de despedirse, anote en un archivo HANDOFF.md el estado de la tarea, los pasos dados y el plan. El autor señala tres problemas. El primero: cuando se agota el límite, el agente deja de responder y ya no hay nadie que pueda escribir el resumen. El segundo: incluso si se detecta el momento con antelación, el modelo cuenta su propia historia de memoria. La ventana de contexto admite entre 200 mil y un millón de tokens, pero la longitud de una sola respuesta está limitada a unas pocas decenas de miles, de modo que el resumen r

Cómo baton construye el resumen a partir de los registros?

Cada agente ya escribe en disco un registro detallado. Claude Code guarda JSONL en ~/.claude/projects, Codex, archivos rollout en ~/.codex/sessions, agy, transcript.jsonl y capturas Protobuf en ~/.gemini/antigravity-cli, Pi, un JSONL v3 en forma de árbol con los campos id y parentId, y Hermes, una base de datos SQLite, state.db. El comando /compact no borra nada: los registros funcionan en modo de solo añadir, y al flujo se incorpora una entrada con el resumen de la conversación anterior. baton recorre el registro desde la primera entrada (en Pi, por la rama activa del árbo

¿Qué se sabe sobre Traslado a otro portátil sin commits?

El segundo escenario consiste en dejar el PC de casa y seguir en el portátil sin subir código sin pulir a una rama compartida. El comando baton push empaqueta en un tar.gz el historial de la sesión, los archivos modificados y los nuevos sin seguimiento (según el historial de escritura del agente y el estado de Git, Fossil o SVN), los archivos locales de reglas (CLAUDE.md, AGENTS.md, GEMINI.md, .cursorrules, .agents/rules/) y una copia de las instrucciones globales. El archivo se cifra en el cliente con AES-256-GCM y una clave aleatoria de 256 bits, y se envía a paste.rs (ha

ZK
Zhemal Khamidun — CPO de Alpina Digital, product manager de AlpinaGPT. Crea productos de IA desde 2019. Hamidun News es un proyecto personal que creció hasta ser un agregador en producción con más de 6.000 lectores.
✦ Hands-On AI Engineering · Hamidun Academy

Build & Ship Production AI Agents Without Boilerplate Code

Start your free 72-hour trial at Hamidun Academy (academy.hamidun.com) — interactive lessons on Claude Code & Cursor, live Tech Radar, and production agent templates.

Start 72h Free Trial →Vibe-Coding Intensive
¿Qué te parece?
Cargando comentarios…