Sistema donde los agentes mantienen directamente una wiki de LLM al estilo Karpathy, basada en Markdown y Git
(github.com/nex-crm)- Está diseñado para que varios agentes de IA colaboren en la misma oficina, priorizando un flujo de trabajo visible mediante la UI del navegador y una organización de equipo por roles, en lugar de llamadas API ocultas
- La memoria se divide entre el notebook de cada agente y la wiki compartida del equipo; el contexto de trabajo en bruto permanece del lado personal, mientras que solo los hechos verificados y playbooks repetibles se elevan al conocimiento compartido
- La wiki predeterminada no funciona como una simple carpeta de documentos, sino como un repositorio Git local, y además ofrece un conjunto de herramientas centrado en archivos como typed facts, logs append-only, briefs sintetizados por LLM,
/lookupy/lint - Las sesiones se reinician en cada turno y las herramientas también están restringidas por agente; se combina un modelo de ejecución push-driven con caché de prompts para mantener un volumen de entrada plano sin importar la duración de la sesión
- Se integra con Telegram, OpenClaw, One CLI y Composio para incorporar mensajes externos y ejecutar acciones, pero manteniendo en un solo espacio la memoria del equipo y la colaboración entre agentes sobre la base de open source self-hosted y el uso de claves API propias
Estructura de memoria y wiki
- Se separan el notebook por agente y la wiki compartida del equipo, para administrar en distintas capas el contexto de trabajo personal y el conocimiento organizacional
- En el notebook se guardan el contexto bruto obtenido durante el trabajo, observaciones y conclusiones provisionales, y solo la información duradera como playbooks repetibles, hechos verificados y preferencias confirmadas está diseñada para promoverse a la wiki
- Ninguna información se promueve automáticamente; el propio agente decide qué elementos subir del notebook a la wiki
- La wiki incluye información que indica quién fue la última entidad en registrar ese contexto, para que otros agentes puedan decidir a quién volver a mencionar
- En instalaciones nuevas, el backend
markdownes el predeterminado, mientras que los workspaces existentes deNexoGBrainmantienen sin cambios su backend de grafo de conocimiento existente - Si se elige el backend
none, la wiki compartida se desactiva, pero el notebook local sigue funcionando
Cómo funciona la wiki markdown
- La wiki predeterminada no es una simple carpeta Markdown, sino una wiki de equipo basada en un repositorio Git local, ubicada en
~/.wuphf/wiki/ - Incluye typed facts en forma de tripletas, logs append-only de hechos por entidad, briefs sintetizados por LLM,
/lookupbasado en citas y/lintpara detectar contradicciones, documentos huérfanos, afirmaciones antiguas y referencias cruzadas rotas - Los briefs sintetizados por LLM se confirman con la identidad
archivist, y se puede aprovechar tal cual un conjunto de herramientas centrado en archivos comocat,grep,git logygit clone - Esta wiki predeterminada puede usarse sin clave API
- En la nomenclatura interna del código, el notebook es memoria
privatey la wiki es memoriashared, y el backendmarkdowny los backendsnexygbrainusan superficies de herramientas MCP diferentes - El conjunto de herramientas del backend
markdowny el conjunto legado denexygbrainno coexisten en la misma instancia del servidor - Los detalles relacionados continúan en
DESIGN-WIKI.mdydocs/specs/WIKI-SCHEMA.md
Modelo de ejecución y opciones de configuración
- El CLI de agente predeterminado es Claude Code, y también puede elegirse Codex CLI con
--provider codex - El backend de memoria puede elegirse entre
nex,gbrain,noneymarkdown, que es el predeterminado - Incluso si se usa
--no-nex, las integraciones locales como Telegram siguen funcionando, y después de ejecutar se puede volver al modo de delegación de ruteo del CEO con/focus - Al elegir
gbrain, el onboarding inicial exige una clave de OpenAI o Anthropic, y si se necesitan embeddings y búsqueda vectorial, debe usarse OpenAI - Los paquetes de roles disponibles son
starter,founding-team,coding-team,lead-gen-agencyyrevops - Flags como
--opus-ceo,--no-open,--web-porty--unsafepermiten ajustar el modelo, la apertura automática del navegador, el puerto y las verificaciones de permisos - El repositorio está en estado pre-1.0 y la rama
mainpuede cambiar a diario, por lo que al hacer un fork se recomienda fijar etiquetas de release en lugar demain
Colaboración e integraciones externas
- Soporta un puente con Telegram; al ejecutar
/connectdentro de la oficina, elegir Telegram e ingresar el token de @BotFather, se puede conectar un flujo bidireccional de mensajes con un grupo o DM - Los agentes de OpenClaw también pueden incorporarse con
/connect openclaw, usando la URL del gateway ygateway.auth.tokende~/.openclaw/openclaw.jsonpara puentear la sesión - Las sesiones de OpenClaw entran a la oficina como miembros de primera clase y pueden recibir
@mention, mientras que la ejecución real sigue ocurriendo en sus propios sandboxes - La autenticación del gateway de OpenClaw usa un par de claves Ed25519, y las claves se guardan con permisos
0600en~/.wuphf/openclaw/identity.json - Para la ejecución de acciones externas, integra dos proveedores: One CLI y Composio
- One CLI usa un binario local para ejecutar acciones en la máquina del usuario, ajustándose a un flujo en el que no se envían credenciales a terceros
- Composio conecta cuentas SaaS como Gmail y Slack mediante el flujo OAuth alojado de Composio
Decisiones de diseño y características operativas
- Las sesiones se reinician en cada turno, adoptando una estructura donde no se acumula el historial de conversación
- Las herramientas se restringen por agente; en DM solo se cargan 4 herramientas MCP, mientras que en toda la oficina se cargan 27 herramientas
- Los agentes solo despiertan cuando el broker les envía notificaciones en un modelo push-driven, por lo que no se necesita heartbeat polling
- Incluso durante el trabajo, se puede enviar un DM a un agente específico para ajustarlo a mitad del proceso sin reiniciar
- Se pueden mezclar Claude Code, Codex y el runtime de OpenClaw en un mismo canal
- La memoria combina notebooks por agente y la wiki del workspace, y también puede elegirse la memoria basada en grafo de conocimiento de
GBrainoNex - En términos de costo, se presenta un modelo de open source gratuito que combina licencia MIT, self-hosting y uso de claves API propias
- En una medición de una sesión de CEO de 10 turnos basada en Codex, los tokens de entrada se mantuvieron planos en alrededor de 87k por turno
- Los tokens facturados después del caché fueron de unos 40k por turno, y el total de 10 turnos se presentó como unos 286k
- Según el caché de prompts de la API de Claude, se registró una tasa de acierto de caché del 97%, y el costo de 5 turnos en Claude Code figura como
$0.06 - Mientras que un orquestador acumulativo de sesiones hace crecer la entrada por turno de 124k a 484k dentro de la misma sesión, WUPHF mantiene un volumen de entrada plano independientemente de la duración de la sesión
- Se indica que esta diferencia se midió como una brecha de 7 veces en 8 turnos
- Estas características se combinan con fresh session, prompt caching basado en el mismo prefijo, la menor cantidad de herramientas en modo DM y una estructura de activación push-driven sin heartbeat
- Como script de reproducción se propone
wuphf --pack starter &seguido de./scripts/benchmark.sh, y todas las cifras fueron medidas directamente en el entorno local y con las claves del usuario
Estado de implementación y flujo de verificación
- En el README, cada punto principal incluye una tabla de estado de claims conectada directamente a rutas del código, distinguiendo qué está shipped y qué está partial
- Se marcan como shipped el hecho de que el CEO predeterminado sea Sonnet y se actualice con
--opus-ceo, el valor predeterminado del modo colaborativo, el cambio con/focus, el alcance MCP por agente, fresh session, push-driven wake, el aislamiento por workspace, el puente con Telegram, los dos proveedores de acciones, el puente con OpenClaw,wuphf importy el valor predeterminado--memory-backend markdown - El streaming web en vivo del agente figura como partial, y el binario precompilado basado en goreleaser aparece como config ready
- La restauración de trabajo en progreso al reiniciar figura como shipped en
v0.0.2.0 - La LLM Wiki aparece como shipped con memoria de equipo git-native y una UI estilo Wikipedia, enlazando como ubicaciones de implementación
internal/team/wiki_git.go,internal/team/wiki_worker.go,web/src/components/wiki/yDESIGN-WIKI.md - Si hay conflicto entre los claims y el estado, el código tiene prioridad, y se indica abrir un issue si se encuentra un problema
Materiales de evaluación y demo
- Antes de hacer fork, se ofrece un prompt de fork-or-skip para evaluar el repositorio con un asistente de programación con IA, pidiéndole rutas de archivo, números de línea y un veredicto en menos de 500 palabras, sin lenguaje de marketing
- Se indica que este prompt también se usa internamente antes del release
- Como demo de terminal de 5 minutos para mostrar el flujo real de escritura en la wiki, se propone
./scripts/demo-entity-synthesis.sh - En esta demo, el agente registra cinco hechos, luego se activa el umbral de síntesis, el broker llama al CLI local de LLM, el resultado se confirma en el repositorio Git con la identidad
archivist, y toda la cadena de escritura queda registrada engit log - Los requisitos de la demo son
curl,python3, un broker en ejecución con--memory-backend markdown, y que uno de los CLI de LLM compatibles entreclaude,codexyopenclawesté en elPATH
1 comentarios
Comentarios en Hacker News
No me queda muy claro cuál es el punto de la automatización de notas. Antes tampoco ayudaba en nada copiar y pegar texto dentro de notas, así que no sé si multiplicarlo por 100 vaya a cambiar algo
Para mí, la esencia de tomar notas está en leer críticamente las fuentes, asimilarlas según mi modelo mental y luego registrarlo
Los detalles se pueden volver a buscar después; al final, lo importante es el proceso de refinar ese modelo
Si es así, el objetivo podría ser justamente no construir uno mismo ese modelo mental, sino delegarlo a un LLM brain compartido
Aun así, tengo bastantes dudas de que con este enfoque se pueda construir algo realmente valioso para el dueño del producto. Si se puede hacer un producto valioso solo con prompts y un harness de agentes, cualquiera podría replicarlo, el desarrollo de producto se volvería un commodity y al final quizá lo único que conservaría valor serían los tokens
Mi hipótesis es que el do things that don’t scale de Paul Graham va a seguir siendo válido, pero es muy probable que cambie el contenido de esas cosas que no escalan
Aun así, hace poco empecé a usar Obsidian en serio. Dejé configuradas habilidades para tomar notas, investigar, enlazar, dividir y reestructurar la base de conocimiento, y se siente como tener un asistente digital que me ayuda a organizar todo
Ahora basta con anotar ideas sueltas y el agente les da estructura, hace preguntas de seguimiento y las conecta con otros trabajos. Yo sigo siendo quien lee las fuentes y construye el modelo mental, pero obtener notas de buena calidad me está saliendo casi gratis
Es un desperdicio tremendo
La mayoría de las cosas ni siquiera deberían entrar en una nota desde el principio, y los LLM amplifican demasiado el ruido sin validar ni filtrar bien nada
Había un buen ensayo en video de JA Westenberg sobre este tema
https://youtube.com/watch?v=3E00ZNdFbEk
Me pareció bastante interesante
Creo que el punto óptimo está en la curaduría humana, y que operar sin supervisión no es la respuesta, sobre todo si no se gestionan de forma consciente la deuda y el drift
Encima, el nombre es igual al producto inútil y redundante Wuphf.com que salía en The Office, así que dio todavía más esa impresión
Parece que basta con ponerle AI al nombre de un producto para que lleguen miles de millones de dólares, y meter Karpathy en un post de blog para que te contraten como principal engineer en Anthropic
Se siente más como un intento de exprimir dinero mientras dure la moda, sin prestar demasiada atención a lo que realmente necesitan los clientes
Todos están corriendo a ver si al menos pueden aprovechar la ola un poco
Aun así, en aquella época sí se construían cosas reales, y el entorno de financiamiento más ajustado ayudaba un poco a contener el sobrecalentamiento
Este boom de los LLM, al menos, sí tiene cierta posibilidad real y algo de valor, y además es una tecnología bastante divertida para aprender y experimentar
Hace tiempo acepté que, cuando el dinero se concentra en algo así, lo correcto es aprovechar la oportunidad ahí, siempre que no sea de forma antiética. Mientras siga sobrando el capital de VC/PE, también se pueden construir cosas valiosas y geniales
Yo sigo esperando un harness CLI de nivel mundial que pueda reemplazar a Claude Code. Necesito algo que resuelva los problemas de memoria y de diseño
El diseño web sigue siendo casi una pesadilla con LLM
También hicimos PoC empresariales, y todo eso terminó condensándose en este proyecto que construí al margen para ayudarme en mi trabajo personal. Al final, esta fue la interfaz realmente usable para la context infra
No me interesa un puesto de principal engineer en Anthropic. Antes fui Product Manager en HubSpot y ganaba bastante más de lo que gano ahora, y probablemente no vuelva a ese nivel en varios años
Aposté varias veces e iteré una y otra vez porque el producto fue evolucionando a partir de hablar directamente con clientes. Mientras tanto, antiguos competidores siguen construyendo AI CRM en stealth
Como alguien que lleva tiempo en esta industria, la ola en sí no me importa tanto, pero sí creo que debajo de ella hay valor real que vale la pena rescatar
Vi esta reseña: https://zby.github.io/commonplace/agent-memory-systems/reviews/wuphf/
Es el tercer LLM wiki que llega a portada en menos de 24 horas, así que claramente es un tema caliente
Yo también tengo intereses en esta área, así que no soy del todo objetivo, pero sí dejé por escrito lo que espero de este tipo de sistemas
https://zby.github.io/commonplace/notes/designing-agent-memory-systems/
Me da la impresión de que todos están reinventando su propio sistema y eso implica demasiada inversión duplicada; ojalá hubiera una forma de colaborar
Aunque, por el estilo, se nota claramente que las escribió un LLM, así que me pregunto si en este tipo de notas de diseño luego las reelaboras con tus propias palabras para confirmar que realmente reflejan tus ideas
Nosotros empezamos como una empresa de context infra llamada nex.ai mucho antes de que Karpathy siquiera propusiera la idea del LLM wiki, y aunque eso todavía casi no se ve en WUPHF, ahora lo estamos mostrando poco a poco
Me alegró ver que muchas de las preocupaciones que mencionaste en el texto comparativo son cosas que ya veníamos abordando en la context infra que construimos
Aun así, totalmente a favor de reducir la duplicación y colaborar compartiendo lo que cada quien ha aprendido
Dijiste que ojalá hubiera oportunidades para colaborar, y me llamó la atención porque sonó como si ahora mismo no las hubiera
Si le montas QMD encima a un vault de Obsidian, ya tienes como el 80%, y probablemente no te toma ni dos horas
Para dar contexto, aquí también está el enlace al post original de Karpathy
https://x.com/karpathy/status/2039805659525644595
https://xcancel.com/karpathy/status/2039805659525644595
Me da curiosidad si AI Notes va a aportar valor o solo va a generar más ruido
Eso sí, el estilo ASCII del sitio web me gustó bastante
Ojalá alguien construyera algo como un StackOverflow revival para resolver este problema
Curado por personas, pero funcionando como un grafo de conocimiento distribuido donde un conjunto de LLM colectivos intente resolver problemas y, si se atasca, publique una pregunta al estilo antiguo
Me parecería perfectamente bien que mi agente dijera: "Aquí me atoré, ya dejé una pregunta en SO; cuando haya respuesta, volvemos después"
Me pregunto cómo evitar que un LLM escriba demasiado
He hecho algunas herramientas y sistemas parecidos, y en todos los casos el LLM seguía inflando la documentación hasta que todo el sistema terminaba hecho un desastre y, mientras más crecía, menos útil se volvía
Uno de los experimentos que hice hace tiempo consistía en darle unos cuantos enlaces a un LLM para que investigara temas relacionados y construyera su propio knowledge wiki, con resúmenes, enlaces cruzados y fuentes en cada página
A simple vista se veía bien, pero al leer los datos reales no convencía mucho
Fue un experimento de hace varios años, así que quizá valdría la pena volver a intentarlo ahora con algo como opus 4.7
Como idea adicional, la comunidad de TiddlyWiki por supuesto también ha estado explorando herramientas de IA
TiddlyWiki es un wiki basado en un solo archivo HTML autocontenible, y existe desde hace más de 20 años
No necesariamente evolucionó hacia un entorno agentic, pero tiene plugin de markdown, y también herramientas para volver ejecutables los archivos o convertirlos en webapps self-serving. Git es algo complicado
Así que, en teoría, también podría existir un agentic wiki de un solo archivo que vaya por ahí modificándose a sí mismo
https://tiddlywiki.com/
Esa configuración de archivo único que mencionas ya tiene varios conectores con LLM. Por ejemplo: https://github.com/rimir-cc/tw-llm-connect
El atractivo está exactamente ahí: no tiene dependencias, no requiere instalación y es muy fácil de almacenar, así que una configuración de agentic wiki de un solo archivo que se autoedite ya es perfectamente posible hoy mismo
Más cercano al patrón de LLM Wiki de Karpathy también está twillm, en el que estoy trabajando
https://github.com/Jermolene/twillm
Usa la configuración Node.js de TiddlyWiki y guarda los tiddlers como archivos individuales, así que puede apuntar directamente a un vault de Markdown existente y usarse junto con herramientas como Claude Code
Las ventajas de TiddlyWiki también son bastante claras. Es open source, así que se puede seguir usando a largo plazo, y como es web-based, se puede acceder desde cualquier lugar
Además, las vistas calculadas reemplazan los archivos de índice materializados. En el método de Karpathy, el LLM tiene que seguir sincronizando index.md cada vez que agrega notas, y ese tipo de tarea se vuelve stale fácilmente conforme cambian las sesiones; es justamente el tipo de cosa en la que los LLM son especialmente malos
En cambio, las vistas de TiddlyWiki usan expresiones de filtro en tiempo real, así que resultados como "tiddlers con la etiqueta concept ordenados por rating" se calculan al vuelo en el momento del render
El frontmatter también se vuelve una estructura consultable. Obsidian muestra el YAML frontmatter como una caja de metadatos en la parte superior de la nota, pero TiddlyWiki eleva esos campos a tiddler fields de primera clase que se pueden usar directamente para filtrar, ordenar y agregar
Y los LLM no solo pueden escribir contenido, sino también pequeños applets. Además de notas en Markdown, pueden agregar tiddlers en wikitext (.tid) para crear vistas interactivas en vivo, como dashboards, exploradores de etiquetas, índices de diario o glosarios
El área de los self building artefacts es interesante, y últimamente está creciendo mucho porque los LLM, en especial los modelos de código, se han vuelto rápidamente más fuertes en esto
Yo también estuve experimentando hace poco con un proyecto centrado en minimizar dependencias y controlar agentes en local
https://github.com/GistNoesis/Shoggoth.db/
Para completar una tarea larga dada por prompt, crea y organiza por sí solo una base de datos sqlite, usando como datos fuente una copia local de Wikipedia
También dejé el harness y las herramientas para experimentar con drift de agentes en una forma lo más mínima posible
Además, es bastante fácil conectarle herramientas de procesamiento de imágenes. Basta con codificar la imagen en base64 y pasarla a llama.cpp, y el detalle de implementación se puede resolver más o menos con vibecoding usando un LLM local
Creo que es una herramienta útil de forma bastante general
Por ejemplo, antes tenía un script que usaba Amazon Textract para extraer montos, fechas y comercios de facturas y recibos en una carpeta, y luego una persona revisaba los números para generar un CSV para el contador
Ahora esa llamada a Amazon Textract puede reemplazarse por una llamada a un modelo de llama.cpp con el prompt adecuado, manteniendo intacta la herramienta de facturas existente y permitiendo un procesamiento contable mucho más creativo
También probé una variante para mover un robot físico usando secuencias de imágenes de cámara, y en casos sencillos sí logró moverse y alcanzar el objetivo
Pero el LLM que uso nunca fue entrenado para conducir robots, y además tardaba 10 segundos en elegir la siguiente acción, así que no era práctico. Los controladores clásicos no basados en deep learning que usamos hoy hacen correr el loop de visión a 20 Hz
Los modelos LLM y los agentes construidos encima no son deterministas, sino probabilísticos
Logran hacer ciertas cosas con cierta frecuencia, pero no aciertan siempre
Por eso, mientras más se alargue una tarea hecha por un agente, más aumenta también la probabilidad de fallo. Este tipo de agentes de ejecución prolongada terminan fallando tarde o temprano, y en el proceso además queman una enorme cantidad de tokens
Una de las cosas que mejor hacen los agentes LLM es reescribir sus propias instrucciones
El truco está en limitar el tiempo y los pasos de razonamiento del modelo de thinking, luego evaluar, actualizar y volver a ejecutar
Por decirlo con una analogía: hay que asumir que el agente se va a caer. No lo pongas a correr tanto tiempo hasta que se caiga; mejor dos veces cinco minutos que una vez diez minutos
En unas semanas, este tipo de agentes autorreferenciales probablemente van a estar en la parte alta de todos los feeds de Twitter
Así que es muy posible que este tipo de wiki llegue a cierto estado y simplemente se quede atorado ahí