Reproducción de ECHO-5.5-v1
Desde la raíz del checkout. Linux con systemd de usuario, cgroups v2 y Bubblewrap; Python 3.11 o posterior para este arnés. No se usa el entorno de echo-discord. Los fallos de aislamiento son errores de entorno: no existe fallback sin sandbox.
python3 -m unittest tests.test_echo55_v1 -v
python3 ECHO-5.5/scripts/run_v1.py bench --output /tmp/echo55-bench-1
La salida debe ser nueva. results.json separa solicitudes de script de acciones
físicas e incluye hashes de fuentes antes/después, límites y cierre de procesos.
El observador existente permite ver el registro factual:
python3 observe.py --launch --technical /tmp/echo55-bench-1/3-program/thought.jsonl
receipts/ contiene recibos HMAC y authority/ sus claves privadas. El CLI
verifica los recibos al cerrar. No publicar authority/: la comprobación HMAC
requiere custodia local; la firma no prueba la verdad de una hipótesis.
Modelo real opcional, CPU
Servidor llama.cpp con un GGUF instruct propio. Ajustar la ruta del modelo:
llama-server --model /ruta/modelo.gguf --host 127.0.0.1 --port 8795 \
--ctx-size 4096 --parallel 1 --threads 4 --threads-batch 4 \
--n-gpu-layers 0 --device none --no-op-offload
python3 ECHO-5.5/scripts/run_v1.py cpu-llm \
--provider ECHO-5.5/docs/CPU-PROVIDER.example.json \
--lengths 3 --max-calls 2 --output /tmp/echo55-model-1
Detener el servidor al terminar. Fijar hash/revisión del GGUF y versión del
servidor para comparar. El proveedor cuenta los tokens de la plantilla completa
y envía esos mismos IDs a /completion. Límites por defecto: 3.000 de entrada,
512 de salida y 5.000 acumulados por episodio. Ante interrupción o uso desconocido
se carga toda la reserva y no se repite automáticamente. Es una calibración
sencilla; no evalúa la capacidad del modelo en ARC.
Niveles oficiales offline
Entorno opcional separado:
python3 -m venv "$HOME/.local/share/echoai-tools/echo55-v1"
"$HOME/.local/share/echoai-tools/echo55-v1/bin/pip" install \
arc-agi==0.9.3 arcengine==0.9.3
"$HOME/.local/share/echoai-tools/echo55-v1/bin/python" \
ECHO-5.5/scripts/run_v1.py official-smoke \
--environments /ruta/environment_files \
--games bp35-0a0ad940 s5i5-18d95033 --actions 12 \
--output /tmp/echo55-official-1
environment_files debe contener juegos públicos de desarrollo del toolkit
oficial, adquiridos previamente bajo sus condiciones de uso. El comando no
descarga juegos, no tiene fallback sintético y no requiere API key. Guarda el
hash del archivo de cada juego y las versiones del motor. Solo usa frames,
acciones legales, estado y niveles públicos. El smoke usa acciones scriptadas:
comprueba integración, no es un solver ni un envío al leaderboard. El reset
inicial se cuenta por separado.
API de cada mini-programa
s = echo.observe() # dict; el flag es s['terminal'], no echo.terminal
objects = echo.objects()
delta = echo.changes()
agency_hypotheses = echo.agency()
contact_hypotheses = echo.contacts()
if not s['terminal']:
echo.act(s['available_actions'][0])
echo.act(6, data={'x': 12, 'y': 8}) solicita un clic cuando ACTION6 es legal.
echo.execute(actions) para en terminal o veto; cada paso consume una acción
real. No hay rollback del mundo tras un error.
echo.plan(grid, start, goal, wall_colors=[1]) reutiliza el planificador para
mapas de 2..16 celdas por eje, con abstención fuera de alcance. Su prior
0/1/2/3 = arriba/derecha/abajo/izquierda NO es el mapeo oficial ARC.
Las coordenadas del helper son [fila, columna]; las del clic son x,y.
Cada programa tiene un namespace nuevo; juego y cuotas persisten en el padre. La evicción elimina bloques antiguos completos y conserva política + último frame completo, codificado con RLE sin pérdida. Si no caben, aborta antes de inferir. Agencia/contacto son hipótesis, nunca identidades o causalidad ciertas.
Gráfica
Con matplotlib en un entorno de herramientas:
python3 ECHO-5.5/scripts/plot_v1.py --results /tmp/echo55-bench-1/results.json \
--output /tmp/echo55-figures
La figura identifica explícitamente el control scriptado. No se garantizan los mismos tiempos/RSS en otro equipo; sí se pueden comprobar las acciones, victorias del fixture y límites bajo las condiciones declaradas.