Las Aventuras de 🐺 villawolf y 🤖 chigu — Episodio 10: El Editor ✂️
Construí todo lo anterior: identidad, voz, oído, autonomía, defensas, para responder una sola pregunta: ¿puede chigu agregar valor editorial de verdad? La primera corrida real costó 35 centavos y me dejó dos textos cuyo único veredicto fue "impecable". También me dejó un bug que le mandó basura como instrucción. Las dos cosas cuentan.
De dónde viene
El episodio anterior le dio a chigu autonomía: ya lee, decide, publica y responde solo. Pero autonomía sin un trabajo es un juguete caro. El trabajo, desde el día uno del proyecto, es este: mi otro agente, Moto, genera notas crudas sobre Bitcoin y tecnología (vive en una Raspberry Pi y las suelta por su cuenta). chigu tiene que leer esas notas y convertirlas en posts con criterio editorial y voz propia.
Este episodio es la primera vez que lo hace de verdad: sobre notas reales, con las defensas activas y el costo medido al centavo. Es el caso de uso que justifica todo el proyecto.
El patrón: el modelo redacta, Python escribe
La regla que sostengo desde que chigu toca algo serio: el modelo nunca tiene la mano sobre el teclado privilegiado. Aquí se ve limpio. La edición de contenido corre en dos roles separados:
- El LLM solo redacta. Recibe la nota de Moto y devuelve texto. No tiene herramientas, no escribe archivos, no toca el disco.
- Python escribe, y solo puede escribir dentro de una carpeta: la del borrador. Esa restricción vive en código, una Policy de scope que resuelve la ruta completa antes de compararla, así no la engaña un
../..escondido, con una segunda validación en la propia herramienta de escritura. Dos capas independientes: si una falla por un bug, la otra sostiene.
¿Por qué tanto cuidado para escribir un simple borrador? Porque es la misma disciplina que voy a necesitar el día que chigu mueva sats: la escritura privilegiada nunca pasa por el modelo. Es la lección Freysa otra vez, lo que el modelo no controla, nadie lo puede usar para engañarlo. Practico la defensa en lo barato (un archivo de texto) para tenerla firme en lo caro (un pago).
El bug que mandó basura como instrucción
La primera corrida salió mal, y salió mal de forma instructiva. El post que produjo chigu era genérico: cinco hashtags, sin primera persona, con un preámbulo meta y hasta una nota pidiéndome "tus reglas de estilo". No sonaba a chigu en absoluto.
El diagnóstico: las instrucciones de editor de chigu viven en un archivo de texto, con un bloque operativo separado por una línea ---. El cargador partía el archivo en ---. pero el propio texto explicativo del archivo mencionaba --- entre comillas. El corte cayó en el lugar equivocado y a chigu le llegó, como sus "reglas", un fragmento de 100 caracteres de la nota explicativa. Nunca recibió sus instrucciones reales. No era el modelo: era un cargador ingenuo.
El fix es pequeño y la lección es grande: el corte ahora solo ocurre en líneas que sean exactamente ---, con un chequeo de largo mínimo, y el proceso imprime qué instrucciones cargó (Prompt curador: 1909 chars · Eres chigu…). Un fallo de carga tiene que ser ruidoso, no silencioso. Un prompt vacío que produce un post mediocre es peor que un error que te grita: el primero se publica y nadie se entera; el segundo se arregla en el momento. Recorrí con el fix y, al primer intento, el post salió con la voz correcta.
El veredicto humano
Con el cargador arreglado, edito cinco notas de Moto. Mi veredicto, nota por nota:
| Nota | Veredicto |
| Morpho (interfaz para agentes) | "impecable, me encantó" |
| Tether QVAC (IA local en el dispositivo) | "impecable" |
| Dune (skills on-chain para agentes) | bien |
| Roles de nodos en Bitcoin | bien, salvo un "nomás" |
| Nunchuk (multisig + agentes) | voz correcta (la re-curada tras el fix) |
Dos impecables, dos bien, y una con un "nomás", un regionalismo del cono sur. Verifiqué con un grep que ese "nomás" no venía de la nota original de Moto: lo metió el modelo al redactar. Detalle chico, pero marca la línea con nitidez: el humano sigue siendo el editor. chigu redacta a un nivel que me sorprende; yo firmo lo que sale.
Lo que cuesta una edición
Los números, que en esta serie van siempre:
- La corrida completa: ~$0.35 en total (seis llamadas al modelo, incluida la del bug).
- El lote limpio de cuatro notas: $0.2162 entre $0.06 y $0.08 por nota, con Sonnet.
- A ritmo de 1-2 posts por semana, curar cuesta ~$0.30 a $0.60 al mes.
Elegí Sonnet a propósito, no el modelo más barato: la curaduría es el producto editorial, y ahí la calidad de la prosa pesa más que ahorrar centavos. Pero ahora que el costo por nota se imprime en cada corrida, comparar Sonnet contra Haiku deja de ser opinión y pasa a ser un número.
Y ese dato tiene un destino. Cada edición queda registrada con su costo, y esos registros alimentan el reporte que esta serie prometió desde el Ep 0: cuánto gana chigu contra cuánto cuesta. Treinta centavos al mes de edición es una cifra que un puñado de zaps cubre de sobra. Por primera vez, el objetivo económico del proyecto, que chigu se pague sus propios costos, no como donación sino como servicio, tiene aritmética real en vez de intención.
Qué viene en el siguiente episodio
chigu ya edita y publica solo, encendido día y noche. Pero un agente que vive 24/7 se rompe de maneras que un script efímero jamás muestra. El siguiente episodio son los fantasmas del servicio permanente: el DM que se perdía en silencio cada vez que reiniciaba, y un clon suyo, vivo desde hacía trece días, que publicaba todo dos veces sin que el log lo notara. Los errores se documentan igual que los éxitos.
anterior → Ep 9: chigu Actúa Solo · siguiente → Ep 11: Los Fantasmas del 24/7
chigu@blink.sv ·_@chigu.techflows.work· Nostr:npub18rl9xeaxw0leee0easqu9cngrq0ny4zsmdsx4jhj5fkfmstgklhq2q5mqz
Si esto te es útil, un zap es la mejor señal. Si algo está mal, corrígeme públicamente, lo agradezco más que el zap.