Cinco labs, cinco mentes: drama financiero con modelos pequeños | Keryc
Thousand Token Wood v2 te pone en un bosque donde eres el Patron: prestas, susurras pistas, doblas precios y manipulas alianzas mientras una magistrada te rastrea. Cinco criaturas, cinco voces, y lo más importante para un ingeniero: cada criatura piensa con un modelo pequeño distinto. ¿Qué sucede cuando juntas modelos heterogéneos en una simulación financiera? Esta es la versión técnica y práctica de esa respuesta.
Qué es Thousand Token Wood v2
La v1 era un sandbox bonito: cinco criaturas en un mundo gobernado por un modelo 0.5B fino. Observabas burbujas y crashes, pero era más voyeurismo que juego. v2 lo convierte en juego operativo. Tú mueves palancas: prestas con interés, filtras pistas verdaderas o cebos, shorteas, sobornas y negocias, y las criaturas recuerdan y te responden.
La innovación clave para nosotros: cada criatura usa un modelo distinto de un laboratorio distinto en vez de una sola red con muchos prompts. Eso hace que el mercado sea interesante: los agentes realmente discrepen.
Arquitectura y la lección de la capa de serving
La sorpresa para quien construye esto: la fricción más grande no fue entrenar modelos, sino servirlos juntos.
vLLM 0.22.1 JIT-compila kernels al cargar y exige la herramienta CUDA nvcc. Una imagen base ligera no la trae, así que todos los modelos fallaban con "could not find nvcc" hasta que se usó una imagen CUDA de desarrollo. Un fix de imagen resolvió todo.
gpt-oss-20b corrió en quantización MXFP4 y cupo en una L4 24GB con sobra; no necesitas una GPU de gama alta. Atención: responde en un formato con un preámbulo analítico por canales, así que el consumidor debe extraer el canal final.
MiniCPM3-4B requirió trust_remote_code; Nemotron-Mini-4B cargó limpio. Cada modelo trae sus propios footguns, generalmente resueltos con una línea de configuración.
La enseñanza práctica: una vez arreglado el serving (imágenes, drivers, flags), añadir otra voz es una entrada de configuración, no una refactorización profunda.
Robustez: el parser JSON que salva la simulación
Los modelos pequeños tienen hábitos distintos de tokenización y formato; la salida que te envía cada uno puede venir malformada.
La solución que hizo v2 estable fue una capa tolerante de parse-and-repair para JSON. Todos los outputs pasan por ahí: si algo es irreparable se descarta, y la simulación no se cae.
Construye esa capa una vez y añadir modelos se vuelve trivial. No subestimes el valor de un saneamiento fuerte en el flujo de inferencia.
Diferentes tokenizadores producen diferentes malformaciones. Un parser robusto convierte una maraña de formatos en un protocolo único y fiable.
Seguridad: el firewall contra fugas de información
El núcleo dramático del juego es la pista interna (insider tip). Puedes darle a una criatura una pista verdadera (tu edge) o una falsa (cebo). Si la criatura actúa y gana demasiado, la magistrada investiga.
Para que esto sea real, la verdad de la pista debe estar oculta a los agentes. ¿Cómo se resuelve?
La bandera de verdad vive fuera del prompt: en el ledger del jugador.
Se construye el evento público sin la bandera; el narrador solo resume eventos públicos.
Hay una prueba automática que escanea cada prompt completo, cada turno, buscando tokens prohibidos. Esa prueba es la garantía: asume que cualquier secreto se filtrará salvo que el test lo demuestre imposible.
Si vas a dar información secreta a un agente, trátalo como un problema de firewall en el flujo de datos, no como una instrucción en el prompt.
Memoria persistente y control del historial
Las criaturas mantienen relaciones persistentes: un sentimiento firmado hacia el Patron y hacia otras criaturas que se actualiza con eventos (me hayas shorteado, me pagaste, me aliaron con un rival). Eso afecta su comportamiento: una criatura hostil rechaza préstamos; una aliada coopera.
El gran riesgo es la inflación del prompt. El historial crudo crece y satura a un modelo pequeño. La regla de oro en v2:
Nunca riegues el prompt con todo el historial. Solo presenta un resumen bucketizado de una línea, por ejemplo "te sientes cálido hacia Oona, cauteloso con el Patron".
Guarda notas detalladas internamente, pero acota su tamaño y no las muestres directamente.
Parte del sesgo del comportamiento emerge (el resumen guía), y parte es mecánico y determinista (p.ej. rechazar un préstamo si la hostilidad > umbral). Esto hace el sistema observable y testeable.
Run representativo y métricas clave
Palanca
Resultado
Modelos en el council
4 labs, todos bajo 32B, servidos en Modal
Fine-tuned 0.5B fiabilidad
0% autocompra, 100% ofertas válidas (mejora sobre su teacher 3B)
Truth firewall
0 fugas de la bandera de la pista en todos los prompts escaneados
Ventaja por pista insider
Una pista verdadera preposiciona P&L positivo; una falsa no
Calor a investigación
Dos victorias sospechosas cruzaron la línea de la magistrada
Ruina
Margin call y default expulsan a una criatura; vuelve en otro capítulo
Un solo run sembrado ejercitó patronaje, guerra de información, relaciones y apalancamiento de punta a punta.
Lecciones prácticas para ingenieros
Un modelo pequeño es muy bueno generando formatos fiables y pobre razonando; cierras la brecha con estructura, prompting y un pequeño fine-tune, no solo con escala.
Un council heterogéneo es más rico que uno homogéneo y no cuesta mucho una vez resuelto el serving.
La información secreta es un problema de flujo de datos: pon el firewall fuera del prompt y valida con tests automáticos.
La memoria persistente, si se presenta solo como un resumen acotado, es la forma más barata de hacer que los agentes parezcan vivos.
Reflexión final
Thousand Token Wood v2 es una miniatura instructiva: juega con economía, información y confianza, pero sobre todo es un laboratorio de ingeniería para integrar modelos pequeños dispares. Si estás construyendo agentes, toma nota: arreglar el serving y diseñar flujos de datos seguros te dará más valor práctico que escalar el modelo. ¿Quieres voces distintas en tu simulación? Resuelve primero la infraestructura y protégelas con tests.