Tachikoma es un panel para armar bots que publican por su cuenta en redes sociales. Desde la web se define qué publica cada uno, en qué cuentas, en qué idioma, a qué hora y cuánto puede gastar; cada administrador carga su propia llave de IA y el sistema se encarga del resto: busca el dato en una fuente consultable, lo redacta, comprueba las reglas en código y publica solo lo que puede sostener. Hoy hay 15 bots corriendo sobre 2 redes, sin que nadie apriete un botón.
Publicando sin intervención desde el 12 de septiembre de 2026. Las cifras de esta página salen de la base de producción; ninguna está escrita a mano.
Lo que se define desde el panel
No hace falta tocar código ni entrar por ssh para cambiar nada de esto. Cada bot se arma y se corrige desde la web, y el cambio vale a partir del ciclo siguiente.
El tema y el instructivo con el que escribe. Cada tema trae su propia forma de verificar: un artículo científico necesita DOI y revista; una película, imagen real; una efeméride, el año y el artículo que la respalda.
15 bots activos ahoraA qué cuentas publica, cuántas piezas por día y en qué horas, en su propia zona horaria. El texto se dimensiona al límite de cada red —300 caracteres en Bluesky, 2.200 en Instagram—, así que cada red recibe una pieza escrita para ella.
2 cuentas conectadas, 2 redesLos idiomas del cuerpo de la publicación se eligen por bot y se encienden de a uno, sin tocar código. La imagen se genera aparte, porque no todos los alfabetos se componen igual.
publicando hoy en Español / InglésFotografía de archivo libre, figura del propio artículo, afiche de la película o una tarjeta tipográfica generada por el sistema. El contraste del texto sobre el fondo se comprueba al construirla; no se confía a un lineamiento.
Instagram exige imagen: sin ella no se publicaCada administrador carga la suya pegándola en el panel. Se guarda cifrada y no se vuelve a mostrar entera: desde ahí solo se ven los últimos cuatro caracteres, lo justo para reconocerla. Un botón comprueba si sirve sin gastar un solo token.
La llave nunca sale en un registro ni en una respuesta del servidorUn tope diario por bot y un tope mensual por llave. El sistema corta antes de llamar a la API, no después: la idea es que un error o un bucle no puedan generar una factura.
15 de 15 bots con tope diario cargadoLo que hace el sistema solo
Con la configuración cargada, un ciclo horario decide bot por bot —según su zona horaria y su cuota— qué corresponde hacer: generar, publicar, medir o responder comentarios. Esto es lo que ocurre entre que se despierta y que algo llega a la red.
Europe PMC para ciencia, Banco Mundial para economía, TMDB para cine, Finnhub para bolsa, Wikipedia para efemérides. Un artículo sin DOI, o ya retractado, se descarta antes de gastar una llamada al modelo. app/Research/PaperFinder.php
Recibe el trabajo real y devuelve texto, palabras clave y el vínculo con la actualidad. Los campos verificables los pone la fuente, nunca el modelo. app/Content/PostComposer.php
El título de una película no se traduce: se estrena con otro nombre en cada país y se pide el oficial. Traducirlo palabra por palabra inventa una película que no existe; ocurrió una vez y por eso está resuelto así. app/Content/PostTranslator.php
Instagram exige imagen. La tarjeta tipográfica se construye comprobando el contraste WCAG en el propio constructor, no confiando en un lineamiento. app/Media/Design/Contrast.php
Fuente, medio indexado, preprint declarado como tal, tipo de estudio, vínculo con la actualidad, palabras clave, límite de la red. Si falta una, no se publica. app/Editorial/EditorialGuard.php
Entre que se genera el borrador y que sale pueden pasar días, y una retractación llega justo después. Si la API no responde, no se publica: no saber no es vía libre. app/Research/RetractionChecker.php
La publicación se reclama con una actualización condicional antes de salir, y un cortacircuitos aísla la cuenta que empieza a fallar. Publicar dos veces en una cuenta real no tiene vuelta atrás. app/Social/SocialPublisher.php
Cada publicación deja instantáneas de interacción, que se cruzan con sus palabras clave para saber qué temas funcionan. Eso es lo que decide qué se busca mañana. app/Stats/KeywordStatsService.php
Las llaves
Un bot que publica necesita, por definición, credenciales que pueden publicar. Son justamente las que no deben poder leerse: ni desde la base de datos, ni en un registro, ni en una respuesta del servidor, ni por quien administra el panel.
Las credenciales de cada cuenta de red y la llave de cada proveedor de IA se guardan cifradas. Quien lea la tabla directamente ve texto cifrado, no la llave.
2 cuentas conectadas, credenciales cifradasEl formulario no las trae de vuelta al abrirlo y quedan fuera de toda serialización del modelo: no viajan a un registro ni a un correo de error. En pantalla solo se ven los últimos cuatro caracteres.
Guardar el formulario sin tocar el campo no borra la llaveLa llave de IA es de quien administra, no del sistema: se pega en el panel y manda sobre cualquier otra configuración del servidor. Cambiarla tiene efecto en la llamada siguiente, sin reiniciar nada.
Un botón comprueba la llave contra el proveedor sin gastar tokensEl dinero
Un bot que llama a un modelo varias veces por día gasta dinero real. El panel responde tres preguntas distintas —cuánto va hoy, cuánto va en el mes y cuánto costó cada publicación— y además frena cuando corresponde.
Tokens de entrada, de salida, de caché, latencia y costo, guardados junto a la publicación que los originó y con el precio del día: el precio cambia y el histórico no debe recalcularse solo.
2.499 llamadas registradas con su costoEl diario por sí solo no alcanza para saber qué cuesta un bot: un día sin material cuesta cero. El del mes, con su proyección al cierre, es el número que se compara con lo que el proveedor va a cobrar.
Con su proyección al cierre del mes, bot por botEl tope diario es del bot. El mensual es de la llave, que es lo que realmente factura el proveedor: cinco bots con tope pequeño igual suman contra la misma cuenta. Al alcanzarlos, no se genera.
Se corta antes de llamar a la API, no en la llamada siguienteLo que el sistema no delega al modelo
Un modelo puede ignorar una instrucción del instructivo, y no hay forma de saberlo desde afuera. Las reglas editoriales se evalúan sobre el borrador terminado: si no se cumplen, la publicación no sale, diga lo que diga el texto.
208 publicaciones frenadas por regla hasta hoySon etiquetas temáticas internas que se fijan al generar el contenido y después se cruzan con la interacción real de cada publicación. Sirven para responder qué temas vale la pena seguir buscando.
505 temáticas medidas sobre 66.159 instantáneas · mejor: stocksEl sistema responde a los primeros comentarios de cada publicación y clasifica lo que decide no responder: pedir consejo médico o preguntar algo que el estudio no respalda son omisiones legítimas, no hostilidad.
8 categorías, 4 contabilizadas como ataqueLo que no se publicó queda guardado con el motivo escrito; no se borra. Un borrador puede además retenerse a mano para revisarlo antes de que salga.
17 publicaciones retenidas para revisión en este momentoQué está corriendo
Sumar un bot a un tema que ya existe es completar un formulario. Sumar un tema nuevo sí es código —una clase que lo busca, una que lo redacta y una que lo verifica—, pero el resto del sistema no se entera: el ciclo, la cola, las cuentas y las estadísticas ya son agnósticos del tema que están procesando.
En la red ahora
Las piezas de Bluesky enlazan a la publicación viva. Las de Instagram no: su enlace público solo lo entrega la API de Meta, y es preferible no mostrar un enlace armado a mano.
Cómo está hecho
Corre en un servidor propio de 864 MB de memoria: un panel, una tarea programada cada minuto y una cola que se vacía sola. Todo lo que se administra se administra desde la web —bots, cuentas, llaves, topes, catálogo de modelos— y el estado sobrevive a un reinicio.