Ningún asistente acierta a la primera
rysOS, el asistente ejecutivo que estoy entrenando en mi Raspberry Pi
Yo quería un asistente ejecutivo. Alguien que leyera mi agenda, mi correo, el acta de la reunión de la que acababa de salir y el audio que grabé en el auto, y que hiciera algo útil con todo eso sin pedirme que abriera una pantalla y dijera dónde guardar cada cosa.
Nadie empieza un trabajo sabiendo cómo trabaja el jefe. Un asistente humano se equivoca en las primeras semanas, pregunta mucho y va entendiendo poco a poco quién es quién, qué es urgente y qué puede esperar. Con un asistente de IA ocurre lo mismo. Tampoco acierta a la primera, y el error más común es olvidarlo y esperar un producto terminado.
Así traté al rysOS. Lee mis fuentes reales, Google Calendar, Gmail, la transcripción de las reuniones y mi diario hablado, y escribe en una bóveda, que es como llamo a mi carpeta de notas en archivos de texto simple. Funciona como servicio en mi Raspberry Pi y es solo mío. Lo que más importa de él es que aprende conmigo. Yo corrijo, él guarda la corrección, y la idea es que con el tiempo necesite menos ayuda. Mi papel es acompañar, corregir y enseñar. Este texto cuenta cómo funciona eso en la práctica.
Un asistente que pregunta cuando no sabe
Lo primero que le exigí fue que nunca invente. Dale a un chatbot común una invitación de calendario sin descripción y pídele el orden del día de la reunión. Devuelve un orden del día plausible, bien escrito y falso. En un registro que se va a convertir en mi historial de decisiones, eso es inaceptable. Por eso, cuando la invitación llega sin orden del día, en la práctica con menos de quince caracteres de descripción, ni siquiera se consulta al modelo. El resumen dice que la invitación llegó sin orden del día. Queda más seco, y así lo prefiero.
De la misma forma, cuando una transcripción menciona a una persona, un proyecto o una decisión que no puede vincular con seguridad a algo que ya existe, pregunta. Abre una nota de triaje, con una línea por cada duda, y yo respondo en el propio Obsidian con una palabra: NOVO para crear, "= Nome Exato" para vincular a una nota que ya existe, IGNORAR para descartar. (Los comandos están en portugués, como el resto del sistema.) Si la misma persona está pendiente en otras transcripciones, la respuesta vale para todas. Yo respondo una vez, y él no lo olvida.
También guarda lo que aprende. Registra los términos que se repiten y las veces en que confirmo o corrijo cómo clasificó un mensaje, y vuelve a usar ese historial en los siguientes.
Su día
A las siete de la mañana busca los eventos del día y los correos nuevos y prepara, para cada reunión, un resumen de lo que se sabe sobre ella. Una cuenta que vence hoy se convierte en un foco en el panel del día, y las que vencen después se convierten en recordatorio. Cada quince minutos revisa una carpeta. Cuando dejo allí la transcripción de una reunión, o el audio del diario llega ya transcrito, arma el acta, crea la nota y guarda el archivo original.
Converso con él por Telegram. Una pregunta mía nunca se convierte en nota, una captura vaga recibe una respuesta en lugar de convertirse en borrador, y "boleto pago" (cuenta pagada) cierra el foco correspondiente. A las once de la noche llega el balance del día.
Lo que aprendió equivocándose
Se equivocó de maneras que yo no esperaba, y cada error cambió lo que hace hoy.
Por culpa de dos nombres iguales, pasó un día y medio recreando las mismas decisiones cada quince minutos y dejó más de 730 archivos repetidos en la carpeta. Hoy un problema en una decisión no perjudica a las demás. En este punto todavía no lo domina del todo, porque el nombre de las decisiones aún puede colisionar, y lo sigo vigilando.
En reuniones que llegaban por mis otras cuentas de correo, no me reconocía y creaba un vínculo a una nota que no existía. Nadie me avisó, y solo lo noté después. Ahora usa la lista completa de mis correos.
Un informe llegó a decir que 26 de mis 27 notas de recursos estaban duplicadas. Fui a mirar antes de unirlas, y eran 26 notas distintas con el mismo nombre. Unir todo habría borrado la colección. Cada una recibió un nombre nuevo. Ese error era del informe, y quien lo detectó fui yo.
El escaneo de la bóveda llegó a tardar más de 20 minutos por una configuración de la conexión con Google Drive. La ajusté, y hoy tarda unos 11 segundos.
Las reglas que mantengo
Acompañar a un asistente es mantener algunas reglas que no cambian, incluso cuando relajarlas parece mejor.
La estructura, con carpetas, campos y vínculos, siempre la arma el código, y el modelo solo escribe frases. Así, cuando una nota sale mal, sé si el defecto estuvo en el código o en una frase de la IA. La falta de información cuenta como información, y por eso dice que no sabe en lugar de rellenar el vacío. Reconoce las cosas por lo que ocurrió de verdad: una reunión por fecha y participantes, una cuenta por vencimiento y acreedor, una transcripción por el contenido del archivo. Por eso un correo reenviado, o un archivo soltado dos veces, nunca genera dos notas.
La bóveda tiene cuatro áreas fijas: Negocios y Gobernanza, Salud y Vitalidad, Patrimonio y Finanzas, y Familia y Relaciones. Con un vocabulario cerrado, se puede preguntar "qué está pendiente en Salud" y recibir la respuesta completa. En las notas de reunión, lo que escribe la máquina queda arriba, y lo que escribo yo en el cuerpo nunca se sobrescribe.
Y la bóveda es una carpeta de archivos Markdown sincronizada con Google Drive. Si Obsidian desapareciera mañana, los archivos seguirían donde están, y cualquier IA, incluso una que todavía no existe, podría leerlos.
Lo que no hace
Un asistente humano es mejor en todo lo que exige criterio: negociar, leer una sala, decidir qué no hacer. Si tu cuello de botella es el criterio, contrata a una persona.
Un chatbot con plugins de agenda y correo es más rápido de armar. Sin alguien que lo supervise, un día va a inventar algo plausible, y solo lo descubrirás después de usar el dato falso en una decisión real. Las herramientas no-code sirven mejor a los equipos. El rysOS es para una sola persona, con una cuenta de Google, una bóveda y un usuario autorizado en Telegram. Es una limitación real.
Qué esperar
No decide por mí. Lo que hace es mejorar a medida que lo acompaño. Una reunión se convierte en nota sin que yo escriba. Una persona mencionada en seis reuniones acumula el historial en su propia página, sin que yo haya escrito ese historial. Una decisión registrada hoy es una línea que voy a releer dentro de tres meses para saber si tenía razón. Nada de lo que ya supe se pierde, nada de lo que no sabe se inventa, y todo puede rastrearse hasta la fuente.
Esto solo sigue siendo cierto mientras yo siga mirando. Si dejo de acompañarlo, deja de aprender y los errores vuelven a pasar sin que nadie los vea. Escribí este texto para recordarlo: el rysOS es un asistente nuevo, y los asistentes nuevos necesitan atención y tiempo para agarrarle el ritmo.
El código
El código está en GitHub, con el nombre meOS: github.com/rodrigoyujisato/meOS. Es abierto, con licencia MIT. Nombre, correos y rutas pasan a ser configuración en un archivo .env, y el repositorio no guarda ningún dato mío. Para ejecutarlo necesitas una clave de Gemini y, si quieres que lea agenda y correo, una cuenta de Google. El README trae el paso a paso, y el sistema habla portugués.
Gracias, Luis
Luis Alt, gracias por la provocación de explorar las posibilidades de Obsidian, que vino de tu LifeOS (luisalt.com/LifeOS). Admiro al profesional, con tu trayectoria en Diseño de Servicios en Brasil y en el mundo. Admiro todavía más a la persona, siempre amable y brillante.
Un abrazo, Rodrigo